| Nom | Description | Service | Rule |
|---|---|---|---|
| Assurez-vous qu’aucune police en ligne n’est attachée à un IAMUser | Les utilisateurs d'IAMU ne devraient pas être soumis à une quelconque politique en ligne. |
IAM |
IAMUser ne devrait pas avoir de politiques. Inline len ( ) > 0 |
| Assurez-vous qu'un utilisateur IAM ne possède pas plus d'une clé API active. | Les utilisateurs d'IAMU ne doivent pas avoir plusieurs clés API actives. |
IAM |
IAMUser ne devrait pas avoir toutes les AccessKey avec [ Égalisation active vraie ] |
| Assurez-vous qu'une seule clé d'accès active soit disponible pour chaque utilisateur IAM. | Les clés d'accès sont des identifiants à long terme pour un utilisateur IAM ou l'utilisateur « racine » du compte AWS. Vous pouvez utiliser des clés d'accès pour signer des requêtes programmatiques adressées à l'interface de ligne de commande AWS (AWS CLI) ou à l'API AWS (directement ou à l'aide du kit de développement logiciel AWS). |
IAM |
L'utilisateur IAM ne devrait pas avoir toutes les clés d'accès avec [ Active eq true] et AccessKey len() gt 1 |
| Assurez-vous que le rôle non utilisé pour EC2Instance n’existe pas | Les rôles IAM qui ne sont associés à aucune instance EC2 ne devraient pas exister. |
IAM |
IAMRole ne devrait pas avoir InstanceProfile avec [ InstanceCount EQ 0 ] |
| Les politiques IAM gérées par le client ne doivent pas autoriser les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si la version par défaut des politiques IAM gérées par le client autorise les principaux à utiliser les actions de déchiffrement AWS KMS sur toutes les ressources |
IAM |
IAMPolicy où l’égalisation Type « Customer Managed » ne devrait pas avoir de permissions. Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Les stratégies IAM pour l'autorisation iam:PassRole avec la ressource '*' sont associées à une entité IAM | Assurez-vous que la stratégie IAM avec iam:PassRole et Resource '*' n'est associée à aucune entité IAM (Utilisateur, Rôle, Groupe). Cette règle a été créée par Netskope dans le but de faire ressortir les résultats prioritaires des contrôles de conformité IAM réguliers en exigeant que la politique vulnérable soit associée à une entité IAM. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur égalisation « iam :PassRole"] et Ressource avec [ valeur éq « * » ] ] et ( AttachedEntities. Groupes len ( ) > 0 ou AttachedEntities . Rôles len ( ) > 0 ou Entités attachées . Utilisateurs : : ( ) > 0 ) |
| Les principaux IAM ne devraient pas avoir de politiques en ligne du groupe IAM permettant des actions de déchiffrement et de re-chiffrement sur toutes les clés KMS | Vérifie si les politiques en ligne intégrées dans votre groupe IAM permettent les actions de déchiffrement et de re-chiffrement AWS KMS sur toutes les clés KMS |
IAM |
IAMGroup ne devrait pas avoir GroupPolicy. InlinePolicies avec [ PolicyDocument . Instruction avec [ Effect EQ « Allow » et Action avec [ valeur dans (« kms :Decrypt », « kms :ReEncryptFrom ») ] et Resource avec [ valeur EQ « * » ] ] ] |
| Les principaux IAM ne doivent pas avoir de stratégies intégrées de rôle IAM autorisant les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si les politiques en ligne intégrées dans votre rôle IAM permettent les actions de déchiffrement et de re-chiffrement AWS KMS sur toutes les clés KMS |
IAM |
IAMRole ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] ] |
| Les principaux IAM ne doivent pas avoir de stratégies utilisateur IAM intégrées autorisant les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si les politiques intégrées à votre utilisateur IAM autorisent les actions de déchiffrement et de rechiffrement AWS KMS sur toutes les clés KMS. |
IAM |
IAMUser ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] ] |
| Établir un ou plusieurs systèmes de contrôle d’accès : Politiques IAM avec effet Permettre et NotActions | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMPolicy ne devrait pas avoir d'autorisations. Instructions avec [ Effect eq "Allow" et ( NotAction len ( ) gt 0 ou Action avec [ value eq "*" ] ) ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Assurez-vous qu'aucun utilisateur ne dispose de la stratégie AdministratorAccess | Veillez à ce que les utilisateurs ne soient pas associés à la stratégie IAM AdministratorAccess, qui dispose de privilèges excessifs. |
IAM |
IAMUser ne devrait pas avoir de politiques. Géré avec [ Autorisations . Déclarations avec [ Effect eq "Allow" et Ressource avec [ value eq "*" ] et Action avec [ value eq "*" ] ] ] ou Politiques . Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Autoriser" et Ressource avec [ valeur eq "*" ] et Action avec [ valeur eq "*" ] ] ] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : politiques IAM avec l'effet « Autoriser » et l'action « sts:AssumeRole » pour CrossAccountArn | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les politiques IAM AssumeRole ayant un ARN inter-comptes avec une condition spécifiant « sts:ExternalId ». |
IAM |
IAMRole où AssumeRolePolicy . CrossAccountArn eq True devrait avoir AssumeRolePolicy . Instruction avec [ Conditions avec [ Condition eq "StringEquals" et Nom eq "sts:ExternalId" et Valeur len() gt 0 ]] |
| Les politiques gérées par les clients IAM que vous créez ne devraient pas permettre les actions jokers pour les services | Ce contrôle vérifie si les stratégies IAM basées sur l'identité que vous créez contiennent des instructions Allow utilisant le caractère générique * pour accorder des autorisations pour toutes les actions sur n'importe quel service. |
IAM |
IAMPolicy où l’égalisation Type « Customer Managed » ne devrait pas avoir de permissions. Instructions avec [ Égalisation d’effet « Allow » et ( NotAction avec [ valeur comme « \ :\*$ » ] ou Action avec [ valeur comme « \ :\*$ » ] ] ] |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| GuardDuty devrait être activé | Ce contrôle vérifie si Amazon GuardDuty est activé dans votre compte GuardDuty et votre région. |
GuardDuty |
GuardDutyDetector devrait avoir le statut « ACTIVÉ ». |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Vérifiez que le rôle d'exécution Lambda dispose des autorisations nécessaires pour consigner les informations dans CloudWatch. | Vérifiez que le rôle d'exécution Lambda dispose des autorisations nécessaires pour consigner les informations dans CloudWatch. |
Lambda |
Lambda devrait avoir IAMRole. Politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogGroup" ] ] et PolicyDocument . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogStream" ] ] et PolicyDocument . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:PutLogEvents" ] ] ] ou IAMRole . Politiques. Géré avec [ Autorisations . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogGroup" ] ] et Permissions . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogStream" ] ] et Permissions . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:PutLogEvents" ] ] ] |
| Assurez-vous que les instantanés EBS sont chiffrés. | Assurez-vous que les instantanés EBS sont chiffrés. |
EC2Instance |
Les instantanés doivent être chiffrés |
| Assurez-vous que les volumes EBS non attachés sont supprimés. | Assurez-vous que les volumes EBS non attachés sont supprimés. |
EC2Instance |
Le volume ne devrait pas avoir d’accessoires len ( ) égalisation 0 |
| Le chiffrement par défaut EBS doit être activé | Ce contrôle vérifie si le chiffrement au niveau du compte est activé par défaut pour Amazon Elastic Block Store (Amazon EBS) |
EC2 |
Le volume doit avoir EbsEncryptionByDefault |
| Les instances EC2 doivent être gérées par AWS Systems Manager | Ce contrôle vérifie si les instances EC2 arrêtées et en cours d'exécution du compte sont gérées par AWS Systems Manager. Systems Manager est un service AWS qui permet de visualiser et de contrôler l'infrastructure AWS. |
EC2 |
EC2Instance devrait avoir SSMInformation len() > 0 |
| Assurez-vous d'effectuer une analyse de vulnérabilité des images à l'aide de l'outil d'analyse d'images Amazon ECR ou d'un fournisseur tiers. | Analysez les images déployées sur Amazon EKS pour détecter des vulnérabilités. |
ECRRepository |
ECRRepository doit avoir ImageScanningConfiguration.ScanOnPush |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Assurez-vous que les fonctions Lambda ne disposent pas de privilèges d’exécution au niveau administratif. | Assurez-vous que les fonctions Lambda ne disposent pas de privilèges d’exécution au niveau administratif |
Lambda |
Lambda ne devrait pas avoir AdminPrivileges égal à True |
| Vérifiez que le rôle d'exécution Lambda ne dispose pas des autorisations d'administrateur IAM. | Vérifiez que le rôle d'exécution Lambda ne dispose pas des autorisations d'administrateur IAM. |
Lambda |
Lambda ne devrait pas avoir IAMRole. Politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect EQ « Allow » et Resource with [ value eq « * » ] et Action avec [ value eq « iam :* » ] ] ] ou IAMRole. Politiques. Géré avec [ Permissions . Instructions avec [ Effect EQ « Allow » et Resource with [ value eq « * » ] et Action avec [ value eq « iam :* » ] ] ] |
| Les politiques relatives aux fonctions Lambda devraient interdire l'accès public | Ce contrôle vérifie si la politique basée sur les ressources de la fonction Lambda interdit l'accès public en dehors de votre compte. |
Lambda |
Lambda ne devrait pas avoir ResourceBasedIAMPolicy. Instructions avec [ Effect EQ « Allow » et Principal avec [ valeur égalisation « *"] ] |
| Les données en transit sont protégées : assurez-vous que le chiffrement en transit est activé pour les fonctions lambda à l’aide de variables d’environnement. | Assurez-vous que le chiffrement en transit est activé pour les fonctions Lambda à l'aide de variables d'environnement. |
Lambda |
Lambda où ( Environment len() > 0 ) devrait avoir KMSKey . Activé |
| Assurez-vous que le rôle d'exécution Lambda ne dispose pas de toutes les autorisations d'administrateur. | Assurez-vous que le rôle d'exécution Lambda ne dispose pas de toutes les autorisations d'administrateur. |
Lambda |
Lambda ne devrait pas avoir IAMRole. Politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Ressource avec [ valeur eq "*" ] et Action avec [ valeur eq "*" ] ] ] ou IAMRole . Politiques. Géré avec [ Permissions . Instructions avec [ Effect eq "Autoriser" et Ressource avec [ valeur eq "*" ] et Action avec [ valeur eq "*" ] ] ] |
| Les volumes EBS attachés doivent être chiffrés au repos | Ce contrôle vérifie si les volumes EBS qui sont connectés sont chiffrés. |
EC2 |
Volume où les pièces jointes sont () gt 0 devrait avoir Crypté |
| Les instances EC2 devraient utiliser IMDSv2 | Ce contrôle vérifie si la version des métadonnées de votre instance EC2 est configurée avec Instance Metadata Service Version 2 (IMDSv2) |
EC2 |
EC2Instance devrait avoir l’égalisation MetadataOptions.HttpTokens « requise » |
| Les politiques invoquées par la fonction Lambda s3 devraient interdire l’accès public | Ce contrôle vérifie si la politique S3 invoquée par la fonction Lambda interdit l’accès public en dehors de votre compte. Le contrôle échoue également si une fonction Lambda est invoquée depuis Amazon S3 et que la politique n’inclut pas de condition pour AWS :SourceAccount |
Lambda |
Lambda où ResourceBasedIAMPolicy . Instructions avec [ Action avec [ valeur eq "lambda:InvokeFunction" ] et Principal avec [ valeur eq "s3.amazonaws.com" ]] devrait avoir ResourceBasedIAMPolicy . Instructions avec [ Action avec [ valeur eq "lambda:InvokeFunction" ] et Principal avec [ valeur eq "s3.amazonaws.com" ] et Conditions avec [ Nom eq "AWS:SourceAccount" et Valeur len() gt 0 ]] |
| Assurez-vous que les clusters EKS ont la journalisation activée. | Assurez-vous que les clusters EKS ont la journalisation activée |
EKSCluster |
EKSCluster devrait avoir une fonction de journalisation. ClusterLogging avec [ Type a ( "api", "audit", "authenticator", "controllerManager", "scheduler") et Enabled eq true ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Les certificats ACM importés doivent être renouvelés après une période déterminée. | Ce contrôle vérifie si les certificats ACM de votre compte sont marqués pour expiration dans les 30 jours. Il vérifie à la fois les certificats importés et les certificats fournis par AWS Certificate Manager. |
ACM |
ACM devrait avoir NotAfter isLaterThan(30, « jours ») |
| Assurez-vous que les sujets SNS ne contiennent pas de politiques autorisant l'action AddPermission à tous les principaux. | Le sujet SNS ne devrait pas avoir de stratégie autorisant l'action « Ajouter une autorisation » à tous les principaux. |
SNS |
SNSTopic ne devrait pas avoir de politique. Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)SNS:AddPermission" ou valeur comme "(?i)SNS:\*" ] ) et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] |
| Les données du cache de l'API REST de la passerelle API doivent être chiffrées au repos | Vérifie si toutes les méthodes dans les étapes API REST de la passerelle API qui ont le cache activé sont chiffrées. Le contrôle échoue si une méthode dans une étape API REST d’API Gateway est configurée pour mettre en cache et que le cache n’est pas chiffré. |
APIGateway |
APIGateway devrait avoir des étapes avec [ MethodSettings avec [ MethodValue . CacheDataEncrypted ] ] |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Assurez-vous que l'action de suppression de message n'est pas autorisée à tous les principaux dans la stratégie de file d'attente SQS. | La politique de file d’attente SQS ne devrait pas autoriser l’action DeleteMessage à tous les principaux responsables |
SQS |
SQSQueue ne devrait pas avoir de SQSPolicy avec [ Statement avec [ (Action avec [ valeur comme "(?i)SQS:DeleteMessage" ou valeur comme "(?i)SQS:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que les sujets SNS ne comportent pas de stratégies contenant l'action de suppression du sujet pour tous les principaux. | Le sujet SNS ne devrait pas avoir de politique autorisant l’action Supprimer le sujet à tous les principaux responsables |
SNS |
SNSTopic ne devrait pas avoir de politique. Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)SNS:DeleteTopic" ou valeur comme "(?i)SNS:\*" ] ) et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] |
| Les données au repos sont protégées : assurez-vous que les tables DynamoDB sont chiffrées au repos. | Assurez-vous que les tables DynamoDB sont chiffrées au repos. |
Dynamo |
DynamoDBTable doit avoir SSEDescription. Statut égal à « ACTIVÉ » |
| Les domaines Elasticsearch doivent avoir le chiffrement au repos activé | Ce contrôle vérifie si les domaines Elasticsearch ont une configuration de chiffrement au repos activée. La vérification échoue si le chiffrement au repos n'est pas activé. |
ElasticSearch |
ElasticSearchDomain doit avoir EncryptionAtRestOptions . Activé |
| Les connexions aux domaines Elasticsearch doivent être chiffrées en utilisant TLS 1.2 | Ce contrôle vérifie si les connexions aux domaines Elasticsearch sont requises pour utiliser TLS 1.2. La vérification échoue si le domaine Elasticsearch TLSSecurityPolicy n’est pas Policy-Min-TLS-1-2-2019-07. |
ElasticSearch |
ElasticSearchDomain devrait avoir DomainEndpointOptions . TLSSecurityPolicy égaliseur « Policy-Min-TLS-1-2-2019-07 » |
| Les clés AWS KMS ne doivent pas être supprimées par inadvertance. | Ce contrôle vérifie si les clés KMS sont programmées pour suppression. Les clés KMS supprimées ne peuvent pas être récupérées. Les données chiffrées à l'aide d'une clé KMS sont également définitivement irrécupérables si la clé KMS est supprimée. Si des données importantes ont été chiffrées à l'aide d'une clé KMS programmée pour suppression, envisagez de les déchiffrer ou de les rechiffrer à l'aide d'une New clé KMS, sauf si vous effectuez intentionnellement un effacement cryptographique. |
KMS |
KMSKey ne devrait pas avoir l’égalisation de statut « PendingSuppression » |
| Les clusters RDS doivent avoir la protection contre la suppression activée. | Ce contrôle vérifie si la protection contre la suppression est activée pour les clusters RDS. |
RDSCluster |
RDSCluster devrait avoir une protection contre la suppression |
| Les données au repos sont protégées : Assurez-vous que le chiffrement RDS est activé | Assurez-vous que le chiffrement RDS est activé. |
RDS |
RDSInstance devrait avoir StorageEncrypted égal à true |
| Les instances de base de données RDS devraient avoir la protection contre la suppression activée | Ce contrôle vérifie si la protection contre la suppression est activée pour vos instances de base de données RDS utilisant l'un des moteurs de base de données listés. |
RDS |
RDSInstance doit avoir une protection contre la suppression. |
| Les clusters RDS ne doivent pas utiliser le port par défaut du moteur de base de données. | Ce contrôle vérifie si le cluster RDS utilise un port autre que le port par défaut du moteur de base de données |
RDS |
RDSCluster ne devrait pas avoir l’égalisation de port 3306 |
| Les données au repos sont protégées : Assurez-vous que les instantanés d’instance RDS sont chiffrés | Assurez-vous que les instantanés des instances RDS sont chiffrés. |
RDS |
RDSInance devrait avoir tous les instantanés avec [ Égalisation chiffrée vraie ] |
| Assurez-vous que les instantanés automatisés sont activés pour les clusters Redshift. | Assurez-vous que les instantanés automatisés sont activés pour les clusters Redshift. |
RedShift |
RedShiftCluster devrait avoir AutomatedSnapshotRetentionPeriod gt 0 |
| Les sujets SNS doivent être chiffrés au repos en utilisant AWS KMS | Ce contrôle vérifie si un sujet SNS est chiffré au repos en utilisant AWS KMS |
SNS |
SNSTopic devrait avoir KmsMasterKeyId len () gt 0 |
| Les files d’attente Amazon SQS doivent être chiffrées au repos | Ce contrôle vérifie si les files d'attente Amazon SQS sont chiffrées au repos |
SQS |
SQSQueue devrait avoir ( KmsMasterKeyId len ( ) gt 0 ou SqsManagedSseEnabled ) |
| Plan de gestion des vulnérabilités : Assurez-vous que Permettre la mise à jour de la version est définie sur oui pour le cluster Redshift | Les clusters Redshift doivent être configurés pour la mise à niveau de version afin d'éviter de manquer d'importantes mises à jour de sécurité. |
Redshift |
RedShiftCluster devrait avoir AllowVersionUpgrade |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Assurez-vous que CloudTrail enregistre les journaux sur S3Bucket sans aucune défaillance. | Alerte en cas d'erreur rencontrée par CloudTrail lors de la connexion au compartiment S3 désigné. |
S3 CloudTrail |
CloudTrail devrait avoir LatestDeliveryError égal à "None" |
| Autorisations d’accès et autorisations : Assurez-vous que les clusters Redshift ne sont pas accessibles au public | Les clusters de décalage vers le rouge ne doivent pas être accessibles au public. |
Redshift |
RedShiftCluster ne devrait pas avoir l'accès égal à « Public ». |
| Les variables d'environnement du projet CodeBuild ne doivent pas contenir d'identifiants en clair. | Ce contrôle vérifie si le projet contient des informations d'identification en clair dans les variables d'environnement. |
CodeBuild |
CodeBuild ne devrait pas avoir Environnement . VariablesEnvironnement avec [Égaliseur de type « TEXTE CLAIR »] |
| Assurez-vous que l’action Supprimer n’est pas autorisée à tous les principaux responsables dans la politique S3 Bucket | La stratégie du compartiment S3 ne devrait pas autoriser l'action de suppression à tous les principaux. |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)s3:Delete" ou valeur comme "(?i)S3:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Les instances de réplication d'AWS Database Migration Service ne doivent pas être publiques. | Ce contrôle vérifie si les instances de réplication DMS AWS sont publiques |
DMS |
DMSReplicationInstance ne devrait pas avoir d'accès public |
| Les domaines Elasticsearch devraient avoir la journalisation d’audit activée | Ce contrôle vérifie si la journalisation d'audit est activée pour les domaines Elasticsearch. Ce contrôle échoue si la journalisation d'audit n'est pas activée pour un domaine Elasticsearch. |
ElasticSearch |
ElasticSearchDomain devrait avoir LogPublishingOptions avec [ Nom égaliseur « AUDIT_LOGS » et activé ainsi que CloudWatchLogsLogGroup . id len( ) gt 0 ] |
| Assurez-vous que le bucket S3 pour lequel les journaux CloudTrail ne sont pas accessibles au public | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. Accéder à l’égaliseur « Public » |
| Assurez-vous que Get Action n’est pas autorisé à tous les principaux responsables dans la politique S3 Bucket | La stratégie de compartiment S3 ne devrait pas autoriser l'action Get à tous les principaux. |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)s3:GetObject" ou valeur comme "(?i)S3:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que l’Action de Liste n’est pas autorisée à tous les principaux responsables dans la politique S3 Bucket | La politique Bucket S3 ne devrait pas autoriser l’action List à tous les principaux responsables |
S3 |
S3Bucket ne devrait pas avoir BucketPolicy avec [ Instruction avec [ ( Action avec [ valeur comme « ( ?i)s3 :ListBucket » ou valeur comme « ( ?i)S3 :\* » ] ) et Effect EQ « Allow » et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Assurez-vous que l'action de gestion n'est pas autorisée à tous les principaux dans la politique du compartiment S3 | La stratégie de compartiment S3 ne devrait pas autoriser l'action de gestion à tous les principaux. |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ (Action avec [ valeur comme "(?i)s3:Put" ou valeur comme "(?i)S3:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que le bucket de journalisation CloudTrail dispose de l’authentification multifacteur (MFA) activée. | Assurez-vous que votre compartiment de journalisation AWS CloudTrail utilise la fonctionnalité de suppression par authentification multifacteur (MFA) afin d'empêcher la suppression de tout fichier journal versionné. |
S3 CloudTrail |
CloudTrail devrait avoir un compartiment S3. Gestion des versions des compartiments. Égaliseur MFADelete « Activé » |
| Assurez-vous que l'action Put n'est pas autorisée à tous les principaux dans la politique du compartiment S3 | La politique S3 Bucket ne devrait pas avoir d’autorisation d’action de mise à tous les principaux responsables |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)s3:PutObject" ou valeur comme "(?i)S3:\*" ]) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| L'authentification IAM doit être configurée pour les clusters RDS. | Ce contrôle vérifie si un cluster RDS de base de données a l’authentification IAM activée. |
RDSCluster |
RDSCluster devrait avoir IAMDatabaseAuthenticationEnabled |
| L'authentification IAM doit être configurée pour les instances RDS. | Ce contrôle vérifie si l'authentification IAM est activée pour une instance de base de données RDS. |
RDS |
RDSInance devrait avoir IAMDatabaseAuthenticationEnabled |
| La journalisation de la base de données doit être activée. | Ce contrôle vérifie si les journaux d'Amazon RDS sont activés et envoyés à CloudWatch Logs. |
RDS |
RDSInstance devrait avoir EnabledCloudwatchLogsExports len () gt 0 |
| Assurez-vous que la surveillance détaillée des instances de base de données RDS est activée. | Assurez-vous que la surveillance détaillée des instances de base de données RDS est activée. |
RDS |
RDSIninstance ne devrait pas avoir d’égalisation MonitoringInterval 0 |
| Protection des communications et du réseau de contrôle : Assurez-vous que les instances RDS ne sont pas dans des sous-réseaux publics | Assurez-vous que les instances RDS ne sont pas dans les sous-réseaux publics. |
RDS |
RDSInstance ne devrait pas avoir l'accès égal à « Public ». |
| Autorisations d'accès : assurez-vous que les instances RDS ne possèdent pas d'instantanés accessibles publiquement. | Les instances RDS ne doivent pas avoir d'instantanés accessibles publiquement. |
RDS |
RDSInstance ne devrait pas avoir d'instantanés avec [ PubliclyAccessible ]. |
| Assurez-vous que les clusters Amazon Redshift n’utilisent pas le port 5439 (port par défaut) pour accéder à la base de données. | Assurez-vous que les clusters Amazon Redshift n’utilisent pas le port 5439 (port par défaut) pour accéder à la base de données. |
RedShift |
RedShiftCluster ne devrait pas avoir l’égaliseur de port 5439 |
| Assurez-vous que S3 Bucket n’est pas accessible au public. | Assurez-vous que le compartiment S3 n'est pas accessible publiquement. |
S3 |
Le bucket S3 ne devrait pas avoir l'accès égal à « Public ». |
| Assurez-vous que la suppression MFA est activée sur les compartiments S3. | Une fois la suppression MFA activée sur votre compartiment S3 sensible et classifié, l'utilisateur doit disposer de deux formes d'authentification. |
S3 |
S3Bucket devrait avoir BucketVersioning. Égaliseur d’état « Activé » et BucketVersioning. Égaliseur MFADelete « Activé » |
| Implémenter des traces d’audit automatisées pour tous les composants système : absence de journalisation pour l’accès aux buckets S3 | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 |
Le compartiment S3 doit avoir la journalisation activée. |
| Les instances de notebooks SageMaker ne doivent pas avoir d'accès direct à Internet. | Ce contrôle vérifie si l'accès direct à Internet est désactivé pour une instance de notebook SageMaker. |
Compute |
SageMakerNotebookInstance devrait avoir l’égalisation DirectInternetAccess « Désactivée » |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Assurez-vous que l'instance EC2 ne possède pas de port ahsp ouvert. | Le port Ahsp 4333, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 4333 et ToPort gte 4333) ) ] ] |
| Application Load Balancer doit être configuré pour rediriger toutes les requêtes HTTP vers HTTPS | Ce contrôle vérifie si la redirection HTTP vers HTTPS est configurée sur tous les écouteurs HTTP des équilibreurs de charge d'application. |
ElasticLoadBalancer |
ElasticLoadBalancer où (Type eq "application" et Listeners avec [ Protocol eq "HTTP" ]) devrait avoir des Listeners avec [ Protocol eq "HTTP" et DefaultActions avec [ Type eq "redirect" et RedirectConfig . Protocole égal à "HTTPS" et RedirectConfig. Port eq 443 ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de port HTTP alternatif ouvert. | Le port HTTP alternatif 8888 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 8888 et ToPort gte 8888) ) ] ] |
| API Gateway doit être associé à une ACL web WAF AWS | Vérifie si une étape de passerelle API utilise une liste de contrôle d’accès web (ACL) WAF AWS. Le contrôle échoue s’il n’est pas connecté à un étage de passerelle API REST. |
APIGateway |
APIGateway devrait avoir des étapes avec [ WebAclArn len() gt 0 ] |
| Les étapes de l'API REST de la passerelle API doivent être configurées pour utiliser des certificats SSL pour l'authentification du serveur. | Ce contrôle vérifie si les étapes de l'API REST d'Amazon API Gateway disposent de certificats SSL configurés. Les systèmes backend utilisent ces certificats pour authentifier que les requêtes entrantes proviennent de la passerelle API. |
APIGateway |
APIGateway devrait avoir des étapes avec [ ClientCertificateId len() gt 0 ] |
| Assurez-vous que l'instance EC2 ne possède pas de port CIFS ouvert. | Le port CIFS 445, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 445 et ToPort gte 445) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port DNS ouvert | Le port DNS 53 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1", "udp") et ( FromPort lte 53 et ToPort gte 53 ) ] ] |
| Assurez-vous que le verrouillage de transfert de domaine est activé | Pour verrouiller un domaine afin d’empêcher tout transfert non autorisé vers un autre registraire. |
Route53 |
Route53Domain devrait avoir TransferLock |
| Les instances EC2 ne doivent pas utiliser plusieurs ENI. | Ce contrôle vérifie si une instance EC2 utilise plusieurs interfaces réseau élastiques (ENI) |
EC2 |
EC2Instance devrait avoir NetworkInterfaces len ( ) lte 1 |
| Assurez-vous que l’instance EC2 n’a pas de port fcp-addr-srvr1 ouvert | Le port 5500 (fcp-addr-srvr1) d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5500 et ToPort gte 5500) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port FTP ouvert | Les ports FTP 20 et 21 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 20 et ToPort gte 21) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port IMAP ouvert. | Le port IMAP 143, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 143 et ToPort gte 143) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port HTTP hérité ouvert | Le port HTTP 8088, hérité d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 8088 et ToPort gte 8088) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port OpenSearch Dashboards ouvert | Le port 5601 des tableaux de bord OpenSearch, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5601 et ToPort gte 5601) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port OpenSearch ouvert | Les ports OpenSearch 9200 ou 9300 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocole dans (« -1 »,"tcp ») et ( (FromPort lte 9200 et ToPort gte 9200) ou (FromPort lte 9300 et ToPort gte 9300) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port POP3 ouvert | Le port POP3 110, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 110 et ToPort gte 110) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port proxy ouvert. | Le port proxy 8080, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 8080 et ToPort gte 8080) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port RPC ouvert. | Le port RPC 135, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 135 et ToPort gte 135) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port SMTP ouvert | Le port SMTP 25 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 25 et ToPort gte 25) ) ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de ports UDP ouverts. | Les ports UDP 22, 80, 443, 1433, 1521, 3306, 3389, 5432, 27017, 27018, 27019 d’une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ des règles entrantes avec [ des plages d'adresses IP avec [ IP est publique () ] et un protocole dans ("-1", "udp") et ( ( FromPort lte 22 et ToPort gte 22) ou ( FromPort lte 80 et ToPort gte 80) ou ( FromPort lte 443 et ToPort gte 443) ou ( FromPort lte 1433 et ToPort gte 1433) ou ( FromPort lte 1521 et ToPort gte 1521) ou ( FromPort lte 3306 et ToPort gte 3306) ou ( FromPort lte 3389 et ToPort gte 3389) ou ( FromPort lte 5432 et ToPort gte 5432) ou ( FromPort lte 27019 et ToPort gte 27017) ) ] ] |
| Vérifiez que les enregistrements du journal de flux VPC sont correctement publiés dans un groupe de journaux CloudWatch ou un compartiment Amazon S3. | Vérifiez que les enregistrements du journal de flux VPC sont correctement publiés dans un groupe de journaux CloudWatch ou un compartiment Amazon S3. |
EC2 |
VPCFlow où l’égalisation Status « ACTIVE » devrait avoir l’égalisation DeliverLogsStatus « SUCCESS » |
| Les listes de contrôle d’accès réseau inutilisées doivent être supprimées | Ce contrôle vérifie s’il existe des listes de contrôle d’accès réseau (ACL) inutilisées |
EC2 |
NetworkACL devrait avoir des sous-réseaux len () gt 0 |
| Assurez-vous que l’instance EC2 ne dispose pas de port ouvert pour les frameworks de développement web Python | Le port 5000 des frameworks de développement web Python d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5000 et ToPort gte 5000) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port ouvert pour Go, Node.js et Ruby web development frameworks | Les frameworks de développement web Go, Node.js et Ruby Port 3000, d’une instance EC2, ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 3000 et ToPort gte 3000) ) ] ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| La journalisation des API REST et WebSocket de la passerelle API doit être activée. | Ce contrôle vérifie si la journalisation est activée pour toutes les étapes d'une API REST ou WebSocket d'Amazon API Gateway. Le contrôle échoue si la journalisation n'est pas activée pour toutes les méthodes d'une étape ou si le niveau de journalisation n'est ni ERROR ni INFO. |
APIGateway |
APIGateway où Stages len() gt 0 devrait avoir Stages avec [ MethodSettings avec [ MethodValue . Niveau de journalisation dans ("INFO", "ERREUR") ] ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucune règle n’autorise tout le trafic entrant dans la liste de contrôle d’accès réseau par défaut. | Les ACL réseau sont conçus pour fournir une couche secondaire de sécurité. Ajouter une règle permettant tout le trafic réseau (tous les protocoles, IP et sources) avant toute règle de refus va à l’encontre de l’objectif des ACL réseau. |
EC2 |
NetworkACL ne doit pas avoir IsDefault égal à true et des règles avec [ RuleAction égal à "allow" et Protocol égal à "-1" et Egress égal à False et CidrBlock égal à 0.0.0.0/0 ] |
| Interface réseau avec trafic internet entrant autorisé connecté à un EC2 | Assurez-vous qu’il n’existe pas d’interfraction réseau avec un accès public complet à Internet connecté à une instance EC2. Cette règle est créée par Netskope dans le but de faire ressortir les résultats de priorité supérieure issus des vérifications régulières de conformité de l’interface réseau en exigeant que l’interface vulnérable soit connectée à une instance. |
EC2 |
NetworkInterface ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPv6Ranges avec [ IPv6 isPublic ( ) ] ni IPRanges avec [ IP isPublic ( ) ] ] et Attachment . InstanceId |
| Assurez-vous que les clusters EKS sont créés avec le point de terminaison privé activé et l’accès public désactivé | Désactivez l'accès à l'API Kubernetes depuis l'extérieur du réseau de nœuds si cela n'est pas nécessaire. |
EKSCluster |
EKSCluster devrait avoir EndPointPrivateAccess et non EndPointPublicAccess |
| Restreindre l'accès au point de terminaison du plan de contrôle | Activez Private Access au point de terminaison pour limiter l'accès au plan de contrôle du cluster à une liste blanche d'adresses IP autorisées. |
EKSCluster |
EKSCluster où EndPointPublicAccess ne devrait pas avoir de PublicAccessCidrs avec [ CidrBlock EQ 0.0.0.0/0] |
| Assurez-vous que l’instance EC2 n’a pas de port MongoDB ouvert | Les ports MongoDB 27017, 27018, 27019 d’une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 », « tcp ») et ( (FromPort lte 27019 et ToPort gte 27017) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port MySQL ouvert. | Le port MySQL 3306, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1", "tcp") et ( (FromPort lte 3306 et ToPort gte 3306) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port SQL Server ouvert | Le port MySQL 1433 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 », « tcp ») et ( (FromPort lte 1433 et ToPort gte 1434) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port NFS ouvert | Le port NFS 2049, 111 d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocole dans (« -1 »,"udp », « tcp ») et ( (FromPort lte 2049 et ToPort gte 2049) ou (FromPort lte 111 et ToPort gte 111)) ] ] |
| Assurez-vous que les groupes de sécurité par défaut des instances EC2 contiennent des règles | Il ne devrait pas exister d'ensembles de règles non vides pour les groupes de sécurité par défaut. |
EC2 |
Instance EC2 où les groupes de sécurité avec [ Nom eq "default" ] ne doivent pas avoir de groupes de sécurité avec [ InboundRules len ( ) neq 0 ou OutboundRules len ( ) neq 0 ] |
| Assurez-vous que l’instance EC2 n’a pas de port OracleDb ouvert | Le port 1521 d'OracleDB, d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 1521 et ToPort gte 1521) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port PostgreSQL ouvert | Le port PostgreSQL 5432, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5432 et ToPort gte 5432) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port RDP ouvert | Le port RDP 3389 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","udp","tcp") et ( (FromPort lte 3389 et ToPort gte 3389) ) ] ] |
| Assurez-vous qu’aucun groupe de sécurité attaché à ec2 ne permet l’entrée de 0.0.0.0/0 vers des ports d’administration serveur distants | Assurez-vous qu'aucun groupe de sécurité n'autorise l'entrée depuis 0.0.0.0/0 vers les ports d'administration du serveur distant et les instances EC2 associées. Cette règle a été créée par Netskope dans le but de faire ressortir les résultats les plus prioritaires des contrôles de conformité réguliers des connexions entrantes en exigeant que le groupe de sécurité vulnérable soit attaché à une instance. |
Réseau |
SecurityGroup ne devrait pas avoir EC2Instances et InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( (FromPort lte 22 et ToPort gte 22) ou (FromPort lte 3389 et ToPort gte 3389) ) ] |
| Les groupes de sécurité autorisent le trafic entrant depuis 0.0.0.0/0, qui est associé à une instance EC2. | Assurez-vous qu’il n’y a aucun groupe de sécurité avec une entrée autorisée depuis 0.0.0.0/0 est attachée à une instance EC2. Cette règle est créée par Netskope dans le but de faire ressortir les résultats prioritaires issus des vérifications régulières de conformité des connexions entrantes en exigeant que le groupe de sécurité vulnérable soit connecté à une instance. |
Réseau |
Le groupe de sécurité ne doit pas contenir d'instances EC2 ni de règles entrantes avec [ plages d'adresses IP avec [ IP eq 0.0.0.0/0 ] ]. |
| Assurez-vous que l'instance EC2 n'a pas de port SSH ouvert. | Le port SSH 22 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 22 et ToPort gte 22) ) ] ] |
| Les sous-réseaux EC2 ne devraient pas automatiquement attribuer d’adresses IP publiques | Ce contrôle vérifie si l’attribution des IP publiques dans les sous-réseaux Amazon Virtual Private Cloud (Amazon VPC) a MapPublicIpOnLaunch réglé sur FALSE. Le contrôle passe si le drapeau est réglé sur FALSE |
EC2 |
Le sous-réseau ne devrait pas avoir MapPublicIpOnLaunch |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucune règle n’autorise tout le trafic entrant dans la liste de contrôle d’accès réseau (ACL) associée à un sous-réseau. | Les ACL réseau sont conçus pour fournir une couche secondaire de sécurité. Ajouter une règle autorisant tout le trafic réseau (tous protocoles, adresses IP et sources) avant toute règle de refus va à l'encontre du but des listes de contrôle d'accès réseau. Les listes de contrôle d'accès réseau associées aux sous-réseaux et aux VPC ne doivent pas autoriser tout le trafic entrant. |
EC2 |
NetworkACL où Subnets len() gt 0 ne doit pas avoir de règles avec [ Egress eq False et RuleAction eq "allow" et Protocol eq "-1" et CidrBlock eq 0.0.0.0/0 ] |
| Assurez-vous que l'instance EC2 n'a pas de ports TCP ouverts. | Les ports TCP 22, 80, 443, 1433, 1521, 3306, 3389, 5432, 27017, 27018, 27019 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et protocole dans (« -1 », « tcp ») et ( (FromPort lte 22 et ToPort gte 22) ou ( FromPort lte 80 et ToPort gte 80) ou ( FromPort lte 443 et ToPort gte 443) ou ( FromPort lte 1433 et ToPort gte 1433) ou ( FromPort lte 1521 et ToPort gte 1521) ou ( FromPort lte 3306 et ToPort gte 3306) ou ( FromPort lte 3389 et ToPort GTE 3306) ou ( FromPort lte 3389 et ToPort gte 3389) ou (FromPort lte 5432 et ToPort gte 5432) ou (FromPort lte 27019 et ToPort gte 27017) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port Telnet ouvert. | Le port Telnet 23 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 23 et ToPort gte 23) ) ] ] |
| La journalisation des ACL web globales d'AWS WAF Classic doit être activée. | Ce contrôle vérifie si la journalisation est activée sur les ACL web globales classiques du pare-feu d’applications web AWS (WAF). Cette règle est NON_COMPLIANT pour une ACL web globale, si la journalisation n’est pas activée. |
Sécurité |
WebACL devrait avoir LoggingConfiguration . LogDestinationConfigs len( ) gt 0 |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Assurez-vous que l’instance EC2 n’a pas de port DNS ouvert | Le port DNS 53 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1", "udp") et ( FromPort lte 53 et ToPort gte 53 ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port MongoDB ouvert | Les ports MongoDB 27017, 27018, 27019 d’une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 », « tcp ») et ( (FromPort lte 27019 et ToPort gte 27017) ) ] ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucune règle n’autorise tout le trafic entrant dans la liste de contrôle d’accès réseau par défaut. | Les ACL réseau sont conçus pour fournir une couche secondaire de sécurité. Ajouter une règle permettant tout le trafic réseau (tous les protocoles, IP et sources) avant toute règle de refus va à l’encontre de l’objectif des ACL réseau. |
EC2 |
NetworkACL ne doit pas avoir IsDefault égal à true et des règles avec [ RuleAction égal à "allow" et Protocol égal à "-1" et Egress égal à False et CidrBlock égal à 0.0.0.0/0 ] |
| Assurez-vous que l’instance EC2 n’a pas de port NFS ouvert | Le port NFS 2049, 111 d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocole dans (« -1 »,"udp », « tcp ») et ( (FromPort lte 2049 et ToPort gte 2049) ou (FromPort lte 111 et ToPort gte 111)) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port SMTP ouvert | Le port SMTP 25 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 25 et ToPort gte 25) ) ] ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucune règle n’autorise tout le trafic entrant dans la liste de contrôle d’accès réseau (ACL) associée à un sous-réseau. | Les ACL réseau sont conçus pour fournir une couche secondaire de sécurité. Ajouter une règle autorisant tout le trafic réseau (tous protocoles, adresses IP et sources) avant toute règle de refus va à l'encontre du but des listes de contrôle d'accès réseau. Les listes de contrôle d'accès réseau associées aux sous-réseaux et aux VPC ne doivent pas autoriser tout le trafic entrant. |
EC2 |
NetworkACL où Subnets len() gt 0 ne doit pas avoir de règles avec [ Egress eq False et RuleAction eq "allow" et Protocol eq "-1" et CidrBlock eq 0.0.0.0/0 ] |
| Assurez-vous que l'instance EC2 ne possède pas de ports UDP ouverts. | Les ports UDP 22, 80, 443, 1433, 1521, 3306, 3389, 5432, 27017, 27018, 27019 d’une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ des règles entrantes avec [ des plages d'adresses IP avec [ IP est publique () ] et un protocole dans ("-1", "udp") et ( ( FromPort lte 22 et ToPort gte 22) ou ( FromPort lte 80 et ToPort gte 80) ou ( FromPort lte 443 et ToPort gte 443) ou ( FromPort lte 1433 et ToPort gte 1433) ou ( FromPort lte 1521 et ToPort gte 1521) ou ( FromPort lte 3306 et ToPort gte 3306) ou ( FromPort lte 3389 et ToPort gte 3389) ou ( FromPort lte 5432 et ToPort gte 5432) ou ( FromPort lte 27019 et ToPort gte 27017) ) ] ] |
| Assurez-vous que les sujets SNS ne contiennent pas de politiques autorisant l'action AddPermission à tous les principaux. | Le sujet SNS ne devrait pas avoir de stratégie autorisant l'action « Ajouter une autorisation » à tous les principaux. |
SNS |
SNSTopic ne devrait pas avoir de politique. Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)SNS:AddPermission" ou valeur comme "(?i)SNS:\*" ] ) et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] |
| Assurez-vous que l'alarme CloudWatch comporte au moins une action | Chaque alarme CloudWatch doit comporter au moins une action |
CloudWatch |
MetricAlarm devrait avoir AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] |
| Établir un ou plusieurs systèmes de contrôle d’accès : Politiques IAM avec effet Permettre et NotActions | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMPolicy ne devrait pas avoir d'autorisations. Instructions avec [ Effect eq "Allow" et ( NotAction len ( ) gt 0 ou Action avec [ value eq "*" ] ) ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Assurez-vous que l’action ChangeMessageVisibility n’est pas autorisée à tous les principaux responsables dans la politique de file d’attente SQS | La stratégie de file d'attente SQS ne devrait pas autoriser l'action ChangeMessageVisibility à tous les principaux. |
SQS |
SQSQueue ne devrait pas avoir SQSPolicy avec [ Instruction avec [ ( Action avec [ valeur comme « ( ?i)SQS :ChangeMessageVisibility » ou valeur comme « ( ?i)SQS :\* » ] ) et Effect EQ « Allow » et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) égalisation 0 ] |
| Autorisations d’accès et autorisations : Assurez-vous que les clusters Redshift ne sont pas accessibles au public | Les clusters de décalage vers le rouge ne doivent pas être accessibles au public. |
Redshift |
RedShiftCluster ne devrait pas avoir l'accès égal à « Public ». |
| Assurez-vous que l’action Supprimer n’est pas autorisée à tous les principaux responsables dans la politique S3 Bucket | La stratégie du compartiment S3 ne devrait pas autoriser l'action de suppression à tous les principaux. |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)s3:Delete" ou valeur comme "(?i)S3:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que l'action de suppression de message n'est pas autorisée à tous les principaux dans la stratégie de file d'attente SQS. | La politique de file d’attente SQS ne devrait pas autoriser l’action DeleteMessage à tous les principaux responsables |
SQS |
SQSQueue ne devrait pas avoir de SQSPolicy avec [ Statement avec [ (Action avec [ valeur comme "(?i)SQS:DeleteMessage" ou valeur comme "(?i)SQS:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que les sujets SNS ne comportent pas de stratégies contenant l'action de suppression du sujet pour tous les principaux. | Le sujet SNS ne devrait pas avoir de politique autorisant l’action Supprimer le sujet à tous les principaux responsables |
SNS |
SNSTopic ne devrait pas avoir de politique. Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)SNS:DeleteTopic" ou valeur comme "(?i)SNS:\*" ] ) et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] |
| Assurez-vous que le renouvellement automatique du domaine est activé | Pour garantir la disponibilité permanente du domaine, activez le renouvellement automatique du domaine. |
Route53 |
Route53Domain devrait avoir un renouvellement automatique |
| Assurez-vous que le verrouillage de transfert de domaine est activé | Pour verrouiller un domaine afin d’empêcher tout transfert non autorisé vers un autre registraire. |
Route53 |
Route53Domain devrait avoir TransferLock |
| Assurez-vous que Get Action n’est pas autorisé à tous les principaux responsables dans la politique S3 Bucket | La stratégie de compartiment S3 ne devrait pas autoriser l'action Get à tous les principaux. |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)s3:GetObject" ou valeur comme "(?i)S3:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que l'action « Obtenir l'attribut de la file d'attente » n'est pas autorisée à tous les principaux dans la stratégie de file d'attente SQS. | La politique de file d’attente SQS ne devrait pas autoriser l’action GetQueueAttribute à tous les principaux responsables |
SQS |
SQSQueue ne devrait pas avoir SQSPolicy avec [ Instruction avec [ ( Action avec [ valeur comme « ( ?i)SQS :GetQueueAttributes » ou valeur comme « ( ?i)SQS :\* » ] ) et Effect EQ « Allow » et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) EQ 0 ] ] |
| Assurez-vous que l’action d’URL de file d’attente n’est pas autorisée à tous les principaux responsables dans la politique de file d’attente SQS | La politique de file d’attente SQS ne devrait pas autoriser l’action GetQueueURL à tous les principaux |
SQS |
SQSQueue ne devrait pas avoir SQSPolicy avec [ Instruction avec [ ( Action avec [ valeur comme « ( ?i)SQS :GetQueueUrl » ou valeur comme « ( ?i)SQS :\* » ] ) et Effect EQ « Allow » et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) EQ 0 ] ] |
| Assurez-vous que la protection contre la suppression est activée sur Elastic Load Balancer. | L'activation de la protection contre la suppression sur les équilibreurs de charge atténue les risques de suppression accidentelle. |
ElasticLoadBalancer |
ElasticLoadBalancer devrait avoir une protection contre la suppression |
| Assurez-vous que l’Action de Liste n’est pas autorisée à tous les principaux responsables dans la politique S3 Bucket | La politique Bucket S3 ne devrait pas autoriser l’action List à tous les principaux responsables |
S3 |
S3Bucket ne devrait pas avoir BucketPolicy avec [ Instruction avec [ ( Action avec [ valeur comme « ( ?i)s3 :ListBucket » ou valeur comme « ( ?i)S3 :\* » ] ) et Effect EQ « Allow » et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Assurez-vous que l'action de gestion n'est pas autorisée à tous les principaux dans la politique du compartiment S3 | La stratégie de compartiment S3 ne devrait pas autoriser l'action de gestion à tous les principaux. |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ (Action avec [ valeur comme "(?i)s3:Put" ou valeur comme "(?i)S3:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que les groupes de sécurité par défaut des instances EC2 contiennent des règles | Il ne devrait pas exister d'ensembles de règles non vides pour les groupes de sécurité par défaut. |
EC2 |
Instance EC2 où les groupes de sécurité avec [ Nom eq "default" ] ne doivent pas avoir de groupes de sécurité avec [ InboundRules len ( ) neq 0 ou OutboundRules len ( ) neq 0 ] |
| Les données en transit sont protégées : assurez-vous que les anciennes politiques SSL/TLS ne sont pas utilisées avec les équilibreurs de charge élastiques. | Les anciennes politiques SSL/TLS ne doivent pas être utilisées avec la politique de sécurité d'Elastic Load Balancer. |
ElasticLoadBalancer |
ElasticLoadBalancer devrait avoir SslPolicy dans ( « ELBSecurityPolicy-2016-08 », « ELBSecurityPolicy-TLS-1-2-2017-01 », « ELBSecurityPolicy-TLS-1-1-2017-01 ») |
| Autorisations d'accès : assurez-vous que les instances RDS ne possèdent pas d'instantanés accessibles publiquement. | Les instances RDS ne doivent pas avoir d'instantanés accessibles publiquement. |
RDS |
RDSInstance ne devrait pas avoir d'instantanés avec [ PubliclyAccessible ]. |
| Assurez-vous que les sujets SNS ne comportent pas de politiques contenant l'action de publier à tous les principaux. | Le sujet SNS ne devrait pas avoir une politique avec action de publication autorisée à tous les principaux |
SNS |
SNSTopic ne devrait pas avoir de politique. Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)SNS:Publier" ou valeur comme "(?i)SNS:\*" ] ) et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] |
| Assurez-vous que l’action PurgeQueue n’est pas autorisée à tous les principaux dans la politique de file d’attente SQS | SQS Queue ne devrait pas avoir de politique avec l’action PurgeQueue autorisée à tous les principaux responsables |
SQS |
SQSQueue ne devrait pas avoir de SQSPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)SQS:PurgeQueue" ou valeur comme "(?i)SQS:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que l'action Put n'est pas autorisée à tous les principaux dans la politique du compartiment S3 | La politique S3 Bucket ne devrait pas avoir d’autorisation d’action de mise à tous les principaux responsables |
S3 |
S3Bucket ne devrait pas avoir de BucketPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)s3:PutObject" ou valeur comme "(?i)S3:\*" ]) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| S'assurer que les sujets SNS ne contiennent pas de politiques contenant « Recevoir une action à tous les principaux ». | Le sujet SNS ne devrait pas comporter de politique autorisant l'action de réception à tous les responsables. |
SNS |
SNSTopic ne devrait pas avoir de politique. Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)SNS:Recevoir" ou valeur comme "(?i)SNS:\*" ] ) et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] |
| Assurez-vous que l’action ReceiveMessage n’est pas autorisée à tous les principaux responsables dans la politique de file d’attente SQS | La stratégie de file d'attente SQS ne devrait pas autoriser l'action ReceiveMessage à tous les principaux. |
SQS |
SQSQueue ne devrait pas avoir de SQSPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)SQS:ReceiveMessage" ou valeur comme "(?i)SQS:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que les sujets SNS ne contiennent pas de politiques autorisant la suppression des autorisations pour tous les principaux. | SNS Topic ne devrait pas avoir de politique avec l’action de suppression de permission autorisée à tous les principaux |
SNS |
SNSTopic ne devrait pas avoir de politique. Instruction avec [ Effect EQ « Allow » et ( Action avec [ valeur comme « ( ?i)SNS :RemovePermission » ou valeur comme « ( ?i)SNS :\* » ] ) et Principal avec [ valeur éq « * » ] et Conditions len ( ) EQ 0 ] |
| Assurez-vous que les rôles ne sont pas transférés aux piles CloudFormation | Le passage d’un rôle aux piles CloudFormation peut entraîner une escalade de privilèges car les utilisateurs IAM disposant de privilèges, dans le cadre de CloudFormation, héritent implicitement des permissions du rôle de la pile. |
CloudFormation |
CloudFormation où Status dans ("CREATE_COMPLETE", "UPDATE_COMPLETE") ne devrait pas avoir StackRole . identifiant |
| Assurez-vous que l’action d’envoi d’emails dans la politique SES n’est pas autorisée à tous les principaux responsables | SES ne devrait pas avoir une politique avec action en tant qu’envoi d’email, autorisée à tous les principaux responsables |
SES |
SESIdentity ne devrait pas avoir de politique avec [ Déclaration avec [ Effet eq "Autoriser" et ( Action avec [ valeur comme "(?i)ses:SendEmail" ou valeur comme "(?i)ses:SendRawEmail" ou valeur comme "(?i)ses:\*" ] )et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que l’action SendMessage n’est pas autorisée à tous les principaux responsables dans la politique de file d’attente SQS | La stratégie de file d'attente SQS ne devrait pas autoriser l'action SendMessage à tous les principaux. |
SQS |
SQSQueue ne devrait pas avoir de SQSPolicy avec [ Statement avec [ ( Action avec [ valeur comme "(?i)SQS:SendMessage" ou valeur comme "(?i)SQS:\*" ] ) et Effect eq "Allow" et Principal avec [ valeur eq "*" ] et Conditions len ( ) eq 0 ] ] |
| Assurez-vous que les sujets SNS n’ont pas de politiques contenant l’action d’attribut de l’ensemble du sujet à tous les principaux | Le Sujet SNS ne devrait pas avoir de politique avec une action d’attribut de sujet établi autorisée à tous les principaux |
SNS |
SNSTopic ne devrait pas avoir de politique. Instruction avec [ Effect EQ « Allow » et ( Action avec [ valeur comme « ( ?i)SNS :SetTopicAttributes » ou valeur comme « ( ?i)SNS :\* » ] ) et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) égalisation 0 ] |
| Sauvegardes des informations : assurez-vous que la période de conservation des sauvegardes est supérieure ou égale à 30 jours. | Définir la période de conservation des sauvegardes d'une instance RDS à une valeur supérieure ou égale à 30 garantit la sécurité des données. |
RDS |
RDSInance ne devrait pas avoir de période de rétention de sauvegarde lt 30 |
| Assurez-vous que les sujets SNS ne contiennent pas de politiques contenant l’action Subscribe Action à tous les principes | Le sujet SNS ne devrait pas avoir de politique avec l'action d'abonnement autorisée à tous les principaux. |
SNS |
SNSTopic ne devrait pas avoir de politique. Instruction avec [ Effect EQ « Allow » et ( Action avec [ valeur comme « ( ?i)SNS :Subscribe » ou valeur comme « ( ?i)SNS :\* ] ) et Principal avec [ valeur égalisation « * » ] et Conditions len ( ) égalisation 0 ] |
| Assurez-vous que le rôle non utilisé pour EC2Instance n’existe pas | Les rôles IAM qui ne sont associés à aucune instance EC2 ne devraient pas exister. |
IAM |
IAMRole ne devrait pas avoir InstanceProfile avec [ InstanceCount EQ 0 ] |
| Assurez-vous qu’aucune police en ligne n’est attachée à un IAMUser | Les utilisateurs d'IAMU ne devraient pas être soumis à une quelconque politique en ligne. |
IAM |
IAMUser ne devrait pas avoir de politiques. Inline len ( ) > 0 |
| Assurez-vous qu'un utilisateur IAM ne possède pas plus d'une clé API active. | Les utilisateurs d'IAMU ne doivent pas avoir plusieurs clés API actives. |
IAM |
IAMUser ne devrait pas avoir toutes les AccessKey avec [ Égalisation active vraie ] |
| Plan de gestion des vulnérabilités : Assurez-vous que Permettre la mise à jour de la version est définie sur oui pour le cluster Redshift | Les clusters Redshift doivent être configurés pour la mise à niveau de version afin d'éviter de manquer d'importantes mises à jour de sécurité. |
Redshift |
RedShiftCluster devrait avoir AllowVersionUpgrade |
| Assurez-vous que l'instance EC2 n'a pas de port MySQL ouvert. | Le port MySQL 3306, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1", "tcp") et ( (FromPort lte 3306 et ToPort gte 3306) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port SQL Server ouvert | Le port MySQL 1433 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 », « tcp ») et ( (FromPort lte 1433 et ToPort gte 1434) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port OracleDb ouvert | Le port 1521 d'OracleDB, d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 1521 et ToPort gte 1521) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port PostgreSQL ouvert | Le port PostgreSQL 5432, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5432 et ToPort gte 5432) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port RDP ouvert | Le port RDP 3389 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","udp","tcp") et ( (FromPort lte 3389 et ToPort gte 3389) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port SSH ouvert. | Le port SSH 22 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 22 et ToPort gte 22) ) ] ] |
| Les données au repos sont protégées : Assurez-vous que le chiffrement RDS est activé | Assurez-vous que le chiffrement RDS est activé. |
RDS |
RDSInstance devrait avoir StorageEncrypted égal à true |
| Protection des communications et du réseau de contrôle : Assurez-vous que les instances RDS ne sont pas dans des sous-réseaux publics | Assurez-vous que les instances RDS ne sont pas dans les sous-réseaux publics. |
RDS |
RDSInstance ne devrait pas avoir l'accès égal à « Public ». |
| Assurez-vous que la surveillance détaillée des instances de base de données RDS est activée. | Assurez-vous que la surveillance détaillée des instances de base de données RDS est activée. |
RDS |
RDSIninstance ne devrait pas avoir d’égalisation MonitoringInterval 0 |
| Les données au repos sont protégées : Assurez-vous que les instantanés d’instance RDS sont chiffrés | Assurez-vous que les instantanés des instances RDS sont chiffrés. |
RDS |
RDSInance devrait avoir tous les instantanés avec [ Égalisation chiffrée vraie ] |
| Sauvegarde des données : assurez-vous que les tables DynamoDB sont sauvegardées. | Assurez-vous que les tables DynamoDB sont sauvegardées. |
Dynamo |
DynamoDBTable devrait avoir BackedUp égal à true |
| Sauvegardes des informations : Assurez-vous que les tables DynamoDB activent la récupération à un moment donné | Assurez-vous que la restauration à un point précis dans le temps est activée pour les tables DynamoDB. |
Dynamo |
DynamoDBTable devrait avoir PointInTimeRecovery égal à "ENABLED" |
| Les données au repos sont protégées : assurez-vous que les tables DynamoDB sont chiffrées au repos. | Assurez-vous que les tables DynamoDB sont chiffrées au repos. |
Dynamo |
DynamoDBTable doit avoir SSEDescription. Statut égal à « ACTIVÉ » |
| Assurez-vous que les clusters Amazon Redshift sont lancés au sein d'un cloud privé virtuel (VPC). | Assurez-vous que les clusters Amazon Redshift sont lancés au sein d’un Virtual Private Cloud (VPC). |
RedShift |
RedShiftCluster devrait avoir VPC len ( ) gt 0 |
| Assurez-vous que les instantanés automatisés sont activés pour les clusters Redshift. | Assurez-vous que les instantanés automatisés sont activés pour les clusters Redshift. |
RedShift |
RedShiftCluster devrait avoir AutomatedSnapshotRetentionPeriod gt 0 |
| Assurez-vous que les clusters Amazon Redshift n’utilisent pas le port 5439 (port par défaut) pour accéder à la base de données. | Assurez-vous que les clusters Amazon Redshift n’utilisent pas le port 5439 (port par défaut) pour accéder à la base de données. |
RedShift |
RedShiftCluster ne devrait pas avoir l’égaliseur de port 5439 |
| Les données en transit sont protégées : assurez-vous que le chiffrement en transit est activé pour les fonctions lambda à l’aide de variables d’environnement. | Assurez-vous que le chiffrement en transit est activé pour les fonctions Lambda à l'aide de variables d'environnement. |
Lambda |
Lambda où ( Environment len() > 0 ) devrait avoir KMSKey . Activé |
| Assurez-vous que les fonctions Lambda ne disposent pas de privilèges d’exécution au niveau administratif. | Assurez-vous que les fonctions Lambda ne disposent pas de privilèges d’exécution au niveau administratif |
Lambda |
Lambda ne devrait pas avoir AdminPrivileges égal à True |
| Assurez-vous que les clusters EKS ont la journalisation activée. | Assurez-vous que les clusters EKS ont la journalisation activée |
EKSCluster |
EKSCluster devrait avoir une fonction de journalisation. ClusterLogging avec [ Type a ( "api", "audit", "authenticator", "controllerManager", "scheduler") et Enabled eq true ] |
| Assurez-vous que les volumes EBS non attachés sont supprimés. | Assurez-vous que les volumes EBS non attachés sont supprimés. |
EC2Instance |
Le volume ne devrait pas avoir d’accessoires len ( ) égalisation 0 |
| Assurez-vous que les instantanés EBS sont chiffrés. | Assurez-vous que les instantanés EBS sont chiffrés. |
EC2Instance |
Les instantanés doivent être chiffrés |
| Assurez-vous que les fonctions Lambda possèdent une balise associée. | Assurez-vous que les fonctions Lambda possèdent une balise associée. |
Lambda |
Lambda ne devrait pas avoir de tags len( ) égaliseur 0 |
| Vérifiez que le rôle d'exécution Lambda dispose des autorisations nécessaires pour consigner les informations dans CloudWatch. | Vérifiez que le rôle d'exécution Lambda dispose des autorisations nécessaires pour consigner les informations dans CloudWatch. |
Lambda |
Lambda devrait avoir IAMRole. Politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogGroup" ] ] et PolicyDocument . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogStream" ] ] et PolicyDocument . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:PutLogEvents" ] ] ] ou IAMRole . Politiques. Géré avec [ Autorisations . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogGroup" ] ] et Permissions . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:CreateLogStream" ] ] et Permissions . Instructions avec [ Effect eq "Allow" et Resource len ( ) gt 0 et Action avec [ value eq "logs:PutLogEvents" ] ] ] |
| Vérifiez que le rôle d'exécution Lambda ne dispose pas des autorisations d'administrateur IAM. | Vérifiez que le rôle d'exécution Lambda ne dispose pas des autorisations d'administrateur IAM. |
Lambda |
Lambda ne devrait pas avoir IAMRole. Politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect EQ « Allow » et Resource with [ value eq « * » ] et Action avec [ value eq « iam :* » ] ] ] ou IAMRole. Politiques. Géré avec [ Permissions . Instructions avec [ Effect EQ « Allow » et Resource with [ value eq « * » ] et Action avec [ value eq « iam :* » ] ] ] |
| Assurez-vous que le rôle d'exécution Lambda ne dispose pas de toutes les autorisations d'administrateur. | Assurez-vous que le rôle d'exécution Lambda ne dispose pas de toutes les autorisations d'administrateur. |
Lambda |
Lambda ne devrait pas avoir IAMRole. Politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Ressource avec [ valeur eq "*" ] et Action avec [ valeur eq "*" ] ] ] ou IAMRole . Politiques. Géré avec [ Permissions . Instructions avec [ Effect eq "Autoriser" et Ressource avec [ valeur eq "*" ] et Action avec [ valeur eq "*" ] ] ] |
| Assurez-vous que CloudTrail enregistre les journaux sur S3Bucket sans aucune défaillance. | Alerte en cas d'erreur rencontrée par CloudTrail lors de la connexion au compartiment S3 désigné. |
S3 CloudTrail |
CloudTrail devrait avoir LatestDeliveryError égal à "None" |
| Assurez-vous que CloudTrail envoie les notifications SNS sans aucune panne. | Alerte en cas d'erreur rencontrée par CloudTrail lors de la tentative d'envoi d'une notification SNS. |
SNS CloudTrail |
CloudTrail devrait avoir LatestNotificationError égal à "None" |
| Assurez-vous que le bucket de journalisation CloudTrail dispose de l’authentification multifacteur (MFA) activée. | Assurez-vous que votre compartiment de journalisation AWS CloudTrail utilise la fonctionnalité de suppression par authentification multifacteur (MFA) afin d'empêcher la suppression de tout fichier journal versionné. |
S3 CloudTrail |
CloudTrail devrait avoir un compartiment S3. Gestion des versions des compartiments. Égaliseur MFADelete « Activé » |
| Vérifiez que les enregistrements du journal de flux VPC sont correctement publiés dans un groupe de journaux CloudWatch ou un compartiment Amazon S3. | Vérifiez que les enregistrements du journal de flux VPC sont correctement publiés dans un groupe de journaux CloudWatch ou un compartiment Amazon S3. |
EC2 |
VPCFlow où l’égalisation Status « ACTIVE » devrait avoir l’égalisation DeliverLogsStatus « SUCCESS » |
| Assurez-vous que S3 Bucket n’est pas accessible au public. | Assurez-vous que le compartiment S3 n'est pas accessible publiquement. |
S3 |
Le bucket S3 ne devrait pas avoir l'accès égal à « Public ». |
| Assurez-vous qu'aucun utilisateur ne dispose de la stratégie AdministratorAccess | Veillez à ce que les utilisateurs ne soient pas associés à la stratégie IAM AdministratorAccess, qui dispose de privilèges excessifs. |
IAM |
IAMUser ne devrait pas avoir de politiques. Géré avec [ Autorisations . Déclarations avec [ Effect eq "Allow" et Ressource avec [ value eq "*" ] et Action avec [ value eq "*" ] ] ] ou Politiques . Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Autoriser" et Ressource avec [ valeur eq "*" ] et Action avec [ valeur eq "*" ] ] ] |
| Assurez-vous que l'instance EC2 n'a pas de ports TCP ouverts. | Les ports TCP 22, 80, 443, 1433, 1521, 3306, 3389, 5432, 27017, 27018, 27019 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et protocole dans (« -1 », « tcp ») et ( (FromPort lte 22 et ToPort gte 22) ou ( FromPort lte 80 et ToPort gte 80) ou ( FromPort lte 443 et ToPort gte 443) ou ( FromPort lte 1433 et ToPort gte 1433) ou ( FromPort lte 1521 et ToPort gte 1521) ou ( FromPort lte 3306 et ToPort gte 3306) ou ( FromPort lte 3389 et ToPort GTE 3306) ou ( FromPort lte 3389 et ToPort gte 3389) ou (FromPort lte 5432 et ToPort gte 5432) ou (FromPort lte 27019 et ToPort gte 27017) ] ] |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : politiques IAM avec l'effet « Autoriser » et l'action « sts:AssumeRole » pour CrossAccountArn | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les politiques IAM AssumeRole ayant un ARN inter-comptes avec une condition spécifiant « sts:ExternalId ». |
IAM |
IAMRole où AssumeRolePolicy . CrossAccountArn eq True devrait avoir AssumeRolePolicy . Instruction avec [ Conditions avec [ Condition eq "StringEquals" et Nom eq "sts:ExternalId" et Valeur len() gt 0 ]] |
| Assurez-vous d'effectuer une analyse de vulnérabilité des images à l'aide de l'outil d'analyse d'images Amazon ECR ou d'un fournisseur tiers. | Analysez les images déployées sur Amazon EKS pour détecter des vulnérabilités. |
ECRRepository |
ECRRepository doit avoir ImageScanningConfiguration.ScanOnPush |
| Assurez-vous que les secrets Kubernetes sont chiffrés à l'aide de clés principales client (CMK) gérées dans AWS KMS. | Chiffrez les secrets Kubernetes stockés dans etcd à l'aide de la fonctionnalité de chiffrement des secrets lors de la création du cluster Amazon EKS. |
EKSCluster |
EKSCluster devrait avoir EncryptionConfig len() gt 0 |
| Restreindre l'accès au point de terminaison du plan de contrôle | Activez Private Access au point de terminaison pour limiter l'accès au plan de contrôle du cluster à une liste blanche d'adresses IP autorisées. |
EKSCluster |
EKSCluster où EndPointPublicAccess ne devrait pas avoir de PublicAccessCidrs avec [ CidrBlock EQ 0.0.0.0/0] |
| Assurez-vous que les clusters EKS sont créés avec le point de terminaison privé activé et l’accès public désactivé | Désactivez l'accès à l'API Kubernetes depuis l'extérieur du réseau de nœuds si cela n'est pas nécessaire. |
EKSCluster |
EKSCluster devrait avoir EndPointPrivateAccess et non EndPointPublicAccess |
| Envisagez Fargate pour exécuter des charges de travail non fiables. | Il est recommandé de restreindre ou de limiter les charges de travail non fiables lors d’un fonctionnement dans un environnement multi-locataire. |
EKSCluster |
EKSCluster ne devrait pas avoir FargateProfileNames (eq 0) |
| Les clusters Amazon Redshift devraient utiliser un routage VPC amélioré. | Ce contrôle vérifie si un cluster Amazon Redshift a activé EnhancedVpcRouting |
RedShift |
RedShiftCluster devrait avoir EnhancedVpcRouting |
| Les snapshots Amazon EBS ne doivent pas être publics, car ils doivent pouvoir être restaurés par n'importe qui. | Ce contrôle vérifie que les instantanés d'Amazon Elastic Block Store ne sont pas publics, c'est-à-dire qu'ils ne peuvent être restaurés par n'importe qui. Les snapshots EBS servent à sauvegarder les données de vos volumes EBS sur Amazon S3 à un moment précis. Vous pouvez utiliser les instantanés pour restaurer les états précédents des volumes EBS. Il est rarement acceptable de partager une photo avec le public. Généralement, la décision de partager publiquement une capture d'écran était prise par erreur ou sans une compréhension complète des implications. Ce contrôle permet de s'assurer que tout partage de ce type a été pleinement planifié et intentionnel. |
EC2 |
Les instantanés devraient avoir Access neq « Public » |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Les volumes EBS attachés doivent être chiffrés au repos | Ce contrôle vérifie si les volumes EBS qui sont connectés sont chiffrés. |
EC2 |
Volume où les pièces jointes sont () gt 0 devrait avoir Crypté |
| Les instances EC2 arrêtées doivent être supprimées après une période spécifiée. | Ce contrôle vérifie si des instances EC2 ont été arrêtées pendant plus de jours que le nombre autorisé. Une instance EC2 échoue à ce contrôle si elle est arrêtée plus longtemps que la durée maximale autorisée, qui par défaut est de 30 jours |
EC2 |
EC2Instance où Status eq "stopped" devrait avoir StateTransitionTime isLaterThan ( -30 , "days" ) |
| Le chiffrement par défaut EBS doit être activé | Ce contrôle vérifie si le chiffrement au niveau du compte est activé par défaut pour Amazon Elastic Block Store (Amazon EBS) |
EC2 |
Le volume doit avoir EbsEncryptionByDefault |
| Les instances EC2 devraient utiliser IMDSv2 | Ce contrôle vérifie si la version des métadonnées de votre instance EC2 est configurée avec Instance Metadata Service Version 2 (IMDSv2) |
EC2 |
EC2Instance devrait avoir l’égalisation MetadataOptions.HttpTokens « requise » |
| Les instances EC2 ne devraient pas avoir d’adresse IP publique | Cette règle vérifie si les instances EC2 possèdent une adresse IP publique. La règle échoue si le champ publicIp est présent dans l'élément de configuration de l'instance EC2. Cette règle s'applique uniquement aux adresses IPv4. |
EC2 |
EC2Instance ne devrait pas avoir PublicIPv4 len() > 0 |
| Amazon EC2 doit être configuré pour utiliser des points de terminaison VPC créés pour le service Amazon EC2 | Ce contrôle vérifie si un point de terminaison de service pour Amazon EC2 est créé pour chaque VPC. |
EC2 |
Le VPC doit avoir une référence de point de terminaison avec [ ServiceName comme "\.ec2$"] |
| Les sous-réseaux EC2 ne devraient pas automatiquement attribuer d’adresses IP publiques | Ce contrôle vérifie si l’attribution des IP publiques dans les sous-réseaux Amazon Virtual Private Cloud (Amazon VPC) a MapPublicIpOnLaunch réglé sur FALSE. Le contrôle passe si le drapeau est réglé sur FALSE |
EC2 |
Le sous-réseau ne devrait pas avoir MapPublicIpOnLaunch |
| Les listes de contrôle d’accès réseau inutilisées doivent être supprimées | Ce contrôle vérifie s’il existe des listes de contrôle d’accès réseau (ACL) inutilisées |
EC2 |
NetworkACL devrait avoir des sous-réseaux len () gt 0 |
| Les instances EC2 ne doivent pas utiliser plusieurs ENI. | Ce contrôle vérifie si une instance EC2 utilise plusieurs interfaces réseau élastiques (ENI) |
EC2 |
EC2Instance devrait avoir NetworkInterfaces len ( ) lte 1 |
| Les instances de base de données RDS devraient avoir la protection contre la suppression activée | Ce contrôle vérifie si la protection contre la suppression est activée pour vos instances de base de données RDS utilisant l'un des moteurs de base de données listés. |
RDS |
RDSInstance doit avoir une protection contre la suppression. |
| La journalisation de la base de données doit être activée. | Ce contrôle vérifie si les journaux d'Amazon RDS sont activés et envoyés à CloudWatch Logs. |
RDS |
RDSInstance devrait avoir EnabledCloudwatchLogsExports len () gt 0 |
| L'authentification IAM doit être configurée pour les instances RDS. | Ce contrôle vérifie si l'authentification IAM est activée pour une instance de base de données RDS. |
RDS |
RDSInance devrait avoir IAMDatabaseAuthenticationEnabled |
| Installez les correctifs de sécurité critiques dans le mois suivant leur publication. La mise à niveau automatique des versions mineures est désactivée pour les instances RDS. | Assurez-vous que tous les composants du système et les logiciels sont protégés contre les vulnérabilités connues en installant les correctifs de sécurité AWS RDSInstance applicables. Installez les correctifs de sécurité critiques dans le mois suivant leur publication. |
RDS |
RDSInstance devrait avoir AutoMinorVersionUpgrade égal à true |
| Les clusters Amazon Aurora doivent avoir le retour arrière activé. | Ce contrôle vérifie si les clusters Amazon Aurora ont activé le retour en arrière |
RDS |
RDSCluster où Engine eq "aurora-mysql" devrait avoir BacktrackWindow > 0 |
| Les clusters de bases de données RDS doivent être configurés pour copier les balises dans les instantanés. | Ce contrôle vérifie si les clusters de bases de données RDS sont configurés pour copier toutes les étiquettes dans les instantanés lors de la création de ces derniers. |
RDS |
RDSCluster devrait avoir CopyTagsToSnapshot |
| Les instances de base de données RDS doivent être configurées pour copier les balises en instantanés | Ce contrôle vérifie si les instances de base de données RDS sont configurées pour copier toutes les balises dans les instantanés lors de la création de ces derniers. |
RDS |
RDSInstance devrait avoir CopyTagsToSnapshot |
| Un abonnement aux notifications d’événements RDS doit être configuré pour les événements critiques du cluster | Ce contrôle vérifie l'existence d'un abonnement aux événements Amazon RDS avec notifications activées pour le type de source DBCluster et la catégorie d'événement maintenance/panne. |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq "db-cluster" et (EventCategoriesList a ("maintenance") et EventCategoriesList a ("failure")) et Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Un abonnement aux notifications d'événements RDS doit être configuré pour les événements critiques des instances de base de données. | Ce contrôle vérifie l'existence d'un abonnement aux événements Amazon RDS avec notifications activées pour le type de source DBInstance et les catégories d'événements maintenance, modification de configuration et panne. |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq "db-instance" et (EventCategoriesList a ("maintenance") et EventCategoriesList a ("failure") et EventCategoriesList a ("configuration change")) et Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Un abonnement aux notifications d’événements RDS doit être configuré pour des événements critiques de groupes de paramètres de base de données | Ce contrôle vérifie si un abonnement à un événement Amazon RDS existe avec les notifications activées pour le type de source DBParameterGroup avec catégorie d’événement de changement de configuration |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq « db-parameter-group » et EventCategoriesList has(« configuration change ») ainsi que Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Un abonnement aux notifications d'événements RDS doit être configuré pour les événements critiques des groupes de sécurité de base de données. | Ce contrôle vérifie si un abonnement à un événement Amazon RDS existe avec les notifications activées pour le type source DBSecurityGroup avec la catégorie d’événement d’échec de modification de configuration |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq "db-security-group" et (EventCategoriesList a ("failure") et EventCategoriesList a ("configuration change")) et Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Les clusters RDS ne doivent pas utiliser le port par défaut du moteur de base de données. | Ce contrôle vérifie si le cluster RDS utilise un port autre que le port par défaut du moteur de base de données |
RDS |
RDSCluster ne devrait pas avoir l’égalisation de port 3306 |
| Les écouteurs de l'équilibreur de charge classique doivent être configurés avec une terminaison HTTPS ou TLS. | Ce contrôle vérifie si vos écouteurs Classic Load Balancer sont configurés avec le protocole HTTPS ou TLS pour les connexions frontales (client vers équilibreur de charge). |
ElasticLoadBalancer |
ClassicLoadBalancer où ( ListenerDescriptions len () gt 0 ) devrait avoir ListenerDescriptions avec [ Listener . Protocole dans (« HTTPS », « SSL ») ] |
| Les équilibreurs de charge d'application doivent être configurés pour supprimer les en-têtes HTTP. | Ce contrôle évalue les équilibreurs de charge d'application AWS pour s'assurer qu'ils sont configurés pour supprimer les en-têtes HTTP invalides. |
ElasticLoadBalancer |
ElasticLoadBalancer où Type EQ « application » doit avoir RoutingHttpDropInvalidHeaderFieldsEnabled eq True |
| La journalisation des équilibreurs de charge d'application doit être activée. | Ce contrôle vérifie si la journalisation est activée pour l'équilibreur de charge d'application. |
ElasticLoadBalancer |
ElasticLoadBalancer où Type eq "application" devrait avoir AccessLogsEnabled eq True |
| La journalisation des équilibreurs de charge classiques doit être activée. | Cette règle vérifie si l’Anneau de Charge Classique a activé la journalisation |
ElasticLoadBalancer |
ClassicLoadBalancer devrait avoir des attributs . AccessLog. Activé |
| Les équilibreurs de charge classiques doivent avoir la vidange de connexion activée. | Cette règle vérifie si les Load Balancers classiques activent le drainage de connexion. Activer la décharge de connexion sur les Load Balancers classiques garantit que l’équilibreur cesse d’envoyer des requêtes vers des instances déregistrées ou en mauvaise santé. Cela maintient les connexions existantes ouvertes. C’est particulièrement utile dans les groupes d’Auto Scaling, afin de s’assurer que les connexions ne soient pas coupées brusquement |
ElasticLoadBalancer |
ClassicLoadBalancer devrait avoir des attributs . ConnexionDrainant. Activé |
| Application Load Balancer doit être configuré pour rediriger toutes les requêtes HTTP vers HTTPS | Ce contrôle vérifie si la redirection HTTP vers HTTPS est configurée sur tous les écouteurs HTTP des équilibreurs de charge d'application. |
ElasticLoadBalancer |
ElasticLoadBalancer où (Type eq "application" et Listeners avec [ Protocol eq "HTTP" ]) devrait avoir des Listeners avec [ Protocol eq "HTTP" et DefaultActions avec [ Type eq "redirect" et RedirectConfig . Protocole égal à "HTTPS" et RedirectConfig. Port eq 443 ] ] |
| Les URL des dépôts sources CodeBuild sur GitHub ou Bitbucket doivent utiliser OAuth. | Ce contrôle vérifie si l’URL du dépôt source GitHub ou Bitbucket contient soit des jetons d’accès personnels, soit un nom d’utilisateur et un mot de passe |
CodeBuild |
SourceCredential doit avoir AuthType égal à "OAUTH" |
| Les variables d'environnement du projet CodeBuild ne doivent pas contenir d'identifiants en clair. | Ce contrôle vérifie si le projet contient des informations d'identification en clair dans les variables d'environnement. |
CodeBuild |
CodeBuild ne devrait pas avoir Environnement . VariablesEnvironnement avec [Égaliseur de type « TEXTE CLAIR »] |
| Les instances de réplication d'AWS Database Migration Service ne doivent pas être publiques. | Ce contrôle vérifie si les instances de réplication DMS AWS sont publiques |
DMS |
DMSReplicationInstance ne devrait pas avoir d'accès public |
| Les politiques gérées par les clients IAM que vous créez ne devraient pas permettre les actions jokers pour les services | Ce contrôle vérifie si les stratégies IAM basées sur l'identité que vous créez contiennent des instructions Allow utilisant le caractère générique * pour accorder des autorisations pour toutes les actions sur n'importe quel service. |
IAM |
IAMPolicy où l’égalisation Type « Customer Managed » ne devrait pas avoir de permissions. Instructions avec [ Égalisation d’effet « Allow » et ( NotAction avec [ valeur comme « \ :\*$ » ] ou Action avec [ valeur comme « \ :\*$ » ] ] ] |
| Les politiques IAM gérées par le client ne doivent pas autoriser les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si la version par défaut des politiques IAM gérées par le client autorise les principaux à utiliser les actions de déchiffrement AWS KMS sur toutes les ressources |
IAM |
IAMPolicy où l’égalisation Type « Customer Managed » ne devrait pas avoir de permissions. Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] |
| Les clés AWS KMS ne doivent pas être supprimées par inadvertance. | Ce contrôle vérifie si les clés KMS sont programmées pour suppression. Les clés KMS supprimées ne peuvent pas être récupérées. Les données chiffrées à l'aide d'une clé KMS sont également définitivement irrécupérables si la clé KMS est supprimée. Si des données importantes ont été chiffrées à l'aide d'une clé KMS programmée pour suppression, envisagez de les déchiffrer ou de les rechiffrer à l'aide d'une New clé KMS, sauf si vous effectuez intentionnellement un effacement cryptographique. |
KMS |
KMSKey ne devrait pas avoir l’égalisation de statut « PendingSuppression » |
| Les principaux IAM ne devraient pas avoir de politiques en ligne du groupe IAM permettant des actions de déchiffrement et de re-chiffrement sur toutes les clés KMS | Vérifie si les politiques en ligne intégrées dans votre groupe IAM permettent les actions de déchiffrement et de re-chiffrement AWS KMS sur toutes les clés KMS |
IAM |
IAMGroup ne devrait pas avoir GroupPolicy. InlinePolicies avec [ PolicyDocument . Instruction avec [ Effect EQ « Allow » et Action avec [ valeur dans (« kms :Decrypt », « kms :ReEncryptFrom ») ] et Resource avec [ valeur EQ « * » ] ] ] |
| Les principaux IAM ne doivent pas avoir de stratégies intégrées de rôle IAM autorisant les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si les politiques en ligne intégrées dans votre rôle IAM permettent les actions de déchiffrement et de re-chiffrement AWS KMS sur toutes les clés KMS |
IAM |
IAMRole ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] ] |
| Les principaux IAM ne doivent pas avoir de stratégies utilisateur IAM intégrées autorisant les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si les politiques intégrées à votre utilisateur IAM autorisent les actions de déchiffrement et de rechiffrement AWS KMS sur toutes les clés KMS. |
IAM |
IAMUser ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] ] |
| Les politiques relatives aux fonctions Lambda devraient interdire l'accès public | Ce contrôle vérifie si la politique basée sur les ressources de la fonction Lambda interdit l'accès public en dehors de votre compte. |
Lambda |
Lambda ne devrait pas avoir ResourceBasedIAMPolicy. Instructions avec [ Effect EQ « Allow » et Principal avec [ valeur égalisation « *"] ] |
| Les politiques invoquées par la fonction Lambda s3 devraient interdire l’accès public | Ce contrôle vérifie si la politique S3 invoquée par la fonction Lambda interdit l’accès public en dehors de votre compte. Le contrôle échoue également si une fonction Lambda est invoquée depuis Amazon S3 et que la politique n’inclut pas de condition pour AWS :SourceAccount |
Lambda |
Lambda où ResourceBasedIAMPolicy . Instructions avec [ Action avec [ valeur eq "lambda:InvokeFunction" ] et Principal avec [ valeur eq "s3.amazonaws.com" ]] devrait avoir ResourceBasedIAMPolicy . Instructions avec [ Action avec [ valeur eq "lambda:InvokeFunction" ] et Principal avec [ valeur eq "s3.amazonaws.com" ] et Conditions avec [ Nom eq "AWS:SourceAccount" et Valeur len() gt 0 ]] |
| Les fonctions Lambda doivent utiliser des environnements d'exécution compatibles. | Ce contrôle vérifie que les paramètres de fonction Lambda pour les temps d’exécution correspondent aux valeurs attendues définies pour les temps d’exécution pris en charge pour chaque langage |
Lambda |
Lambda où PackageType neq "Image" doit avoir Runtime dans ("nodejs14.x", "nodejs12.x", "python3.9", "python3.8", "python3.7", "python3.6", "ruby2.7", "java11", "java8", "java8.al2", "go1.x", "dotnetcore3.1") |
| Les définitions de tâches Amazon ECS doivent comporter des modes de mise en réseau sécurisés et des définitions d'utilisateur. | Ce contrôle vérifie si une définition de tâche Amazon ECS active disposant d’un mode réseau hôte possède également des définitions de conteneur privilégiées ou utilisateur. Le contrôle échoue pour les définitions de tâches qui ont un mode réseau hôte et des définitions de conteneur où privileged=faux ou est vide et user=racine ou est vide |
ECS |
ECSTaskDefinition où NetworkMode eq "host" devrait avoir ContainerDefinitions avec [ Privileged and User len () gt 0 and User neq "root" ] |
| Les services Amazon ECS ne devraient pas se voir attribuer automatiquement d'adresse IP publique. | Ce contrôle vérifie si les services Amazon ECS sont configurés pour attribuer automatiquement des adresses IP publiques. Une adresse IP publique est une adresse IP accessible depuis Internet. Si vous lancez vos instances Amazon ECS avec une adresse IP publique, alors vos instances Amazon ECS sont accessibles depuis Internet. Les services Amazon ECS ne doivent pas être accessibles publiquement, car cela pourrait permettre un accès non intentionnel à vos serveurs d'applications conteneurisées. |
ECS |
ECSCluster où les services avec [ Définition de la tâche . L’égaliseur NetworkMode « awsvpc"] devrait avoir des Services avec [ TaskDefinition . Égaliseur NetworkMode « awsvpc » et AwsVPCConfiguration. AssignPublicIp neq « ENABLED » ] |
| Les sujets SNS doivent être chiffrés au repos en utilisant AWS KMS | Ce contrôle vérifie si un sujet SNS est chiffré au repos en utilisant AWS KMS |
SNS |
SNSTopic devrait avoir KmsMasterKeyId len () gt 0 |
| Les files d’attente Amazon SQS doivent être chiffrées au repos | Ce contrôle vérifie si les files d'attente Amazon SQS sont chiffrées au repos |
SQS |
SQSQueue devrait avoir ( KmsMasterKeyId len ( ) gt 0 ou SqsManagedSseEnabled ) |
| Les certificats ACM importés doivent être renouvelés après une période déterminée. | Ce contrôle vérifie si les certificats ACM de votre compte sont marqués pour expiration dans les 30 jours. Il vérifie à la fois les certificats importés et les certificats fournis par AWS Certificate Manager. |
ACM |
ACM devrait avoir NotAfter isLaterThan(30, « jours ») |
| La journalisation des API REST et WebSocket de la passerelle API doit être activée. | Ce contrôle vérifie si la journalisation est activée pour toutes les étapes d'une API REST ou WebSocket d'Amazon API Gateway. Le contrôle échoue si la journalisation n'est pas activée pour toutes les méthodes d'une étape ou si le niveau de journalisation n'est ni ERROR ni INFO. |
APIGateway |
APIGateway où Stages len() gt 0 devrait avoir Stages avec [ MethodSettings avec [ MethodValue . Niveau de journalisation dans ("INFO", "ERREUR") ] ] |
| Les étapes de l'API REST de la passerelle API doivent être configurées pour utiliser des certificats SSL pour l'authentification du serveur. | Ce contrôle vérifie si les étapes de l'API REST d'Amazon API Gateway disposent de certificats SSL configurés. Les systèmes backend utilisent ces certificats pour authentifier que les requêtes entrantes proviennent de la passerelle API. |
APIGateway |
APIGateway devrait avoir des étapes avec [ ClientCertificateId len() gt 0 ] |
| Les étapes API REST de la passerelle API devraient avoir le traçage AWS X-Ray activé | Ce contrôle vérifie si le traçage actif AWS X-Ray est activé pour les étapes REST API de votre passerelle Amazon API. |
Catégorie |
APIGateway devrait avoir des étapes avec [ TracingEnabled ]. |
| API Gateway doit être associé à une ACL web WAF AWS | Vérifie si une étape de passerelle API utilise une liste de contrôle d’accès web (ACL) WAF AWS. Le contrôle échoue s’il n’est pas connecté à un étage de passerelle API REST. |
APIGateway |
APIGateway devrait avoir des étapes avec [ WebAclArn len() gt 0 ] |
| Les données du cache de l'API REST de la passerelle API doivent être chiffrées au repos | Vérifie si toutes les méthodes dans les étapes API REST de la passerelle API qui ont le cache activé sont chiffrées. Le contrôle échoue si une méthode dans une étape API REST d’API Gateway est configurée pour mettre en cache et que le cache n’est pas chiffré. |
APIGateway |
APIGateway devrait avoir des étapes avec [ MethodSettings avec [ MethodValue . CacheDataEncrypted ] ] |
| Les groupes d’auto-scaling associés à un équilibreur de charge doivent utiliser des vérifications de santé de l’équilibreur de charge | Ce contrôle vérifie si vos groupes Auto Scaling associés à un équilibreur de charge utilisent les contrôles d'intégrité d'Elastic Load Balancing. |
AutoScalingGroup |
AutoScalingGroup où LoadBalancerNames len( ) gt 0 devrait avoir l’égalisation HealthCheckType « ELB » |
| Les distributions CloudFront doivent avoir un objet racine par défaut configuré | Ce contrôle vérifie si une distribution Amazon CloudFront est configurée pour retourner un objet spécifique qui est l’objet racine par défaut. Le contrôle échoue si la distribution CloudFront n’a pas configuré d’objet racine par défaut. |
CloudFront |
CloudfrontDistribution devrait avoir DefaultRootObject len( ) gt 0 |
| Les distributions CloudFront devraient activer l’identité d’accès à l’origine | Ce contrôle vérifie si une distribution Amazon CloudFront de type origine Amazon S3 possède une identité d'accès à l'origine (OAI) configurée. Le contrôle échoue si OAI n'est pas configuré. |
CloudFront |
CloudfrontDistribution devrait avoir Origins. Objets avec [S3OriginConfig . OriginAccessIdentity len( ) gt 0 ] |
| Les distributions CloudFront devraient exiger le chiffrement lors du transit. | Ce contrôle vérifie si une distribution Amazon CloudFront exige que les spectateurs utilisent directement HTTPS ou si elle utilise la redirection. Le contrôle échoue si ViewerProtocolPolicy est réglé sur autoriser tout pour defaultCacheBehavior ou cacheBehavior. |
CloudFront |
CloudfrontDistribution ne devrait pas avoir DefaultCacheBehavior. ViewerProtocolPolicy eq "autoriser tout" |
| Les distributions CloudFront doivent avoir une bascule d'origine configurée. | Ce contrôle vérifie si une distribution Amazon CloudFront est configurée avec un groupe d’origine ayant deux origines ou plus. |
CloudFront |
CloudfrontDistribution devrait avoir des OriginGroups . Quantité gt 0 et OriginGroups . Items len( ) gt 0 |
| Les distributions CloudFront doivent avoir la journalisation activée. | Ce contrôle vérifie si la journalisation des accès serveur est activée sur les distributions CloudFront. Le contrôle échoue si la journalisation des accès n'est pas activée pour une distribution. |
CloudFront |
CloudfrontDistribution devrait avoir une journalisation. Activé |
| Les distributions CloudFront doivent avoir AWS WAF activé. | Ce contrôle vérifie si les distributions CloudFront sont associées soit aux AWS WAF soit aux AWS WAFv2 web ACL. Le contrôle échoue si la distribution n’est pas associée à une ACL web. |
CloudFront |
CloudfrontDistribution devrait avoir WebACLId len( ) gt 0 |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les tables DynamoDB devraient automatiquement adapter la capacité à la demande | Ce contrôle vérifie si une table Amazon DynamoDB peut adapter sa capacité de lecture et d'écriture en fonction des besoins. Ce contrôle réussit si la table utilise soit le mode de capacité à la demande, soit le mode provisionné avec mise à l'échelle automatique configurée. |
DynamoDB |
DynamoDBTable devrait avoir ScalableTargets len() > 0 |
| Les clusters DynamoDB Accelerator (DAX) doivent être chiffrés au repos | Ce contrôle vérifie si un cluster DAX est chiffré au repos. |
DynamoDB |
DAX devrait avoir SSEDescription. Statut égal à « ACTIVÉ » |
| Amazon EFS devrait être configuré pour chiffrer les données de fichiers au repos en utilisant AWS KMS | Ce contrôle vérifie si Amazon Elastic File System est configuré pour chiffrer les données du fichier à l’aide d’AWS KMS. |
EFS |
ElasticFileSystem devrait avoir Encrypted et KMSKey . Activé |
| Les environnements élastiques de haricots magiques devraient être renforcés pour la gestion des rapports de santé | Ce contrôle vérifie si les rapports de santé améliorés sont activés pour vos environnements AWS Elastic Beanstalk. |
ElasticBeanstalk |
ElasticBeanstalk devrait avoir des paramètres de configuration avec [ OptionsSettings avec [ OptionName eq "EnhancedHealthAuthEnabled" et Value eq "true" ] ] |
| Les mises à jour de la plateforme gérée Elastic Beanstalk doivent être activées. | Ce contrôle vérifie si les mises à jour gérées de la plateforme sont activées pour l’environnement Elastic Beanstalk. |
ElasticBeanstalk |
ElasticBeanstalk devrait avoir ConfigurationSettings avec [ OptionSettings avec [ OptionName EQ « ManagedActionsEnabled » et Value EQ « true » ] ] |
| Les nœuds maîtres du cluster Amazon EMR ne doivent pas avoir d'adresses IP publiques. | Ce contrôle vérifie si les nœuds maîtres des clusters Amazon EMR possèdent des adresses IP publiques. |
EMR |
EMRCluster ne devrait pas avoir d'instances avec [ PublicIpAddress isPublic() ] |
| Les domaines Elasticsearch doivent avoir le chiffrement au repos activé | Ce contrôle vérifie si les domaines Elasticsearch ont une configuration de chiffrement au repos activée. La vérification échoue si le chiffrement au repos n'est pas activé. |
ElasticSearch |
ElasticSearchDomain doit avoir EncryptionAtRestOptions . Activé |
| Les domaines Elasticsearch doivent se trouver dans un VPC. | Ce contrôle vérifie si les domaines Elasticsearch sont dans un VPC. Il faut s’assurer que les domaines Elasticsearch ne sont pas rattachés à des sous-réseaux publics. |
ElasticSearch |
ElasticSearchDomain devrait avoir VPCOptions . VPC. Égalisation de statut « disponible » |
| Les domaines Elasticsearch doivent chiffrer les données envoyées entre les nœuds | Ce contrôle vérifie si les domaines Elasticsearch ont activé le chiffrement nœud à nœud. |
ElasticSearch |
ElasticSearchDomain devrait avoir NodeToNodeEncryptionOptions . Activé |
| La journalisation des erreurs du domaine Elasticsearch vers les journaux CloudWatch doit être activée | Ce contrôle vérifie si les domaines Elasticsearch sont configurés pour envoyer les journaux d'erreurs à CloudWatch Logs. |
ElasticSearch |
ElasticSearchDomain devrait avoir LogPublishingOptions avec [ Name eq "ES_APPLICATION_LOGS" et Enabled et CloudWatchLogsLogGroup . id len( ) gt 0 ] |
| Les domaines Elasticsearch devraient avoir la journalisation d’audit activée | Ce contrôle vérifie si la journalisation d'audit est activée pour les domaines Elasticsearch. Ce contrôle échoue si la journalisation d'audit n'est pas activée pour un domaine Elasticsearch. |
ElasticSearch |
ElasticSearchDomain devrait avoir LogPublishingOptions avec [ Nom égaliseur « AUDIT_LOGS » et activé ainsi que CloudWatchLogsLogGroup . id len( ) gt 0 ] |
| Les domaines Elasticsearch doivent comporter au moins trois nœuds de données. | Ce contrôle vérifie si les domaines Elasticsearch sont configurés avec au moins trois nœuds de données et que zoneAwarenessEnabled est vrai. |
ElasticSearch |
ElasticSearchDomain doit avoir ElasticsearchClusterConfig. ZoneAwarenessEnabled et ElasticsearchClusterConfig. Configuration de la sensibilisation à la zone. Nombre de zones de disponibilité gte 3 |
| Les domaines Elasticsearch doivent être configurés avec au moins trois nœuds maîtres dédiés | Ce contrôle vérifie si les domaines Elasticsearch sont configurés avec au moins trois nœuds maîtres dédiés. Ce contrôle échoue si le domaine n’utilise pas de nœuds maîtres dédiés. |
ElasticSearch |
ElasticSearchDomain doit avoir ElasticsearchClusterConfig. DedicatedMasterEnabled et ElasticsearchClusterConfig. Nombre de maîtres dédiés gte 3 |
| Les connexions aux domaines Elasticsearch doivent être chiffrées en utilisant TLS 1.2 | Ce contrôle vérifie si les connexions aux domaines Elasticsearch sont requises pour utiliser TLS 1.2. La vérification échoue si le domaine Elasticsearch TLSSecurityPolicy n’est pas Policy-Min-TLS-1-2-2019-07. |
ElasticSearch |
ElasticSearchDomain devrait avoir DomainEndpointOptions . TLSSecurityPolicy égaliseur « Policy-Min-TLS-1-2-2019-07 » |
| GuardDuty devrait être activé | Ce contrôle vérifie si Amazon GuardDuty est activé dans votre compte GuardDuty et votre région. |
GuardDuty |
GuardDutyDetector devrait avoir le statut « ACTIVÉ ». |
| L'authentification IAM doit être configurée pour les clusters RDS. | Ce contrôle vérifie si un cluster RDS de base de données a l’authentification IAM activée. |
RDSCluster |
RDSCluster devrait avoir IAMDatabaseAuthenticationEnabled |
| Les clusters de bases de données RDS doivent être configurés pour plusieurs zones de disponibilité. | Ce contrôle vérifie si la haute disponibilité est activée pour vos clusters RDS DB. |
RDSCluster |
RDSCluster devrait avoir MultiAZ égal à vrai et AvailabilityZones len() > 0 |
| Les clusters RDS doivent avoir la protection contre la suppression activée. | Ce contrôle vérifie si la protection contre la suppression est activée pour les clusters RDS. |
RDSCluster |
RDSCluster devrait avoir une protection contre la suppression |
| Les instances de notebooks SageMaker ne doivent pas avoir d'accès direct à Internet. | Ce contrôle vérifie si l'accès direct à Internet est désactivé pour une instance de notebook SageMaker. |
Compute |
SageMakerNotebookInstance devrait avoir l’égalisation DirectInternetAccess « Désactivée » |
| La rotation automatique des secrets de Secrets Manager doit être activée. | Ce contrôle vérifie si un secret stocké dans AWS Secrets Manager est configuré avec une rotation automatique |
Sécurité |
Le secret devrait avoir RotationEnabled |
| Les secrets de Secrets Manager configurés avec la rotation automatique devraient être pivotés correctement. | Ce contrôle vérifie si un secret AWS Secrets Manager a été tourné avec succès en fonction du calendrier de rotation. Le contrôle n’évalue pas les secrets qui n’ont pas configuré la rotation |
Sécurité |
Secret où RotationEnabled devrait avoir RotationOccurringAsScheduled |
| Supprimer les secrets inutilisés du gestionnaire de secrets | Ce contrôle vérifie si vos secrets ont été consultés au cours d'un nombre de jours spécifié. Si un secret n'a pas été consulté dans un délai de 90 jours, ce contrôle échoue. |
Sécurité |
Le secret doit avoir LastAccessedDate isLaterThan(-90, "days") |
| Secrets Manager Les secrets doivent être rotés dans un nombre de jours spécifié | Ce contrôle vérifie si vos secrets ont été renouvelés au moins une fois au cours des 90 derniers jours. La rotation des secrets peut vous aider à réduire le risque d'utilisation non autorisée de vos secrets dans votre compte AWS. Il peut s'agir, par exemple, d'identifiants de base de données, de mots de passe, de clés API tierces, voire de texte arbitraire. Si vous ne changez pas vos secrets pendant une longue période, ils risquent davantage d'être compromis. |
Sécurité |
Le secret devrait avoir LastRotated Date isLaterTh(-90, « jours ») |
| La journalisation des ACL web globales d'AWS WAF Classic doit être activée. | Ce contrôle vérifie si la journalisation est activée sur les ACL web globales classiques du pare-feu d’applications web AWS (WAF). Cette règle est NON_COMPLIANT pour une ACL web globale, si la journalisation n’est pas activée. |
Sécurité |
WebACL devrait avoir LoggingConfiguration . LogDestinationConfigs len( ) gt 0 |
| Les instances EC2 doivent être gérées par AWS Systems Manager | Ce contrôle vérifie si les instances EC2 arrêtées et en cours d'exécution du compte sont gérées par AWS Systems Manager. Systems Manager est un service AWS qui permet de visualiser et de contrôler l'infrastructure AWS. |
EC2 |
EC2Instance devrait avoir SSMInformation len() > 0 |
| Toutes les instances EC2 gérées par Systems Manager doivent être conformes aux exigences de mise à jour. | Ce contrôle vérifie si le statut de conformité du patch Amazon EC2 Systems Manager est CONFORME ou NON_COMPLIANT après l’installation du correctif sur l’instance. Il ne vérifie que les instances gérées par Systems Manager Patch Manager. |
EC2 |
EC2Instance où SSMInformation len() gt 0 et ComplianceSummaryItems avec [ ComplianceType eq "Patch" ] devrait avoir ComplianceSummaryItems avec [ ComplianceType eq "Patch" et NonCompliantSummary . Nombre de non-conformités égal à 0 ] |
| Les instances gérées par le Systems Manager doivent avoir un statut de conformité d’association CONFORME | Ce contrôle vérifie si le statut de conformité de l’association AWS Systems Manager est CONFORME ou NON_COMPLIANT après l’exécution de l’association sur une instance. Le contrôle passe si le statut de conformité de l’association est COMPLIANT. |
EC2 |
EC2Instance où SSMInformation len() gt 0 et ComplianceSummaryItems avec [ ComplianceType eq "Association" ] devrait avoir ComplianceSummaryItems avec [ ComplianceType eq "Association" et NonCompliantSummary . Nombre de non-conformités égal à 0 ] |
| Assurez-vous que l'instance EC2 ne possède pas de port ahsp ouvert. | Le port Ahsp 4333, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 4333 et ToPort gte 4333) ) ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de port HTTP alternatif ouvert. | Le port HTTP alternatif 8888 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 8888 et ToPort gte 8888) ) ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de port CIFS ouvert. | Le port CIFS 445, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 445 et ToPort gte 445) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port fcp-addr-srvr1 ouvert | Le port 5500 (fcp-addr-srvr1) d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5500 et ToPort gte 5500) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port FTP ouvert | Les ports FTP 20 et 21 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 20 et ToPort gte 21) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port IMAP ouvert. | Le port IMAP 143, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 143 et ToPort gte 143) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port HTTP hérité ouvert | Le port HTTP 8088, hérité d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 8088 et ToPort gte 8088) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port OpenSearch Dashboards ouvert | Le port 5601 des tableaux de bord OpenSearch, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5601 et ToPort gte 5601) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port OpenSearch ouvert | Les ports OpenSearch 9200 ou 9300 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocole dans (« -1 »,"tcp ») et ( (FromPort lte 9200 et ToPort gte 9200) ou (FromPort lte 9300 et ToPort gte 9300) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port POP3 ouvert | Le port POP3 110, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 110 et ToPort gte 110) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port proxy ouvert. | Le port proxy 8080, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 8080 et ToPort gte 8080) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port RPC ouvert. | Le port RPC 135, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 135 et ToPort gte 135) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port Telnet ouvert. | Le port Telnet 23 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 23 et ToPort gte 23) ) ] ] |
| Assurez-vous que l’instance EC2 ne dispose pas de port ouvert pour les frameworks de développement web Python | Le port 5000 des frameworks de développement web Python d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5000 et ToPort gte 5000) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port ouvert pour Go, Node.js et Ruby web development frameworks | Les frameworks de développement web Go, Node.js et Ruby Port 3000, d’une instance EC2, ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 3000 et ToPort gte 3000) ) ] ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Assurez-vous que le bucket S3 pour lequel les journaux CloudTrail ne sont pas accessibles au public | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. Accéder à l’égaliseur « Public » |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Identités et identifiants : Éliminer l’utilisation de l’utilisateur « root » pour les tâches administratives et quotidiennes | Avec la création d’un compte AWS, un « utilisateur root » est créé et ne peut pas être désactivé ou supprimé. Cet utilisateur a un accès illimité et un contrôle illimité sur toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte pour les tâches quotidiennes. |
IAM |
Je suis IAMUser où l’égalisation RootUser True ne devrait pas avoir ( ( AccessKey avec [ Active and LastUsedTime isLaterThan ( -1, « days ») ] ) ni ( Password . Activé et mot de passe. LastUsedTimeIsLaterThan ( -1, « jours » ) ) ) |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Assurez-vous que le bucket S3 pour lequel les journaux CloudTrail ne sont pas accessibles au public | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. Accéder à l’égaliseur « Public » |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Les données au repos sont protégées : Assurez-vous que le chiffrement RDS est activé | Assurez-vous que le chiffrement RDS est activé. |
RDS |
RDSInstance devrait avoir StorageEncrypted égal à true |
| Assurez-vous que la suppression MFA est activée sur les compartiments S3. | Une fois la suppression MFA activée sur votre compartiment S3 sensible et classifié, l'utilisateur doit disposer de deux formes d'authentification. |
S3 |
S3Bucket devrait avoir BucketVersioning. Égaliseur d’état « Activé » et BucketVersioning. Égaliseur MFADelete « Activé » |
| Assurez-vous que la politique de seau S3 est configurée pour refuser les requêtes HTTP | Au niveau du compartiment Amazon S3, vous pouvez configurer les autorisations via une stratégie de compartiment, rendant ainsi les objets accessibles uniquement via HTTPS. |
S3 |
S3Bucket devrait avoir BucketPolicy avec [Instruction avec [Effect EQ « Deny » et Conditions avec [Name eq « aws :SecureTransport » et Value has (« false ») ]]] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications des organisations AWS | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications des organisations AWS effectuées dans le compte principal AWS. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme "\{\s*\(\$\..) eventSource\s*=\s*organisations\.amazonaws\.com\)\s*\&\\s*\(\(\$\.eventName\s*=\s*AcceptHandshake\)\s*\|\|\s*(\$\.eventName\s*=\s*AttachPolicy\)\s*\|\|\s*(\$\.eventName\s*=\s*CreateAccount\)\s*\|\|\s*(\$\.eventName\s*=\s*CreateOrganizationalUnit\)\s*\|\|\s*(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*(\$\.eventName\s*=\s*DeclineHandshake\)\s*\|\|\s*\(\$\.eventName\s*=\s* DeleteOrganization\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteOrganizationalUnit\)\s*\|\|\s*\(\$\..) eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachPolicy\)\s*\|\|\s*(\$\.eventName\s*=\s*DisablePolicyType\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnablePolicyType\)\s*\|\|\s*\(\$\.eventName\s*=\s*InviteAccountToOrganization\)\s*\|\|\s*(\$\.eventName\s*=\s*LeaveOrganization\)\s*\|\|\s*\(\$\.eventName\s*=\s*MoveAccount\)\s*\|\|\s*\(\$\. eventName\s*=\s*RemoveAccountFromOrganization\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdatePolicy\)\s*\|\|\s*(\$\.eventName\s*=\s*UpdateOrganizationalUnit\)\)\)\s*\}" et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications des groupes de sécurité | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les groupes de sécurité sont un filtre de paquets avec état qui contrôle le trafic d’entrée et de sortie au sein d’un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux groupes de sécurité. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.nomÉvénement\s*=\s*AuthorizeSecurityGroupIngress\)\s*\|\|\s*(\$\.événementName\s*=\s*AuthorizeSecurityGroupEgress\)\s*\|\|\s*\(\$\.eventName\s*=\s*RevokeSecurityGroupIngress\)\s*\|\|\s*(\$\.événementName\s*=\s*RevokeSecurityGroupEgress\)\s*\|\|\s*(\$\.eventName\s*=\s*CreateSecurityGroup\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteSecurityGroup\)\s*\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous que tous les buckets S3 utilisent le chiffrement au repos | Amazon S3 propose diverses options de chiffrement gratuites ou peu coûteuses pour protéger les données au repos |
S3 |
S3Bucket ne devrait pas avoir l’égalisation DefaultEncryption « Désactivée » |
| Veuillez désactiver les identifiants inutilisés depuis 45 jours ou plus. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver ou de supprimer tous les identifiants inutilisés depuis 45 jours ou plus. |
IAM |
IAMUser ne devrait pas avoir ( RootUser eq False et ( ( AccessKey avec [ Active et LastUsedTime isEarlierThan ( -45, "days" ) ] ) ou ( Password . Activé et mot de passe. LastUsedTime est antérieur à ( -45, "jours" ) ) ) ) ou ( RootUser est égal à Faux et ( ( AccessKey avec [ Actif et LastUsedTime est égal à 0 ] ) ou ( Mot de passe . Activé et mot de passe. LastUsedTime eq 0 ) ) et CreationDate isEarlierThan ( -45, "jours" ) ) |
| Assurez-vous qu'une seule clé d'accès active soit disponible pour chaque utilisateur IAM. | Les clés d'accès sont des identifiants à long terme pour un utilisateur IAM ou l'utilisateur « racine » du compte AWS. Vous pouvez utiliser des clés d'accès pour signer des requêtes programmatiques adressées à l'interface de ligne de commande AWS (AWS CLI) ou à l'API AWS (directement ou à l'aide du kit de développement logiciel AWS). |
IAM |
L'utilisateur IAM ne devrait pas avoir toutes les clés d'accès avec [ Active eq true] et AccessKey len() gt 1 |
| S'assurer que les utilisateurs IAM reçoivent des autorisations uniquement par le biais de groupes. | Les utilisateurs IAM ont accès aux services, fonctions et données via les politiques IAM. Il existe trois façons de définir des politiques pour un utilisateur : 1) Modifier directement la politique utilisateur, c’est-à-dire une politique en ligne ou une politique utilisateur ; 2) attacher une politique directement à un utilisateur ; 3) ajouter l’utilisateur à un groupe IAM ayant une politique attachée. Seule la troisième implémentation est recommandée. |
Identity |
IAMUser devrait avoir des politiques. Géré len () égalisation 0 et politiques. Égalisation en ligne () 0 |
| Assurez-vous que tous les certificats SSL/TLS expirés stockés dans AWS IAM sont supprimés. | Pour activer les connexions HTTPS à votre site web ou application sur AWS, vous avez besoin d'un certificat serveur SSL/TLS. Vous pouvez utiliser ACM ou IAM pour stocker et déployer les certificats de serveur. N’utilisez IAM comme gestionnaire de certificats que lorsque vous devez prendre en charge les connexions HTTPS dans une région non prise en charge par ACM. IAM chiffre vos clés privées de manière sécurisée et stocke la version chiffrée dans le stockage des certificats SSL IAM. IAM prend en charge le déploiement de certificats de serveur dans toutes les régions, mais vous devez obtenir votre certificat auprès d'un fournisseur externe pour l'utiliser avec AWS. Vous ne pouvez pas télécharger un certificat ACM sur IAM. De plus, vous ne pouvez pas gérer vos certificats depuis la console IAM. |
Identity |
Le certificat du serveur ne doit pas avoir d'expiration antérieure à (0, "secondes"). |
| Assurez-vous que l'analyseur d'accès IAM est activé. | IAM Access Analyzer est une technologie introduite lors de AWS Reinvent 2019. Après activation de l’analyseur dans IAM, les résultats de balayage sont affichés sur la console en montrant les ressources accessibles. Les scans montrent des ressources auxquelles d’autres comptes et utilisateurs fédérés peuvent accéder, telles que les clés KMS et les rôles IAM. Ainsi, les résultats vous permettent de déterminer si un utilisateur non intentionné est autorisé, ce qui facilite la surveillance des accès aux moins de privilèges. |
Sécurité |
AccessAnalyzer devrait avoir le statut « ACTIF ». |
| Assurez-vous que les compartiments S3 sont configurés avec l'option « Bloquer l'accès public (paramètres du compartiment) ». | Amazon S3 propose Bloquer l’accès public (paramètres du bucket) et Bloquer l’accès public (paramètres du compte) pour vous aider à gérer l’accès public aux ressources Amazon S3. Par défaut, les buckets et objets S3 sont créés avec l’accès public désactivé. Cependant, un principe IAM disposant d’autorisations S3 suffisantes peut permettre un accès public au niveau du compartiment et/ou de l’objet. Lorsqu’il est activé, Bloquer l’accès public (paramètres du bucket) empêche un bucket individuel, ainsi que ses objets contenus, de devenir accessibles au public. De même, bloquer l’accès public (paramètres du compte) empêche tous les buckets et objets contenus de devenir accessibles publiquement sur l’ensemble du compte. |
le stockage |
S3Bucket devrait avoir BlockPublicAccess. Bloquer les ACL publiques et bloquer l'accès public. Ignorer les ACL publiques et bloquer l'accès public. BloquerPolitiquePublique et BloquerAccèsPublic. Restreindre les seaux publics |
| Assurez-vous qu'aucune liste de contrôle d'accès réseau (ACL) n'autorise le trafic entrant depuis le réseau 0.0.0.0/0 vers les ports d'administration du serveur distant. | La fonction Network Access Control List (NACL) fournit un filtrage sans état du trafic réseau d’entrée et de sortie vers les ressources AWS. Il est recommandé qu’aucun NACL n’autorise un accès d’entrée illimité aux ports d’administration des serveurs distants, tels que SSH vers le port 22 et RDP vers le port 3389. |
Réseau |
NetworkACL ne doit pas contenir de règles avec [ Egress eq False and RuleAction eq "allow" and CidrBlock eq 0.0.0.0/0 and ( (FromPort lte 22 and ToPort gte 22) or (FromPort lte 3389 and ToPort gte 3389) ) ] |
| Assurez-vous qu'aucun groupe de sécurité n'autorise le trafic entrant depuis 0.0.0.0/0 vers les ports d'administration du serveur distant. | Assurez-vous qu'aucun groupe de sécurité n'autorise le trafic entrant depuis 0.0.0.0/0 vers les ports d'administration du serveur distant. |
Réseau |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( (FromPort lte 22 et ToPort gte 22) ou (FromPort lte 3389 et ToPort gte 3389) ) ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Les certificats ACM importés doivent être renouvelés après une période déterminée. | Ce contrôle vérifie si les certificats ACM de votre compte sont marqués pour expiration dans les 30 jours. Il vérifie à la fois les certificats importés et les certificats fournis par AWS Certificate Manager. |
ACM |
ACM devrait avoir NotAfter isLaterThan(30, « jours ») |
| La journalisation des API REST et WebSocket de la passerelle API doit être activée. | Ce contrôle vérifie si la journalisation est activée pour toutes les étapes d'une API REST ou WebSocket d'Amazon API Gateway. Le contrôle échoue si la journalisation n'est pas activée pour toutes les méthodes d'une étape ou si le niveau de journalisation n'est ni ERROR ni INFO. |
APIGateway |
APIGateway où Stages len() gt 0 devrait avoir Stages avec [ MethodSettings avec [ MethodValue . Niveau de journalisation dans ("INFO", "ERREUR") ] ] |
| Les étapes de l'API REST de la passerelle API doivent être configurées pour utiliser des certificats SSL pour l'authentification du serveur. | Ce contrôle vérifie si les étapes de l'API REST d'Amazon API Gateway disposent de certificats SSL configurés. Les systèmes backend utilisent ces certificats pour authentifier que les requêtes entrantes proviennent de la passerelle API. |
APIGateway |
APIGateway devrait avoir des étapes avec [ ClientCertificateId len() gt 0 ] |
| Les étapes API REST de la passerelle API devraient avoir le traçage AWS X-Ray activé | Ce contrôle vérifie si le traçage actif AWS X-Ray est activé pour les étapes REST API de votre passerelle Amazon API. |
Catégorie |
APIGateway devrait avoir des étapes avec [ TracingEnabled ]. |
| API Gateway doit être associé à une ACL web WAF AWS | Vérifie si une étape de passerelle API utilise une liste de contrôle d’accès web (ACL) WAF AWS. Le contrôle échoue s’il n’est pas connecté à un étage de passerelle API REST. |
APIGateway |
APIGateway devrait avoir des étapes avec [ WebAclArn len() gt 0 ] |
| Les données du cache de l'API REST de la passerelle API doivent être chiffrées au repos | Vérifie si toutes les méthodes dans les étapes API REST de la passerelle API qui ont le cache activé sont chiffrées. Le contrôle échoue si une méthode dans une étape API REST d’API Gateway est configurée pour mettre en cache et que le cache n’est pas chiffré. |
APIGateway |
APIGateway devrait avoir des étapes avec [ MethodSettings avec [ MethodValue . CacheDataEncrypted ] ] |
| Les groupes d’auto-scaling associés à un équilibreur de charge doivent utiliser des vérifications de santé de l’équilibreur de charge | Ce contrôle vérifie si vos groupes Auto Scaling associés à un équilibreur de charge utilisent les contrôles d'intégrité d'Elastic Load Balancing. |
AutoScalingGroup |
AutoScalingGroup où LoadBalancerNames len( ) gt 0 devrait avoir l’égalisation HealthCheckType « ELB » |
| Les distributions CloudFront doivent avoir un objet racine par défaut configuré | Ce contrôle vérifie si une distribution Amazon CloudFront est configurée pour retourner un objet spécifique qui est l’objet racine par défaut. Le contrôle échoue si la distribution CloudFront n’a pas configuré d’objet racine par défaut. |
CloudFront |
CloudfrontDistribution devrait avoir DefaultRootObject len( ) gt 0 |
| Les distributions CloudFront devraient activer l’identité d’accès à l’origine | Ce contrôle vérifie si une distribution Amazon CloudFront de type origine Amazon S3 possède une identité d'accès à l'origine (OAI) configurée. Le contrôle échoue si OAI n'est pas configuré. |
CloudFront |
CloudfrontDistribution devrait avoir Origins. Objets avec [S3OriginConfig . OriginAccessIdentity len( ) gt 0 ] |
| Les distributions CloudFront devraient exiger le chiffrement lors du transit. | Ce contrôle vérifie si une distribution Amazon CloudFront exige que les spectateurs utilisent directement HTTPS ou si elle utilise la redirection. Le contrôle échoue si ViewerProtocolPolicy est réglé sur autoriser tout pour defaultCacheBehavior ou cacheBehavior. |
CloudFront |
CloudfrontDistribution ne devrait pas avoir DefaultCacheBehavior. ViewerProtocolPolicy eq "autoriser tout" |
| Les distributions CloudFront doivent avoir une bascule d'origine configurée. | Ce contrôle vérifie si une distribution Amazon CloudFront est configurée avec un groupe d’origine ayant deux origines ou plus. |
CloudFront |
CloudfrontDistribution devrait avoir des OriginGroups . Quantité gt 0 et OriginGroups . Items len( ) gt 0 |
| Les distributions CloudFront doivent avoir la journalisation activée. | Ce contrôle vérifie si la journalisation des accès serveur est activée sur les distributions CloudFront. Le contrôle échoue si la journalisation des accès n'est pas activée pour une distribution. |
CloudFront |
CloudfrontDistribution devrait avoir une journalisation. Activé |
| Les distributions CloudFront doivent avoir AWS WAF activé. | Ce contrôle vérifie si les distributions CloudFront sont associées soit aux AWS WAF soit aux AWS WAFv2 web ACL. Le contrôle échoue si la distribution n’est pas associée à une ACL web. |
CloudFront |
CloudfrontDistribution devrait avoir WebACLId len( ) gt 0 |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Les URL des dépôts sources CodeBuild sur GitHub ou Bitbucket doivent utiliser OAuth. | Ce contrôle vérifie si l’URL du dépôt source GitHub ou Bitbucket contient soit des jetons d’accès personnels, soit un nom d’utilisateur et un mot de passe |
CodeBuild |
SourceCredential doit avoir AuthType égal à "OAUTH" |
| Les variables d'environnement du projet CodeBuild ne doivent pas contenir d'identifiants en clair. | Ce contrôle vérifie si le projet contient des informations d'identification en clair dans les variables d'environnement. |
CodeBuild |
CodeBuild ne devrait pas avoir Environnement . VariablesEnvironnement avec [Égaliseur de type « TEXTE CLAIR »] |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Les instances de réplication d'AWS Database Migration Service ne doivent pas être publiques. | Ce contrôle vérifie si les instances de réplication DMS AWS sont publiques |
DMS |
DMSReplicationInstance ne devrait pas avoir d'accès public |
| Les tables DynamoDB devraient automatiquement adapter la capacité à la demande | Ce contrôle vérifie si une table Amazon DynamoDB peut adapter sa capacité de lecture et d'écriture en fonction des besoins. Ce contrôle réussit si la table utilise soit le mode de capacité à la demande, soit le mode provisionné avec mise à l'échelle automatique configurée. |
DynamoDB |
DynamoDBTable devrait avoir ScalableTargets len() > 0 |
| Sauvegardes des informations : Assurez-vous que les tables DynamoDB activent la récupération à un moment donné | Assurez-vous que la restauration à un point précis dans le temps est activée pour les tables DynamoDB. |
Dynamo |
DynamoDBTable devrait avoir PointInTimeRecovery égal à "ENABLED" |
| Les clusters DynamoDB Accelerator (DAX) doivent être chiffrés au repos | Ce contrôle vérifie si un cluster DAX est chiffré au repos. |
DynamoDB |
DAX devrait avoir SSEDescription. Statut égal à « ACTIVÉ » |
| Les snapshots Amazon EBS ne doivent pas être publics, car ils doivent pouvoir être restaurés par n'importe qui. | Ce contrôle vérifie que les instantanés d'Amazon Elastic Block Store ne sont pas publics, c'est-à-dire qu'ils ne peuvent être restaurés par n'importe qui. Les snapshots EBS servent à sauvegarder les données de vos volumes EBS sur Amazon S3 à un moment précis. Vous pouvez utiliser les instantanés pour restaurer les états précédents des volumes EBS. Il est rarement acceptable de partager une photo avec le public. Généralement, la décision de partager publiquement une capture d'écran était prise par erreur ou sans une compréhension complète des implications. Ce contrôle permet de s'assurer que tout partage de ce type a été pleinement planifié et intentionnel. |
EC2 |
Les instantanés devraient avoir Access neq « Public » |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Les volumes EBS attachés doivent être chiffrés au repos | Ce contrôle vérifie si les volumes EBS qui sont connectés sont chiffrés. |
EC2 |
Volume où les pièces jointes sont () gt 0 devrait avoir Crypté |
| Les instances EC2 arrêtées doivent être supprimées après une période spécifiée. | Ce contrôle vérifie si des instances EC2 ont été arrêtées pendant plus de jours que le nombre autorisé. Une instance EC2 échoue à ce contrôle si elle est arrêtée plus longtemps que la durée maximale autorisée, qui par défaut est de 30 jours |
EC2 |
EC2Instance où Status eq "stopped" devrait avoir StateTransitionTime isLaterThan ( -30 , "days" ) |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Le chiffrement par défaut EBS doit être activé | Ce contrôle vérifie si le chiffrement au niveau du compte est activé par défaut pour Amazon Elastic Block Store (Amazon EBS) |
EC2 |
Le volume doit avoir EbsEncryptionByDefault |
| Les instances EC2 devraient utiliser IMDSv2 | Ce contrôle vérifie si la version des métadonnées de votre instance EC2 est configurée avec Instance Metadata Service Version 2 (IMDSv2) |
EC2 |
EC2Instance devrait avoir l’égalisation MetadataOptions.HttpTokens « requise » |
| Les instances EC2 ne devraient pas avoir d’adresse IP publique | Cette règle vérifie si les instances EC2 possèdent une adresse IP publique. La règle échoue si le champ publicIp est présent dans l'élément de configuration de l'instance EC2. Cette règle s'applique uniquement aux adresses IPv4. |
EC2 |
EC2Instance ne devrait pas avoir PublicIPv4 len() > 0 |
| Amazon EC2 doit être configuré pour utiliser des points de terminaison VPC créés pour le service Amazon EC2 | Ce contrôle vérifie si un point de terminaison de service pour Amazon EC2 est créé pour chaque VPC. |
EC2 |
Le VPC doit avoir une référence de point de terminaison avec [ ServiceName comme "\.ec2$"] |
| Les sous-réseaux EC2 ne devraient pas automatiquement attribuer d’adresses IP publiques | Ce contrôle vérifie si l’attribution des IP publiques dans les sous-réseaux Amazon Virtual Private Cloud (Amazon VPC) a MapPublicIpOnLaunch réglé sur FALSE. Le contrôle passe si le drapeau est réglé sur FALSE |
EC2 |
Le sous-réseau ne devrait pas avoir MapPublicIpOnLaunch |
| Les listes de contrôle d’accès réseau inutilisées doivent être supprimées | Ce contrôle vérifie s’il existe des listes de contrôle d’accès réseau (ACL) inutilisées |
EC2 |
NetworkACL devrait avoir des sous-réseaux len () gt 0 |
| Les instances EC2 ne doivent pas utiliser plusieurs ENI. | Ce contrôle vérifie si une instance EC2 utilise plusieurs interfaces réseau élastiques (ENI) |
EC2 |
EC2Instance devrait avoir NetworkInterfaces len ( ) lte 1 |
| Assurez-vous que l'instance EC2 n'a pas de ports TCP ouverts. | Les ports TCP 22, 80, 443, 1433, 1521, 3306, 3389, 5432, 27017, 27018, 27019 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et protocole dans (« -1 », « tcp ») et ( (FromPort lte 22 et ToPort gte 22) ou ( FromPort lte 80 et ToPort gte 80) ou ( FromPort lte 443 et ToPort gte 443) ou ( FromPort lte 1433 et ToPort gte 1433) ou ( FromPort lte 1521 et ToPort gte 1521) ou ( FromPort lte 3306 et ToPort gte 3306) ou ( FromPort lte 3389 et ToPort GTE 3306) ou ( FromPort lte 3389 et ToPort gte 3389) ou (FromPort lte 5432 et ToPort gte 5432) ou (FromPort lte 27019 et ToPort gte 27017) ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de port ahsp ouvert. | Le port Ahsp 4333, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 4333 et ToPort gte 4333) ) ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de port HTTP alternatif ouvert. | Le port HTTP alternatif 8888 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 8888 et ToPort gte 8888) ) ] ] |
| Assurez-vous que l'instance EC2 ne possède pas de port CIFS ouvert. | Le port CIFS 445, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 445 et ToPort gte 445) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port fcp-addr-srvr1 ouvert | Le port 5500 (fcp-addr-srvr1) d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5500 et ToPort gte 5500) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port FTP ouvert | Les ports FTP 20 et 21 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 20 et ToPort gte 21) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port IMAP ouvert. | Le port IMAP 143, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 143 et ToPort gte 143) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port HTTP hérité ouvert | Le port HTTP 8088, hérité d'une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 8088 et ToPort gte 8088) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port MySQL ouvert. | Le port MySQL 3306, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1", "tcp") et ( (FromPort lte 3306 et ToPort gte 3306) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port SQL Server ouvert | Le port MySQL 1433 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 », « tcp ») et ( (FromPort lte 1433 et ToPort gte 1434) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port OpenSearch Dashboards ouvert | Le port 5601 des tableaux de bord OpenSearch, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5601 et ToPort gte 5601) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port OpenSearch ouvert | Les ports OpenSearch 9200 ou 9300 d'une instance EC2 ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocole dans (« -1 »,"tcp ») et ( (FromPort lte 9200 et ToPort gte 9200) ou (FromPort lte 9300 et ToPort gte 9300) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port POP3 ouvert | Le port POP3 110, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 110 et ToPort gte 110) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port PostgreSQL ouvert | Le port PostgreSQL 5432, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5432 et ToPort gte 5432) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port proxy ouvert. | Le port proxy 8080, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 8080 et ToPort gte 8080) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port RDP ouvert | Le port RDP 3389 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","udp","tcp") et ( (FromPort lte 3389 et ToPort gte 3389) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port RPC ouvert. | Le port RPC 135, d’une instance EC2, ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 135 et ToPort gte 135) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port SMTP ouvert | Le port SMTP 25 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 25 et ToPort gte 25) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port SSH ouvert. | Le port SSH 22 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 22 et ToPort gte 22) ) ] ] |
| Assurez-vous que l'instance EC2 n'a pas de port Telnet ouvert. | Le port Telnet 23 d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
L'instance EC2 ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPRanges avec [ IP isPublic () ] et Protocol dans ("-1","tcp") et ( (FromPort lte 23 et ToPort gte 23) ) ] ] |
| Assurez-vous que l’instance EC2 ne dispose pas de port ouvert pour les frameworks de développement web Python | Le port 5000 des frameworks de développement web Python d'une instance EC2 ne doit pas être ouvert au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 5000 et ToPort gte 5000) ) ] ] |
| Assurez-vous que l’instance EC2 n’a pas de port ouvert pour Go, Node.js et Ruby web development frameworks | Les frameworks de développement web Go, Node.js et Ruby Port 3000, d’une instance EC2, ne doivent pas être ouverts au public. |
EC2 |
EC2Instance ne devrait pas avoir de SecurityGroups avec [ InboundRules with [ IPRanges with [ IP isPublic () ] et Protocol in (« -1 »,"tcp ») et ( (FromPort lte 3000 et ToPort gte 3000) ) ] ] |
| Les définitions de tâches Amazon ECS doivent comporter des modes de mise en réseau sécurisés et des définitions d'utilisateur. | Ce contrôle vérifie si une définition de tâche Amazon ECS active disposant d’un mode réseau hôte possède également des définitions de conteneur privilégiées ou utilisateur. Le contrôle échoue pour les définitions de tâches qui ont un mode réseau hôte et des définitions de conteneur où privileged=faux ou est vide et user=racine ou est vide |
ECS |
ECSTaskDefinition où NetworkMode eq "host" devrait avoir ContainerDefinitions avec [ Privileged and User len () gt 0 and User neq "root" ] |
| Les services Amazon ECS ne devraient pas se voir attribuer automatiquement d'adresse IP publique. | Ce contrôle vérifie si les services Amazon ECS sont configurés pour attribuer automatiquement des adresses IP publiques. Une adresse IP publique est une adresse IP accessible depuis Internet. Si vous lancez vos instances Amazon ECS avec une adresse IP publique, alors vos instances Amazon ECS sont accessibles depuis Internet. Les services Amazon ECS ne doivent pas être accessibles publiquement, car cela pourrait permettre un accès non intentionnel à vos serveurs d'applications conteneurisées. |
ECS |
ECSCluster où les services avec [ Définition de la tâche . L’égaliseur NetworkMode « awsvpc"] devrait avoir des Services avec [ TaskDefinition . Égaliseur NetworkMode « awsvpc » et AwsVPCConfiguration. AssignPublicIp neq « ENABLED » ] |
| Amazon EFS devrait être configuré pour chiffrer les données de fichiers au repos en utilisant AWS KMS | Ce contrôle vérifie si Amazon Elastic File System est configuré pour chiffrer les données du fichier à l’aide d’AWS KMS. |
EFS |
ElasticFileSystem devrait avoir Encrypted et KMSKey . Activé |
| Les environnements élastiques de haricots magiques devraient être renforcés pour la gestion des rapports de santé | Ce contrôle vérifie si les rapports de santé améliorés sont activés pour vos environnements AWS Elastic Beanstalk. |
ElasticBeanstalk |
ElasticBeanstalk devrait avoir des paramètres de configuration avec [ OptionsSettings avec [ OptionName eq "EnhancedHealthAuthEnabled" et Value eq "true" ] ] |
| Les mises à jour de la plateforme gérée Elastic Beanstalk doivent être activées. | Ce contrôle vérifie si les mises à jour gérées de la plateforme sont activées pour l’environnement Elastic Beanstalk. |
ElasticBeanstalk |
ElasticBeanstalk devrait avoir ConfigurationSettings avec [ OptionSettings avec [ OptionName EQ « ManagedActionsEnabled » et Value EQ « true » ] ] |
| Les écouteurs de l'équilibreur de charge classique doivent être configurés avec une terminaison HTTPS ou TLS. | Ce contrôle vérifie si vos écouteurs Classic Load Balancer sont configurés avec le protocole HTTPS ou TLS pour les connexions frontales (client vers équilibreur de charge). |
ElasticLoadBalancer |
ClassicLoadBalancer où ( ListenerDescriptions len () gt 0 ) devrait avoir ListenerDescriptions avec [ Listener . Protocole dans (« HTTPS », « SSL ») ] |
| Les équilibreurs de charge d'application doivent être configurés pour supprimer les en-têtes HTTP. | Ce contrôle évalue les équilibreurs de charge d'application AWS pour s'assurer qu'ils sont configurés pour supprimer les en-têtes HTTP invalides. |
ElasticLoadBalancer |
ElasticLoadBalancer où Type EQ « application » doit avoir RoutingHttpDropInvalidHeaderFieldsEnabled eq True |
| La journalisation des équilibreurs de charge d'application doit être activée. | Ce contrôle vérifie si la journalisation est activée pour l'équilibreur de charge d'application. |
ElasticLoadBalancer |
ElasticLoadBalancer où Type eq "application" devrait avoir AccessLogsEnabled eq True |
| La journalisation des équilibreurs de charge classiques doit être activée. | Cette règle vérifie si l’Anneau de Charge Classique a activé la journalisation |
ElasticLoadBalancer |
ClassicLoadBalancer devrait avoir des attributs . AccessLog. Activé |
| Assurez-vous que la protection contre la suppression est activée sur Elastic Load Balancer. | L'activation de la protection contre la suppression sur les équilibreurs de charge atténue les risques de suppression accidentelle. |
ElasticLoadBalancer |
ElasticLoadBalancer devrait avoir une protection contre la suppression |
| Les équilibreurs de charge classiques doivent avoir la vidange de connexion activée. | Cette règle vérifie si les Load Balancers classiques activent le drainage de connexion. Activer la décharge de connexion sur les Load Balancers classiques garantit que l’équilibreur cesse d’envoyer des requêtes vers des instances déregistrées ou en mauvaise santé. Cela maintient les connexions existantes ouvertes. C’est particulièrement utile dans les groupes d’Auto Scaling, afin de s’assurer que les connexions ne soient pas coupées brusquement |
ElasticLoadBalancer |
ClassicLoadBalancer devrait avoir des attributs . ConnexionDrainant. Activé |
| Application Load Balancer doit être configuré pour rediriger toutes les requêtes HTTP vers HTTPS | Ce contrôle vérifie si la redirection HTTP vers HTTPS est configurée sur tous les écouteurs HTTP des équilibreurs de charge d'application. |
ElasticLoadBalancer |
ElasticLoadBalancer où (Type eq "application" et Listeners avec [ Protocol eq "HTTP" ]) devrait avoir des Listeners avec [ Protocol eq "HTTP" et DefaultActions avec [ Type eq "redirect" et RedirectConfig . Protocole égal à "HTTPS" et RedirectConfig. Port eq 443 ] ] |
| Les nœuds maîtres du cluster Amazon EMR ne doivent pas avoir d'adresses IP publiques. | Ce contrôle vérifie si les nœuds maîtres des clusters Amazon EMR possèdent des adresses IP publiques. |
EMR |
EMRCluster ne devrait pas avoir d'instances avec [ PublicIpAddress isPublic() ] |
| Les domaines Elasticsearch doivent avoir le chiffrement au repos activé | Ce contrôle vérifie si les domaines Elasticsearch ont une configuration de chiffrement au repos activée. La vérification échoue si le chiffrement au repos n'est pas activé. |
ElasticSearch |
ElasticSearchDomain doit avoir EncryptionAtRestOptions . Activé |
| Les domaines Elasticsearch doivent se trouver dans un VPC. | Ce contrôle vérifie si les domaines Elasticsearch sont dans un VPC. Il faut s’assurer que les domaines Elasticsearch ne sont pas rattachés à des sous-réseaux publics. |
ElasticSearch |
ElasticSearchDomain devrait avoir VPCOptions . VPC. Égalisation de statut « disponible » |
| Les domaines Elasticsearch doivent chiffrer les données envoyées entre les nœuds | Ce contrôle vérifie si les domaines Elasticsearch ont activé le chiffrement nœud à nœud. |
ElasticSearch |
ElasticSearchDomain devrait avoir NodeToNodeEncryptionOptions . Activé |
| La journalisation des erreurs du domaine Elasticsearch vers les journaux CloudWatch doit être activée | Ce contrôle vérifie si les domaines Elasticsearch sont configurés pour envoyer les journaux d'erreurs à CloudWatch Logs. |
ElasticSearch |
ElasticSearchDomain devrait avoir LogPublishingOptions avec [ Name eq "ES_APPLICATION_LOGS" et Enabled et CloudWatchLogsLogGroup . id len( ) gt 0 ] |
| Les domaines Elasticsearch devraient avoir la journalisation d’audit activée | Ce contrôle vérifie si la journalisation d'audit est activée pour les domaines Elasticsearch. Ce contrôle échoue si la journalisation d'audit n'est pas activée pour un domaine Elasticsearch. |
ElasticSearch |
ElasticSearchDomain devrait avoir LogPublishingOptions avec [ Nom égaliseur « AUDIT_LOGS » et activé ainsi que CloudWatchLogsLogGroup . id len( ) gt 0 ] |
| Les domaines Elasticsearch doivent comporter au moins trois nœuds de données. | Ce contrôle vérifie si les domaines Elasticsearch sont configurés avec au moins trois nœuds de données et que zoneAwarenessEnabled est vrai. |
ElasticSearch |
ElasticSearchDomain doit avoir ElasticsearchClusterConfig. ZoneAwarenessEnabled et ElasticsearchClusterConfig. Configuration de la sensibilisation à la zone. Nombre de zones de disponibilité gte 3 |
| Les domaines Elasticsearch doivent être configurés avec au moins trois nœuds maîtres dédiés | Ce contrôle vérifie si les domaines Elasticsearch sont configurés avec au moins trois nœuds maîtres dédiés. Ce contrôle échoue si le domaine n’utilise pas de nœuds maîtres dédiés. |
ElasticSearch |
ElasticSearchDomain doit avoir ElasticsearchClusterConfig. DedicatedMasterEnabled et ElasticsearchClusterConfig. Nombre de maîtres dédiés gte 3 |
| Les connexions aux domaines Elasticsearch doivent être chiffrées en utilisant TLS 1.2 | Ce contrôle vérifie si les connexions aux domaines Elasticsearch sont requises pour utiliser TLS 1.2. La vérification échoue si le domaine Elasticsearch TLSSecurityPolicy n’est pas Policy-Min-TLS-1-2-2019-07. |
ElasticSearch |
ElasticSearchDomain devrait avoir DomainEndpointOptions . TLSSecurityPolicy égaliseur « Policy-Min-TLS-1-2-2019-07 » |
| GuardDuty devrait être activé | Ce contrôle vérifie si Amazon GuardDuty est activé dans votre compte GuardDuty et votre région. |
GuardDuty |
GuardDutyDetector devrait avoir le statut « ACTIVÉ ». |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| S'assurer que les utilisateurs IAM reçoivent des autorisations uniquement par le biais de groupes. | Les utilisateurs IAM ont accès aux services, fonctions et données via les politiques IAM. Il existe trois façons de définir des politiques pour un utilisateur : 1) Modifier directement la politique utilisateur, c’est-à-dire une politique en ligne ou une politique utilisateur ; 2) attacher une politique directement à un utilisateur ; 3) ajouter l’utilisateur à un groupe IAM ayant une politique attachée. Seule la troisième implémentation est recommandée. |
Identity |
IAMUser devrait avoir des politiques. Géré len () égalisation 0 et politiques. Égalisation en ligne () 0 |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Assurer une gestion adéquate de l’authentification des utilisateurs pour les utilisateurs et administrateurs non consommateurs : Politique de mot de passe faible d’IAM | Les mots de passe/phrases de passe doivent respecter les critères suivants : Exigent une longueur minimale d’au moins sept caractères. Contiennent à la fois des caractères numériques et alphabétiques. Alternativement, les mots de passe/phrases secrètes doivent avoir une complexité et une force au moins équivalentes aux paramètres spécifiés ci-dessus |
IAM |
IAMPasswordPolicy devrait avoir RequireUppercaseCharacters et RequireLowercaseCharacters et (MinimumPasswordLength gte 8 ou RequireSymbols ) |
| Veuillez désactiver les identifiants inutilisés depuis 45 jours ou plus. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver ou de supprimer tous les identifiants inutilisés depuis 45 jours ou plus. |
IAM |
IAMUser ne devrait pas avoir ( RootUser eq False et ( ( AccessKey avec [ Active et LastUsedTime isEarlierThan ( -45, "days" ) ] ) ou ( Password . Activé et mot de passe. LastUsedTime est antérieur à ( -45, "jours" ) ) ) ) ou ( RootUser est égal à Faux et ( ( AccessKey avec [ Actif et LastUsedTime est égal à 0 ] ) ou ( Mot de passe . Activé et mot de passe. LastUsedTime eq 0 ) ) et CreationDate isEarlierThan ( -45, "jours" ) ) |
| Les politiques gérées par les clients IAM que vous créez ne devraient pas permettre les actions jokers pour les services | Ce contrôle vérifie si les stratégies IAM basées sur l'identité que vous créez contiennent des instructions Allow utilisant le caractère générique * pour accorder des autorisations pour toutes les actions sur n'importe quel service. |
IAM |
IAMPolicy où l’égalisation Type « Customer Managed » ne devrait pas avoir de permissions. Instructions avec [ Égalisation d’effet « Allow » et ( NotAction avec [ valeur comme « \ :\*$ » ] ou Action avec [ valeur comme « \ :\*$ » ] ] ] |
| Les politiques IAM gérées par le client ne doivent pas autoriser les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si la version par défaut des politiques IAM gérées par le client autorise les principaux à utiliser les actions de déchiffrement AWS KMS sur toutes les ressources |
IAM |
IAMPolicy où l’égalisation Type « Customer Managed » ne devrait pas avoir de permissions. Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] |
| Les principaux IAM ne devraient pas avoir de politiques en ligne du groupe IAM permettant des actions de déchiffrement et de re-chiffrement sur toutes les clés KMS | Vérifie si les politiques en ligne intégrées dans votre groupe IAM permettent les actions de déchiffrement et de re-chiffrement AWS KMS sur toutes les clés KMS |
IAM |
IAMGroup ne devrait pas avoir GroupPolicy. InlinePolicies avec [ PolicyDocument . Instruction avec [ Effect EQ « Allow » et Action avec [ valeur dans (« kms :Decrypt », « kms :ReEncryptFrom ») ] et Resource avec [ valeur EQ « * » ] ] ] |
| Les principaux IAM ne doivent pas avoir de stratégies intégrées de rôle IAM autorisant les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si les politiques en ligne intégrées dans votre rôle IAM permettent les actions de déchiffrement et de re-chiffrement AWS KMS sur toutes les clés KMS |
IAM |
IAMRole ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] ] |
| Les principaux IAM ne doivent pas avoir de stratégies utilisateur IAM intégrées autorisant les opérations de déchiffrement et de rechiffrement sur toutes les clés KMS. | Vérifie si les politiques intégrées à votre utilisateur IAM autorisent les actions de déchiffrement et de rechiffrement AWS KMS sur toutes les clés KMS. |
IAM |
IAMUser ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Effect eq "Allow" et Action avec [ valeur dans ("kms:Decrypt", "kms:ReEncryptFrom") ] et Ressource avec [ valeur eq "*" ] ] ] |
| Les clés AWS KMS ne doivent pas être supprimées par inadvertance. | Ce contrôle vérifie si les clés KMS sont programmées pour suppression. Les clés KMS supprimées ne peuvent pas être récupérées. Les données chiffrées à l'aide d'une clé KMS sont également définitivement irrécupérables si la clé KMS est supprimée. Si des données importantes ont été chiffrées à l'aide d'une clé KMS programmée pour suppression, envisagez de les déchiffrer ou de les rechiffrer à l'aide d'une New clé KMS, sauf si vous effectuez intentionnellement un effacement cryptographique. |
KMS |
KMSKey ne devrait pas avoir l’égalisation de statut « PendingSuppression » |
| Les politiques relatives aux fonctions Lambda devraient interdire l'accès public | Ce contrôle vérifie si la politique basée sur les ressources de la fonction Lambda interdit l'accès public en dehors de votre compte. |
Lambda |
Lambda ne devrait pas avoir ResourceBasedIAMPolicy. Instructions avec [ Effect EQ « Allow » et Principal avec [ valeur égalisation « *"] ] |
| Les politiques invoquées par la fonction Lambda s3 devraient interdire l’accès public | Ce contrôle vérifie si la politique S3 invoquée par la fonction Lambda interdit l’accès public en dehors de votre compte. Le contrôle échoue également si une fonction Lambda est invoquée depuis Amazon S3 et que la politique n’inclut pas de condition pour AWS :SourceAccount |
Lambda |
Lambda où ResourceBasedIAMPolicy . Instructions avec [ Action avec [ valeur eq "lambda:InvokeFunction" ] et Principal avec [ valeur eq "s3.amazonaws.com" ]] devrait avoir ResourceBasedIAMPolicy . Instructions avec [ Action avec [ valeur eq "lambda:InvokeFunction" ] et Principal avec [ valeur eq "s3.amazonaws.com" ] et Conditions avec [ Nom eq "AWS:SourceAccount" et Valeur len() gt 0 ]] |
| Les fonctions Lambda doivent utiliser des environnements d'exécution compatibles. | Ce contrôle vérifie que les paramètres de fonction Lambda pour les temps d’exécution correspondent aux valeurs attendues définies pour les temps d’exécution pris en charge pour chaque langage |
Lambda |
Lambda où PackageType neq "Image" doit avoir Runtime dans ("nodejs14.x", "nodejs12.x", "python3.9", "python3.8", "python3.7", "python3.6", "ruby2.7", "java11", "java8", "java8.al2", "go1.x", "dotnetcore3.1") |
| Autorisations d'accès : assurez-vous que les instances RDS ne possèdent pas d'instantanés accessibles publiquement. | Les instances RDS ne doivent pas avoir d'instantanés accessibles publiquement. |
RDS |
RDSInstance ne devrait pas avoir d'instantanés avec [ PubliclyAccessible ]. |
| Protection des communications et du réseau de contrôle : Assurez-vous que les instances RDS ne sont pas dans des sous-réseaux publics | Assurez-vous que les instances RDS ne sont pas dans les sous-réseaux publics. |
RDS |
RDSInstance ne devrait pas avoir l'accès égal à « Public ». |
| Les données au repos sont protégées : Assurez-vous que le chiffrement RDS est activé | Assurez-vous que le chiffrement RDS est activé. |
RDS |
RDSInstance devrait avoir StorageEncrypted égal à true |
| Les données au repos sont protégées : Assurez-vous que les instantanés d’instance RDS sont chiffrés | Assurez-vous que les instantanés des instances RDS sont chiffrés. |
RDS |
RDSInance devrait avoir tous les instantanés avec [ Égalisation chiffrée vraie ] |
| Mettre en place un plan de réponse aux incidents : absence de déploiement multi-AZ pour les instances RDS | Élaborez le plan d’intervention à mettre en œuvre en cas de faille du système. Assurez-vous que le plan prend en compte au minimum les éléments suivants : les rôles, responsabilités, ainsi que les stratégies de communication et de contact en cas de compromis, y compris la notification des marques de paiement, au minimum. ; Procédures spécifiques d’intervention en cas d’incident. ; Procédures de reprise et de continuité de l’entreprise. ; Processus de sauvegarde des données. ; Analyse des exigences légales pour signaler des compromissions. ; Couverture et réponses de tous les composants critiques du système. ; Référence ou inclusion des procédures de réponse aux incidents par les marques de paiement |
RDS |
RDSInstance devrait avoir MultiAZ égal à vrai |
| Assurez-vous que la surveillance détaillée des instances de base de données RDS est activée. | Assurez-vous que la surveillance détaillée des instances de base de données RDS est activée. |
RDS |
RDSIninstance ne devrait pas avoir d’égalisation MonitoringInterval 0 |
| Les clusters RDS doivent avoir la protection contre la suppression activée. | Ce contrôle vérifie si la protection contre la suppression est activée pour les clusters RDS. |
RDSCluster |
RDSCluster devrait avoir une protection contre la suppression |
| Les instances de base de données RDS devraient avoir la protection contre la suppression activée | Ce contrôle vérifie si la protection contre la suppression est activée pour vos instances de base de données RDS utilisant l'un des moteurs de base de données listés. |
RDS |
RDSInstance doit avoir une protection contre la suppression. |
| La journalisation de la base de données doit être activée. | Ce contrôle vérifie si les journaux d'Amazon RDS sont activés et envoyés à CloudWatch Logs. |
RDS |
RDSInstance devrait avoir EnabledCloudwatchLogsExports len () gt 0 |
| L'authentification IAM doit être configurée pour les instances RDS. | Ce contrôle vérifie si l'authentification IAM est activée pour une instance de base de données RDS. |
RDS |
RDSInance devrait avoir IAMDatabaseAuthenticationEnabled |
| L'authentification IAM doit être configurée pour les clusters RDS. | Ce contrôle vérifie si un cluster RDS de base de données a l’authentification IAM activée. |
RDSCluster |
RDSCluster devrait avoir IAMDatabaseAuthenticationEnabled |
| Installez les correctifs de sécurité critiques dans le mois suivant leur publication. La mise à niveau automatique des versions mineures est désactivée pour les instances RDS. | Assurez-vous que tous les composants du système et les logiciels sont protégés contre les vulnérabilités connues en installant les correctifs de sécurité AWS RDSInstance applicables. Installez les correctifs de sécurité critiques dans le mois suivant leur publication. |
RDS |
RDSInstance devrait avoir AutoMinorVersionUpgrade égal à true |
| Les clusters Amazon Aurora doivent avoir le retour arrière activé. | Ce contrôle vérifie si les clusters Amazon Aurora ont activé le retour en arrière |
RDS |
RDSCluster où Engine eq "aurora-mysql" devrait avoir BacktrackWindow > 0 |
| Les clusters de bases de données RDS doivent être configurés pour plusieurs zones de disponibilité. | Ce contrôle vérifie si la haute disponibilité est activée pour vos clusters RDS DB. |
RDSCluster |
RDSCluster devrait avoir MultiAZ égal à vrai et AvailabilityZones len() > 0 |
| Les clusters de bases de données RDS doivent être configurés pour copier les balises dans les instantanés. | Ce contrôle vérifie si les clusters de bases de données RDS sont configurés pour copier toutes les étiquettes dans les instantanés lors de la création de ces derniers. |
RDS |
RDSCluster devrait avoir CopyTagsToSnapshot |
| Les instances de base de données RDS doivent être configurées pour copier les balises en instantanés | Ce contrôle vérifie si les instances de base de données RDS sont configurées pour copier toutes les balises dans les instantanés lors de la création de ces derniers. |
RDS |
RDSInstance devrait avoir CopyTagsToSnapshot |
| Un abonnement aux notifications d’événements RDS doit être configuré pour les événements critiques du cluster | Ce contrôle vérifie l'existence d'un abonnement aux événements Amazon RDS avec notifications activées pour le type de source DBCluster et la catégorie d'événement maintenance/panne. |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq "db-cluster" et (EventCategoriesList a ("maintenance") et EventCategoriesList a ("failure")) et Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Un abonnement aux notifications d'événements RDS doit être configuré pour les événements critiques des instances de base de données. | Ce contrôle vérifie l'existence d'un abonnement aux événements Amazon RDS avec notifications activées pour le type de source DBInstance et les catégories d'événements maintenance, modification de configuration et panne. |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq "db-instance" et (EventCategoriesList a ("maintenance") et EventCategoriesList a ("failure") et EventCategoriesList a ("configuration change")) et Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Un abonnement aux notifications d’événements RDS doit être configuré pour des événements critiques de groupes de paramètres de base de données | Ce contrôle vérifie si un abonnement à un événement Amazon RDS existe avec les notifications activées pour le type de source DBParameterGroup avec catégorie d’événement de changement de configuration |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq « db-parameter-group » et EventCategoriesList has(« configuration change ») ainsi que Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Un abonnement aux notifications d'événements RDS doit être configuré pour les événements critiques des groupes de sécurité de base de données. | Ce contrôle vérifie si un abonnement à un événement Amazon RDS existe avec les notifications activées pour le type source DBSecurityGroup avec la catégorie d’événement d’échec de modification de configuration |
RDS |
AWS devrait avoir au moins un RDSEventSubscriptions avec [ SourceType eq "db-security-group" et (EventCategoriesList a ("failure") et EventCategoriesList a ("configuration change")) et Enabled et SnsTopic . Abonnements len () gt 0 ] |
| Les clusters RDS ne doivent pas utiliser le port par défaut du moteur de base de données. | Ce contrôle vérifie si le cluster RDS utilise un port autre que le port par défaut du moteur de base de données |
RDS |
RDSCluster ne devrait pas avoir l’égalisation de port 3306 |
| Autorisations d’accès et autorisations : Assurez-vous que les clusters Redshift ne sont pas accessibles au public | Les clusters de décalage vers le rouge ne doivent pas être accessibles au public. |
Redshift |
RedShiftCluster ne devrait pas avoir l'accès égal à « Public ». |
| Utilisez un chiffrement robuste et des protocoles de sécurité pour protéger les données sensibles des titulaires de cartes lors de leur transmission : l’option require_ssl est désactivée dans Redshift Cluster. | Les informations sensibles doivent être chiffrées lors de la transmission sur des réseaux publics, car il est facile et courant pour une personne malveillante d’intercepter et/ou de détourner des données pendant son transit. |
RedShift |
RedShiftCluster devrait avoir des ClusterParameterGroups avec [ ClusterParameterGroup avec [ ParameterName eq "require_ssl" et ParameterValue eq "true" ] ] |
| Assurez-vous que les instantanés automatisés sont activés pour les clusters Redshift. | Assurez-vous que les instantanés automatisés sont activés pour les clusters Redshift. |
RedShift |
RedShiftCluster devrait avoir AutomatedSnapshotRetentionPeriod gt 0 |
| Mettre en place des journaux d'audit automatisés pour tous les composants du système : Désactiver la journalisation des groupes de paramètres Redshift | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
RedShift |
RedShiftCluster devrait avoir un EQ LoggingEnabled true |
| Plan de gestion des vulnérabilités : Assurez-vous que Permettre la mise à jour de la version est définie sur oui pour le cluster Redshift | Les clusters Redshift doivent être configurés pour la mise à niveau de version afin d'éviter de manquer d'importantes mises à jour de sécurité. |
Redshift |
RedShiftCluster devrait avoir AllowVersionUpgrade |
| Les clusters Amazon Redshift devraient utiliser un routage VPC amélioré. | Ce contrôle vérifie si un cluster Amazon Redshift a activé EnhancedVpcRouting |
RedShift |
RedShiftCluster devrait avoir EnhancedVpcRouting |
| Assurez-vous que les compartiments S3 sont configurés avec l'option « Bloquer l'accès public (paramètres du compartiment) ». | Amazon S3 propose Bloquer l’accès public (paramètres du bucket) et Bloquer l’accès public (paramètres du compte) pour vous aider à gérer l’accès public aux ressources Amazon S3. Par défaut, les buckets et objets S3 sont créés avec l’accès public désactivé. Cependant, un principe IAM disposant d’autorisations S3 suffisantes peut permettre un accès public au niveau du compartiment et/ou de l’objet. Lorsqu’il est activé, Bloquer l’accès public (paramètres du bucket) empêche un bucket individuel, ainsi que ses objets contenus, de devenir accessibles au public. De même, bloquer l’accès public (paramètres du compte) empêche tous les buckets et objets contenus de devenir accessibles publiquement sur l’ensemble du compte. |
le stockage |
S3Bucket devrait avoir BlockPublicAccess. Bloquer les ACL publiques et bloquer l'accès public. Ignorer les ACL publiques et bloquer l'accès public. BloquerPolitiquePublique et BloquerAccèsPublic. Restreindre les seaux publics |
| Assurez-vous que tous les buckets S3 utilisent le chiffrement au repos | Amazon S3 propose diverses options de chiffrement gratuites ou peu coûteuses pour protéger les données au repos |
S3 |
S3Bucket ne devrait pas avoir l’égalisation DefaultEncryption « Désactivée » |
| Assurez-vous que la politique de seau S3 est configurée pour refuser les requêtes HTTP | Au niveau du compartiment Amazon S3, vous pouvez configurer les autorisations via une stratégie de compartiment, rendant ainsi les objets accessibles uniquement via HTTPS. |
S3 |
S3Bucket devrait avoir BucketPolicy avec [Instruction avec [Effect EQ « Deny » et Conditions avec [Name eq « aws :SecureTransport » et Value has (« false ») ]]] |
| Assurez-vous que S3 Bucket n’est pas accessible au public. | Assurez-vous que le compartiment S3 n'est pas accessible publiquement. |
S3 |
Le bucket S3 ne devrait pas avoir l'accès égal à « Public ». |
| Les sujets SNS doivent être chiffrés au repos en utilisant AWS KMS | Ce contrôle vérifie si un sujet SNS est chiffré au repos en utilisant AWS KMS |
SNS |
SNSTopic devrait avoir KmsMasterKeyId len () gt 0 |
| Les files d’attente Amazon SQS doivent être chiffrées au repos | Ce contrôle vérifie si les files d'attente Amazon SQS sont chiffrées au repos |
SQS |
SQSQueue devrait avoir ( KmsMasterKeyId len ( ) gt 0 ou SqsManagedSseEnabled ) |
| Les instances de notebooks SageMaker ne doivent pas avoir d'accès direct à Internet. | Ce contrôle vérifie si l'accès direct à Internet est désactivé pour une instance de notebook SageMaker. |
Compute |
SageMakerNotebookInstance devrait avoir l’égalisation DirectInternetAccess « Désactivée » |
| La rotation automatique des secrets de Secrets Manager doit être activée. | Ce contrôle vérifie si un secret stocké dans AWS Secrets Manager est configuré avec une rotation automatique |
Sécurité |
Le secret devrait avoir RotationEnabled |
| Les secrets de Secrets Manager configurés avec la rotation automatique devraient être pivotés correctement. | Ce contrôle vérifie si un secret AWS Secrets Manager a été tourné avec succès en fonction du calendrier de rotation. Le contrôle n’évalue pas les secrets qui n’ont pas configuré la rotation |
Sécurité |
Secret où RotationEnabled devrait avoir RotationOccurringAsScheduled |
| Supprimer les secrets inutilisés du gestionnaire de secrets | Ce contrôle vérifie si vos secrets ont été consultés au cours d'un nombre de jours spécifié. Si un secret n'a pas été consulté dans un délai de 90 jours, ce contrôle échoue. |
Sécurité |
Le secret doit avoir LastAccessedDate isLaterThan(-90, "days") |
| Secrets Manager Les secrets doivent être rotés dans un nombre de jours spécifié | Ce contrôle vérifie si vos secrets ont été renouvelés au moins une fois au cours des 90 derniers jours. La rotation des secrets peut vous aider à réduire le risque d'utilisation non autorisée de vos secrets dans votre compte AWS. Il peut s'agir, par exemple, d'identifiants de base de données, de mots de passe, de clés API tierces, voire de texte arbitraire. Si vous ne changez pas vos secrets pendant une longue période, ils risquent davantage d'être compromis. |
Sécurité |
Le secret devrait avoir LastRotated Date isLaterTh(-90, « jours ») |
| Les instances EC2 doivent être gérées par AWS Systems Manager | Ce contrôle vérifie si les instances EC2 arrêtées et en cours d'exécution du compte sont gérées par AWS Systems Manager. Systems Manager est un service AWS qui permet de visualiser et de contrôler l'infrastructure AWS. |
EC2 |
EC2Instance devrait avoir SSMInformation len() > 0 |
| Toutes les instances EC2 gérées par Systems Manager doivent être conformes aux exigences de mise à jour. | Ce contrôle vérifie si le statut de conformité du patch Amazon EC2 Systems Manager est CONFORME ou NON_COMPLIANT après l’installation du correctif sur l’instance. Il ne vérifie que les instances gérées par Systems Manager Patch Manager. |
EC2 |
EC2Instance où SSMInformation len() gt 0 et ComplianceSummaryItems avec [ ComplianceType eq "Patch" ] devrait avoir ComplianceSummaryItems avec [ ComplianceType eq "Patch" et NonCompliantSummary . Nombre de non-conformités égal à 0 ] |
| Les instances gérées par le Systems Manager doivent avoir un statut de conformité d’association CONFORME | Ce contrôle vérifie si le statut de conformité de l’association AWS Systems Manager est CONFORME ou NON_COMPLIANT après l’exécution de l’association sur une instance. Le contrôle passe si le statut de conformité de l’association est COMPLIANT. |
EC2 |
EC2Instance où SSMInformation len() gt 0 et ComplianceSummaryItems avec [ ComplianceType eq "Association" ] devrait avoir ComplianceSummaryItems avec [ ComplianceType eq "Association" et NonCompliantSummary . Nombre de non-conformités égal à 0 ] |
| La journalisation des ACL web globales d'AWS WAF Classic doit être activée. | Ce contrôle vérifie si la journalisation est activée sur les ACL web globales classiques du pare-feu d’applications web AWS (WAF). Cette règle est NON_COMPLIANT pour une ACL web globale, si la journalisation n’est pas activée. |
Sécurité |
WebACL devrait avoir LoggingConfiguration . LogDestinationConfigs len( ) gt 0 |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : politiques IAM avec l'effet « Autoriser » et l'action « iam:PassRole » pour tous les rôles. | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMPolicy ne devrait pas avoir d'autorisations. Instructions avec [ Action avec [ valeur égale "iam:PassRole" ] et Ressource avec [ valeur égale "*" ] ] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : politiques IAM avec l'effet « Autoriser » et l'action « sts:AssumeRole » pour tous les rôles. | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMRole ne devrait pas avoir AssumeRolePolicy. Déclaration avec [ Action EQ « sts :AssumeRole » et Principal . AWS a (« * ») ] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : listes de contrôle d'accès (ACL) des compartiments S3 avec autorisation d'accès à tous les utilisateurs | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
S3 |
S3Bucket ne devrait pas avoir d'ACL avec [ ( Permission eq "WRITE" ou Permission eq "WRITE_ACP" ou Permission eq "READ" ou Permission eq "READ_ACP" ou Permission eq "FULL_CONTROL" ) et Grantee . URI eq "http://acs.amazonaws.com/groups/global/AllUsers" ] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : listes de contrôle d'accès (ACL) des compartiments S3 avec autorisation d'accès aux utilisateurs authentifiés | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
S3 |
S3Bucket ne doit pas avoir d’ACL avec [ ( (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou Égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Tapez l’égalisation « Groupe » et Bénéficiaire. Égaliseur URI « http://acs.amazonaws.com/groups/global/AuthenticatedUsers » ] |
| Autorisations d’accès et autorisations : Assurez-vous que les clusters Redshift ne sont pas accessibles au public | Les clusters de décalage vers le rouge ne doivent pas être accessibles au public. |
Redshift |
RedShiftCluster ne devrait pas avoir l'accès égal à « Public ». |
| Autorisations d'accès : assurez-vous que les instances RDS ne possèdent pas d'instantanés accessibles publiquement. | Les instances RDS ne doivent pas avoir d'instantanés accessibles publiquement. |
RDS |
RDSInstance ne devrait pas avoir d'instantanés avec [ PubliclyAccessible ]. |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Assurez-vous que la suppression MFA est activée sur les compartiments S3. | Une fois la suppression MFA activée sur votre compartiment S3 sensible et classifié, l'utilisateur doit disposer de deux formes d'authentification. |
S3 |
S3Bucket devrait avoir BucketVersioning. Égaliseur d’état « Activé » et BucketVersioning. Égaliseur MFADelete « Activé » |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : Assurez-vous que le chiffrement RDS est activé | Assurez-vous que le chiffrement RDS est activé. |
RDS |
RDSInstance devrait avoir StorageEncrypted égal à true |
| Les données au repos sont protégées : Assurez-vous que les instantanés d’instance RDS sont chiffrés | Assurez-vous que les instantanés des instances RDS sont chiffrés. |
RDS |
RDSInance devrait avoir tous les instantanés avec [ Égalisation chiffrée vraie ] |
| Les données au repos sont protégées : assurez-vous que les tables DynamoDB sont chiffrées au repos. | Assurez-vous que les tables DynamoDB sont chiffrées au repos. |
Dynamo |
DynamoDBTable doit avoir SSEDescription. Statut égal à « ACTIVÉ » |
| Rendre le PAN illisible où qu'il soit stocké : Cluster Redshift non chiffré au repos | Rendez le PAN illisible partout où il est stocké (y compris sur supports numériques portables, supports de sauvegarde et dans les journaux) en utilisant l’une des approches suivantes : hachages unidirectionnels basés sur une cryptographie forte (le hachage doit correspondre à l’ensemble du PAN). ; Troncature (le hachage ne peut pas être utilisé pour remplacer le segment tronqué de PAN). ; Index tokens et pads (pads doivent être stockés en toute sécurité). ; Cryptographie robuste avec processus et procédures de gestion des clés associés. Remarque : Il est relativement facile pour une personne malveillante de reconstituer la date PAN originale si elle a accès à la fois à la version tronquée et à la version hachée d'un PAN. Lorsqu'une entité possède des versions hachées et tronquées d'un même PAN, des contrôles supplémentaires doivent être mis en place pour empêcher leur corrélation et la reconstruction du PAN original. |
RedShift |
RedShiftCluster devrait avoir un égaliseur chiffré vrai |
| Les données en transit sont protégées : assurez-vous que les anciennes politiques SSL/TLS ne sont pas utilisées avec les équilibreurs de charge élastiques. | Les anciennes politiques SSL/TLS ne doivent pas être utilisées avec la politique de sécurité d'Elastic Load Balancer. |
ElasticLoadBalancer |
ElasticLoadBalancer devrait avoir SslPolicy dans ( « ELBSecurityPolicy-2016-08 », « ELBSecurityPolicy-TLS-1-2-2017-01 », « ELBSecurityPolicy-TLS-1-1-2017-01 ») |
| Les données en transit sont protégées : assurez-vous que le chiffrement en transit est activé pour les fonctions lambda à l’aide de variables d’environnement. | Assurez-vous que le chiffrement en transit est activé pour les fonctions Lambda à l'aide de variables d'environnement. |
Lambda |
Lambda où ( Environment len() > 0 ) devrait avoir KMSKey . Activé |
| Utilisez un chiffrement robuste et des protocoles de sécurité pour protéger les données sensibles des titulaires de cartes lors de leur transmission : l’option require_ssl est désactivée dans Redshift Cluster. | Les informations sensibles doivent être chiffrées lors de la transmission sur des réseaux publics, car il est facile et courant pour une personne malveillante d’intercepter et/ou de détourner des données pendant son transit. |
RedShift |
RedShiftCluster devrait avoir des ClusterParameterGroups avec [ ClusterParameterGroup avec [ ParameterName eq "require_ssl" et ParameterValue eq "true" ] ] |
| Sauvegardes des informations : assurez-vous que la période de conservation des sauvegardes est supérieure ou égale à 30 jours. | Définir la période de conservation des sauvegardes d'une instance RDS à une valeur supérieure ou égale à 30 garantit la sécurité des données. |
RDS |
RDSInance ne devrait pas avoir de période de rétention de sauvegarde lt 30 |
| Sauvegarde des données : assurez-vous que les tables DynamoDB sont sauvegardées. | Assurez-vous que les tables DynamoDB sont sauvegardées. |
Dynamo |
DynamoDBTable devrait avoir BackedUp égal à true |
| Sauvegardes des informations : Assurez-vous que les tables DynamoDB activent la récupération à un moment donné | Assurez-vous que la restauration à un point précis dans le temps est activée pour les tables DynamoDB. |
Dynamo |
DynamoDBTable devrait avoir PointInTimeRecovery égal à "ENABLED" |
| Installez les correctifs de sécurité critiques dans le mois suivant leur publication. La mise à niveau automatique des versions mineures est désactivée pour les instances RDS. | Assurez-vous que tous les composants du système et les logiciels sont protégés contre les vulnérabilités connues en installant les correctifs de sécurité AWS RDSInstance applicables. Installez les correctifs de sécurité critiques dans le mois suivant leur publication. |
RDS |
RDSInstance devrait avoir AutoMinorVersionUpgrade égal à true |
| Plan de gestion des vulnérabilités : Assurez-vous que Permettre la mise à jour de la version est définie sur oui pour le cluster Redshift | Les clusters Redshift doivent être configurés pour la mise à niveau de version afin d'éviter de manquer d'importantes mises à jour de sécurité. |
Redshift |
RedShiftCluster devrait avoir AllowVersionUpgrade |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Assurez-vous que le bucket S3 pour lequel les journaux CloudTrail ne sont pas accessibles au public | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. Accéder à l’égaliseur « Public » |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Mise en place de journaux d'audit automatisés pour tous les composants du système : CloudTrail – Absence de journalisation globale des événements de service | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
CloudTrail |
CloudTrail devrait avoir l’égalisation GlobalServiceEvents vraie |
| Implémenter des traces d’audit automatisées pour tous les composants système : absence de journalisation pour l’accès aux buckets S3 | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 |
Le compartiment S3 doit avoir la journalisation activée. |
| Mettre en place des journaux d'audit automatisés pour tous les composants du système : les compartiments S3 ne bénéficient pas d'un système de versionnage. | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 |
S3Bucket ne devrait pas avoir de versionnage de compartiment. Statut égal à « Suspendu » ou à BucketVersioning. Statut égal à « Désactivé » |
| Mettre en place des journaux d'audit automatisés pour tous les composants du système : Désactiver la journalisation des groupes de paramètres Redshift | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
RedShift |
RedShiftCluster devrait avoir un EQ LoggingEnabled true |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Examinez les règles de pare-feu et de routeur au moins tous les six mois : nombreux groupes de sécurité EC2 inutilisés | Établir et mettre en œuvre des normes de configuration des pare-feu et des routeurs incluant l’obligation de revoir les règles du pare-feu et du routeur au moins tous les six mois. |
EC2 |
SecurityGroup où Name neq « default » doit avoir NetworkInterfaces len ( ) neq 0 |
| Limitez le trafic entrant et sortant à celui nécessaire à l'environnement des données des titulaires de cartes, et interdisez spécifiquement tout autre trafic : n'utilisez pas le groupe de sécurité par défaut. | Construisez des configurations de pare-feu et de routeur qui restreignent les connexions entre des réseaux non fiables et tout composant système dans l’environnement de données du titulaire de la carte. Note : Un réseau non fiable est tout réseau externe aux réseaux appartenant à l’entité examinée, et/ou qui est hors de la capacité de contrôle ou de gestion de l’entité |
EC2 |
NetworkInterface ne doit pas avoir de groupes de sécurité avec [ Nom eq "default" ]. |
| N’autorisez pas le trafic sortant non autorisé depuis l’environnement de données du titulaire de la carte vers Internet : l’Internet sortant sans restriction n’est pas autorisé. | Construisez des configurations de pare-feu et de routeur qui restreignent les connexions entre des réseaux non fiables et tout composant système dans l’environnement de données du titulaire de la carte. Note : Un réseau non fiable est tout réseau externe aux réseaux appartenant à l’entité examinée, et/ou qui est hors de la capacité de contrôle ou de gestion de l’entité |
EC2 |
NetworkInterface ne doit pas avoir de groupes de sécurité avec [ OutboundRules avec [ IPv6Ranges avec [ IPv6 dans ( "::/0 " ) ] ou IPRanges avec [ IP dans ( "0.0.0.0/0 " ) ] ] ]. |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucune règle n’autorise tout le trafic entrant dans la liste de contrôle d’accès réseau par défaut. | Les ACL réseau sont conçus pour fournir une couche secondaire de sécurité. Ajouter une règle permettant tout le trafic réseau (tous les protocoles, IP et sources) avant toute règle de refus va à l’encontre de l’objectif des ACL réseau. |
EC2 |
NetworkACL ne doit pas avoir IsDefault égal à true et des règles avec [ RuleAction égal à "allow" et Protocol égal à "-1" et Egress égal à False et CidrBlock égal à 0.0.0.0/0 ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucune règle n’autorise tout le trafic entrant dans la liste de contrôle d’accès réseau (ACL) associée à un sous-réseau. | Les ACL réseau sont conçus pour fournir une couche secondaire de sécurité. Ajouter une règle autorisant tout le trafic réseau (tous protocoles, adresses IP et sources) avant toute règle de refus va à l'encontre du but des listes de contrôle d'accès réseau. Les listes de contrôle d'accès réseau associées aux sous-réseaux et aux VPC ne doivent pas autoriser tout le trafic entrant. |
EC2 |
NetworkACL où Subnets len() gt 0 ne doit pas avoir de règles avec [ Egress eq False et RuleAction eq "allow" et Protocol eq "-1" et CidrBlock eq 0.0.0.0/0 ] |
| Protection des communications et du réseau de contrôle : Assurez-vous que les instances RDS ne sont pas dans des sous-réseaux publics | Assurez-vous que les instances RDS ne sont pas dans les sous-réseaux publics. |
RDS |
RDSInstance ne devrait pas avoir l'accès égal à « Public ». |
| Mettre en place un plan de réponse aux incidents : absence de déploiement multi-AZ pour les instances RDS | Élaborez le plan d’intervention à mettre en œuvre en cas de faille du système. Assurez-vous que le plan prend en compte au minimum les éléments suivants : les rôles, responsabilités, ainsi que les stratégies de communication et de contact en cas de compromis, y compris la notification des marques de paiement, au minimum. ; Procédures spécifiques d’intervention en cas d’incident. ; Procédures de reprise et de continuité de l’entreprise. ; Processus de sauvegarde des données. ; Analyse des exigences légales pour signaler des compromissions. ; Couverture et réponses de tous les composants critiques du système. ; Référence ou inclusion des procédures de réponse aux incidents par les marques de paiement |
RDS |
RDSInstance devrait avoir MultiAZ égal à vrai |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Examinez les règles de pare-feu et de routeur au moins tous les six mois : nombreux groupes de sécurité EC2 inutilisés | Établir et mettre en œuvre des normes de configuration des pare-feu et des routeurs incluant l’obligation de revoir les règles du pare-feu et du routeur au moins tous les six mois. |
EC2 |
SecurityGroup où Name neq « default » doit avoir NetworkInterfaces len ( ) neq 0 |
| Limitez le trafic entrant et sortant à celui nécessaire à l'environnement des données des titulaires de cartes, et interdisez spécifiquement tout autre trafic : n'utilisez pas le groupe de sécurité par défaut. | Construisez des configurations de pare-feu et de routeur qui restreignent les connexions entre des réseaux non fiables et tout composant système dans l’environnement de données du titulaire de la carte. Note : Un réseau non fiable est tout réseau externe aux réseaux appartenant à l’entité examinée, et/ou qui est hors de la capacité de contrôle ou de gestion de l’entité |
EC2 |
NetworkInterface ne doit pas avoir de groupes de sécurité avec [ Nom eq "default" ]. |
| Le trafic Internet entrant n'est pas autorisé. | Construisez des configurations de pare-feu et de routeur qui restreignent les connexions entre des réseaux non fiables et tout composant système dans l’environnement de données du titulaire de la carte. Remarque : Un réseau non fiable est tout réseau extérieur aux réseaux appartenant à l'entité examinée et/ou qui échappe au contrôle ou à la gestion de cette entité. Cette règle vérifie spécifiquement les adresses IP publiques dans les règles entrantes du groupe de sécurité. |
EC2 |
NetworkInterface ne doit pas avoir de groupes de sécurité avec [ InboundRules avec [ IPv6Ranges avec [ IPv6 est public ( ) ] ou IPRanges avec [ IP est public ( ) ] ] ]. |
| Les connexions entrantes sur tous les ports et protocoles sont interdites. | Construisez des configurations de pare-feu et de routeur qui restreignent les connexions entre des réseaux non fiables et tout composant système dans l’environnement de données du titulaire de la carte. Remarque : Un réseau non fiable est tout réseau extérieur aux réseaux appartenant à l'entité examinée et/ou qui échappe au contrôle ou à la gestion de cette entité. Cette règle vérifie spécifiquement la présence d'une règle de groupe de sécurité entrante avec tous les ports ouverts. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ Protocol eq "-1" et ( FromPort eq 0 et ToPort eq 65535 ) ] |
| N’autorisez pas le trafic sortant non autorisé depuis l’environnement de données du titulaire de la carte vers Internet : l’Internet sortant sans restriction n’est pas autorisé. | Construisez des configurations de pare-feu et de routeur qui restreignent les connexions entre des réseaux non fiables et tout composant système dans l’environnement de données du titulaire de la carte. Note : Un réseau non fiable est tout réseau externe aux réseaux appartenant à l’entité examinée, et/ou qui est hors de la capacité de contrôle ou de gestion de l’entité |
EC2 |
NetworkInterface ne doit pas avoir de groupes de sécurité avec [ OutboundRules avec [ IPv6Ranges avec [ IPv6 dans ( "::/0 " ) ] ou IPRanges avec [ IP dans ( "0.0.0.0/0 " ) ] ] ]. |
| Rendre le PAN illisible partout où il est stocké : politique de sauvegarde RDS faible | Rendez le PAN illisible partout où il est stocké (y compris sur supports numériques portables, supports de sauvegarde et dans les journaux) en utilisant l’une des approches suivantes : hachages unidirectionnels basés sur une cryptographie forte (le hachage doit correspondre à l’ensemble du PAN). ; Troncature (le hachage ne peut pas être utilisé pour remplacer le segment tronqué de PAN). ; Index tokens et pads (pads doivent être stockés en toute sécurité). ; Cryptographie robuste avec processus et procédures de gestion des clés associés. Remarque : Il est relativement facile pour une personne malveillante de reconstituer la date PAN originale si elle a accès à la fois à la version tronquée et à la version hachée d'un PAN. Lorsqu'une entité possède des versions hachées et tronquées d'un même PAN, des contrôles supplémentaires doivent être mis en place pour empêcher leur corrélation et la reconstruction du PAN original. |
RDS |
RDSInstance doit avoir BackupRetentionPeriod différent de 0 |
| Rendre le PAN illisible où qu'il soit stocké : Cluster Redshift non chiffré au repos | Rendez le PAN illisible partout où il est stocké (y compris sur supports numériques portables, supports de sauvegarde et dans les journaux) en utilisant l’une des approches suivantes : hachages unidirectionnels basés sur une cryptographie forte (le hachage doit correspondre à l’ensemble du PAN). ; Troncature (le hachage ne peut pas être utilisé pour remplacer le segment tronqué de PAN). ; Index tokens et pads (pads doivent être stockés en toute sécurité). ; Cryptographie robuste avec processus et procédures de gestion des clés associés. Remarque : Il est relativement facile pour une personne malveillante de reconstituer la date PAN originale si elle a accès à la fois à la version tronquée et à la version hachée d'un PAN. Lorsqu'une entité possède des versions hachées et tronquées d'un même PAN, des contrôles supplémentaires doivent être mis en place pour empêcher leur corrélation et la reconstruction du PAN original. |
RedShift |
RedShiftCluster devrait avoir un égaliseur chiffré vrai |
| Documenter et mettre en œuvre intégralement tous les processus et procédures de gestion des clés cryptographiques utilisées pour le chiffrement des données des titulaires de cartes : absence de rotation des clés d’accès | Les changements de clé cryptographiques pour les clés ayant atteint la fin de leur cryptopériode (par exemple, après qu’une période définie s’est écoulée et/ou après qu’une certaine quantité de texte chiffré a été produite par une clé donnée), telle que définie par l’AWS ou le propriétaire de la clé, et selon les meilleures pratiques et directives du secteur (par exemple, Publication spéciale du NIST 800-57). |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and CreatedTime isBeforeThan ( -90, « days ») ] |
| Utilisez un chiffrement robuste et des protocoles de sécurité pour protéger les données sensibles des titulaires de cartes lors de leur transmission : l’option require_ssl est désactivée dans Redshift Cluster. | Les informations sensibles doivent être chiffrées lors de la transmission sur des réseaux publics, car il est facile et courant pour une personne malveillante d’intercepter et/ou de détourner des données pendant son transit. |
RedShift |
RedShiftCluster devrait avoir des ClusterParameterGroups avec [ ClusterParameterGroup avec [ ParameterName eq "require_ssl" et ParameterValue eq "true" ] ] |
| Installez les correctifs de sécurité critiques dans le mois suivant leur publication. La mise à niveau automatique des versions mineures est désactivée pour les instances RDS. | Assurez-vous que tous les composants du système et les logiciels sont protégés contre les vulnérabilités connues en installant les correctifs de sécurité AWS RDSInstance applicables. Installez les correctifs de sécurité critiques dans le mois suivant leur publication. |
RDS |
RDSInstance devrait avoir AutoMinorVersionUpgrade égal à true |
| Restreindre l’accès aux données des titulaires de carte : Politiques IAM avec effet en tant que Permis et Action avec iam :PassRole pour tous les rôles | Limiter l'accès aux composants du système et aux données des titulaires de cartes aux seules personnes dont le travail exige un tel accès. |
IAM |
IAMRole ne devrait pas avoir de politiques. Conformément à [ PolicyDocument . Instructions avec [ Action avec [ valeur égaliseur « iam :PassRole » ]]] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : politiques IAM avec l'effet « Autoriser » et l'action « iam:PassRole » pour tous les rôles. | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMPolicy ne devrait pas avoir d'autorisations. Instructions avec [ Action avec [ valeur égale "iam:PassRole" ] et Ressource avec [ valeur égale "*" ] ] |
| Assurez-vous que la suppression MFA est activée sur les compartiments S3. | Une fois la suppression MFA activée sur votre compartiment S3 sensible et classifié, l'utilisateur doit disposer de deux formes d'authentification. |
S3 |
S3Bucket devrait avoir BucketVersioning. Égaliseur d’état « Activé » et BucketVersioning. Égaliseur MFADelete « Activé » |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : politiques IAM avec l'effet « Autoriser » et l'action « sts:AssumeRole » pour tous les rôles. | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMRole ne devrait pas avoir AssumeRolePolicy. Déclaration avec [ Action EQ « sts :AssumeRole » et Principal . AWS a (« * ») ] |
| Mettre en place un ou plusieurs systèmes de contrôle d’accès : Compte utilisateur sans interface IAM avec mot de passe | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMUser ne devrait pas avoir (au moins une clé d’accès avec [ égaliseur actif vrai ] et un mot de passe . Égaliseur activé Vrai :) |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : listes de contrôle d'accès (ACL) des compartiments S3 avec autorisation d'accès à tous les utilisateurs | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
S3 |
S3Bucket ne devrait pas avoir d'ACL avec [ ( Permission eq "WRITE" ou Permission eq "WRITE_ACP" ou Permission eq "READ" ou Permission eq "READ_ACP" ou Permission eq "FULL_CONTROL" ) et Grantee . URI eq "http://acs.amazonaws.com/groups/global/AllUsers" ] |
| Mettre en place un ou plusieurs systèmes de contrôle d'accès : listes de contrôle d'accès (ACL) des compartiments S3 avec autorisation d'accès aux utilisateurs authentifiés | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
S3 |
S3Bucket ne doit pas avoir d’ACL avec [ ( (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou Égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Tapez l’égalisation « Groupe » et Bénéficiaire. Égaliseur URI « http://acs.amazonaws.com/groups/global/AuthenticatedUsers » ] |
| Établir un ou plusieurs systèmes de contrôle d’accès : Politiques IAM avec effet Permettre et NotActions | Mettre en place un ou plusieurs systèmes de contrôle d'accès pour les composants du système, qui restreignent l'accès en fonction des besoins d'information de l'utilisateur et sont configurés pour « refuser tout » sauf autorisation spécifique. |
IAM |
IAMPolicy ne devrait pas avoir d'autorisations. Instructions avec [ Effect eq "Allow" et ( NotAction len ( ) gt 0 ou Action avec [ value eq "*" ] ) ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Supprimer/désactiver les comptes utilisateurs inactifs dans les 90 jours | Définir et mettre en œuvre des politiques et des procédures pour assurer une gestion appropriée de l'identification des utilisateurs non-consommateurs et des administrateurs sur tous les composants du système. |
IAM |
Je suis un peu impuissant où l’égalisation RootUser faux ne devrait pas avoir ( ( Mot de passe . Activé et mot de passe. LastUsedTime estAntérieureÀ ( -90, « jours » ) ) ou ( Clé d’accès avec [ Active et LastUsedTime estAntérieure à ( -90, « jours » ) ) ) ) |
| Assurer une gestion adéquate de l’authentification des utilisateurs pour les utilisateurs et administrateurs non consommateurs : Politique de mot de passe faible d’IAM | Les mots de passe/phrases de passe doivent respecter les critères suivants : Exigent une longueur minimale d’au moins sept caractères. Contiennent à la fois des caractères numériques et alphabétiques. Alternativement, les mots de passe/phrases secrètes doivent avoir une complexité et une force au moins équivalentes aux paramètres spécifiés ci-dessus |
IAM |
IAMPasswordPolicy devrait avoir RequireUppercaseCharacters et RequireLowercaseCharacters et (MinimumPasswordLength gte 8 ou RequireSymbols ) |
| Sécurisez tous les accès administratifs individuels hors console et tous les accès distants à l'aide de l'authentification multifacteurs : les utilisateurs IAM ne disposent pas de l'authentification multifacteurs. | Intégrer une authentification multi-facteurs pour tous les accès réseau distants (utilisateur et administrateur, y compris les accès tiers pour le support ou la maintenance) provenant de l’extérieur du réseau de l’entité |
IAM |
IAMUser où Mot de passe . L’égalisation active true devrait avoir l’égalisation MFAActive true |
| Mise en place de journaux d'audit automatisés pour tous les composants du système : CloudTrail – Absence de journalisation globale des événements de service | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
CloudTrail |
CloudTrail devrait avoir l’égalisation GlobalServiceEvents vraie |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Implémenter des traces d’audit automatisées pour tous les composants système : absence de journalisation pour l’accès aux buckets S3 | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 |
Le compartiment S3 doit avoir la journalisation activée. |
| Mettre en place des journaux d'audit automatisés pour tous les composants du système : les compartiments S3 ne bénéficient pas d'un système de versionnage. | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 |
S3Bucket ne devrait pas avoir de versionnage de compartiment. Statut égal à « Suspendu » ou à BucketVersioning. Statut égal à « Désactivé » |
| Mettre en place des journaux d'audit automatisés pour tous les composants du système : Désactiver la journalisation des groupes de paramètres Redshift | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
RedShift |
RedShiftCluster devrait avoir un EQ LoggingEnabled true |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Mettre en place un plan de réponse aux incidents : absence de déploiement multi-AZ pour les instances RDS | Élaborez le plan d’intervention à mettre en œuvre en cas de faille du système. Assurez-vous que le plan prend en compte au minimum les éléments suivants : les rôles, responsabilités, ainsi que les stratégies de communication et de contact en cas de compromis, y compris la notification des marques de paiement, au minimum. ; Procédures spécifiques d’intervention en cas d’incident. ; Procédures de reprise et de continuité de l’entreprise. ; Processus de sauvegarde des données. ; Analyse des exigences légales pour signaler des compromissions. ; Couverture et réponses de tous les composants critiques du système. ; Référence ou inclusion des procédures de réponse aux incidents par les marques de paiement |
RDS |
RDSInstance devrait avoir MultiAZ égal à vrai |
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |
| Nom | Description | Service | Rule |
|---|---|---|---|
| Identités et identifiants : Évitez l’utilisation du compte « racine » : vérifiez les connexions récentes. | Le compte « racine » a un accès illimité à toutes les ressources du compte AWS. Il est fortement recommandé d’éviter l’utilisation de ce compte. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True ne devrait pas avoir de mot de passe. LastUsedTime estLaterThan(-1, "jours") |
| Authentification : assurez-vous que l’authentification multifacteurs (MFA) est activée pour tous les utilisateurs IAM disposant d’un mot de passe de console. | L’authentification multifacteur (MFA) ajoute une couche supplémentaire de protection en plus d’un nom d’utilisateur et d’un mot de passe. Avec la MFA activée, lorsqu’un utilisateur se connecte à un site AWS il lui demande son nom d’utilisateur et son mot de passe ainsi qu’un code d’authentification issu de son périphérique AWS MFA. Il est recommandé d’activer la MFA pour tous les comptes ayant un mot de passe console. |
IAM |
IAMUser où ( RootUser eq false et Password . L'activation (eq true) devrait avoir MFAActive (eq true). |
| Identités et identifiants : assurez-vous que les mots de passe inutilisés depuis 90 jours ou plus sont désactivés. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver tous les mots de passe inutilisés depuis 90 jours ou plus. |
IAM |
IAMUser où RootUser eq False ne devrait pas avoir (Password . Activé et mot de passe. LastUsedTime est antérieur à ( -90, "jours" ) ) |
| Accès à distance : assurez-vous que les clés d’accès inutilisées pendant 90 jours ou plus sont désactivées. | Les utilisateurs d'AWS IAM peuvent accéder aux ressources AWS à l'aide de différents types d'identifiants, tels que des mots de passe ou des clés d'accès. Il est recommandé de désactiver toutes les clés d’accès qui ont été inutilisées pendant 90 jours ou plus. |
IAM |
L'utilisateur IAMUser où RootUser est égal à False ne devrait pas avoir de clé d'accès avec [ Active et LastUsedTime isEarlierThan ( -90, "days" ) ] |
| Accès à distance : Assurez-vous que les clés d’accès sont changées tous les 90 jours ou moins. | Les clés d'accès se composent d'un ID de clé d'accès et d'une clé d'accès secrète, qui servent à signer les requêtes programmatiques que vous adressez à AWS. Les utilisateurs d'AWS ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques à AWS depuis l'interface de ligne de commande AWS (AWS CLI), les outils pour Windows PowerShell, les kits de développement logiciel AWS (SDK) ou des appels HTTP directs à l'aide des API des services AWS individuels. Il est recommandé de faire tourner régulièrement toutes les clés d'accès. |
IAM |
IAMUser ne devrait pas avoir AccessKey avec [ Active and LastRotatedTime isEarlier Than ( -90 , « days ») ] |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite au moins une lettre majuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre majuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireUppercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM exige au moins une lettre minuscule. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mot de passe exige au moins une lettre minuscule. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireLowercaseCharacters. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un symbole. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un symbole. |
IAM |
La stratégie IAMPasswordPolicy devrait avoir les propriétés Configured et RequireSymbols. |
| Identités et informations d'identification : assurez-vous que la politique de mot de passe IAM exige au moins un chiffre. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que le mot de passe soit composé de différents ensembles de caractères. Il est recommandé que la politique de mots de passe exige au moins un chiffre. |
IAM |
IAMPasswordPolicy devrait avoir Configuré et ExigeNumbers |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM nécessite une durée minimale de 14 mots ou plus. | Les politiques de mot de passe servent en partie à faire respecter les exigences de complexité des mots de passe. Les politiques de mot de passe IAM peuvent être utilisées pour garantir que les mots de passe ont une longueur minimale donnée. Il est recommandé que la politique de mots de passe exige une longueur minimale de 14 caractères. |
IAM |
La stratégie de mot de passe IAMPasswordPolicy doit avoir une valeur configurée et une longueur de mot de passe minimale supérieure ou égale à 14. |
| Identités et informations d'identification : assurez-vous que la politique de mots de passe IAM empêche la réutilisation des mots de passe. | Les politiques de mot de passe IAM peuvent empêcher la réutilisation d'un même mot de passe par un même utilisateur. Il est recommandé que la politique de mots de passe empêche la réutilisation des mots de passe. |
IAM |
La stratégie IAMPasswordPolicy doit être configurée avec PasswordReusePrevention >= 24. |
| Identités et identifiants : Assurez-vous que la politique de mot de passe de l’IAM expire dans les 90 jours ou moins. | Les politiques de mot de passe IAM peuvent exiger que les mots de passe soient tournés ou expirés après un certain nombre de jours. Il est recommandé que la politique de mot de passe expire après 90 jours ou moins. |
IAM |
IAMPasswordPolicy devrait avoir configuré et expiréMots de passe et MaxPasswordAge |
| Accès à distance : assurez-vous qu’aucune clé d’accès au compte racine n’existe. | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. Les clés d’accès AWS fournissent un accès programmatique à un compte AWS donné. Il est recommandé de supprimer toutes les clés d’accès associées au compte root. |
IAM |
Je suis pas un expert où l’égalisation RootUser True ne devrait pas avoir AccessKey avec [ Égaliseur actif Vrai ] |
| Authentification : Assurez-vous que la MFA est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. |
IAM |
L'utilisateur IAMUser où RootUser est égal à True devrait avoir MFAActive égal à True |
| Authentification : Assurez-vous que la MFA matérielle est activée pour le compte « racine ». | Le compte racine est l’utilisateur le plus privilégié dans un compte AWS. L'authentification multifacteur (MFA) ajoute une couche de protection supplémentaire en plus du nom d'utilisateur et du mot de passe. Lorsque l'authentification multifacteur est activée, lorsqu'un utilisateur se connecte à un site Web AWS, il lui sera demandé son nom d'utilisateur et son mot de passe, ainsi qu'un code d'authentification provenant de son périphérique AWS MFA. Pour le niveau 2, il est recommandé de protéger le compte racine avec une authentification multifacteur matérielle. |
IAM |
Je suis pas un expert où l’égalisation RootUser True devrait avoir l’égalisation MFAActive true et MFADevices. Physique len ( ) gt 0 |
| Autorisations d’accès et autorisations : Assurez-vous que les politiques IAM ne sont attachées qu’aux groupes ou rôles. | Par défaut, les utilisateurs, groupes et rôles IAM n'ont pas accès aux ressources AWS. Les politiques IAM sont le moyen par lequel des privilèges sont accordés aux utilisateurs, aux groupes ou aux rôles. Il est recommandé d'appliquer les politiques IAM directement aux groupes et aux rôles, mais pas aux utilisateurs. |
IAM |
IAMUser devrait avoir (Politiques. Géré len ( ) égalisation 0 et politiques. Inline len ( ) EQ 0 ) |
| Accès distant : ne configurez pas de clés d’accès lors de la configuration initiale des utilisateurs IAM disposant d’un mot de passe de console. | La console AWS met par défaut la case à cocher pour créer des clés d’accès comme activée. Cela entraîne la génération inutile de nombreuses clés d’accès. En plus des accréditations inutiles, cela génère aussi un travail de gestion inutile lors de l’audit et de la rotation de ces clés. |
IAM |
Je suis le cas où le mot de passe ? L’égalisation true activée ne devrait pas avoir AccessKey avec [ Active and CreatedByDefault ] |
| Autorisations d'accès et permissions : Veillez à ne pas créer de politiques IAM autorisant des privilèges d'administration complets « *:* ». | Les politiques IAM sont le moyen par lequel les privilèges sont accordés aux utilisateurs, groupes ou rôles. Il est recommandé et considéré comme un conseil de sécurité standard d’accorder le moindre privilège — c’est-à-dire n’accorder que les autorisations requises pour accomplir une tâche. Déterminez ce que les utilisateurs doivent faire, puis élaborez des politiques permettant aux utilisateurs d’effectuer uniquement ces tâches, au lieu de leur accorder des privilèges administratifs complets. |
IAM |
IAMPolicy ne devrait pas avoir de permissions. Instructions avec [ Action avec [ valeur eq "*" ] et Ressource avec [ valeur eq "*" ] et Effet eq "Autoriser" ] et ( AttachedEntities . Groupes len ( ) gt 0 ou AttachedEntities . Rôles len ( ) gt 0 ou AttachedEntities . Utilisateurs len ( ) gt 0 ) |
| Enregistrements d’audit/journal : Assurez-vous que CloudTrail est activé. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel de l'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail fournit un historique des appels d'API AWS pour un compte, y compris les appels d'API effectués via la console de gestion, les SDK, les outils en ligne de commande et les services AWS de niveau supérieur (tels que CloudFormation). |
CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ MultiRegionTrailEnabled et LoggingEnabled EQ True ] |
| Sécuriser les traces d’audit pour qu’elles ne puissent pas être modifiées : les fichiers journaux CloudTrail manquent de validation d’intégrité | Utilisez la surveillance de l'intégrité des fichiers ou la détection des modifications sur les journaux CloudTrail pour vous assurer que les données de journal existantes ne peuvent pas être modifiées sans générer d'alertes (bien que l'ajout New données ne doive pas provoquer d'alerte). |
CloudTrail |
CloudTrail devrait avoir la validation des fichiers journaux activée. |
| Enregistrements d'audit/de journalisation : assurez-vous que le compartiment S3 dans lequel CloudTrail enregistre les journaux n'est pas accessible publiquement. | CloudTrail enregistre un enregistrement de chaque appel API effectué dans votre compte AWS. Ces fichiers journaux sont stockés dans un bucket S3. Il est recommandé que la politique des buckets ou la liste de contrôle d’accès (ACL) s’applique au bucket S3 que CloudTrail exploite empêche l’accès public aux logs CloudTrail |
S3 CloudTrail |
CloudTrail ne devrait pas avoir S3Bucket. ACL avec [ (Égaliseur de permission « WRITE » ou Égaliseur de permission « WRITE_ACP » ou Égaliseur de permission « READ » ou égaliseur de permission « READ_ACP » ou égaliseur de permission « FULL_CONTROL ») et Concessionnaire. Égalisation URI « http://acs.amazonaws.com/groups/global/AllUsers » ] ou S3Bucket. BucketPolicy avec [ Instruction avec [ Effect EQ « Allow » et Principal avec [ value eq « * » ] et Conditions len ( ) égalisation 0 ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous que les journaux CloudTrail sont intégrés à CloudWatch Logs. | AWS CloudTrail est un service web qui enregistre les appels d'API AWS effectués dans un compte AWS donné. Les informations enregistrées comprennent l'identité de l'appelant de l'API, l'heure de l'appel d'API, l'adresse IP source de l'appelant de l'API, les paramètres de la requête et les éléments de réponse renvoyés par le service AWS. CloudTrail utilise Amazon S3 pour le stockage et la distribution des fichiers journaux, ce qui garantit leur stockage durable. En plus de la capture des journaux CloudTrail dans un compartiment S3 spécifié pour une analyse à long terme, une analyse en temps réel peut être effectuée en configurant CloudTrail pour envoyer les journaux à CloudWatch Logs. Pour un journal d'activité activé dans toutes les régions d'un compte, CloudTrail envoie les fichiers journaux de toutes ces régions à un groupe de journaux CloudWatch Logs. Il est recommandé d'envoyer les journaux CloudTrail à CloudWatch Logs. |
CloudTrail |
CloudTrail devrait avoir un LogGroup. Date de création > 0 |
| Enregistrements d’audit/journal : Assurez-vous que AWS Config est activé dans toutes les régions | AWS Config est un service web qui assure la gestion de la configuration des ressources AWS prises en charge au sein de votre compte et vous fournit des fichiers journaux. Les informations enregistrées comprennent l'élément de configuration (ressource AWS), les relations entre les éléments de configuration (ressources AWS) et toutes les modifications de configuration entre les ressources. L'historique des éléments de configuration AWS enregistré par AWS Config permet l'analyse de sécurité, le suivi des modifications de ressources et l'audit de conformité. Il est recommandé d'activer AWS Config dans toutes les régions. |
Configuration CloudTrail |
AWS devrait avoir ( ConfigRecorders avec [ Status et RecordingGroup . TousPriseEnCharge ] ) et ConfigDeliveryChannels avec [ StreamDelivery . Dernière réussite et historique des livraisons. Dernier succès ] |
| Implémentez des traces d’audit automatisées pour tous les composants système : CloudTrail - Manque de journalisation des accès API | Implémenter des traces d’audit automatisées pour tous les composants du système afin de reconstituer les événements suivants : Tous les accès individuels des utilisateurs aux données des titulaires de carte ; Toutes les actions entreprises par un individu disposant de privilèges fondamentaux ou administratifs ; Accès à toutes les traces d’audit ; Tentatives d’accès logiques invalides ; Utilisation et modifications des mécanismes d’identification et d’authentification ; Initialisation, arrêt ou mise en pause des journaux d’audit ; Création et suppression d’objets au niveau système. |
S3 CloudTrail |
CloudTrail devrait avoir S3Bucket. LoggingEnabled |
| Enregistrements d’audit/journaux : Assurez-vous que les journaux CloudTrail sont chiffrés au repos à l’aide des CMK KMS | AWS CloudTrail est un service web qui enregistre les appels d'API AWS pour un compte et met ces journaux à la disposition des utilisateurs et des ressources conformément aux politiques IAM. AWS Key Management Service (KMS) est un service géré qui permet de créer et de contrôler les clés de chiffrement utilisées pour chiffrer les données du compte, et utilise des modules de sécurité matériels (HSM) pour protéger la sécurité des clés de chiffrement. Les journaux CloudTrail peuvent être configurés pour tirer parti du chiffrement côté serveur (SSE) et des clés maîtres créées par le client KMS (CMK) afin de protéger davantage les journaux CloudTrail. Il est recommandé de configurer CloudTrail pour utiliser SSE-KMS. |
CloudTrail |
CloudTrail devrait avoir une clé KMS. Activé |
| Les données au repos sont protégées : assurez-vous que la rotation des CMK créées par le client est activée. | AWS Key Management Service (KMS) permet aux clients de faire tourner la clé de support, qui est un élément clé stocké dans le KMS et lié à l'ID de clé de la clé principale client créée par le client (CMK). Il s'agit de la clé de chiffrement utilisée pour effectuer des opérations cryptographiques telles que le chiffrement et le déchiffrement. La rotation automatique des clés conserve actuellement toutes les clés de sauvegarde précédentes afin que le déchiffrement des données chiffrées puisse s'effectuer de manière transparente. Il est recommandé d'activer la rotation des touches CMK |
KMS |
KMSKey où Description notlike « Clé maîtresse par défaut qui protège mon.* » devrait avoir RotationEnabled. |
| Opérations réseau de base et flux de données : Assurez-vous que la journalisation des flux VPC est activée dans tous les VPC | Les journaux de flux VPC sont une fonctionnalité qui vous permet de capturer des informations sur le trafic IP allant vers et depuis les interfaces réseau dans votre VPC. Après avoir créé un journal de flux, vous pouvez consulter et récupérer ses données dans Amazon CloudWatch Logs. Il est recommandé d’activer les journaux de flux VPC pour les « Rejets » de paquets pour les VPC. |
EC2 |
Le VPC doit avoir au moins un FlowLog avec [ Status eq "ACTIVE" ] |
| Accès à distance : assurez-vous qu’un filtre de journalisation et une alarme existent pour les appels API non autorisés. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les appels API non autorisés. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et identifiants : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour la connexion à la console de gestion sans MFA | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les connexions à la console qui ne sont pas protégées par une authentification multifacteurs (MFA). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour l'utilisation du compte « root ». | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour les tentatives de root login |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « {\s*\$\.Identity\.type\s*=\s*\\"Root\"\s*\&\s*\$\.userIdentity\.invokedPar\s*NOT\s*EXISTS*\&\s*\$\.eventType\s* !=\s*\"AwsServiceEvent\"\s*\} » et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de journalisation et une alarme existent pour les modifications de la stratégie IAM. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé d’établir un filtre métrique et une alarme pour modifier les politiques de gestion d’identité et d’accès (IAM). |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eve ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d’audit/journal : Assurez-vous qu’un filtre de métrique de journal et une alarme existent pour les modifications de configuration de CloudTrail | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*TraceCréeTrace\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*SuppresserTrace\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*StopLogging\)\s*\} » et Transformations avec [ AlarmAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Identités et informations d'identification : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les échecs d'authentification de la console de gestion AWS. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les tentatives d'authentification de console ayant échoué. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Échec\s*authentification\"\)\s*\}" et Transformations avec [ Alarmes de métriques avec [ Actions d'alarme avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Les données au repos sont protégées : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour la désactivation ou la suppression programmée des CMK créées par le client. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les CMK créées par le client dont l'état est passé à désactivé ou à suppression programmée. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Assurez-vous qu’un filtre de métrique logarithmique et une alarme existent pour les changements de politique de bucket S3 | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux politiques des compartiments S3. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Enregistrements d'audit/de journalisation : assurez-vous qu'un filtre de métriques de journalisation et une alarme existent pour les modifications de configuration AWS Config. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est recommandé de mettre en place un filtre de métriques et une alarme pour détecter les modifications apportées aux configurations de CloudTrail. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . Filtres de métriques avec [ FilterPattern comme "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" et Transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : Assurez-vous qu’un filtre de métrique journalaire et une alarme existent pour les modifications des listes de contrôle d’accès réseau (NACL) | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les NACL sont utilisées comme filtre de paquets sans état pour contrôler le trafic entrant et sortant des sous-réseaux au sein d'un VPC. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux NACL. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\} » et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications apportées aux passerelles réseau. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Des passerelles réseau sont nécessaires pour envoyer/recevoir du trafic vers une destination située en dehors d'un VPC. Il est recommandé de mettre en place un filtre de métriques et une alarme pour les modifications apportées aux passerelles réseau. |
CloudWatch CloudTrail |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . FiltresMétriques avec [ FilterPattern comme « \{\s*\(\$\.NomÉvénement\s*=\s*CréerPasserelleClient\)\s*\|\|\s*\(\$\.NomEvent\s*=\s*SuppresserGatewayClient\)\s*\|\|\s*\(\$\.NomÉvénement\s*=\s*AttacherInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*CréerGatewayInternetGateway\)\s*\|\|\s*\(\$\.NomÉvénementS*=\s*\(\$\.NomÉvénementS*=\s*DetachInternetGateway\)\s*\} » et Transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications de la table de routage. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Les tables de routage servent à acheminer le trafic réseau entre les sous-réseaux et vers les passerelles réseau. Il est recommandé de mettre en place un filtre métrique et une alarme pour les modifications apportées aux tables de routage. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.. » eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\s*\|\|\s*(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\} » et les transformations avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Intégrité du réseau : assurez-vous qu’un filtre de métriques de journalisation et une alarme existent pour les modifications du VPC. | La surveillance en temps réel des appels API peut être réalisée en dirigeant les journaux CloudTrail vers les journaux CloudWatch et en établissant les filtres métriques et les alarmes correspondants. Il est possible d’avoir plus d’un VPC dans un compte, et il est également possible de créer une connexion entre deux VPC permettant au trafic réseau de router entre les VPC. Il est recommandé d’établir un filtre métrique et une alarme pour les modifications apportées aux VPC. |
CloudTrail CloudWatch |
AWS devrait avoir au moins un CloudTrails avec [ LogGroup . MetricFilters avec [ FilterPattern comme « \{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.. » eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*DeleteVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*(\$\.eventName\s*=\s* AttacherClassiqueLinkVpc\)\s*\|\|\s*\(\$\.événementName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" et les transformations avec [ MetricAlarms avec [ AlarmActions avec [ SNSTopic . Abonnements len () > 0 ] ] ] ] ] |
| Protection des communications et du contrôle du réseau : Veillez à ce qu’aucun groupe de sécurité n’autorise l’entrée de 0.0.0.0/0 vers le port 22 | Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé qu’aucun groupe de sécurité n’autorise un accès d’entrée sans restriction au port 22. |
EC2 |
SecurityGroup ne devrait pas avoir de InboundRules avec [ IPRanges avec [ IP EQ 0.0.0.0/0 ] et ( FromPort lte 22 et ToPort gte 22 ) ni protocole dans (« -1 », « tcp ») ] |
| Protection du réseau de communication et de contrôle : assurez-vous qu’aucun groupe de sécurité n’autorise le trafic entrant depuis 0.0.0.0/0 vers le port 3389. | Les groupes de sécurité assurent un filtrage dynamique du trafic réseau entrant/sortant vers les ressources AWS. Il est recommandé qu'aucun groupe de sécurité n'autorise un accès entrant non restreint au port 3389. |
EC2 |
Le groupe de sécurité ne doit pas avoir de règles entrantes avec [ IPRanges avec [ IP eq 0.0.0.0/0 ] et ( FromPort lte 3389 et ToPort gte 3389 ) et Protocol dans ("-1", "udp", "tcp") ] |
| Assurez-vous que le groupe de sécurité par défaut de chaque VPC restreint tout le trafic | Un VPC est livré avec un groupe de sécurité par défaut dont les paramètres initiaux refusent tout trafic entrant, autorisent tout trafic sortant, et permettent tout le trafic entre les instances assignées au groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité lors du lancement d’une instance, l’instance est automatiquement attribuée à ce groupe de sécurité par défaut. Les groupes de sécurité fournissent un filtrage avec état du trafic réseau d’entrée/sortie vers les ressources AWS. Il est recommandé que le groupe de sécurité par défaut restreigne tout le trafic. Le VPC par défaut dans chaque région devrait avoir son groupe de sécurité par défaut mis à jour pour se conformer. Tout VPC nouvellement créé contiendra automatiquement un groupe de sécurité par défaut qui devra être corrigé pour se conformer à cette recommandation. |
EC2 |
Le groupe de sécurité dont le nom est égal à « default » devrait avoir une longueur de règles entrantes égale à 0 et une longueur de règles sortantes égale à 0. |
| Le personnel connaît les rôles/opérations de réponse : Assurez-vous qu’un rôle de support a été créé pour gérer les incidents avec le support AWS | AWS propose un centre de support pouvant être utilisé pour la notification et la réponse aux incidents, ainsi que pour le support technique et le service client. Créez un rôle IAM pour permettre aux utilisateurs autorisés de gérer les incidents avec le support AWS. |
IAM |
AWS devrait avoir au moins une IAMPolicies avec [ id EQ « arn :aws :iam ::aws :policy/AWSSupportAccess » et AttachedEntities. Rôles len ( ) gt 0 ] |