Création de réponses personnalisées aux GuardDuty résultats avec Amazon CloudWatch Events - Amazon GuardDuty

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de réponses personnalisées aux GuardDuty résultats avec Amazon CloudWatch Events

GuardDuty crée un événement pour Amazon CloudWatch Events en cas de modification des résultats. Les modifications susceptibles de créer un CloudWatch événement incluent des résultats récemment générés ou des résultats récemment agrégés. Les événements sont générés dans la mesure du possible.

Un identifiant de GuardDuty recherche est attribué à chaque découverte. GuardDuty crée un CloudWatch événement pour chaque découverte avec un identifiant de recherche unique. Toutes les occurrences ultérieures d'une constatation existante sont regroupées avec les conclusions initiales. Pour plus d’informations, consultez GuardDuty recherche d'une agrégation.

Note

Si votre compte est un administrateur GuardDuty délégué, les CloudWatch événements sont publiés sur votre compte ainsi que sur le compte du membre où le résultat a été généré.

En utilisant CloudWatch des événements avec GuardDuty, vous pouvez automatiser les tâches pour vous aider à répondre aux problèmes de sécurité révélés par GuardDuty les résultats.

Pour recevoir des notifications concernant les GuardDuty résultats basés sur les CloudWatch événements, vous devez créer une règle d' CloudWatch événements et une cible pour GuardDuty. Cette règle permet CloudWatch d'envoyer des notifications pour les résultats GuardDuty générés à la cible spécifiée dans la règle. Pour plus d’informations, consultez Création d'une règle d' CloudWatch événements et d'une cible pour GuardDuty (CLI).

CloudWatch Fréquence de notification des événements pour GuardDuty

Notifications pour les résultats nouvellement générés avec un ID de résultat unique

GuardDuty envoie une notification en fonction de son CloudWatch événement dans les 5 minutes suivant la découverte. Cet événement (et cette notification) inclut également toutes les occurrences ultérieures de ce résultat qui surviennent dans les 5 minutes suivant la génération de ce résultat avec un ID unique.

Note

Par défaut, la fréquence des notifications concernant les nouveaux résultats est de 5 minutes. Cette fréquence ne peut pas être mise à jour.

Notifications pour les occurrences de résultat ultérieures

Par défaut, pour chaque résultat doté d'un identifiant de recherche unique, GuardDuty regroupe en un seul événement toutes les occurrences ultérieures d'un type de recherche particulier qui se produisent dans les intervalles de 6 heures. GuardDuty envoie ensuite une notification concernant ces occurrences ultérieures en fonction de cet événement. Par défaut, pour les occurrences ultérieures des résultats existants, GuardDuty envoie des notifications en fonction des CloudWatch événements toutes les 6 heures.

Seul un compte administrateur peut personnaliser la fréquence par défaut des notifications envoyées concernant les occurrences ou les CloudWatch événements de recherche ultérieurs. Les utilisateurs de comptes membres ne peuvent pas personnaliser cette fréquence. La valeur de fréquence définie par le compte administrateur dans son propre compte est imposée aux GuardDuty fonctionnalités de tous ses comptes membres. Si un utilisateur d'un compte administrateur définit cette valeur de fréquence sur 1 heure, tous les comptes membres auront également la fréquence d'une heure pour recevoir des notifications concernant les occurrences de recherche ultérieures. Pour plus d’informations, consultez Gérer plusieurs comptes sur Amazon GuardDuty.

Note

En tant que compte administrateur, vous pouvez personnaliser la fréquence par défaut des notifications concernant les occurrences de recherche ultérieures. Les valeurs possibles sont 15 minutes, 1 heure ou, par défaut, 6 heures. Pour plus d'informations sur la configuration de la fréquence de ces notifications, veuillez consulter Étape 5 — Définition de la fréquence d'exportation des résultats actifs mis à jour.

Surveillance des GuardDuty résultats archivés grâce aux CloudWatch événements

Pour les résultats archivés manuellement, les occurrences initiales et suivantes de ces résultats (générées une fois l'archivage terminé) sont envoyées à CloudWatch Events selon la fréquence décrite ci-dessus.

Pour les résultats archivés automatiquement, les occurrences initiales et suivantes de ces résultats (générées une fois l'archivage terminé) ne sont pas envoyées à CloudWatch Events.

CloudWatch format d'événement pour GuardDuty

L' CloudWatch événement pour GuardDuty a le format suivant.

{ "version": "0", "id": "cd2d702e-ab31-411b-9344-793ce56b1bc7", "detail-type": "GuardDuty Finding", "source": "aws.guardduty", "account": "111122223333", "time": "1970-01-01T00:00:00Z", "region": "us-east-1", "resources": [], "detail": {GUARDDUTY_FINDING_JSON_OBJECT} }
Note

La valeur de détail renvoie les détails JSON d'un seul résultat sous forme d'objet, au lieu de renvoyer la valeur « résultats » qui peut prendre en charge plusieurs résultats au sein d'une matrice.

Pour obtenir la liste complète de tous les paramètres inclus dans GUARDDUTY_FINDING_JSON_OBJECT, consultez GetFindings. Le paramètre id qui apparaît dans GUARDDUTY_FINDING_JSON_OBJECT est l'ID du résultat décrit précédemment.

Création d'une règle d' CloudWatch événements pour vous informer des GuardDuty résultats (console)

Vous pouvez utiliser CloudWatch Events with GuardDuty pour configurer des alertes de recherche automatisées en envoyant les événements de GuardDuty recherche à un hub de messagerie afin d'accroître la visibilité des GuardDuty résultats. Cette rubrique explique comment envoyer des alertes de résultats par e-mail, Slack ou Amazon Chime en configurant une rubrique SNS, puis en connectant cette rubrique à CloudWatch une règle d'événement d'événements.

Configurer une rubrique Amazon SNS et un point de terminaison

Pour commencer, vous devez d'abord configurer une rubrique dans Amazon Simple Notification Service et ajouter un point de terminaison. Pour en savoir plus, veuillez consulter Mise en route dans le Guide du développeur Amazon Simple Notification Service.

Cette procédure définit l'endroit où vous souhaitez envoyer les données de GuardDuty recherche. Le sujet SNS peut être ajouté à une règle d' CloudWatch événement pendant ou après la création de la règle d'événement.

Email setup
Création d'une rubrique SNS
  1. Connectez-vous à la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/v3/home.

  2. Sélectionnez Rubriques dans le panneau de navigation, puis Créer une rubrique.

  3. Dans la section Créer une rubrique, sélectionnez Standard. Ensuite, saisissez un nom de rubrique, comme GuardDuty_to_Email. D'autres détails sont facultatifs.

  4. Choisissez Créer la rubrique. Les détails de la rubrique pour votre nouvelle rubrique s'ouvrent.

  5. Dans la section Abonnements, choisissez Créer un abonnement.

    1. Dans le menu Protocole sélectionnez E-mail.

    2. Dans le champ Point de terminaison, ajoutez l'adresse e-mail à laquelle vous souhaitez recevoir les notifications.

      Note

      Vous devrez confirmer votre abonnement par l'intermédiaire de votre client de messagerie après l'avoir créé.

    3. Choisissez Créer un abonnement.

  6. Recherchez un message d'abonnement dans votre boîte de réception et choisissez Confirmer l'abonnement.

Slack setup
Création d'une rubrique SNS
  1. Connectez-vous à la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/v3/home.

  2. Sélectionnez Rubriques dans le panneau de navigation, puis Créer une rubrique.

  3. Dans la section Créer une rubrique, sélectionnez Standard. Ensuite, saisissez un nom de rubrique, comme GuardDuty_to_Slack. D'autres détails sont facultatifs. Choisissez Créer une rubrique pour finaliser.

Configuration d'un client AWS Chatbot
  1. Accédez à la console AWS Chatbot.

  2. Dans le panneau Clients configurés, sélectionnez Configurer un nouveau client.

  3. Choisissez Slack et confirmez avec « Configurer ».

    Note

    Lorsque vous choisissez Slack, vous devez confirmer les autorisations permettant à AWS Chatbot d'accéder à votre canal en sélectionnant « Autoriser ».

  4. Sélectionnez Configurer un nouveau canal pour ouvrir le volet des détails de configuration.

    1. Saisissez un nom pour le canal.

    2. Pour le canal Slack, choisissez le canal que vous souhaitez utiliser. Pour utiliser un canal privé Slack avec AWS Chatbot, choisissez Canal privé.

    3. Dans Slack, copiez l'identifiant du canal privé en cliquant avec le bouton droit sur le nom du canal et en sélectionnant Copier le lien.

    4. Sur la Console de gestion AWS, dans la fenêtre AWS Chatbot, collez l'ID que vous avez copié depuis Slack dans le champ ID de canal privé.

    5. Dans Autorisations, choisissez de créer un rôle IAM à l'aide d'un modèle, si vous n'en avez pas déjà un.

    6. Dans les modèles Stratégie, choisissez Autorisations de notification. Il s'agit du modèle de politique IAM pour AWS Chatbot. Il fournit les autorisations de lecture et de liste nécessaires pour les CloudWatch alarmes, les événements et les journaux, ainsi que pour les rubriques Amazon SNS.

    7. Choisissez la région dans laquelle vous avez précédemment créé votre rubrique SNS, puis sélectionnez la rubrique Amazon SNS que vous avez créée pour envoyer des notifications au canal Slack.

  5. Sélectionnez Configure (Configurer).

Chime setup
Création d'une rubrique SNS
  1. Connectez-vous à la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/v3/home.

  2. Sélectionnez Rubriques dans le panneau de navigation, puis Créer une rubrique.

  3. Dans la section Créer une rubrique, sélectionnez Standard. Ensuite, saisissez un nom de rubrique, comme GuardDuty_to_Chime. D'autres détails sont facultatifs. Choisissez Créer une rubrique pour finaliser.

Configuration d'un client AWS Chatbot
  1. Accédez à la console AWS Chatbot.

  2. Dans le panneau Clients configurés, sélectionnez Configurer un nouveau client.

  3. Choisissez Chime et confirmez avec « Configurer ».

  4. Dans le volet Détails de configuration, saisissez le nom du canal.

  5. Dans Chime, ouvrez le salon de discussion souhaité.

    1. Choisissez l'icône d'engrenage dans le coin supérieur droit, puis sélectionnez Manage webhooks (Gérer les webhooks) .

    2. Sélectionnez Copier l'URL pour copier l'URL du webhook dans votre presse-papiers.

  6. Sur la Console de gestion AWS, dans la fenêtre AWS Chatbot, collez l'URL que vous avez copiée dans le champ URL de Webhook.

  7. Dans Autorisations, choisissez de créer un rôle IAM à l'aide d'un modèle, si vous n'en avez pas déjà un.

  8. Dans les modèles Stratégie, choisissez Autorisations de notification. Il s'agit du modèle de politique IAM pour AWS Chatbot. Il fournit les autorisations de lecture et de liste nécessaires pour les CloudWatch alarmes, les événements et les journaux, ainsi que pour les rubriques Amazon SNS.

  9. Choisissez la région dans laquelle vous avez précédemment créé votre rubrique SNS, puis sélectionnez la rubrique Amazon SNS que vous avez créée pour envoyer des notifications à la salle Chime.

  10. Sélectionnez Configure (Configurer).

Configurez un CloudWatch événement pour les GuardDuty résultats

  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Sélectionnez Règles dans le panneau de navigation, puis Créer une règle.

  3. Dans le menu Nom du service, choisissez GuardDuty.

  4. Dans le menu Type d'événement, choisissez GuardDutyRechercher.

  5. En regard de Aperçu du modèle d'événement, choisissez Modifier.

  6. Collez le code JSON ci-dessous dans l'Aperçu du modèle d'événement, puis choisissez Enregistrer.

    { "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "severity": [ 4, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9 ] } }
    Note

    Le code ci-dessus alertera pour toute recherche de Moyenne à Élevée.

  7. Dans la section Cibles, cliquez sur Ajouter une cible.

  8. Dans le menu Sélectionner des cibles, choisissez Rubrique SNS.

  9. Pour Sélectionner une rubrique, sélectionnez le nom de la rubrique SNS que vous avez créée à l'étape 1.

  10. Configurez l'entrée pour l'événement.

    • Si vous configurez les notifications pour Chime ou Slack, passez à l'étape 11, le type de saisie passe par défaut à Événement correspondant.

    • Si vous configurez les notifications par e-mail via SNS, suivez les étapes ci-dessous pour personnaliser le message envoyé dans votre boîte de réception en procédant comme suit :

    1. Développez Configurer l'entrée, puis choisissez Transformateur d'entrée.

    2. Copiez le code suivant et collez-le dans le champ Chemin d'entrée.

      { "severity": "$.detail.severity", "Account_ID": "$.detail.accountId", "Finding_ID": "$.detail.id", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }
    3. Copiez le code suivant et collez-le dans le champ Modèle d'entrée pour formater l'e-mail.

      "AWS <Account_ID> has a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region." "Finding Description:" "<Finding_description>. " "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"
  11. Cliquez sur Configurer les détails.

  12. Sur la page Configurer les détails de la règle, entrez un nom et une description pour la règle, puis choisissez Créer une règle.

Création d'une règle d' CloudWatch événements et d'une cible pour GuardDuty (CLI)

La procédure suivante montre comment utiliser des AWS CLI commandes pour créer une règle d' CloudWatch événements et une cible pour GuardDuty. Plus précisément, la procédure vous montre comment créer une règle qui permet d' CloudWatch envoyer des événements pour tous les résultats qui GuardDuty génèrent et d'ajouter une AWS Lambda fonction en tant que cible pour la règle.

Note

Outre les fonctions Lambda, elles prennent en CloudWatch charge GuardDuty les types de cibles suivants : les instances Amazon EC2, les flux Amazon Kinesis, les tâches Amazon ECS, les machines d'étatAWS Step Functions, la commande et run les cibles intégrées.

Vous pouvez également créer une règle et une cible d' CloudWatch événements GuardDuty par le biais de la console CloudWatch Événements. Pour plus d'informations et des étapes détaillées, voir Création d'une règle d' CloudWatch événements qui déclenche un événement. Dans la section Event Source, sélectionnez GuardDuty pour Service name et GuardDuty Finding pour Event Type.

Pour créer une règle et une cible
  1. Pour créer une règle permettant d' CloudWatch envoyer des événements pour tous les résultats GuardDuty générés, exécutez la commande CloudWatch CLI suivante.

    AWS events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"]}"

    Important

    Vous pouvez personnaliser davantage votre règle afin qu'elle indique d' CloudWatch envoyer des événements uniquement pour un sous-ensemble des GuardDuty résultats générés. Ce sous-ensemble est basé sur le ou les attributs de résultat qui sont spécifiés dans la règle. Par exemple, utilisez la commande CLI suivante pour créer une règle qui permet CloudWatch d'envoyer des événements uniquement pour les GuardDuty résultats présentant une gravité de 5 ou 8 :

    AWS events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"],\"detail-type\":[\"GuardDuty Finding\"],\"detail\":{\"severity\":[5,8]}}"

    À cette fin, vous pouvez utiliser n'importe quelle valeur de propriété disponible dans le JSON pour les GuardDuty résultats.

  2. Pour associer une fonction Lambda comme cible à la règle que vous avez créée à l'étape 1, exécutez la commande CloudWatch CLI suivante.

    AWS events put-targets --rule Test --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>

    Note

    Assurez-vous de remplacer <your_function>la commande ci-dessus par votre fonction Lambda réelle pour les GuardDuty événements.

  3. Pour ajouter les autorisations requises pour invoquer la cible, exécutez la commande d'interface de ligne de commande Lambda suivante.

    AWS lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com

    Note

    Assurez-vous de remplacer <your_function>la commande ci-dessus par votre fonction Lambda réelle pour les GuardDuty événements.

    Note

    Dans la procédure ci-dessus, nous utilisons une fonction Lambda comme cible pour la règle qui déclenche CloudWatch les événements. Vous pouvez également configurer d'autres AWS ressources en tant que cibles pour déclencher CloudWatch des événements. Pour plus d’informations, consultez PutTargets.

CloudWatch Événements pour les GuardDuty environnements multi-comptes

En tant qu' GuardDuty administrateur, les règles relatives aux CloudWatch événements de votre compte seront déclenchées en fonction des résultats applicables de vos comptes de membre. Cela signifie que si vous configurez une notification de recherche par le biais d' CloudWatch événements dans votre compte administrateur, comme indiqué dans la section précédente, vous serez informé des résultats de gravité élevée ou moyenne générés par vos comptes de membre en plus des vôtres.

Vous pouvez identifier le compte membre à l'origine de la GuardDuty recherche à l'aide du accountId champ contenant les détails JSON de la recherche.

Pour commencer à écrire une règle d'événement personnalisée pour un compte membre spécifique de votre environnement dans la console, créez une règle et collez le modèle suivant dans Aperçu du modèle d'événement, en ajoutant l'ID de compte du compte membre avec lequel vous souhaitez déclencher l'événement.

{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "accountId": [ "123456789012" ] } }
Note

Cet exemple se déclenchera en cas de résultat de l'ID de compte indiqué. Plusieurs ID peuvent être ajoutés, séparés par une virgule conformément à la syntaxe JSON.