Collecter les journaux ThreatDown EDR
Ce document explique comment configurer ThreatDown EDR (Nebula et OneView) pour envoyer des journaux à Google Security Operations à l'aide de webhooks.
ThreatDown EDR, optimisé par Malwarebytes, fournit des fonctionnalités de détection et de réponse au niveau des points de terminaison, y compris la détection des menaces, la surveillance des activités suspectes et la protection des points de terminaison. La plate-forme Nebula est destinée aux environnements à locataire unique, tandis que OneView est la console de gestion multilocataire pour les fournisseurs de services gérés. Les deux plates-formes sont compatibles avec une intégration native à Google Security Operations qui exporte les données de détection et d'activité suspecte en tant qu'événements UDM (Unified Data Model) à l'aide du type de journal MALWAREBYTES_EDR.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- ThreatDown EDR (Nebula ou OneView) est compatible avec les webhooks pour la diffusion des journaux.
- Accès à Google Cloud Console (pour la création de clés API)
- Pour Nebula : accès super-administrateur dans la console Nebula et compte Nebula actif avec un abonnement actif à la détection et à la réponse au niveau des points de terminaison
- Pour OneView : accès administrateur global dans la console OneView et site avec un abonnement actif à la détection et à la réponse au niveau des points de terminaison
- Accès administrateur au projet Google Cloud pour générer une clé API Google Cloud Platform
- Accès administrateur à Google Chronicle SIEM
Créer un flux de webhook dans Google SecOps
Créer le flux
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configure a single feed (Configurer un flux unique).
- Dans le champ Feed name (Nom du flux), saisissez un nom pour le flux (par exemple,
Malwarebytes). - Sélectionnez Webhook comme Source type (Type de source).
- Sélectionnez Malwarebytes EDR comme Log type (Type de journal).
- Cliquez sur Suivant.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Split delimiter (Délimiteur de division) (facultatif) : laissez ce champ vide. Chaque requête de webhook de ThreatDown contient des données d'événement structurées.
- Asset namespace (Espace de noms de l'élément) : espace de noms de l'élément
- Ingestion labels (Libellés d'ingestion) : libellé à appliquer aux événements de ce flux
- Cliquez sur Suivant.
- Vérifiez la configuration de votre nouveau flux dans l'écran Finalize (Finaliser), puis cliquez sur Submit (Envoyer).
Obtenir l'URL du point de terminaison du flux
- Accédez à l'onglet Details (Détails) du flux.
- Dans la section Endpoint Information (Informations sur le point de terminaison), copiez l'URL du point de terminaison du flux.
Le format d'URL est le suivant :
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateou
https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateEnregistrez cette URL pour les étapes suivantes.
Générer et enregistrer la clé secrète
Après avoir créé le flux, vous devez générer une clé secrète pour l'authentification :
- Accédez à l'onglet Secret Key (Clé secrète) du flux.
- Cliquez sur Generate Secret Key (Générer la clé secrète).
- Une boîte de dialogue affiche la clé secrète.
Copiez et enregistrez la clé secrète en toute sécurité.
Important : La clé secrète ne s'affiche qu'une seule fois et ne peut pas être récupérée ultérieurement. Si vous la perdez, vous devez générer une nouvelle clé secrète.
Cliquez sur OK.
Créer une clé API Google Cloud
L'intégration de ThreatDown à Google SecOps nécessite une clé API Google Cloud Platform (GCP).
Créer la clé API
- Accédez à la page Identifiants dans Google Cloud Console.
- Sélectionnez votre projet (celui associé à votre instance Chronicle).
- Cliquez sur Créer des identifiants > Clé API.
- Une clé API est créée et affichée dans une boîte de dialogue.
- Copiez la clé API et conservez-la en lieu sûr.
- Dans la fenêtre pop-up, cliquez sur Modifier la clé API.
Restreindre la clé API
- Sur la page des paramètres Clé API :
- Name (Nom) : saisissez un nom descriptif (par exemple,
Chronicle Webhook API Key).
- Name (Nom) : saisissez un nom descriptif (par exemple,
- Sélectionnez Restreindre la clé.
Dans le menu déroulant, sélectionnez API Chronicle.
Cliquez sur Enregistrer.
Configurer le webhook ThreatDown EDR
ThreatDown fournit une intégration native de Google Chronicle SIEM sur la page Integrate (Intégrer) des consoles Nebula et OneView. Choisissez la section ci-dessous qui correspond à votre plate-forme.
Option A : Configurer Nebula
- Connectez-vous à la console ThreatDown Nebula sur cloud.malwarebytes.com à l’aide des identifiants de super-administrateur.
- Accédez à la page Integrate (Intégrer) dans le menu de navigation de gauche.
- Recherchez Google Chronicle SIEM , puis cliquez sur Configure (Configurer).
- Fournissez les informations de configuration suivantes :
- Webhook URL (URL du webhook) : collez l'URL copiée à partir du champ Endpoint Information (Informations sur le point de terminaison) de la page des détails du flux Google SecOps.
- Webhook Secret (Secret du webhook) : collez la clé secrète générée à partir de l'onglet "Clé secrète du flux" de Google SecOps.
- GCP API Key (Clé API GCP) : collez la clé API obtenue auprès de Google Cloud.
- Cliquez sur Enregistrer.
Une fois l'enregistrement effectué, Nebula commence à exporter les journaux de détection et d'activité suspecte directement vers Google SecOps.
Option B : Configurer OneView
- Connectez-vous à la console ThreatDown OneView sur cloud.malwarebytes.com à l'aide des identifiants d'administrateur global.
- Accédez à la page Integrate (Intégrer) dans le menu de navigation de gauche.
- Recherchez Google Chronicle SIEM , puis cliquez sur Configure (Configurer).
- Activez l'option Enable Setup (Activer la configuration).
- Fournissez les informations de configuration suivantes :
- Webhook URL (URL du webhook) : collez l'URL copiée à partir du champ Endpoint Information (Informations sur le point de terminaison) de la page des détails du flux Google SecOps.
- Webhook Secret (Secret du webhook) : collez la clé secrète générée à partir de l'onglet "Clé secrète du flux" de Google SecOps.
- GCP API Key (Clé API GCP) : collez la clé API obtenue auprès de Google Cloud.
- Site Selection(Sélection du site) : sélectionnez le ou les sites à partir desquels ingérer des données.
- Cliquez sur Enregistrer.
Une fois l'enregistrement effectué, OneView commence à exporter les journaux de détection et d'activité suspecte des sites sélectionnés directement vers Google SecOps.
Vérifier l'ingestion des journaux
Après avoir configuré l'intégration, vérifiez que les journaux ThreatDown EDR sont ingérés dans Google SecOps :
- Dans Google SecOps, accédez à Investigation > SIEM Search (Examen > Recherche SIEM).
Saisissez la requête de recherche UDM suivante :
metadata.vendor_name = "Malwarebytes" and metadata.log_type = "MALWAREBYTES_EDR"Sélectionnez la période souhaitée.
Cliquez sur Run Search (Exécuter la recherche).
Cliquez sur l'onglet Events (Événements). Les données ingérées à partir de ThreatDown EDR sont affichées à l'aide d'un modèle de données unifié (UDM).
Limites et bonnes pratiques concernant les webhooks
Limites de requêtes
| Limite | Valeur |
|---|---|
| Taille maximale des requêtes | 4 Mo |
| Nombre maximal de requêtes par seconde (RPS) | 15 000 |
| Délai avant expiration de la requête | 30 secondes |
| Comportement de nouvelle tentative | Automatique avec intervalle exponentiel entre les tentatives |
Vous avez encore besoin d'aide ?
- Activer l'intégration de Nebula à Google Chronicle SIEM - support.threatdown.com
- Activer l'intégration de OneView à Google Chronicle SIEM - support.threatdown.com
- Exigences pour l'intégration de Nebula à Google Chronicle SIEM - support.threatdown.com
- Exigences pour l'intégration de OneView à Google Chronicle SIEM - support.threatdown.com
- Article de blog sur ThreatDown Nebula et OneView avec Google Chronicle SIEM - threatdown.com
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| payload.payload.sa_details.data.list.0.details.0.detected_by.0.description | metadata.description | Valeur copiée directement |
| has_principal | metadata.event_type | Défini sur "GENERIC_EVENT" au départ, puis sur "SCAN_FILE" si has_principal et has_target_file, "STATUS_UPDATE" si has_principal, "USER_UNCATEGORIZED" si has_user, sinon "GENERIC_EVENT" |
| has_user | metadata.event_type | |
| has_target_file | metadata.event_type | |
| type | metadata.product_event_type | Valeur copiée directement |
| id | metadata.product_log_id | Valeur copiée directement |
| machine.id | principal.asset.asset_id | Concaténé à partir de "MACHINE:" et machine.id |
| machine.name | principal.asset.hostname | Valeur copiée directement |
| payload.payload.group_name | principal.group.group_display_name | Valeur copiée directement |
| account.default_group_id | principal.group.product_object_id | Valeur copiée directement |
| machine.name | principal.hostname | Valeur copiée directement |
| account.id | principal.user.product_object_id | Valeur copiée directement |
| account.name | principal.user.user_display_name | Valeur copiée directement |
| account.owner_user_id | principal.user.userid | Valeur copiée directement |
| payload.payload.category | security_result.category_details | Valeur copiée directement |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.name | security_result.detection_fields | Chaque ensemble est défini comme libellé avec une clé, puis fusionné |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.description | security_result.detection_fields | |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.hyperlink | security_result.detection_fields | |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.tag | security_result.detection_fields | |
| payload.payload.policy_id | security_result.detection_fields | |
| payload.payload.policy_name | security_result.detection_fields | |
| payload.id | security_result.detection_fields | |
| payload.payload.sa_details.data.list.0.details.0.detected_by.0.tag | security_result.summary | Valeur copiée directement |
| payload.payload.threat_name | security_result.threat_name | Valeur copiée directement |
| payload.payload.sa_details.data.list.0.user | target.administrative_domain | Extrait à l'aide du modèle grok pour obtenir le domaine |
| payload.payload.path | target.file.full_path | Valeur copiée directement |
| payload.payload.sa_process_graph.data.children.0.children.0.node_info.process_path | target.process.file.full_path | Valeur copiée directement |
| payload.payload.sa_process_graph.data.children.0.node_info.process_path | target.process.parent_process.file.full_path | Valeur copiée directement |
| payload.payload.sa_process_graph.data.children.0.node_info.process_id | target.process.parent_process.pid | Valeur copiée directement |
| payload.payload.sa_process_graph.data.children.0.children.0.node_info.process_id | target.process.pid | Valeur copiée directement |
| payload.payload.sa_details.data.list.0.user | target.user.userid | Extrait à l'aide du modèle grok pour obtenir tar_user |
| metadata.product_name | metadata.product_name | Défini sur "Malwarebytes EDR" |
| metadata.vendor_name | metadata.vendor_name | Défini sur "Malwarebytes" |
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels de Google SecOps.