Ingérer les journaux AWS dans Google Security Operations

Ce document décrit la procédure de configuration de l'ingestion des journaux AWS CloudTrail et des données de contexte dans Google Security Operations. 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 vers un bucket Amazon Simple Storage Service (Amazon S3), éventuellement à l'aide d'une file d'attente Amazon SQS (Amazon Simple Queue Service). 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 push d'un flux Amazon S3 qui peut être utilisée pour obtenir un meilleur débit.

La première partie de ce document explique comment utiliser Amazon S3 comme type de source de flux ou, éventuellement, utiliser 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 expliquant comment 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 contextuelles AWS sur les hôtes, les services, les réseaux VPC et les utilisateurs.

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

Cette section décrit la procédure de base pour ingérer les journaux AWS CloudTrail dans votre instance Google Security Operations. Les étapes décrivent comment procéder en utilisant Amazon S3 comme type de source de flux ou, éventuellement, 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 essai.
  3. Indiquez un Nom du sentier.
  4. Sélectionnez Créer un bucket S3. Vous pouvez également choisir d'utiliser un bucket S3 existant.
  5. Indiquez un nom dans le champ Alias KMS AWS ou sélectionnez une clé KMS AWS 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 de la section Vérifier et créer, puis cliquez sur Créer un essai.
  9. Dans la console AWS, recherchez Amazon S3 Buckets (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 en savoir plus sur la création de files d'attente SQS, consultez la page Premiers pas avec Amazon SQS.

Configurer des notifications pour votre file d'attente SQS

Si vous utilisez une file d'attente SQS, configurez les notifications sur votre bucket S3 pour écrire dans cette file d'attente. Veillez à associer une règle d'accès.

Configurer un utilisateur AWS IAM

Configurez un utilisateur AWS IAM 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 sur l'écran suivant.
  3. Indiquez un nom pour l'utilisateur (par exemple, chronicle-feed-user, Sélectionnez le type d'identifiant AWS en tant que Clé d'accès – Accès programmatique), puis cliquez sur Suivant: Autorisations.
  4. À l'étape suivante, sélectionnez Attach existing policies directement (Associer directement des stratégies existantes) et choisissez AmazonS3ReadOnlyAccess (AmazonS3ReadOnlyAccess) ou AmazonS3FullAccess, selon le cas. AmazonS3FullAccess est utilisé si Google Security Operations doit effacer les buckets S3 après avoir lu les journaux, afin d'optimiser les coûts de stockage d'AWS S3.
  5. Comme alternative recommandée à 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 de messages si l'autorisation sqs:DeleteMessage n'est pas associée à la file d'attente SQS. Tous les messages sont accumulés 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:Tags.
  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éé. Vous les utiliserez à l'étape suivante.

Créer le flux

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

Pour créer un flux:

  1. Dans la barre de navigation, sélectionnez Paramètres, Paramètres SIEM, puis Flux.
  2. Sur la page Flux, cliquez sur Ajouter.
  3. Dans la boîte de dialogue Ajouter un flux, sélectionnez Amazon S3 ou Amazon SQS dans la boîte de dialogue Type de source.
  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.

    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 comme suit:
      
          {{datetime("yyyy/MM/dd")}}
      
          
      Comme dans l'exemple suivant, afin que Google Security Operations n'analyse les journaux à chaque fois que 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 (URI EST A), sélectionnez Directories incluant les sous-répertoires. Sélectionnez une option appropriée sous Source Deletion Option (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).

Procédure détaillée pour ingérer des journaux à partir de S3

Configurer AWS CloudTrail (ou un autre service)

Pour configurer les journaux AWS CloudTrail et faire en sorte qu'ils soient écrits dans le bucket AWS S3 créé lors de la procédure précédente, procédez comme suit:

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

    alt_text

  3. Indiquez un Nom du sentier.

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

  5. Indiquez un nom dans le champ Alias KMS AWS ou sélectionnez une clé KMS AWS 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 de la section Vérifier et créer, puis cliquez sur Créer un essai.

  9. Dans la console AWS, recherchez Amazon S3 Buckets (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 l'utilisateur AWS IAM

Au cours de cette étape, nous allons configurer un utilisateur AWS IAM que Google Security Operations utilisera pour obtenir des flux de journaux à partir d'AWS.

  1. Dans la console AWS, recherchez IAM.

    alt_text

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

    alt_text

  3. Indiquez un nom pour l'utilisateur (par exemple, chronicle-feed-user, Sélectionnez le type d'identifiant AWS en tant que Clé d'accès – Accès programmatique), puis cliquez sur Suivant: Autorisations.

    alt_text

  4. À l'étape suivante, sélectionnez Attach existing policies directement (Associer directement des stratégies existantes) et choisissez AmazonS3ReadOnlyAccess (AmazonS3ReadOnlyAccess) ou AmazonS3FullAccess, selon le cas. AmazonS3FullAccess est utilisé si Google Security Operations doit effacer les buckets S3 après avoir lu les journaux, afin d'optimiser les coûts de stockage d'AWS S3. Cliquez sur Suivant:Tags.

    alt_text

  5. Comme alternative recommandée à 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éé. Vous les utiliserez à l'étape suivante.

    alt_text

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

  1. Accédez aux paramètres Google Security Operations, puis cliquez sur Flux.
  2. Cliquez sur Ajouter.
  3. Sélectionnez Amazon S3 pour Type de source.
  4. Sélectionnez AWS CloudTrail (ou un autre service AWS) comme 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 également ajouter l'URI S3 comme suit:

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

    Comme dans l'exemple suivant, pour que Google Security Operations analyse les journaux à chaque fois uniquement 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 (URI EST A), sélectionnez Directories incluant les sous-répertoires. Sélectionnez une option appropriée sous Source Deletion Option (Option de suppression de la source). Elle doit correspondre aux autorisations de l'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 Suivant, puis sur Terminer.

Procédure d'ingestion de données contextuelles AWS

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

  • HÉBERGEURS 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 listé ci-dessus, procédez comme suit:

  1. Dans la barre de navigation, sélectionnez Paramètres, Paramètres SIEM, puis 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.
  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 de l'utilisateur de gestion des flux ou l'API de gestion des flux.