Ingérer les journaux AWS dans les opérations de sécurité Google

Ce document détaille les étapes de configuration de l'ingestion des journaux AWS CloudTrail et des données de contexte dans les opérations de sécurité Google. Ces étapes s'appliquent également à l'ingestion de journaux provenant d'autres services AWS, tels qu'AWS GuardDuty, AWS VPC Flow, AWS CloudWatch et AWS Security Hub.

Pour ingérer les journaux d'événements, la configuration dirige les journaux CloudTrail dans un bucket Amazon Simple Storage Service (Amazon S3), en utilisant éventuellement une file d'attente Amazon Simple Queue Service (Amazon SQS). Si une file d'attente Amazon SQS est utilisée, Google Security Operations lit les notifications Amazon S3 envoyées à la file d'attente Amazon SQS et extrait les fichiers correspondants du bucket Amazon S3. Il s'agit en réalité d'une version en mode push d'un flux Amazon S3 qui peut être utilisée pour améliorer le débit.

La première partie de ce document décrit des étapes concises pour utiliser Amazon S3 comme type de source de flux ou, éventuellement, Amazon S3 avec Amazon SQS comme type de source de flux. La deuxième partie fournit des étapes plus détaillées, avec des captures d'écran pour utiliser Amazon S3 comme type de source de flux. L'utilisation d'Amazon SQS n'est pas abordée dans la deuxième partie. La troisième partie explique comment ingérer des données de contexte AWS concernant les hôtes, les services, les réseaux VPC et les utilisateurs.

Étapes de base pour ingérer des journaux provenant de S3 ou S3 avec SQS

Cette section décrit les étapes de base pour ingérer les journaux AWS CloudTrail dans votre instance Google Security Operations. La procédure à suivre est d'utiliser Amazon S3 comme type de source de flux ou, si vous le souhaitez, d'utiliser Amazon S3 avec Amazon SQS comme type de source de flux.

Configurer AWS CloudTrail et S3

Dans cette procédure, vous allez configurer les journaux AWS CloudTrail pour qu'ils soient écrits dans un bucket S3.

  1. Dans la console AWS, recherchez CloudTrail.
  2. Cliquez sur Créer un sentier.
  3. Indiquez un nom de sentier.
  4. Sélectionnez Créer un bucket S3. Vous pouvez également choisir d'utiliser un bucket S3 existant.
  5. Attribuez un nom à l'alias AWS KMS, ou choisissez une clé AWS KMS existante.
  6. Vous pouvez conserver les autres paramètres par défaut et cliquer sur Suivant.
  7. Sélectionnez Type d'événement, ajoutez les événements de données si nécessaire, puis cliquez sur Suivant.
  8. Vérifiez les paramètres sous Vérifier et créer, puis cliquez sur Créer un sentier.
  9. Dans la console AWS, recherchez Buckets Amazon S3.
  10. Cliquez sur le bucket de journaux que vous venez de créer, puis sélectionnez le dossier AWSLogs. Cliquez ensuite sur Copier l'URI S3 et enregistrez-le pour l'utiliser lors des étapes suivantes.

Créer une file d'attente SQS

Vous pouvez éventuellement utiliser une file d'attente SQS. Si vous utilisez une file d'attente SQS, il doit s'agir d'une file d'attente standard et non d'une file d'attente FIFO.

Pour plus d'informations sur la création de files d'attente SQS, consultez la section Premiers pas avec Amazon SQS.

Configurer des notifications pour votre file d'attente SQS

Si vous utilisez une file d'attente SQS, configurez des notifications sur votre bucket S3 pour écrire des données dans votre file d'attente SQS. Veillez à joindre une stratégie d'accès.

Configurer l'utilisateur AWS IAM

Configurez un utilisateur IAM AWS que Google Security Operations utilisera pour accéder à la file d'attente SQS (le cas échéant) et au bucket S3.

  1. Dans la console AWS, recherchez IAM.
  2. Cliquez sur Utilisateurs, puis sur Ajouter des utilisateurs dans l'écran suivant.
  3. Attribuez un nom à l'utilisateur, par exemple chronicle-feed-user. Sélectionnez le type d'identifiant AWS sur Clé d'accès – Accès programmatique, puis cliquez sur Suivant: Autorisations.
  4. À l'étape suivante, sélectionnez Associer directement les règles existantes, puis AmazonS3ReadOnlyAccess ou AmazonS3FullAccess selon les besoins. AmazonS3FullAccess est utilisé si Google Security Operations doit effacer les buckets S3 après la lecture des journaux afin d'optimiser les coûts de stockage AWS S3.
  5. Comme alternative à l'étape précédente, vous pouvez restreindre davantage l'accès au bucket S3 spécifié en créant une règle personnalisée. Cliquez sur Créer une règle et suivez la documentation AWS pour créer une règle personnalisée.
  6. Lorsque vous appliquez une règle, assurez-vous d'avoir inclus sqs:DeleteMessage. Google Security Operations ne peut pas supprimer les messages si l'autorisation sqs:DeleteMessage n'est pas associée à la file d'attente SQS. Tous les messages sont accumulés du côté AWS, ce qui entraîne un retard, car Google Security Operations tente à plusieurs reprises de transférer les mêmes fichiers.
  7. Cliquez sur Suivant:Balises.
  8. Ajoutez des balises si nécessaire, puis cliquez sur Suivant:Vérification.
  9. Vérifiez la configuration, puis cliquez sur Créer un utilisateur.
  10. Copiez l'ID de clé d'accès et la clé d'accès secrète de l'utilisateur créé, car vous en aurez besoin à l'étape suivante.

Créer le flux

Après avoir effectué les procédures ci-dessus, créez un flux pour ingérer les journaux AWS de votre bucket Amazon S3 dans votre instance Opérations de sécurité Google. Si vous utilisez également une file d'attente SQS, sélectionnez Amazon SQS comme type de source au lieu d'Amazon S3 dans la procédure suivante.

Pour créer un flux:

  1. Dans la barre de navigation, sélectionnez Settings (Paramètres), SIEM Settings (Paramètres SIEM), puis Feeds (Flux).
  2. Sur la page Flux, cliquez sur Ajouter.
  3. Dans la boîte de dialogue Ajouter un flux, dans la boîte de dialogue Type de source, sélectionnez Amazon S3 ou Amazon SQS.
  4. Dans le menu Type de journal, sélectionnez AWS CloudTrail (ou un autre service AWS).
  5. Cliquez sur Suivant.
  6. Saisissez les paramètres d'entrée de votre flux dans les champs correspondants.

    Si le type de source est Amazon S3 :
    1. Sélectionnez region (région) et indiquez l'URI S3 du bucket Amazon S3 que vous avez copié précédemment. Vous pouvez également ajouter l'URI S3 avec:
      
          {{datetime("yyyy/MM/dd")}}
      
          
      Comme dans l'exemple suivant, pour que les opérations de sécurité Google analysent les journaux à chaque fois, mais uniquement pour un jour donné :
      
          s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
      
          
    2. Pour URI IS A, sélectionnez Répertoires comprenant des sous-répertoires. Sélectionnez une option appropriée sous Option de suppression de la source. Il doit correspondre aux autorisations du compte Utilisateur IAM que vous avez créé précédemment.
    3. Indiquez l'ID de clé d'accès et la clé d'accès secrète du compte utilisateur IAM que vous avez créé précédemment.

  7. Cliquez sur Next (Suivant), puis sur Finish (Terminer).

Étapes détaillées pour ingérer les journaux à partir de S3

Configurer AWS CloudTrail (ou un autre service)

Pour configurer les journaux AWS CloudTrail et demander leur écriture dans le bucket AWS S3 créé lors de l'étape précédente, procédez comme suit:

  1. Dans la console AWS, recherchez CloudTrail.
  2. Cliquez sur Créer un sentier.

    alt_text

  3. Indiquez un nom de sentier.

  4. Sélectionnez Créer un bucket S3. Vous pouvez également choisir d'utiliser un bucket S3 existant.

  5. Attribuez un nom à l'alias AWS KMS, ou choisissez une clé AWS KMS existante.

    alt_text

  6. Vous pouvez conserver les autres paramètres par défaut et cliquer sur Suivant.

  7. Sélectionnez Type d'événement, ajoutez les événements de données si nécessaire, puis cliquez sur Suivant.

    alt_text

  8. Vérifiez les paramètres sous Vérifier et créer, puis cliquez sur Créer un sentier.

  9. Dans la console AWS, recherchez Buckets Amazon S3.

    alt_text

  10. Cliquez sur le bucket de journaux que vous venez de créer, puis sélectionnez le dossier AWSLogs. Cliquez ensuite sur Copier l'URI S3 et enregistrez-le pour l'utiliser lors des étapes suivantes.

    alt_text

Configurer un utilisateur IAM AWS

Au cours de cette étape, nous allons configurer un utilisateur AWS IAM qui permettra à Google Security Operations d'obtenir des flux de journaux auprès d'AWS.

  1. Dans la console AWS, recherchez IAM.

    alt_text

  2. Cliquez sur Utilisateurs, puis sur Ajouter des utilisateurs dans l'écran suivant.

    alt_text

  3. Attribuez un nom à l'utilisateur, par exemple chronicle-feed-user. Sélectionnez le type d'identifiant AWS sur Clé d'accès – Accès programmatique, puis cliquez sur Suivant: Autorisations.

    alt_text

  4. À l'étape suivante, sélectionnez Associer directement les règles existantes, puis AmazonS3ReadOnlyAccess ou AmazonS3FullAccess selon les besoins. AmazonS3FullAccess est utilisé si Google Security Operations doit effacer les buckets S3 après la lecture des journaux afin d'optimiser les coûts de stockage AWS S3. Cliquez sur Suivant:Balises.

    alt_text

  5. Comme alternative à l'étape précédente, vous pouvez restreindre davantage l'accès au bucket S3 spécifié en créant une règle personnalisée. Cliquez sur Créer une règle et suivez la documentation AWS pour créer une règle personnalisée.

    alt_text

  6. Ajoutez des balises si nécessaire, puis cliquez sur Suivant:Vérification.

  7. Vérifiez la configuration, puis cliquez sur Créer un utilisateur.

    alt_text

  8. Copiez l'ID de clé d'accès et la clé d'accès secrète de l'utilisateur créé, car vous en aurez besoin à l'étape suivante.

    alt_text

Configurer un flux dans Google Security Operations pour ingérer les journaux AWS

  1. Accédez aux paramètres Opérations de sécurité Google, puis cliquez sur Flux.
  2. Cliquez sur Ajouter.
  3. Sélectionnez Amazon S3 dans le champ Type de source.
  4. Sélectionnez AWS CloudTrail (ou tout autre service AWS) dans Log Type (Type de journal).

alt_text

  1. Cliquez sur Suivant.
  2. Sélectionnez region (région) et indiquez l'URI S3 du bucket Amazon S3 que vous avez copié précédemment. Vous pouvez aussi ajouter l'URI S3 avec:

    
    {{datetime("yyyy/MM/dd")}}
    
    

    Comme dans l'exemple suivant, pour que Google Security Operations analyse les journaux chaque fois, mais seulement pour un jour donné:

    
    s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
    
    
  3. Sous URI IS A, sélectionnez Répertoires comprenant des sous-répertoires. Sélectionnez une option appropriée sous Source Deletion Option (Option de suppression de la source). Elle doit correspondre aux autorisations du compte Utilisateur IAM que nous avons créé précédemment.

  4. Indiquez l'ID de clé d'accès et la clé d'accès secrète du compte Utilisateur IAM que nous avons créé précédemment. alt_text

  5. Cliquez sur Next (Suivant), puis sur Finish (Terminer).

Étapes pour ingérer les données de contexte AWS

Pour ingérer des données contextuelles sur les entités AWS (telles que les hôtes, les instances et les utilisateurs), créez un flux pour chacun des types de journaux suivants, répertoriés par description et par libellé d'ingestion:

  • Hôtes AWS EC2 (AWS_EC2_HOSTS)
  • INSTANCES AWS EC2 (AWS_EC2_INSTANCES)
  • VPC AWS EC2 (AWS_EC2_VPCS)
  • AWS Identity and Access Management (IAM) (AWS_IAM)

Pour créer un flux pour chaque type de journal répertorié ci-dessus, procédez comme suit:

  1. Dans la barre de navigation, sélectionnez Settings (Paramètres), SIEM Settings (Paramètres SIEM), puis Feeds (Flux).
  2. Sur la page Flux, cliquez sur Ajouter. La boîte de dialogue Ajouter un flux s'affiche.
  3. Dans le menu Type de source, sélectionnez API tierce.
  4. Dans le menu Type de journal, sélectionnez Hôtes AWS EC2.
  5. Cliquez sur Suivant.
  6. Saisissez les paramètres d'entrée du flux dans les champs correspondants.
  7. Cliquez sur Next (Suivant), puis sur Finish (Terminer).

Pour en savoir plus sur la configuration d'un flux pour chaque type de journal, consultez la documentation suivante sur la gestion des flux:

Pour obtenir des informations générales sur la création d'un flux, consultez le Guide utilisateur de la gestion des flux ou l'API de gestion des flux.