Configurer un webhook SOAR
Les webhooks sont une solution légère pour ingérer les alertes de votre organisation dans la plate-forme Google Security Operations SOAR.
Les alertes ingérées par webhook s'affichent sur la plate-forme avec les mêmes informations que celles ingérées à l'aide de connecteurs.
Pour éviter de créer des demandes en double, Google vous recommande d'utiliser un connecteur ou un webhook provenant de la même source, mais pas les deux.
Les Webhooks sont plus adaptés aux scénarios qui nécessitent une logique de mappage de base, tandis que les connecteurs sont plus adaptés au mappage avancé et flexible.
Configurer un webhook pour ingérer des alertes
Pour configurer un webhook permettant d'ingérer des alertes, procédez comme suit :
- Accédez à Paramètres SOAR> Ingestion> Webhooks.
- Cliquez sur Ajouter Ajouter un webhook entrant.
- Attribuez un nom au nouveau webhook et choisissez un environnement.
- Cliquez sur Enregistrer. Une fois enregistré, le nouveau webhook apparaît sur la page principale.
- Copiez l'URL du webhook et notez-la pour une utilisation ultérieure. Vous devez la saisir dans la plate-forme source en tant que destination du webhook.
Mapper les données
Une fois que vous avez importé un exemple JSON, vous pouvez utiliser la section Mappage des données pour mapper les champs de votre fichier JSON source avec les champs appropriés dans Google Security Operations SOAR. Le système traite votre fichier JSON brut, et vous utilisez l'interface utilisateur pour établir les mappages.
- Dans la section Mappage des données, cliquez sur Importer un exemple JSON. Fournissez un échantillon représentatif de la charge utile JSON envoyée par votre webhook.
- Mappez les champs Google Security Operations avec les champs correspondants de votre exemple JSON. Par exemple, pour mapper le champ obligatoire
StartTime, vous pouvez sélectionner un champ d'horodatage de votre fichier JSON, tel queDetections.Last.Update. - Utilisez le générateur d'expressions pour affiner les données. Par exemple, vous pouvez utiliser la fonction Format de date pour convertir votre code temporel au format d'epoch Unix en millisecondes requis. Pour en savoir plus, consultez Utiliser le générateur d'expressions.
- Cliquez sur Exécuter dans le générateur d'expressions pour tester le mappage et afficher le résultat. Une coche verte indique que le mappage a réussi.
- La charge utile JSON de votre webhook doit contenir les champs requis pour la création de demandes et l'ingestion d'alertes. Pour en savoir plus, consultez Comprendre le schéma JSON du webhook.
- Une fois que vous avez mappé tous les champs nécessaires, cliquez sur Enregistrer, puis activez le webhook.
Comprendre les champs cibles de mappage
Lorsque vous mappez vos données JSON, vous les mappez à des champs standardisés dans Google Security Operations SOAR. Ces champs sont organisés en catégories pour vous aider à normaliser et à structurer les données entrantes. Les champs disponibles dans l'interface utilisateur de mappage des données sont basés sur l'ontologie du système interne. Voici les principales catégories :
- Champs d'entité : utilisez ces champs pour les points de données à partir desquels le système peut extraire et modéliser automatiquement des entités, telles que des adresses IP, des noms de domaine, des hachages de fichiers et des noms d'utilisateur. Le mappage à ces champs enrichit l'alerte et améliore la corrélation et le tableau croisé dynamique.
- Champs d'événement génériques : utilisez-les pour les métadonnées d'événement générales, telles que les codes temporels (
StartTime,EndTime), les descriptions ou messages d'événement, et d'autres attributs d'événement courants. - Métadonnées techniques et sur l'appareil : utilisez ces champs pour obtenir des informations techniques sur la source de l'événement, comme le fournisseur et le produit de l'appareil concerné (
DeviceVendor,DeviceProduct), la gravité de l'événement et d'autres attributs techniques similaires.
Explorez les champs disponibles dans l'outil de mappage des données de l'interface utilisateur SOAR de Google Security Operations pour trouver le champ cible le plus approprié pour chaque élément de données de votre charge utile JSON.
Comprendre le schéma JSON du webhook
Pour vous assurer que vos alertes sont ingérées et traitées correctement par Google Security Operations SOAR, la charge utile JSON de votre webhook doit suivre une structure spécifique. Les tableaux suivants décrivent les principaux champs attendus dans la charge utile JSON.
Principaux champs de cas et d'alertes
Ces champs représentent les propriétés de premier niveau de l'alerte ou de la demande en cours de création.
| Champ | Type | Format recommandé | Obligatoire | Description | Exemple |
|---|---|---|---|---|---|
TicketId |
Chaîne | UUID | Oui |
|
"f7167971-f641-432f-a06f-ebca3caaa9dd" |
SourceSystemName |
Chaîne | Texte | Oui | Nom du système externe (par exemple, SIEM ou un système de détection et de réponse au niveau des points de terminaison (EDR)) qui a envoyé les alertes d'origine à SOAR. | "Splunk" |
Name |
Chaîne | Texte | Oui | Titre ou nom de la demande, souvent tiré du type d'alerte ou du résumé de la source. | "Suspicious Login Attempt" |
DeviceVendor |
Chaîne | Texte | Oui | Fournisseur de l'appareil ou du produit ayant généré l'alerte. Vous pouvez également mapper cette valeur à partir des données d'événement. | "Palo Alto Networks" |
RuleGenerator |
Chaîne | Texte | Oui | Nom de la règle dans le système source (par exemple, une règle de corrélation SIEM) qui a généré l'alerte. | "Brute Force Attempt Detected" |
StartTime |
Chaîne ou entier | Millisecondes depuis l'epoch (UTC) ou chaîne ISO8601 (par exemple, "2026-04-09T14:30:00Z") | Oui | Heure de début de l'événement le plus ancien de la demande. Si vous fournissez un entier, il doit être exprimé en millisecondes epoch Unix. | 1670000000000 ou "2026-04-09T14:30:00Z" |
Environment |
Chaîne | Texte | Non | Nom de l'environnement SOAR auquel appartient cette alerte. Il doit correspondre à un environnement défini dans vos paramètres SOAR. | "Default Environment" |
Description |
Chaîne | Texte | Non | Brève description de la demande ou de l'alerte. | "Failed login followed by success from new IP" |
DisplayId |
Chaîne | UUID ou chaîne | Non |
|
"f7167971-f641-432f-a06f-ebca3caaa9dd" |
Reason |
Chaîne | Texte | Non | Motif de la création ou du déclenchement de l'alerte. | "Unusual file access patterns detected." |
DeviceProduct |
Chaîne | Texte | Non | Nom du produit du fournisseur qui a généré l'alerte. Il peut également être mappé à partir des données d'événement. | "Cortex XDR" |
EndTime |
Chaîne ou entier | Millisecondes depuis l'epoch (UTC) ou chaîne ISO8601 (par exemple, "2026-04-09T14:30:00Z") | Non | Heure de fin du dernier événement de la demande. Si vous fournissez un entier, il doit être exprimé en millisecondes (epoch Unix). | 1670000060000 ou "2026-04-09T14:31:00Z" |
Priority |
Integer | 0–100 | Non | Niveau de priorité de la demande. Si aucune valeur n'est indiquée, cet attribut est défini par défaut sur 40. (0-19 : informatif, 20-39 : faible, 40-59 : moyen, 60-79 : élevé, 80-100 : critique) | 80 |
EventsList |
Tableau | Tableau d'objets JSON | Non | Tableau contenant un ou plusieurs objets d'événement bruts tels qu'ils ont été reçus de la source. Consultez Envoyer des données d'événement brutes. | [ { ... }, { ... } ] |
EventProduct |
Chaîne | Texte | Non | Produit ayant créé les événements. | "Cortex XDR" |
EventName |
Chaîne | Texte | Non | Titre ou nom de l'événement, souvent tiré du type ou du résumé de l'alerte source. | "Suspicious Login Attempt" |
Envoyer des données d'événement brutes : le tableau EventsList
Vous devez envoyer la charge utile JSON brute représentant les événements tels qu'ils proviennent du système source dans le tableau EventsList. Cet objet est un élément du tableau EventsList. Vous mappez ensuite des champs tels que source_ip et timestamp à l'aide de l'interface utilisateur de mappage des données.
Exemple d'objet d'événement dans le tableau EventsList
{
"event_id": "9a8b7c-1234-5678",
"timestamp": "2026-07-01T07:29:50Z",
"signature": "UserLoginFailed",
"severity": "Medium",
"user_name": "administrator",
"source_ip": "192.168.1.50",
"destination_ip": "10.0.0.10",
"domain": "CORP",
"status": "Failure",
"Reason": "Wrong Password",
"EventProduct": "Acme Firewall",
"EventName": "Failed Login Attempt"
}
Points clés à prendre en compte et bonnes pratiques
- Codes temporels : utilisez des millisecondes d'epoch Unix pour tous les champs
StartTimeetEndTimeau niveau supérieur (sous forme d'entier). Dans les données d'événement, fournissez les codes temporels tels qu'ils proviennent de la source. Vous les convertirez dans l'UI de mappage des données. - Champs obligatoires : assurez-vous que tous les champs marqués "Oui" dans la colonne "Obligatoire" sont présents dans votre charge utile JSON.
EventsListarray : ce tableau est essentiel. Même si l'alerte ne représente qu'un seul événement, elle doit être encapsulée dans le tableauEventsList.- Interface utilisateur de mappage des données : utilisez l'outil de mappage des données dans l'interface utilisateur de configuration des webhooks pour mapper les champs de votre fichier JSON brut aux champs Google Security Operations SOAR appropriés.
- Unicité :
DisplayIddoit être unique pour chaque nouvelle alerte afin d'éviter la déduplication.TicketIddoit être unique siDisplayIdn'est pas fourni. - État de la réponse : une réponse
HTTP 200 OKdu point de terminaison Webhooks Ingest confirme que la charge utile a été reçue, mais ne garantit pas qu'une alerte sera créée. La création d'alertes peut échouer lors du traitement en aval en raison de la structure de la charge utile ou des règles de filtrage. Vous pouvez suivre l'état du traitement en aval à l'aide de la fonctionnalité Collect SOAR platform logs (Collecter les journaux de la plate-forme SOAR). - Test : utilisez les onglets Importer un exemple JSON et Test sur la page Configuration du webhook dans SOAR pour valider la structure et les mappages de votre charge utile.
Tester le webhook
Dans l'onglet Tests, vous pouvez tester la fonctionnalité de bout en bout du webhook et afficher des descriptions détaillées des erreurs.
- Dans l'onglet Test, copiez l'URL de webhook.
- Importez un fichier JSON contenant les données pertinentes.
- Cliquez sur Exécuter. Les résultats s'affichent avec la sortie.
Configurer la plate-forme CrowdStrike
Ce cas d'utilisation vous guide à travers les étapes à suivre dans CrowdStrike pour que le webhook commence à ingérer les alertes dans la plate-forme Google SecOps.
- Dans le tableau de bord CrowdStrike Falcon, accédez au Falcon Store et installez le module complémentaire Webhooks.
- Configurez le webhook avec le nom et l'URL de webhook que vous avez copiés depuis la plate-forme Google SecOps, puis cliquez sur Save (Enregistrer).
- Accédez à la section Workflows.
- Cliquez sur Créer un workflow.
- Sélectionnez un déclencheur, tel que Nouvelle détection, puis cliquez sur Suivant.
- Sélectionnez Ajouter une action.
- Dans la section Personnaliser l'action, sélectionnez Notifications dans le menu Type d'action, puis Appeler un webhook dans le menu Action.
- Sélectionnez le nom que vous avez ajouté à l'étape initiale et tous les champs nécessaires, puis cliquez sur Terminer.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.