Collecter les journaux d'audit Chronicle SOAR

Compatible avec :

Ce document explique comment ingérer les journaux d'audit Chronicle SOAR dans Google Security Operations à l'aide de Google Cloud Storage V2.

Google Security Operations SOAR (Security Orchestration, Automation and Response) permet aux équipes de sécurité d'automatiser la réponse aux menaces en ingérant, regroupant et hiérarchisant les alertes des outils de détection afin d'exécuter automatiquement des playbooks et de coordonner une réponse pratique. Les journaux SOAR capturent des données essentielles provenant des fonctions ETL, Playbook et Python, y compris l'exécution de scripts Python, l'ingestion d'alertes et les performances des playbooks.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Une instance Google SecOps
  • Un projet Google Cloud avec l'API Cloud Storage activée
  • Autorisations pour créer et gérer des buckets GCS
  • Autorisations permettant de gérer les stratégies IAM sur les buckets GCS
  • Autorisations pour créer et gérer des récepteurs Cloud Logging
  • Accès au projet Google Cloud dans lequel Chronicle SOAR est déployé
  • Rôle IAM Lecteur de journaux (roles/logging.viewer) sur votre projet Google Cloud
  • Rôle IAM Administrateur Logging (roles/logging.admin) pour créer des collecteurs de journaux

Créer un bucket Google Cloud Storage

  1. Accédez à Google Cloud Console.
  2. Sélectionnez votre projet ou créez-en un.
  3. Dans le menu de navigation, accédez à Cloud Storage> Buckets.
  4. Cliquez sur Créer un bucket.
  5. Fournissez les informations de configuration suivantes :

    Paramètre Valeur
    Nommer votre bucket Saisissez un nom unique (par exemple, chronicle-soar-audit-logs).
    Type d'emplacement Choisissez en fonction de vos besoins (région, birégion ou multirégion).
    Emplacement Sélectionnez l'emplacement (par exemple, us-central1).
    Classe de stockage Standard (recommandé pour les journaux auxquels vous accédez fréquemment)
    Access control (Contrôle des accès) Uniforme (recommandé)
    Outils de protection Facultatif : Activer la gestion des versions des objets ou la règle de conservation
  6. Cliquez sur Créer.

Activer la collecte des journaux SOAR (déploiements autonomes uniquement)

Pour activer l'exportation des journaux SOAR pour les déploiements autonomes, procédez comme suit :

  1. Dans la console Google Cloud, accédez à IAM et administration > Comptes de service.
  2. Cliquez sur Créer un compte de service.
  3. Fournissez les informations de configuration suivantes :
    • Nom du compte de service : saisissez soar-logs-export-sa.
    • Description du compte de service : saisissez Service account for exporting SOAR logs to Cloud Logging.
  4. Cliquez sur Créer et continuer.
  5. Dans la section Autoriser ce compte de service à accéder au projet :
    1. Cliquez sur Sélectionner un rôle.
    2. Recherchez et sélectionnez Rédacteur de journaux.
  6. Cliquez sur Continuer.
  7. Cliquez sur OK.
  8. Dans la liste Comptes de service, recherchez le compte de service (soar-logs-export-sa).
  9. Cliquez sur more_vert Plus > Gérer les autorisations.
  10. Dans la section Autorisations, cliquez sur Accorder l'accès.
  11. Dans le champ Ajouter des comptes principaux, saisissez le compte principal suivant :

    gke-init-backgroundservices@{SOAR-GCP-Project-Id}.iam.gserviceaccount.com
    
  12. Dans la section Attribuer des rôles :

    1. Cliquez sur Sélectionner un rôle.
    2. Recherchez et sélectionnez Créateur de jetons de compte de service.
  13. Cliquez sur Enregistrer.

  14. Copiez l'adresse e-mail complète du compte de service (soar-logs-export-sa@PROJECT_ID.iam.gserviceaccount.com).

  15. Envoyez une demande à l'assistance Google SecOps en indiquant l'adresse e-mail du compte de service pour activer l'exportation des journaux.

Configurer un récepteur Cloud Logging pour exporter les journaux SOAR vers GCS

Les journaux Chronicle SOAR sont écrits dans Google Cloud Logging, dans l'espace de noms chronicle-soar. Vous devez créer un récepteur de journaux pour acheminer ces journaux vers votre bucket GCS.

  1. Dans la console Google Cloud, accédez à Logging > Routeur de journaux.
  2. Sélectionnez le projet Google Cloud dans lequel Chronicle SOAR est déployé.
  3. Cliquez sur Créer un récepteur.
  4. Dans le panneau Détails du récepteur, fournissez les informations de configuration suivantes :
    • Nom du récepteur : saisissez chronicle-soar-to-gcs.
    • Description du récepteur : saisissez Export Chronicle SOAR audit logs to GCS for Chronicle SIEM ingestion.
  5. Cliquez sur Suivant.
  6. Dans le panneau Destination du récepteur :
    1. Dans le menu Sélectionner le service de récepteur, sélectionnez Bucket Cloud Storage.
    2. Dans le menu Sélectionner un bucket Cloud Storage, sélectionnez le bucket (chronicle-soar-audit-logs).
  7. Cliquez sur Suivant.
  8. Dans le panneau Sélectionner les journaux à inclure dans le récepteur :

    1. Dans le champ Filtre d'inclusion de compilation, saisissez le filtre suivant :

      resource.labels.namespace_name="chronicle-soar"
      

      Ce filtre correspond à tous les journaux SOAR des services ETL, Playbook et Python.

    2. Cliquez sur Prévisualiser les journaux pour vérifier que le filtre correspond aux entrées de journal attendues.

  9. Cliquez sur Suivant.

  10. Facultatif : Dans le panneau Sélectionner les journaux à exclure du récepteur, vous pouvez ajouter des filtres d'exclusion si nécessaire. Pour la plupart des déploiements, aucune exclusion n'est requise.

  11. Cliquez sur Créer un récepteur.

Vérifier l'exportation des journaux vers GCS

  1. Patientez cinq à dix minutes pour que les journaux soient exportés vers le bucket GCS.
  2. Dans la console Google Cloud, accédez à Cloud Storage > Buckets.
  3. Cliquez sur le nom du bucket (chronicle-soar-audit-logs).
  4. Vérifiez que des fichiers journaux sont créés dans le bucket. Les fichiers sont organisés par date et heure :

    chronicle-soar/YYYY/MM/DD/HH:MM:SS_<unique-id>.json
    
  5. Cliquez sur un fichier journal pour prévisualiser son contenu. Chaque fichier contient des entrées de journal au format JSON.

Récupérer le compte de service Google SecOps

Google SecOps utilise un compte de service unique pour lire les données de votre bucket GCS. Vous devez accorder à ce compte de service l'accès à votre bucket.

Obtenir l'adresse e-mail du compte de service

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Cliquez sur Configurer un flux unique.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Chronicle SOAR Audit Logs).
  5. Sélectionnez Google Cloud Storage V2 comme Type de source.
  6. Sélectionnez CHRONICLE_SOAR_AUDIT comme type de journal.
  7. Cliquez sur Obtenir un compte de service.
  8. Une adresse e-mail unique pour le compte de service s'affiche, par exemple :

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Copiez cette adresse e-mail pour l'utiliser à l'étape suivante.

  10. Cliquez sur Suivant.

  11. Spécifiez les valeurs des paramètres d'entrée suivants :

    • URL du bucket Storage : saisissez l'URI du bucket GCS avec le préfixe du chemin d'accès :

      gs://chronicle-soar-audit-logs/chronicle-soar/
      
    • Option de suppression de la source : sélectionnez l'option de suppression de votre choix :

      • Jamais : ne supprime jamais aucun fichier après les transferts (recommandé pour les tests).
      • Supprimer les fichiers transférés : supprime les fichiers après un transfert réussi.
      • Supprimer les fichiers transférés et les répertoires vides : supprime les fichiers et les répertoires vides après un transfert réussi.
    • Âge maximal des fichiers : incluez les fichiers modifiés au cours des derniers jours (180 jours par défaut).

    • Espace de noms de l'élément : espace de noms de l'élément

    • Libellés d'ingestion : libellé à appliquer aux événements de ce flux

  12. Cliquez sur Suivant.

  13. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Accorder des autorisations IAM au compte de service Google SecOps

Le compte de service Google SecOps a besoin du rôle Lecteur des objets Storage sur votre bucket GCS.

  1. Accédez à Cloud Storage > Buckets.
  2. Cliquez sur le nom du bucket (chronicle-soar-audit-logs).
  3. Accédez à l'onglet Autorisations.
  4. Cliquez sur Accorder l'accès.
  5. Fournissez les informations de configuration suivantes :
    • Ajouter des comptes principaux : collez l'adresse e-mail du compte de service Google SecOps.
    • Attribuer des rôles : sélectionnez Lecteur des objets de l'espace de stockage.
  6. Cliquez sur Enregistrer.

Filtrer les journaux SOAR par type de service

Les journaux Chronicle SOAR sont classés par service qui les a générés. Vous pouvez filtrer les journaux dans Cloud Logging ou créer des récepteurs distincts pour différents types de journaux.

Services de journaux disponibles

Les types de services suivants sont disponibles :

  • playbook : journaux des exécutions de playbook, y compris l'exécution de blocs, les résultats d'actions et l'état du workflow
  • python : journaux de l'exécution de scripts Python, y compris les actions d'intégration, les connecteurs et les jobs
  • etl : journaux des processus d'ingestion des alertes et de transformation des données

Filtrer par service dans Cloud Logging

Pour afficher les journaux d'un service spécifique :

  1. Dans la console Google Cloud, accédez à Logging > Explorateur de journaux.
  2. Sélectionnez le projet Google Cloud dans lequel Chronicle SOAR est déployé.
  3. Saisissez le filtre suivant pour afficher les journaux d'un service spécifique :

    resource.labels.namespace_name="chronicle-soar"
    resource.labels.container_name="playbook"
    

    Remplacez playbook par python ou etl pour afficher les journaux d'autres services.

Créer des récepteurs distincts pour différents types de journaux

Pour acheminer différents types de journaux vers des préfixes ou des buckets GCS distincts, créez des récepteurs supplémentaires avec des filtres spécifiques aux services :

  1. Suivez les étapes de la section Configurer un récepteur Cloud Logging pour exporter les journaux SOAR vers GCS.
  2. Dans le champ Filtre d'inclusion de compilation, utilisez l'un des filtres suivants :

    Journaux du playbook uniquement :

    resource.labels.namespace_name="chronicle-soar"
    resource.labels.container_name="playbook"
    

    Journaux Python uniquement :

    resource.labels.namespace_name="chronicle-soar"
    resource.labels.container_name="python"
    

    Journaux ETL uniquement :

    resource.labels.namespace_name="chronicle-soar"
    resource.labels.container_name="etl"
    

Libellés de journaux disponibles pour le filtrage

Les journaux Chronicle SOAR incluent des libellés qui fournissent un contexte supplémentaire pour le filtrage et l'analyse.

Libellés de playbook

Les libellés suivants sont disponibles pour les journaux de playbook :

  • playbook_definition : identifiant unique de la définition du playbook.
  • playbook_name : nom lisible du playbook
  • block_name : nom du bloc de playbook en cours d'exécution.
  • block_definition : identifiant unique de la définition du bloc.
  • case_id : identifiant de la demande Chronicle SOAR
  • correlation_id : identifiant unique permettant de suivre l'exécution complète du playbook dans les services.
  • integration_name : nom de l'intégration utilisée
  • action_name : nom de l'action en cours d'exécution.

Libellés Python

Les libellés suivants sont disponibles pour les journaux de service Python :

Libellés d'intégration et de connecteur :

  • integration_name : nom de l'intégration.
  • integration_version : version de l'intégration
  • connector_name : nom du connecteur
  • connector_instance : identifiant de l'instance pour le connecteur.

Libellés de tâches :

  • integration_name : nom de l'intégration.
  • integration_version : version de l'intégration
  • job_name : nom de la tâche planifiée.

Libellés d'action :

  • integration_name : nom de l'intégration.
  • integration_version : version de l'intégration
  • integration_instance : identifiant de l'instance pour l'intégration.
  • correlation_id : identifiant unique pour le traçage de l'exécution.
  • action_name : nom de l'action en cours d'exécution.

Libellés ETL

Les libellés suivants sont disponibles pour les journaux de service ETL :

  • correlation_id : identifiant unique pour le traçage du flux d'ingestion des alertes.

Utiliser correlation_id pour un traçage complet

L'étiquette correlation_id est disponible dans les journaux de service du playbook et de Python. Utilisez ce libellé pour récupérer tous les journaux associés à l'exécution d'un playbook entier :

  1. Dans la console Google Cloud, accédez à Logging > Explorateur de journaux.
  2. Saisissez le filtre suivant :

    resource.labels.namespace_name="chronicle-soar"
    labels.correlation_id="<correlation-id-value>"
    

    Remplacez <correlation-id-value> par l'ID de corrélation réel d'une entrée de journal.

Ce filtre renvoie tous les journaux des services de playbook et Python pour la trace d'exécution complète.

Table de mappage UDM

Champ de journal Mappage UDM Logique
module, screenSize, activityItem, modificationTimeUnixTimeInMs additional.fields Libellés fusionnés créés à partir de chaque champ, le cas échéant
utilisateur, opération extensions.auth.type Définissez sur "AUTHTYPE_UNSPECIFIED" si l'utilisateur n'est pas vide et que l'opération est "Login" (Connexion).
creationTimeUnixTimeInMs metadata.event_timestamp Analysé en tant que code temporel UNIX_MS
utilisateur, opération, adresse metadata.event_type Défini sur "USER_LOGIN" si l'utilisateur n'est pas vide et que l'opération est "Login" ; "USER_RESOURCE_ACCESS" si l'utilisateur n'est pas vide ; "STATUS_UNCATEGORIZED" si l'adresse est vide ; sinon "GENERIC_EVENT"
opération metadata.product_event_type Valeur copiée directement
id metadata.product_log_id Converti en chaîne
navigateur network.http.parsed_user_agent User-agent analysé
navigateur network.http.user_agent Valeur copiée directement
address principal.hostname Définir si l'adresse ne correspond pas au format d'adresse IP
address principal.ip Adresse IP extraite à l'aide du modèle grok
source principal.resource.resource_subtype Valeur copiée directement
utilisateur principal.user.userid Valeur copiée directement
ContactEmails security_result.about.user.email_addresses Adresses e-mail extraites à l'aide du modèle Grok
ContactPhone security_result.about.user.phone_numbers Valeur copiée directement
ContactName security_result.about.user.user_display_name Valeur copiée directement
Nom security_result.about.user.userid Valeur copiée directement
currentActivity, previousActivity security_result.detection_fields Libellés fusionnés de currentActivity et previousActivity, le cas échéant
userGuid target.user.product_object_id Valeur copiée directement
metadata.product_name Défini sur "CHRONICLE_SOAR_AUDIT"
metadata.vendor_name Défini sur "CHRONICLE_SOAR_AUDIT"

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.