AWS GuardDuty
Amazon GuardDuty est un service de surveillance de sécurité. Amazon GuardDuty peut aider à identifier les activités inattendues et potentiellement non autorisées ou malveillantes dans votre environnement AWS.
Pour en savoir plus sur le service voir la documentation AWS GuardDuty.
Prérequis
Permissions
- Rôle administrateur dans AWS permettant de configurer les comptes et services GuardDuty
- Rôle « Admin d'organisation » dans MD.ECO
Préfixes proposés par défaut
AWSLogs/{{OrgID}}/GuardDuty/{{Region}}/
Variables Préalables
{{SecurityOrgID}}
: ID unique de l'organisation « Securité »{{AuditOrgID}}
: ID unique de l'organisation « Audit »{{S3GuardDutyAuditBucketName}}
: Nom du bucket qui sera utilisé pour le transfert de logs avec MD.ECO, à créer au préalable avec la procédure Ingestion par Bucket S3
Étapes de configuration
Activer GuardDuty (Organisation « Securité »)
- Activer GuardDuty dans la bonne région (ex :
ca-central-1
) - Dans Settings, prendre en note le
Detection ID
(ARN) nécessaire dans les étapes suivantes sous le nom{{GuardDutyDetectorIDARN}}
Configuration du Bucket S3 (Organisation « Audit »)
Optionnel: Création d'une clé KMS (Organisation « Audit »)
- Nom : guardduty_logging
- Key Administration : N/A
- Key usage permission : Dans la section du bas, inscrire l'ID du compte
{{SecurityOrgID}}
- Éditer la clé qui a été créé et ajouter les sécurités (« key policy ») suivante
Remplacer les valeurs:
{{KMSDataEncryptionKeyARN}}
: l'ARN de la clé qui vient d'être créé{{SecurityOrgID}}
: l'ID de l'organisation qui contient le service GuardDuty{{GuardDutyDetectorIDARN}}
: l'ARN du detector ID
{
"Sid": "AllowGuardDutyKey",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "kms:GenerateDataKey",
"Resource": "{{KMSDataEncryptionKeyARN}}",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "{{SecurityOrgID}}",
"aws:SourceArn": "{{GuardDutyDetectorIDARN}}"
}
}
}
Configuration de la sécurité du bucket S3 (Organisation "Audit")
Ajouter aux sécurité existante la partie de sécurité suivante en remplaçant les valeurs ci-dessous
{{S3GuardDutyAuditBucketName}}
: Le nom du bucket S3 pour l'enregistrement des journaux de GuardDuty{{KMSDataEncryptionKeyARN}}
: l'ARN de la clé qui vient d'être créé{{SecurityOrgID}}
: l'ID de l'organisation qui contient le service GuardDuty{{GuardDutyDetectorIDARN}}
: l'ARN du detector ID présent dans le Organisation "Securité"
{
"Sid": "AllowGuardDutygetBucketLocation",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws:s3:::{{S3GuardDutyAuditBucketName}}",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "{{SecurityOrgID}}",
"aws:SourceArn": "{{GuardDutyDetectorIDARN}}"
}
}
},
{
"Sid": "AllowGuardDutyPutObject",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::{{S3GuardDutyAuditBucketName}}/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "{{SecurityOrgID}}",
"aws:SourceArn": "{{GuardDutyDetectorIDARN}}"
}
}
},
{
"Sid": "DenyUnencryptedUploads",
"Effect": "Deny",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::{{S3GuardDutyAuditBucketName}}/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
},
{
"Sid": "DenyIncorrectHeader",
"Effect": "Deny",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::{{S3GuardDutyAuditBucketName}}/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "{{KMSDataEncryptionKeyARN}}"
}
}
},
{
"Sid": "DenyNon-HTTPS",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::{{S3GuardDutyAuditBucketName}}/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
Configuration de l'enregistrement des journaux de GuardDuty dans le bucket S3
Référence: Gestion des comptes GuardDuty avec AWS Organizations
Configuration du dépôt des journaux dans GuardDuty (Organisation "Securité")
Dans les configurations :
- Modifier la fréquence
- « Update CWE and S3 every 15 minutes »
- Cliquer sur « Save »
- Configuration du dépôt S3
- Cliquer sur « Configure New »
- Sélectionner « Existing bucket »
- Champ
Bucket ARN
:arn:aws:s3:::{{S3GuardDutyAuditBucketName}}
- Champ
Key ARN
:{{KMSDataEncryptionKeyARN}}
- Cliquer sur « Save »
Activation de GuardDuty dans les autres comptes (Organisation "Securité")
Dans les comptes :
- Cocher l'ensemble des accounts disponible
- Cliquer sur « Actions »
- Cliquer « Add member » (activation en 1-2 minutes)
- Répondre aux questions
- Après l'activation, activer les sécurités supplémentaires
- Cliquer sur « Actions »
- Cliquer sur « Enable S3 Protection »
- Optionnel : Cliquer sur « Enable Kubernetes Audit Logs Monitoring »
Activation de la délégation d'administrateur (Master organisation)
aws guardduty enable-organization-admin-account --admin-account-id {{SecurityOrgID}}
Notifier Mondata avec les informations sur l'instance
Inclure les informations suivantes :
{{S3WAFAuditBucketName}}