Collecter les journaux CrowdStrike Falcon
Ce document explique comment ingérer les journaux CrowdStrike Falcon dans Google Security Operations. Vous pouvez ingérer plusieurs types de journaux CrowdStrike Falcon. Ce document décrit la configuration spécifique à chacun d'eux.
Pour obtenir une vue d'ensemble de l'ingestion de données dans Google Security Operations, consultez Ingestion de données dans Google Security Operations.
Types de journaux CrowdStrike Falcon compatibles
Google Security Operations est compatible avec les types de journaux CrowdStrike Falcon suivants via les analyseurs avec les libellés d'ingestion suivants :
- Endpoint Detection and Response (EDR) :
CS_EDR. Ce parseur analyse les données de télémétrie en temps quasi réel de CrowdStrike Falcon Data Replicator (FDR), telles que les accès aux fichiers et les modifications du registre. Les données sont généralement ingérées à partir d'un bucket S3 ou Cloud Storage. Détections :
CS_DETECTS. Ce parseur analyse les événements de résumé de détection de CrowdStrike à l'aide de l'API Detect. Bien qu'il soit lié à l'activité des points de terminaison,CS_DETECTSfournit des résumés de détection de niveau supérieur par rapport à la télémétrie brute analysée à l'aide deCS_EDR.Alertes :
CS_ALERTS. Ce parseur analyse les alertes de CrowdStrike à l'aide de l'API Alerts. L'analyseur d'alertes CrowdStrike est compatible avec les types de produits suivants :eppidpoverwatchxdrmobilecwppngsiem
Indicateurs de compromission (IoC) :
CS_IOC. Ce parseur analyse les IoC et les indicateurs d'attaque (IOA) à partir des renseignements sur les menaces CrowdStrike à l'aide de CrowdStrike Chronicle Intel Bridge. L'analyseur d'indicateurs de compromission (IoC) CrowdStrike est compatible avec les types d'indicateurs suivants :domainemail_addressfile_namefile_pathhash_md5hash_sha1hash_sha256ip_addressmutex_nameurl
Google SecOps recommande d'utiliser des flux pour CS_EDR, CS_DETECTS et CS_IOC afin d'ingérer des données complètes à partir de CrowdStrike.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Droits d'administrateur sur l'instance CrowdStrike pour installer le capteur CrowdStrike Falcon Host
- Tous les systèmes de l'architecture de déploiement sont configurés dans le fuseau horaire UTC.
- L'appareil cible exécute un système d'exploitation compatible.
- Le serveur doit être un serveur 64 bits.
- Microsoft Windows Server 2008 R2 SP1 est compatible avec le capteur CrowdStrike Falcon Host version 6.51 ou ultérieure.
- Les anciennes versions de l'OS doivent être compatibles avec la signature de code SHA-2.
- Fichier du compte de service Google SecOps et votre numéro client fourni par l'équipe d'assistance Google SecOps
Configurer des flux
Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :
- Paramètres SIEM> Flux > Ajouter un flux
- Plate-forme de contenu> Packs de contenu> Premiers pas
Pour en savoir plus sur la configuration de plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.
Ingérer les journaux CrowdStrike Falcon
Cette section explique comment configurer l'ingestion pour les différents types de journaux CrowdStrike Falcon.
Ingérer les journaux EDR (CS_EDR)
Vous pouvez ingérer les journaux CrowdStrike Falcon EDR à l'aide de l'une des méthodes suivantes, selon l'endroit où vous souhaitez envoyer les journaux depuis CrowdStrike :
- Amazon SQS : utilisation d'un flux Falcon Data Replicator.
- Amazon S3 : utilisation d'un flux Google Security Operations configuré pour un bucket S3.
- Google Cloud Storage : en demandant à CrowdStrike d'envoyer les journaux vers un bucket Cloud Storage.
Choisissez l'une des procédures suivantes.
Option 1 : Ingérer les journaux EDR depuis Amazon SQS
Cette méthode utilise CrowdStrike Falcon Data Replicator pour envoyer les journaux EDR à une file d'attente Amazon SQS, que Google Security Operations interroge ensuite.
- Cliquez sur le pack CrowdStrike.
Dans le type de journal CrowdStrike Falcon, spécifiez les valeurs des champs suivants :
- Source : Amazon SQS
- Région : région S3 associée à l'URI.
- Nom de la file d'attente : nom de la file d'attente SQS à partir de laquelle lire les données de journaux.
- URI S3 : URI source du bucket S3.
- Numéro de compte : numéro de compte SQS.
- ID de clé d'accès à la file d'attente : ID de clé d'accès au compte de 20 caractères. Exemple :
AKIAOSFOODNN7EXAMPLE - Clé d'accès secrète de la file d'attente : clé d'accès secrète de 40 caractères. Exemple :
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY - Option de suppression de la source : permet de supprimer les fichiers et les répertoires après le transfert des données.
Options avancées
- Nom du flux : valeur préremplie qui identifie le flux.
- Espace de noms de l'élément : espace de noms associé au flux.
- Étiquettes d'ingestion : étiquettes appliquées à tous les événements de ce flux.
Cliquez sur Créer un flux.
Pour en savoir plus sur la configuration de plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.
Option 2 : Ingérer les journaux EDR à partir d'un bucket Amazon S3
Cette méthode consiste à configurer un flux Google Security Operations pour extraire les journaux EDR directement depuis un bucket Amazon S3.
Pour configurer un flux d'ingestion à l'aide d'un bucket S3, procédez comme suit :
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Crowdstrike Falcon).
- Dans Type de source, sélectionnez Amazon S3.
- Dans Type de journal, sélectionnez CrowdStrike Falcon.
- En fonction du compte de service et de la configuration du bucket Amazon S3 que vous avez créés, spécifiez des valeurs pour les champs suivants :
Champ Description regionURI de la région S3. S3 uriURI de la source du bucket S3. uri is aType d'objet vers lequel pointe l'URI (par exemple, fichier ou dossier). source deletion optionPossibilité de supprimer les fichiers et les répertoires après le transfert des données. access key idClé d'accès (chaîne alphanumérique de 20 caractères). Par exemple, AKIAOSFOODNN7EXAMPLE.secret access keyClé d'accès secrète (chaîne alphanumérique de 40 caractères). Par exemple, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.oauth client idID client OAuth public. oauth client secretCode secret du client OAuth 2.0. oauth secret refresh uriURI d'actualisation du code secret du client OAuth 2.0. asset namespaceEspace de noms associé au flux. - Cliquez sur Suivant, puis sur Envoyer.
Option 3 : Ingérer les journaux EDR depuis Cloud Storage
Vous pouvez configurer CrowdStrike pour qu'il envoie les journaux EDR à un bucket Cloud Storage, puis ingérer ces journaux dans Google Security Operations à l'aide d'un flux. Ce processus nécessite une coordination avec l'assistance CrowdStrike.
Contactez l'assistance CrowdStrike : ouvrez une demande d'assistance auprès de CrowdStrike pour activer et configurer l'envoi des journaux EDR vers votre bucket Cloud Storage. Il vous fournira des conseils sur les configurations requises.
Créez et autorisez le bucket Cloud Storage :
- Dans la console Google Cloud , créez un bucket Cloud Storage. Notez le nom du bucket (par exemple,
gs://my-crowdstrike-edr-logs/). - Accordez des autorisations d'écriture au compte de service fourni par CrowdStrike. Suivez les instructions de l'assistance CrowdStrike.
- Dans la console Google Cloud , créez un bucket Cloud Storage. Notez le nom du bucket (par exemple,
Configurez le flux Google SecOps :
- Dans votre instance Google SecOps, accédez à Settings > Feeds (Paramètres > Flux), puis cliquez sur Add New (Ajouter).
- Saisissez un nom de flux descriptif (par exemple,
CS-EDR-GCS). - Pour Type de source, sélectionnez Google Cloud Storage V2.
- Pour Type de journal, sélectionnez CrowdStrike Falcon.
- Dans la section "Compte de service", cliquez sur Obtenir un compte de service. Copiez l'adresse e-mail unique du compte de service affichée.
- Dans la console Google Cloud , accédez à votre bucket Cloud Storage et accordez le rôle IAM
Storage Object Viewerà l'adresse e-mail du compte de service que vous avez copiée. Cela permet au flux de lire les fichiers journaux. - Revenez à la page de configuration du flux Google SecOps.
- Saisissez l'URL du bucket Storage (par exemple,
gs://my-crowdstrike-edr-logs/). Cette URL doit se terminer par une barre oblique (/). - Sélectionnez une option de suppression de la source. Nous vous recommandons de sélectionner Ne jamais supprimer les fichiers.
- Cliquez sur Suivant, vérifiez les paramètres, puis cliquez sur Envoyer.
Vérifiez l'ingestion des journaux : une fois que CrowdStrike a confirmé que les journaux sont transférés, recherchez les journaux entrants dans Google SecOps avec le type de journal
CROWDSTRIKE_EDR.
Ingérer les journaux des alertes (CS_ALERTS)
Pour ingérer les alertes CrowdStrike Falcon, configurez un flux qui utilise l'API CrowdStrike.
Dans la console CrowdStrike Falcon :
- Connectez-vous à la console CrowdStrike Falcon.
- Accédez à Assistance et ressources > Ressources et outils > Clients et clés API, puis cliquez sur Créer un client API.
- Saisissez un nom de client et une description.
- Pour Niveaux d'accès aux API, cochez les cases Lecture et Écriture pour Alertes.
- Cliquez sur Créer. Notez l'ID client, le code secret du client et l'URL de base générés.
Dans Google Security Operations :
- Accédez à Settings > Feeds (Paramètres > Flux), puis cliquez sur Add New (Ajouter).
- Sélectionnez API tierce pour Type de source.
- Sélectionnez API CrowdStrike Alerts pour Type de journal.
- Cliquez sur Suivant et renseignez les champs suivants à l'aide des valeurs du client API CrowdStrike :
- Point de terminaison des jetons OAuth
- ID client OAuth
- Code secret du client OAuth
- URL de base
- Cliquez sur Suivant, puis sur Envoyer.
Ingérer les journaux de détection (CS_DETECTS)
Pour ingérer les journaux de détection CrowdStrike Falcon, vous devez également utiliser l'API CrowdStrike.
Dans la console CrowdStrike Falcon :
- Connectez-vous à la console CrowdStrike Falcon.
- Accédez à Applications d'assistance > Clients et clés API.
- Créez une paire de clés client API. Cette paire de clés doit disposer des autorisations
READpourDetections.
Dans Google Security Operations :
- Accédez à Settings > Feeds (Paramètres > Flux), puis cliquez sur Add New (Ajouter).
- Sélectionnez API tierce pour Type de source.
- Sélectionnez Surveillance des détections CrowdStrike pour Type de journal.
- Cliquez sur Suivant, puis sur Envoyer. Vous serez invité à fournir les identifiants d'API que vous avez créés.
Ingérer les journaux d'IoC (CS_IOC)
Pour ingérer les journaux d'indicateurs de compromission (IoC) de CrowdStrike, vous utilisez Google SecOps Intel Bridge.
- Dans la console CrowdStrike Falcon, créez une paire de clés client API. Cette paire de clés doit disposer de l'autorisation
READpourIndicators (Falcon Intelligence). - Configurez Google SecOps Intel Bridge en suivant les instructions de la page CrowdStrike to Google SecOps Intel Bridge.
Exécutez les commandes Docker suivantes pour envoyer les journaux de CrowdStrike à Google SecOps.
sa.jsonest le fichier de votre compte de service Google SecOps.docker build . -t ccib:latest docker run -it --rm \ -e FALCON_CLIENT_ID="$FALCON_CLIENT_ID" \ -e FALCON_CLIENT_SECRET="$FALCON_CLIENT_SECRET" \ -e FALCON_CLOUD_REGION="$FALCON_CLOUD" \ -e CHRONICLE_CUSTOMER_ID="$CHRONICLE_CUSTOMER_ID" \ -e GOOGLE_APPLICATION_CREDENTIALS=/ccib/sa.json \ -v ~/my/path/to/service/account/filer/sa.json:/ccib/sa.json \ ccib:latestUne fois le conteneur en cours d'exécution, les journaux d'IoC commencent à être diffusés dans Google SecOps.
Si vous rencontrez des problèmes avec l'une de ces configurations, contactez l'équipe d'assistance Google SecOps.
Delta de mappage UDM pour les journaux d'alertes CrowdStrike.
Référence du delta de mappage UDM : CS_ALERTS
Le tableau suivant liste les différences entre l'analyseur par défaut de CS ALERTS et la version Premium de CS ALERTS.
| Default UDM Mapping | Log Field | Premium Mapping Delta |
|---|---|---|
about.resource.product_object_id |
cid |
Removed mapping to avoid duplication, as the cid log field is also mapped to metadata.product_deployment_id. |
principal.asset.platform_software.platform |
platform |
If the device.platform_name log field value is empty and the platform log field value is not empty and if the platform log field value matches the regular expression pattern (?i)Windows then, the principal.asset.platform_software.platform UDM field is set to WINDOWS. Else, if platform log field value matches the regular expression pattern (?i)Linux then, the principal.asset.platform_software.platform UDM field is set to LINUX. Else, if platform log field value matches the regular expression pattern (?i)Mac then, the principal.asset.platform_software.platform UDM field is set to MAC. Else, if platform log field value matches the regular expression pattern (?i)ios then, the principal.asset.platform_software.platform UDM field is set to IOS. |
security_result.detection_fields[agent_id] |
agent_id |
If the device.device_id log field value is empty and the host_id log field value is empty and the mdm_device_id log field value is empty then, CS:%{agent_id} log field is mapped to the principal.asset_id UDM field. Else, the principal.asset.attribute.labels.key UDM field is set to agent_id and agent_id log field is mapped to the principal.asset.attribute.labels.value UDM field. |
security_result.detection_fields[idp_policy_account_event_type] |
idp_policy_account_event_type |
security_result.rule_labels[idp_policy_account_event_type] |
security_result.detection_fields[idp_policy_mfa_factor_type] |
idp_policy_mfa_factor_type |
security_result.rule_labels[idp_policy_mfa_factor_type] |
security_result.detection_fields[idp_policy_mfa_provider_name] |
idp_policy_mfa_provider_name |
security_result.rule_labels[idp_policy_mfa_provider_name] |
security_result.detection_fields[idp_policy_mfa_provider] |
idp_policy_mfa_provider |
security_result.rule_labels[idp_policy_mfa_provider] |
security_result.detection_fields[idp_policy_rule_action] |
idp_policy_rule_action |
security_result.rule_labels[idp_policy_rule_action] |
security_result.detection_fields[idp_policy_rule_trigger] |
idp_policy_rule_trigger |
security_result.rule_labels[idp_policy_rule_trigger] |
security_result.detection_fields[idp_policy_rule_id] |
idp_policy_rule_id |
security_result.rule_id |
security_result.detection_fields[idp_policy_rule_name] |
idp_policy_rule_name |
security_result.rule_name |
security_result.detection_fields[status] |
status |
If the status log field value matches the regular expression pattern (?i)new then, status log field is mapped to the security_result.about.investigation.status UDM field with the value NEW. Else, if status log field value matches the regular expression pattern (?i)closed then, status log field is mapped to the security_result.about.investigation.status UDM field with the value CLOSED. Else, status log field is mapped to the security_result.detection_fields[status] UDM field. |
target.process.file.mime_type |
alleged_filetype |
If the technique_name log field value contain one of the following values
alleged_filetype log field is mapped to the target.file.mime_type UDM field. Else, alleged_filetype log field is mapped to the target.process.file.mime_type UDM field. |
principal.resource.product_object_id |
device.cid |
principal.asset.attribute.labels[device_cid] |
security_result.detection_fields[active_directory_dn_display] |
device.hostinfo.active_directory_dn_display |
Iterate through log field device.hostinfo.active_directory_dn_display, then the security_result.detection_fields.key UDM field is set to device_hostinfo_active_directory_dn_display and device.hostinfo.active_directory_dn_display log field is mapped to the security_result.detection_fields.value UDM field. |
principal.asset.platform_software.platform |
device.platform_name |
If the device.platform_name log field value is not empty and if the device.platform_name log field value matches the regular expression pattern (?i)Windows then, the principal.asset.platform_software.platform UDM field is set to WINDOWS. Else, if device.platform_name log field value matches the regular expression pattern (?i)Linux then, the principal.asset.platform_software.platform UDM field is set to LINUX. Else, if device.platform_name log field value matches the regular expression pattern (?i)Mac then, the principal.asset.platform_software.platform UDM field is set to MAC. Else, if device.platform_name log field value matches the regular expression pattern (?i)ios then, the principal.asset.platform_software.platform UDM field is set to IOS. if the platform log field value is not empty and the device.platform_name log field value is equal to the then, the principal.asset.attribute.labels.key UDM field is set to platform and platform log field is mapped to the principal.asset.attribute.labels.value UDM field. |
principal.asset.platform_software.platform_version |
device.system_product_name |
principal.asset.hardware.model |
target.process.file.names |
filename |
If the technique_name log field value contain one of the following values
filename log field is mapped to the target.file.names UDM field. Else, filename log field is mapped to the target.process.file.names UDM field. |
target.file.full_path |
filepath |
If the technique_name log field value contain one of the following values
filepath log field is mapped to the target.file.full_path UDM field. Else, filepath log field is mapped to the target.process.file.full_path UDM field.If the product log field value is equal to epp and the type log field value is equal to ofp and if the macros.ioc_description log field value is not empty then, macros.ioc_description log field is mapped to the target.file.full_path UDM field and the security_result.detection_fields.key UDM field is set to filepath and filepath log field is mapped to the security_result.detection_fields.value UDM field. |
target.process_ancestors.command_line |
grandparent_details.cmdline |
target.process.parent_process.parent_process.command_line |
target.process_ancestors.file.names |
grandparent_details.filename |
target.process.parent_process.parent_process.file.names |
target.process_ancestors.file.full_path |
grandparent_details.filepath |
target.process.parent_process.parent_process.file.full_path |
target.process_ancestors.file.md5 |
grandparent_details.md5 |
target.process.parent_process.parent_process.file.md5 |
target.process_ancestors.product_specific_process_id |
grandparent_details.process_graph_id |
If the grandparent_details.process_graph_id log field value is not empty then, PRODUCT_SPECIFIC_PROCESS_ID: %{grandparent_details.process_graph_id} log field is mapped to the target.process.parent_process.parent_process.product_specific_process_id UDM field. |
target.process_ancestors.pid |
grandparent_details.process_id |
target.process.parent_process.parent_process.pid |
target.process_ancestors.file.sha256 |
grandparent_details.sha256 |
target.process.parent_process.parent_process.file.sha256 |
security_result.detection_fields[ioc_description] |
ioc_context.ioc_description |
Iterate through log field ioc_context, then the security_result.detection_fields.key UDM field is set to ioc_context_ioc_description and ioc_context.ioc_description log field is mapped to the security_result.detection_fields.value UDM field. |
security_result.detection_fields[ioc_source] |
ioc_context.ioc_source |
Iterate through log field ioc_context, then the security_result.detection_fields.key UDM field is set to ioc_context_ioc_source and ioc_context.ioc_source log field is mapped to the security_result.detection_fields.value UDM field. |
target.process.file.md5 |
md5 |
If the technique_name log field value contain one of the following values
md5 log field is mapped to the target.file.md5 UDM field. Else, md5 log field is mapped to the target.process.file.md5 UDM field. |
target.process.file.sha1 |
sha1 |
If the technique_name log field value contain one of the following values
sha1 log field is mapped to the target.file.sha1 UDM field. Else, sha1 log field is mapped to the target.process.file.sha1 UDM field. |
target.file.sha256 |
sha256 |
If the technique_name log field value contain one of the following values
sha256 log field is mapped to the target.file.sha256 UDM field. Else, sha256 log field is mapped to the target.process.file.sha256 UDM field.If the product log field value is equal to epp and the type log field value is equal to ofp and if the ioc_type log field value is equal to hash_sha256 and the macros.ioc_value log field value is not empty then, macros.ioc_value log field is mapped to the target.file.sha256 UDM field and the security_result.detection_fields.key UDM field is set to sha256 and sha256 log field is mapped to the security_result.detection_fields.value UDM field. |
target.asset.platform_software.platform |
operating_system |
If the operating_system log field value matches the regular expression pattern (?i)Windows then, the principal.asset.platform_software.platform UDM field is set to WINDOWS. Else, if operating_system log field value matches the regular expression pattern (?i)linux then, the principal.asset.platform_software.platform UDM field is set to LINUX. Else, if operating_system log field value matches the regular expression pattern (?i)ios then, the principal.asset.platform_software.platform UDM field is set to IOS. Else, if operating_system log field value matches the regular expression pattern (?i)mac then, the principal.asset.platform_software.platform UDM field is set to MAC. |
security_result.detection_fields[agent_version] |
agent_version |
principal.asset.attribute.labels[agent_version] |
about.email |
enrollment_email |
principal.user.email_addresses |
principal.asset.type |
|
If the mdm_device_id log field value is not empty or the mobile_hardware log field value is not empty or the mobile_manufacturer log field value is not empty or the mobile_serial log field value is not empty then, the principal.asset.type UDM field is set to MOBILE. |
security_result.detection_fields[detection_context_user_is_admin] |
detection_context.user_is_admin |
security_result.about.user.attribute.label[detection_context_user_is_admin] |
security_result.detection_fields[detection_context_user_sid] |
detection_context.user_sid |
security_result.about.user.attribute.label[detection_context_user_sid] |
principal.asset.attribute.labels[pod_id] |
device.pod_id |
principal.resource.product_object_id |
principal.asset.attribute.labels[pod_labels] |
device.pod_labels |
principal.resource.attribute.labels[pod_labels] |
principal.asset.attribute.labels[pod_name] |
device.pod_name |
principal.resource.name |
principal.asset.attribute.labels[pod_namespace] |
device.pod_namespace |
principal.resource.attribute.labels[pod_namespace] |
principal.asset.attribute.labels[pod_service_account_name] |
device.pod_service_account_name |
principal.resource.attribute.labels[pod_service_account_name] |
Formats de journaux CrowdStrike acceptés
L'analyseur CrowdStrike est compatible avec les journaux au format JSON.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.