Collecter les journaux d'audit Chronicle SOAR
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
- Accédez à Google Cloud Console.
- Sélectionnez votre projet ou créez-en un.
- Dans le menu de navigation, accédez à Cloud Storage> Buckets.
- Cliquez sur Créer un bucket.
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 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 :
- Dans la console Google Cloud, accédez à IAM et administration > Comptes de service.
- Cliquez sur Créer un compte de service.
- 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.
- Nom du compte de service : saisissez
- Cliquez sur Créer et continuer.
- Dans la section Autoriser ce compte de service à accéder au projet :
- Cliquez sur Sélectionner un rôle.
- Recherchez et sélectionnez Rédacteur de journaux.
- Cliquez sur Continuer.
- Cliquez sur OK.
- Dans la liste Comptes de service, recherchez le compte de service (
soar-logs-export-sa). - Cliquez sur more_vert Plus > Gérer les autorisations.
- Dans la section Autorisations, cliquez sur Accorder l'accès.
Dans le champ Ajouter des comptes principaux, saisissez le compte principal suivant :
gke-init-backgroundservices@{SOAR-GCP-Project-Id}.iam.gserviceaccount.comDans la section Attribuer des rôles :
- Cliquez sur Sélectionner un rôle.
- Recherchez et sélectionnez Créateur de jetons de compte de service.
Cliquez sur Enregistrer.
Copiez l'adresse e-mail complète du compte de service (
soar-logs-export-sa@PROJECT_ID.iam.gserviceaccount.com).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.
- Dans la console Google Cloud, accédez à Logging > Routeur de journaux.
- Sélectionnez le projet Google Cloud dans lequel Chronicle SOAR est déployé.
- Cliquez sur Créer un récepteur.
- 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.
- Nom du récepteur : saisissez
- Cliquez sur Suivant.
- Dans le panneau Destination du récepteur :
- Dans le menu Sélectionner le service de récepteur, sélectionnez Bucket Cloud Storage.
- Dans le menu Sélectionner un bucket Cloud Storage, sélectionnez le bucket (
chronicle-soar-audit-logs).
- Cliquez sur Suivant.
Dans le panneau Sélectionner les journaux à inclure dans le récepteur :
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.
Cliquez sur Prévisualiser les journaux pour vérifier que le filtre correspond aux entrées de journal attendues.
Cliquez sur Suivant.
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.
Cliquez sur Créer un récepteur.
Vérifier l'exportation des journaux vers GCS
- Patientez cinq à dix minutes pour que les journaux soient exportés vers le bucket GCS.
- Dans la console Google Cloud, accédez à Cloud Storage > Buckets.
- Cliquez sur le nom du bucket (
chronicle-soar-audit-logs). 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>.jsonCliquez 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
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Cliquez sur Configurer un flux unique.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
Chronicle SOAR Audit Logs). - Sélectionnez Google Cloud Storage V2 comme Type de source.
- Sélectionnez CHRONICLE_SOAR_AUDIT comme type de journal.
- Cliquez sur Obtenir un compte de service.
Une adresse e-mail unique pour le compte de service s'affiche, par exemple :
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comCopiez cette adresse e-mail pour l'utiliser à l'étape suivante.
Cliquez sur Suivant.
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
Cliquez sur Suivant.
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.
- Accédez à Cloud Storage > Buckets.
- Cliquez sur le nom du bucket (
chronicle-soar-audit-logs). - Accédez à l'onglet Autorisations.
- Cliquez sur Accorder l'accès.
- 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.
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 :
- Dans la console Google Cloud, accédez à Logging > Explorateur de journaux.
- Sélectionnez le projet Google Cloud dans lequel Chronicle SOAR est déployé.
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
playbookparpythonouetlpour 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 :
- Suivez les étapes de la section Configurer un récepteur Cloud Logging pour exporter les journaux SOAR vers GCS.
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 playbookblock_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 SOARcorrelation_id: identifiant unique permettant de suivre l'exécution complète du playbook dans les services.integration_name: nom de l'intégration utiliséeaction_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égrationconnector_name: nom du connecteurconnector_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égrationjob_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égrationintegration_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 :
- Dans la console Google Cloud, accédez à Logging > Explorateur de journaux.
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.