Collecter les journaux ThreatDown EDR
Ce document explique comment configurer ThreatDown EDR (Nebula et OneView) pour transférer des journaux vers 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 dessert des environnements à locataire unique, tandis que OneView est la console de gestion mutualisée pour les MSP. 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 du modèle de données unifié (UDM) à 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 à la Google Cloud Console (pour créer une clé API)
- Pour Nebula : accès super-administrateur dans la console Nebula et compte Nebula actif avec un abonnement actif à Endpoint Detection and Response
- Pour OneView : accès administrateur global dans la console OneView et un site avec un abonnement actif à Endpoint Detection and Response
- 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 > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
- Cliquez sur Ajouter un flux d'actualités.
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
Malwarebytes). - Sélectionnez Webhook comme type de source.
- Sélectionnez Malwarebytes EDR comme Type de journal.
- Cliquez sur Suivant.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- 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.
- Espace de noms de l'élément : espace de noms de l'élément
- Étiquettes d'ingestion : étiquette à appliquer aux événements de ce flux.
- Cliquez sur Suivant.
- Vérifiez la configuration de votre nouveau flux d'actualités sur l'écran Finaliser, puis cliquez sur Envoyer.
Obtenir l'URL du point de terminaison du flux
- Accédez à l'onglet Détails du flux.
- Dans la section Informations sur le point de terminaison, copiez l'URL du point de terminaison du flux.
Le format d'URL est le suivant :
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:importOù
{region}est la région de votre instance Google SecOps (par exemple,us,europeouasia-southeast1) et{parent}est le chemin d'accès à la ressource au formatprojects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.Enregistrez cette URL pour les étapes suivantes.
Générer et enregistrer une 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 Clé secrète du flux.
- Cliquez sur Générer une clé secrète.
- Une boîte de dialogue affiche la clé secrète.
Copiez et enregistrez la clé secrète de manière sécurisée.
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 devrez en générer une nouvelle.
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 de la console Google Cloud.
- Sélectionnez votre projet (celui associé à votre instance Chronicle).
- Cliquez sur Créer des identifiants > Clé API.
- Une clé API est créée et s'affiche dans une boîte de dialogue.
- Copiez la clé API et stockez-la de manière sécurisée.
- Dans le pop-up, cliquez sur Modifier la clé API.
Restreindre la clé API
- Sur la page des paramètres de la clé API :
- Nom : saisissez un nom descriptif (par exemple,
Chronicle Webhook API Key).
- 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 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 à l'adresse cloud.malwarebytes.com avec des identifiants de super-administrateur.
- Accédez à la page Intégrer dans le menu de navigation de gauche.
- Recherchez Google Chronicle SIEM, puis cliquez sur Configurer.
- Fournissez les informations de configuration suivantes :
- URL du webhook : collez l'URL copiée depuis le champ Informations sur le point de terminaison de la page "Détails du flux" de Google SecOps.
- Secret du webhook : collez la clé secrète générée à partir de l'onglet "Clé secrète du flux Google SecOps".
- Clé API GCP : collez la clé API obtenue auprès de Google Cloud.
- Cliquez sur Enregistrer.
Après l'enregistrement, 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 avec des identifiants d'administrateur général.
- Accédez à la page Intégrer dans le menu de navigation de gauche.
- Recherchez Google Chronicle SIEM, puis cliquez sur Configurer.
- Activez l'option Activer la configuration.
- Fournissez les informations de configuration suivantes :
- URL du webhook : collez l'URL copiée depuis le champ Informations sur le point de terminaison de la page "Détails du flux" de Google SecOps.
- Secret du webhook : collez la clé secrète générée à partir de l'onglet "Clé secrète du flux Google SecOps".
- Clé API GCP : collez la clé API obtenue auprès de Google Cloud.
- Sélection du site : sélectionnez le ou les sites à partir desquels ingérer des données.
- Cliquez sur Enregistrer.
Après l'enregistrement, 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 bien ingérés dans Google SecOps :
- Dans Google SecOps, accédez à Investigation > 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 Lancer la recherche.
Cliquez sur l'onglet É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 de la requête | 4 Mo |
| Nombre maximal de RPS (requêtes par seconde) | 15 000 |
| Délai avant expiration de la requête | 30 seconds |
| Comportement de nouvelle tentative | Automatique avec intervalle exponentiel entre les tentatives |
Vous avez encore besoin d'aide ?
- Enable Nebula integration with Google Chronicle SIEM - support.threatdown.com
- Enable OneView integration with Google Chronicle SIEM - support.threatdown.com
- Requirements for Nebula integration with Google Chronicle SIEM - support.threatdown.com
- Requirements for OneView integration with 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éfinissez initialement sur "GENERIC_EVENT", 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énation 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 étiquette 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 d'un 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éfinissez cette option sur "Malwarebytes EDR". |
| metadata.vendor_name | metadata.vendor_name | Définissez-le sur "Malwarebytes". |
Journal des modifications
Afficher le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.