
ElectricEye est un outil CLI Python multi-cloud et multi-SaaS pour la gestion des actifs, la gestion de la posture de sécurité et la surveillance de la surface d'attaque, prenant en charge des centaines de services et d'évaluations pour sécuriser vos environnements CSP et SaaS, avec des contrôles mappés à plus de 20 cadres de contrôles sectoriels, réglementaires et de bonnes pratiques.
ElectricEye est un outil CLI Python multi-cloud et multi-SaaS pour la gestion des actifs, la gestion de la posture de sécurité et la surveillance de la surface d'attaque, prenant en charge des centaines de services et d'évaluations pour renforcer vos environnements CSP et SaaS avec des contrôles mappés sur plus de 20 cadres de contrôles sectoriels, réglementaires et de bonnes pratiques.
Là-haut dans l'espace
Je te regarde d'en haut
Mes lasers tracent
Tout ce que tu fais
Judas Priest, 1982

ElectricEye est un outil CLI Python qui offre des capacités de gestion des actifs, de gestion de la posture de sécurité et de surveillance de la surface d'attaque multi-comptes, multi-régions, multi-cloud et SaaS sur AWS, toutes partitions prises en charge !, GCP, Oracle Cloud Infrastructure (OCI), ServiceNow, Microsoft 365 Enterprise (M365), Salesforce (SFDC), et Azure.
ElectricEye propose plus de 1000 contrôles basés sur les meilleures pratiques en matière de sécurité, de résilience, de performance et financières, couvrant plus de 100 services CSP et SaaS, y compris des services atypiques non pris en charge par les outils/vues de gestion d'actifs natifs CSP/SaaS ou les outils CSPM et CNAPP grand public.
Chaque contrôle est mappé à plus de 20 cadres de contrôles couvrant les bonnes pratiques générales, les cadres réglementaires, sectoriels et juridiques tels que NIST CSF, AICPA TSCs (pour SOC 2), la règle de sécurité HIPAA, NIST 800-171 Rev. 2, CMMC V2.0, la section 2 du CROE de la Banque centrale européenne, PCI-DSS V4.0, les benchmarks CIS Foundations, et plus encore !
La surveillance multi-facettes de la surface d'attaque utilise des outils tels que VirusTotal, Nmap, Shodan.io, Detect-Secrets et le KEV de la CISA pour localiser les actifs indexés sur Internet, trouver les services exposés, localiser les vulnérabilités exploitables et les paquets malveillants dans les dépôts d'artefacts, respectivement.
Sorties vers AWS Security Hub, l'Open Cyber Security Framework (OCSF) V1.1.0 en JSON, AWS DocumentDB, JSON, CSV, rapports HTML, MongoDB, Amazon SQS, PostgreSQL, Slack (via des bots Slack App) et .
Le concept central d'ElectricEye est l'Auditeur, qui est un ensemble de scripts Python exécutant des Contrôles par Service dédiés à un fournisseur SaaS ou à un fournisseur de services cloud public spécifique appelé Cible d'évaluation. Vous pouvez exécuter une cible d'évaluation entière, un auditeur spécifique ou un contrôle spécifique dans un auditeur. Une fois les évaluations terminées, ElectricEye prend en charge plus d'une douzaine de types de Sorties, allant d'un rapport exécutif HTML aux clusters AWS DocumentDB - vous pouvez exécuter plusieurs sorties selon vos besoins.
ElectricEye utilise également d'autres outils tels que Shodan.io, detect-secrets de Yelp, VirusTotal, le catalogue Known Exploited Vulnerability (KEV) de la United States Cyber and Infrastructure Security Agency (CISA), et NMAP pour effectuer ses contrôles et enrichir leurs résultats.
Tout d'abord, clonez ce dépôt et installez les dépendances avec pip3 : pip3 install -r requirements.txt.
Si vous évaluez autre chose que votre compte AWS local, modifiez la configuration TOML située dans ElectricEye/eeauditor/external_providers.toml, ou fournissez le chemin vers votre propre fichier avec --toml-path. Le fichier TOML spécifie les spécificités multi-comptes, multi-régions, de credentials et de sorties.
Enfin, exécutez le Contrôleur pour en savoir plus sur les différents Contrôles, Auditeurs, Cibles d'évaluation et Sorties.``` python3 eeauditor/controller.py --help Usage: controller.py [OPTIONS]
Options: -t, --target-provider [AWS|Azure|OCI|GCP|Servicenow|M365|Salesforce|Snowflake] Public cloud or SaaS assessment target, ensure that any -a or -c arg maps to your target provider to avoid any errors. e.g., -t AWS -a Amazon_APGIW_Auditor -a, --auditor-name TEXT Specify which Auditor you want to run by using its name NOT INCLUDING .py. . Use the --list-checks arg to receive a list. Defaults to ALL Auditors -c, --check-name TEXT A specific Check in a specific Auditor you want to run, this correlates to the function name. Use the --list-checks arg to receive a list. Defaults to ALL Checks -d, --delay INTEGER Time in seconds to sleep between Auditors being ran, defaults to 0. Use this argument to avoid rate limiting -o, --outputs TEXT A list of Outputs (files, APIs, databases, ChatOps) to send ElectricEye Findings, specify multiple with additional arguments: -o csv -o postgresql -o slack [default: ocsf_stdout] -of, --output-file TEXT For file outputs such as JSON and CSV, the name of the file, DO NOT SPECIFY .file_type [default: output] -lo, --list-options Lists all valid Output options -lch, --list-checks Prints a table of Auditors, Checks, and Check descriptions to stdout - use this command for help with populating -a (Auditor selection) or -c (Check selection) args -lco, --list-controls Lists all ElectricEye controls - that is to say: the Check Titles - for an Assessment Target -tp, --toml-path TEXT The full path to the TOML file used for configure e.g., ~/path/to/mydir/external_providers.toml. If this value is not provided the default path of ElectricEye/eeauditor/external_providers. toml is used. --help Show this message and exit.
Pour plus d'informations, voir [ici](#configuring-electriceye), vous pouvez lire la [FAQ ici](https://github.com/jonrau1/electriceye/blob/HEAD/docs/faq/FAQ.md), les informations sur les [Sorties sont ici](https://github.com/jonrau1/electriceye/blob/HEAD/docs/outputs/OUTPUTS.md) ou, si vous souhaitez une analyse plus approfondie du flux de contrôle et des concepts, consultez [le Guide du développeur](https://github.com/jonrau1/electriceye/blob/HEAD/docs/new_checks/DEVELOPER_GUIDE.md).
## Configuration d'ElectricEye
Reportez-vous aux sous-titres pour les instructions de configuration par CSP ou par SaaS. Allez dans [Sorties](https://github.com/jonrau1/electriceye/blob/HEAD/docs/outputs/OUTPUTS.md) pour, eh bien, découvrir les Sorties et des exemples.
### Fournisseurs de services cloud publics
- [Pour Amazon Web Services (AWS)](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_AWS.md)
- [Pour Google Cloud Platform (GCP)](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_GCP.md)
- [Pour Oracle Cloud Infrastructure](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_OCI.md)
- [Pour Microsoft Azure](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Azure.md)
Les fournisseurs de services cloud suivants sont sur la feuille de route
- [Pour Alibaba Cloud (*Prochainement*)](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_AlibabaCloud.md)
### Fournisseurs de logiciels en tant que service (SaaS)
- [Pour ServiceNow](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_ServiceNow.md)
- [Pour Microsoft M365](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_M365.md)
- [Pour Salesforce](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Salesforce.md)
- [Pour Snowflake](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Snowflake.md)
Les fournisseurs SaaS suivants sont sur la feuille de route
- [Pour Google Workspaces (*Prochainement*)](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Google_Workspaces.md)
## Gestion des actifs cloud (CAM)
Pour plus d'informations sur le concept d'opérations et le schéma CAM d'ElectricEye, reportez-vous à [la documentation sur la gestion des actifs](https://github.com/jonrau1/electriceye/blob/HEAD/docs/asset_management/ASSET_MANAGEMENT.md).
## Services et contrôles pris en charge
Au total, il y a :
- **4** CSP publics pris en charge : `AWS`, `GCP`, `OCI` et `Azure`
- **4** Fournisseurs SaaS pris en charge : `ServiceNow`, `M365`, `Salesforce` et `Snowflake`
- **1196** Contrôles ElectricEye
- **179** Composants d'actifs CSP et SaaS pris en charge dans tous les services
- **135** Auditeurs ElectricEye
Les tableaux des services et contrôles pris en charge ont été migrés vers la documentation de configuration par fournisseur respective liée ci-dessus dans [Configuration d'ElectricEye](#configuring-electriceye).
## ElectricEye sur Docker
Après avoir configuré ElectricEye pour votre/vos environnement(s) à l'aide de la [configuration TOML](https://github.com/jonrau1/electriceye/blob/HEAD/eeauditor/external_providers.toml), vous pouvez plutôt utiliser Docker pour exécuter ElectricEye, dont les images sont maintenues sur ECR Public, Oracle Cloud Container Registry (OCR) et Docker Hub. Vous pouvez en savoir plus sur les activités d'assurance sécurité [ici](#repository-security), à l'avenir, d'autres registres et la signature d'images seront utilisés.
### Construction des images
Si vous préférez construire votre propre image, utilisez les commandes suivantes. Assurez-vous d'ajouter `sudo` si vous n'avez pas d'utilisateur `docker` correctement configuré sur votre système.```bash
git clone https://github.com/jonrau1/ElectricEye.git
cd ElectricEye
docker build -t electriceye:local .
À partir de là, vous pouvez pousser vers le dépôt de votre choix, assurez-vous de changer le tag de local vers le tag attendu par votre dépôt ou celui que vous préférez. Peut-être juste latest, comme un decabillionaire sigma grindset gigachad?
Vous pouvez également récupérer une image ElectricEye depuis les différents dépôts ; un tag d'image latest sera toujours poussé en même temps qu'une image taguée avec le hachage SHA du workflow ${{ github.sha }} et peut être visualisé dans les différents workflows GitHub Action dans l'étape Print Image.
Pour récupérer les images depuis les différents dépôts, utilisez ces commandes. Vous pouvez remplacer latest comme vous le souhaitez. Les dépendances dans ElectricEye restent relativement stables jusqu'à ce qu'un nouveau cloud ou une intégration majeure soit ajoutée. Consultez les Pull Requests pour plus d'informations pour être sûr.
Amazon Elastic Container Registry (ECR) Public : docker pull public.ecr.aws/t4o3u7t2/electriceye:latest
Oracle Cloud Infrastructure Registry (OCIR) : docker pull iad.ocir.io/idudmagprsdi/electriceye:latest
Docker Hub : docker pull electriceye/electriceye
Lors de l'interaction avec les magasins d'identifiants AWS tels que AWS Systems Manager, AWS Secrets Manager et les sorties telles que AWS Security et pour l'assomption de rôle dans le rôle spécifié dans le paramètre TOML aws_electric_eye_iam_role_name, ElectricEye utilise votre session Boto3 actuelle (par défaut) dérivée de vos identifiants.
Exécuter ElectricEye depuis une infrastructure AWS ayant un rôle attaché, ou depuis un emplacement avec des identifiants aws cli déjà instanciés, cela est géré de manière transparente.
Lorsque vous utilisez Docker, vous devrez fournir des Variables d'environnement directement au conteneur.
Assurez-vous que si vous utilisez AWS SSM (ssm:GetParameter), AWS Secrets Manager (secretsmanager:GetSecretValue), AWS Security Hub (securityhub:BatchImportFindings), Amazon SQS (sqs:SendMessage), et/ou Amazon DynamoDB (dynamodb:PutItem) pour les identifiants et les sorties, vous avez les permissions appropriées ! Vous aurez probablement aussi besoin de kms:Decrypt selon que vous utilisez AWS Key Management Service (KMS) Customer-managed Keys (CMKs) pour le chiffrement de vos secrets/paramètres.
Vous aurez besoin de sts:AssumeRole pour assumer le rôle spécifié dans le paramètre TOML aws_electric_eye_iam_role_name.
Vous devrez fournir votre région AWS, une clé d'accès AWS et une clé secrète d'accès AWS. Si vous n'utilisez PAS un utilisateur IAM AWS avec des clés d'accès, vous devrez également fournir un jeton de session AWS produit par des identifiants temporaires tels qu'un rôle IAM ou un profil d'instance EC2.
Si vous utilisez un utilisateur, passez à l'étape suivante, vous devrez avoir vos identifiants prêts à copier. Si vous utilisez un profil d'instance EC2 ou un rôle IAM supplémentaire que vous assumerez, assurez-vous d'avoir jq installé : apt install -y jq ou yum install jq.
- Pour assumer un rôle IAM et récupérer les identifiants temporaires```bash AWS_ACCOUNT_ID=$(aws sts get-caller-identity | jq -r '.Account') MY_ROLE_NAME='iam-role-name' TEMP_CREDS=$(aws sts assume-role --role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$MY_ROLE_NAME --role-session-name ElectriceyeForDocker) AWS_ACCESS_KEY=$(echo $TEMP_CREDS | jq -r '.Credentials.AccessKeyId') AWS_SECRET_KEY=$(echo $TEMP_CREDS | jq -r '.Credentials.SecretAccessKey') AWS_SESSION_TOKEN=$(echo $TEMP_CREDS | jq -r '.Credentials.SessionToken') MY_REGION='aws-region-here'
> - Pour récupérer des identifiants temporaires pour un profil d'instance EC2 en utilisant Instance Metadata Service Version 1```bash
MY_INSTANCE_PROFILE_ROLE_NAME="my_ec2_role_name"
IMDS_SECURITY_CREDENTIALS=$(curl http://169.254.169.254/latest/meta-data/iam/security-credentials/$MY_INSTANCE_PROFILE_ROLE_NAME)
MY_REGION='my_aws_region'
AWS_ACCESS_KEY=$(echo $IMDS_SECURITY_CREDENTIALS | jq -r '.AccessKeyId')
AWS_SECRET_KEY=$(echo $IMDS_SECURITY_CREDENTIALS | jq -r '.SecretAccessKey')
AWS_SESSION_TOKEN=$(echo $IMDS_SECURITY_CREDENTIALS | jq -r '.Token')
- Pour récupérer les identifiants temporaires pour un profil d'instance EC2 en utilisant le service de métadonnées d'instance version 2```bash MY_INSTANCE_PROFILE_ROLE_NAME="my_ec2_role_name" TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 300") IMDSV2_SECURITY_CREDENTIALS=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/$MY_INSTANCE_PROFILE_ROLE_NAME) MY_REGION='my_aws_region' AWS_ACCESS_KEY=$(echo $IMDSV2_SECURITY_CREDENTIALS | jq -r '.AccessKeyId') AWS_SECRET_KEY=$(echo $IMDSV2_SECURITY_CREDENTIALS | jq -r '.SecretAccessKey') AWS_SESSION_TOKEN=$(echo $IMDSV2_SECURITY_CREDENTIALS | jq -r '.Token')
Vous pouvez également récupérer des identifiants temporaires à partir d'identités fédérées, lisez plus d'informations via les liens pour [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) ou [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) ou consultez la documentation plus large sur les identifiants temporaires [ici](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerole).
### Exécution du conteneur ElectricEye
Exécutez ElectricEye en utilisant les commandes suivantes, en passant vos identifiants de session. Modifiez les commandes dans le conteneur pour évaluer différents environnements avec ElectricEye. Remplacez la valeur de `/path/to/my/external_providers.toml` par votre chemin exact, par exemple `~/electriceye-docker/external_providers.toml`.
**NOTE IMPORTANTE** Si vous utilisez un utilisateur IAM AWS avec des clés d'accès, codez en dur les valeurs et omettez la valeur de `AWS_SESSION_TOKEN` !! Si vous exécutez ce conteneur sur un service de conteneur/Kubernetes AWS, vous n'avez pas besoin de fournir ces valeurs !```bash
sudo docker run \
--user eeuser:eeuser \
-e AWS_DEFAULT_REGION=$MY_REGION \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY \
-e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
-v /path/to/my/external_providers.toml:/eeauditor/external_providers.toml \
electriceye /bin/bash -c "python3 eeauditor/controller.py --help"
Pour enregistrer un fichier local en sortie tel que -o json. -o cam-json, -o csv, ou -o html et ainsi de suite, assurez-vous de spécifier un nom de fichier qui commence par /eeauditor/ car l'eeuser dans l'image Docker n'a des permissions que dans ce répertoire.
Pour supprimer les fichiers, vous ne pouvez pas utiliser docker cp mais vous pouvez soumettre le fichier à des API distantes que vous contrôlez en encodant la sortie en base64 ou vous pouvez utiliser la session avec les permissions AWS S3 pour téléverser le fichier vers S3.
Si vous évaluez Oracle Cloud ou Google Cloud Platform, vos informations d'identification seront chargées localement et vous pourrez téléverser vers les buckets Oracle Object Storage ou Google Cloud Storage, respectivement.```bash
BUCKET_NAME="your_s3_bucket_you_have_access_to"
sudo docker run
--user eeuser:eeuser
-e AWS_DEFAULT_REGION=$MY_REGION
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY
-e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
-v /path/to/my/external_providers.toml:/eeauditor/external_providers.toml
electriceye /bin/bash -c "python3 eeauditor/controller.py -t AWS -o json --output-file /eeauditor/my-aws-findings
&& aws s3 cp /eeauditor/my-aws-findings.json s3://$BUCKET_NAME/eefindings.json"
Pour plus d’informations sur la configuration, veuillez vous référer aux instructions de configuration spécifiques à chaque fournisseur.
## Contribution
Reportez-vous au [Guide du développeur](https://github.com/jonrau1/electriceye/blob/HEAD/docs/new_checks/DEVELOPER_GUIDE.md) pour les instructions sur la création de nouveaux contrôles. Pour l’ajout de nouveaux SaaS et CSP, veuillez ouvrir un ticket (Issue).
N’hésitez pas à ouvrir des PR et des tickets pour signaler des erreurs de syntaxe, de grammaire ou d’implémentation dans la base de code.
### ElectricEye est à vendre
Contactez-moi à [email protected] (je n’ai en fait pas d’outil SaaS) et je céderai volontiers les droits de ce dépôt, le retirerai et vous donnerai tous les domaines ainsi que les comptes AWS que j’utilise en arrière‑plan.
### Premiers contributeurs
Un grand merci à ceux qui ont répondu dès le début pour tester ElectricEye et en faire un outil qui tienne la route.
##### Tests Alpha :
- [Mark Yancey](https://www.linkedin.com/in/mark-yancey-jr-aspiring-cloud-security-professional-a52bb9126/)
##### Tests Bêta :
- [Martin Klie](https://www.linkedin.com/in/martin-klie-0600845/)
- [Joel Castillo](https://www.linkedin.com/in/joelbcastillo/)
- [Juhi Gupta](https://www.linkedin.com/in/juhi-gupta-09/)
- [Bulent Yidliz](https://www.linkedin.com/in/bulent-yildiz/)
- [Guillermo Ojeda](https://www.linkedin.com/in/guillermoojeda/)
- [Dhilip Anand Shivaji](https://www.linkedin.com/in/dhilipanand/)
- [Arek Bar](https://www.linkedin.com/in/arkadiuszbar/)
- [Ryan Russel](https://www.linkedin.com/in/pioneerrussell/)
- [Jonathan Nguyen](https://www.linkedin.com/in/jonanguyen/)
- [Jody Brazil](https://www.linkedin.com/in/jodybrazil/)
- [Dylan Shields](https://www.linkedin.com/in/dylan-shields-6802b1168/)
- [Manuel Leos Rivas](https://www.linkedin.com/in/manuel-lr/)
- [Andrew Alaniz](https://www.linkedin.com/in/andrewdalaniz/)
- [Christopher Childers](https://www.linkedin.com/in/christopher-childers-28950537/)
## FAQ
Ceci est fait à la mode Amazonienne, c’est-à-dire qu’aucune de ces questions n’est fréquemment posée et qu’elles sont censées aider les chefs de produit à déterminer si leurs idées sont bonnes…
Cela dit, certaines de ces questions sont effectivement posées. Donc, de rien.
### 1. Qu’est-ce qu’ElectricEye ?
ElectricEye est un outil en ligne de commande (CLI) Python sans agent qui scanne et évalue les fournisseurs de services cloud (CSP) et les éditeurs de logiciels en tant que service (SaaS) pour les configurations au niveau des services. ElectricEye génère un résultat de succès ou d’échec par ressource sur plusieurs contrôles qui s’alignent sur les bonnes pratiques de gestion de la posture de sécurité, ainsi que d’autres contrôles d’hygiène tels que la résilience, la reprise, l’optimisation des performances et la surveillance. ElectricEye couvre des fournisseurs populaires comme AWS, GCP, ServiceNow, et d’autres.
### 2. Qui devrait utiliser ElectricEye ?
ElectricEye peut être utilisé par toute personne au sein d’une organisation cloud dans les fonctions de sécurité ou d’informatique, comme (mais sans s’y limiter) les ingénieurs sécurité, les ingénieurs Dev(Sec)Ops, les ingénieurs SRE/Plateforme, les architectes (de diverses spécialités), les analystes gouvernance/risque/conformité, les analystes SOC/SecOps, les conseillers cloud, les équipes de sécurité offensive (Red/Blue/Purple), et les analystes de gestion des risques tiers. ElectricEye peut également être utilisé par les opérations informatiques, les analystes de gestion des affaires technologiques/ITFM, les analystes de continuité des activités et les gestionnaires d’actifs, car ElectricEye offre des capacités natives de gestion des actifs cloud.
### 3. Pourquoi quelqu’un devrait-il utiliser ElectricEye ?
ElectricEye devrait être utilisé par toute personne souhaitant s’assurer que ses fournisseurs cloud et l’ensemble de leurs services sont configurés pour garantir la meilleure hygiène de sécurité. ElectricEye offre la plus large couverture de services et est le seul outil de gestion de la posture de sécurité (SPM) à double usage, gratuit à la fois pour la gestion de la posture de sécurité cloud (CSPM) et la gestion de la posture de sécurité SaaS (SSPM). ElectricEye intègre également des capacités de détection de secrets et de gestion de la surface d’attaque externe (EASM), ainsi que de gestion des actifs cloud (CAM) avec sa propre hiérarchie pour prendre en charge la gestion et le reporting multi‑cloud et multi‑limite.
### 4. ElectricEye est‑il un CSPM ?
Oui, ElectricEye est un outil de gestion de la posture de sécurité cloud (CSPM). Il fournit des scans API (sans agent) de l’infrastructure cloud et garantit que les services sont configurés selon les bonnes pratiques.
### 5. ElectricEye est‑il un SSPM ?
Oui, ElectricEye est un outil de gestion de la posture de sécurité SaaS (SSPM). Il fournit des scans API (sans agent) des API des éditeurs SaaS et garantit que les utilisateurs et les services sont configurés selon les bonnes pratiques.
### 6. ElectricEye est‑il un CIEM ?
Non, ElectricEye n’est pas un outil de gestion des droits d’accès à l’infrastructure cloud (CIEM). Bien qu’ElectricEye fournisse plusieurs contrôles de gestion des identités et des accès et effectue des évaluations par utilisateur pour l’authentification multifacteur, la rotation des mots de passe et la minimisation des permissions, ce n’est pas un CIEM. ElectricEye n’a pas d’évaluation de politique étendue sur plusieurs courtiers, fournisseurs et limites d’identité, et ElectricEye ne fournit pas de capacités de remédiation ou de gestion des droits juste‑à‑temps (JIT).
### 7. ElectricEye est‑il un SIEM ?
Non, ElectricEye n’est pas un outil de gestion des informations et des événements de sécurité (SIEM). Les SIEM sont utilisés pour collecter, indexer et corréler des logs, des événements de sécurité et d’autres données semi‑structurées et structurées pour les cas d’usage des opérations de sécurité. Bien que les résultats d’ElectricEye puissent être envoyés à un SIEM, ElectricEye n’est pas un SIEM en soi.
### 8. ElectricEye est‑il un outil d’audit / de conformité ?
Non, ElectricEye n’est pas *directement* un outil d’audit ou de conformité. Bien que chaque résultat soit mappé dans des régimes de conformité de sécurité populaires et largement utilisés comme le NIST CSF v1.1 et les TSC AICPA 2020, ElectricEye ne fournit que des mappings de meilleur effort pour les contrôles et ne remplace pas un auditeur ou un autre évaluateur qualifié auditant votre environnement. ElectricEye peut être utilisé comme un outil de préparation ou de vérification de l’état de préparation à l’audit. Vous pouvez prendre des échantillons de résultats si les contrôles de l’infrastructure cloud sont importants pour votre programme de sécurité global. Les contrôles sont des contre‑mesures techniques ou administratives (c’est‑à‑dire des politiques ou procédures) conçues pour protéger les résultats souhaités d’un programme de sécurité ou de confidentialité. Les contrôles protègent la confidentialité, l’intégrité et la disponibilité des systèmes d’information. ElectricEye peut aider à déterminer si les configurations de votre infrastructure cloud respectent l’« esprit » des contrôles mais **N’EST PAS** équivalent à une attestation, une certification ou un autre rituel occulte.
### 9. Qu’est‑ce que « l’état de préparation à l’audit » (Audit Readiness) ?
ElectricEye utilise le terme « Audit Readiness » (état de préparation à l’audit) pour communiquer les cas d’usage prévus pour ses mappings de cadres de contrôle. ElectricEye pourrait être utilisé par des évaluateurs qualifiés pour évaluer votre environnement, il pourrait être utilisé par vous pour fournir des preuves aux évaluateurs, mais son meilleur cas d’usage est de préparer ou de visualiser votre état de préparation pour un audit. Cependant, vous devriez déjà avoir défini vos propres contrôles internes et votre propre stratégie de gestion de la configuration pour la mise en œuvre des contrôles. Par exemple, vous pouvez décider qu’il coûte trop cher et n’offre pas suffisamment d’avantages en matière de sécurité de chiffrer toutes vos files d’attente SQS avec des CMK AWS KMS ; vous devez faire ce « travail préparatoire » avant d’utiliser ElectricEye pour soutenir vos processus internes de GRC.
### 10. Quels cadres de contrôle ElectricEye prend‑il en charge ?
Les cadres de contrôle qu’ElectricEye prend en charge sont constamment mis à jour à mesure que de nouvelles versions et mappings sont disponibles. Au 21 juin 2024, les normes, cadres et exigences légales suivants sont pris en charge.
- NIST Cybersecurity Framework Version 1.1
- NIST Special Publication 800-53 Revision 4
- NIST Special Publication 800-53 Revision 5
- NIST Special Publication 800-171 Revision 2
- American Institute of Certified Public Accountants (AICPA) Trust Service Criteria (TSC) 2017/2020 pour SOC 2
- ISO/IEC 27001:2013/2017 Annexe A
- ISO/IEC 27001:2022 Annexe A
- Center for Internet Security (CIS) Critical Security Controls Version 8
- Cloud Security Alliance (CSA) Cloud Controls Matrix (CCM) Version 4.0
- United States Department of Defense Cybersecurity Maturity Model Certification (CMMC) Version 2.0
- United States Federal Bureau of Investigation (FBI) Criminal Justice Information System (CJIS) Security Policy Version 5.9
- United Kingdom National Cybercrime Security Center (NCSC) Cyber Essentials Version 2.2
- United Kingdom National Cybercrime Security Center (NCSC) Assessment Framework Version 3.1
- HIPAA « Security Rule » U.S. Code 45 CFR Part 164 Subpart C
- Federal Financial Institutions Examination Council (FFIEC) Cybersecurity Assessment Tool (CAT)
- North American Electric Reliability Corporation (NERC) Critical Infrastructure Protection (CIP) Standard
- New Zealand Information Security Manual Version 3.5
- New York Department of Financial Services (NYDFS) Series 23 NYCRR Part 500 ; également connu sous le nom de NYDFS500
- Critical Risk Institute (CRI) Critical Risk Profile Version 1.2
- European Central Bank (ECB) Cyber Resilience Oversight Expectations (CROEs)
- Equifax Security Controls Framework Version 1.0
- Payment Card Industry (PCI) Data Security Standard (DSS) Version 4.0
- MITRE ATT&CK Enterprise Framework
- CIS AWS Database Services Benchmark V1.0
- CIS Amazon Web Services Foundations Benchmark V1.5
- CIS Amazon Web Services Foundations Benchmark V2.0
- CIS Amazon Web Services Foundations Benchmark V3.0
- CIS Microsoft Azure Foundations Benchmark V2.0.0
- CIS Snowflake Foundations Benchmark V1.0.0
- CIS Google Cloud Platform Foundation Benchmark V2.0
## Sécurité du dépôt
Puisqu’ElectricEye est un outil de sécurité, il est logique d’assurer un haut niveau de sécurité des composants. À cette fin, les outils suivants sont configurés pour être utilisés. Reportez‑vous aux badges de build et aux Actions pour des informations détaillées sur chaque exécution.
#### [`Syft`](https://github.com/anchore/syft)
Voir les [résultats ici](https://github.com/jonrau1/ElectricEye/actions/workflows/sbom-vulns.yml) !
Un outil en ligne de commande et une bibliothèque Go pour générer un logiciel de nomenclature (SBOM) à partir d’images conteneur et de systèmes de fichiers.
ElectricEye utilise Syft pour construire un SBOM à partir d’une image Docker ElectricEye construite au format CycloneDX et le téléverser comme artefact à chaque exécution réussie de GitHub Action.
#### [`Grype`](https://github.com/anchore/grype)
Voir les [résultats ici](https://github.com/jonrau1/ElectricEye/actions/workflows/sbom-vulns.yml) !
Un scanneur de vulnérabilités pour les images conteneur et les systèmes de fichiers. Installez facilement le binaire pour l’essayer. Fonctionne avec Syft, l’outil puissant de SBOM (logiciel de nomenclature) pour les images conteneur et les systèmes de fichiers.
ElectricEye transmet le SBOM CycloneDX de `Syft` à `Grype` pour effectuer des analyses de vulnérabilités sur l’image Docker construite, qui combine toutes les dépendances Python et les méthodes intégrées dans l’image parent `alpine` Docker utilisée par ElectricEye. Les builds avec des vulnérabilités critiques sont automatiquement interrompues. Les résultats sont publiés dans l’Action GitHub et téléversés en tant que `sarif` vers GitHub Security.
#### [`Dependabot`](https://github.com/dependabot)
Les alertes Dependabot vous indiquent que votre code dépend d’un package qui n’est pas sécurisé. Si votre code dépend d’un package présentant une vulnérabilité de sécurité, cela peut causer divers problèmes pour votre projet ou les personnes qui l’utilisent. Vous devez passer à une version sécurisée du package dès que possible. Si votre code utilise un logiciel malveillant, vous devez remplacer le package par une alternative sécurisée.
ElectricEye utilise Dependabot comme outil d’analyse de composition logicielle (SCA) pour exécuter des analyses quotidiennes et ouvrir des Pull Requests en cas de besoin de correctif de sécurité pour une dépendance Docker, Python ou GitHub‑Action.
#### [`CodeQL`](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql)
Voir les [résultats ici](https://github.com/jonrau1/ElectricEye/actions/workflows/codeql-analysis.yml) !
CodeQL est le moteur d’analyse de code développé par GitHub pour automatiser les vérifications de sécurité. Vous pouvez analyser votre code à l’aide de CodeQL et afficher les résultats sous forme d’alertes de scan de code.
ElectricEye utilise `codeql` comme outil de test statique de sécurité des applications (SAST) pour analyser tous les Auditeurs écrits en Python ; `codeql` recherche également les secrets dans le code. Il est exécuté à chaque push et selon un calendrier.
## Licence
Cette bibliothèque est sous licence Apache-2.0. Voir le fichier LICENSE.