Configurer un webhook SIEM
Avant de commencer
- Assurez-vous qu'un Google Cloud projet pour Google SecOps est configuré et que l'API Chronicle est activée pour le projet.
Associez une instance Google SecOps à des Google Cloud services.
Utiliser les exemples de ligne de commande
Ce document inclut des exemples de commandes curl pour vous aider à configurer et à tester votre flux webhook. Ces exemples utilisent des variables d'espace réservé modifiables. Pour les utiliser efficacement :
Modifiez les variables : suivez les étapes de configuration pour obtenir des valeurs pour le point de terminaison webhook, une clé API et un secret. Cliquez sur les variables d'espace réservé dans l'exemple de code et remplacez-les par vos valeurs réelles :
ENDPOINT_URL: URL du point de terminaison du flux obtenue lorsque vous créez un flux webhook HTTPS.API_KEY: clé API que vous créez pour le flux webhook afin de vous authentifier auprès de Google SecOps.SECRET: clé secrète générée lorsque vous créez un flux webhook HTTPS.
Si vous modifiez une variable dans un exemple de code, elle sera mise à jour dans tous les exemples de cette page.
Copiez la commande : cliquez sur l'icône Copier l'exemple de code dans le bloc de code.
Exécutez la commande : collez la commande copiée dans votre environnement de terminal et exécutez-la.
Assurez-vous que la commande
curlinclut l'indicateur--fail(ou-f). Cela permet de s'assurer quecurlrenvoie un code de sortie différent de zéro si la requête HTTP échoue, et un code de sortie0pour indiquer la réussite. Cette étape est nécessaire pour la suite.Vérifiez la réussite : une commande
curlréussie ne renvoie aucun résultat. Pour confirmer la réussite, procédez comme suit :Si la commande
curlinclut l'indicateur--fail(ou-f), vérifiez le code de sortie en exécutant immédiatement la commande suivante :echo $?Un code de sortie
0indique la réussite.
Configurer un flux webhook HTTPS
Pour configurer un flux webhook HTTPS, procédez comme suit :
- Créez un flux webhook HTTPS, puis copiez l'URL du point de terminaison et la clé secrète.
- Créez une clé API à utiliser avec l'URL du point de terminaison. Vous pouvez également réutiliser votre clé API existante pour vous authentifier auprès de Google SecOps.
- Spécifiez l'URL du point de terminaison dans votre application.
Envoyer plusieurs événements dans une seule requête webhook
L'exemple de code suivant montre comment mettre en forme un seul corps de requête avec plusieurs objets JSON séparés par des sauts de ligne :
curl --location 'ENDPOINT_URL' \
--header 'Content-Type: application/json' \
--header 'X-goog-api-key: API_KEY' \
--header 'X-Webhook-Access-Key: SECRET' \
--data $'{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}\n{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}' \
--fail
Créer un flux webhook HTTPS
- Dans le menu Google SecOps, sélectionnez Settings (Paramètres), puis cliquez sur Feeds (Flux).
- Cliquez sur Add new (Ajouter).
- Dans le champ Feed name (Nom du flux), saisissez un nom pour le flux.
- Dans la liste Source type (Type de source), sélectionnez Webhook.
- Sélectionnez le Log type (Type de journal). Par exemple, pour créer un flux pour Open Cybersecurity Schema Framework, sélectionnez Open Cybersecurity Schema Framework (OCSF) comme Log type (Type de journal).
- Cliquez sur Next (Suivant).
- Facultatif : Spécifiez des valeurs pour les paramètres d'entrée suivants :
- Split delimiter (Délimiteur de division) : délimiteur utilisé pour séparer les lignes de journal, par exemple
\n. - Asset namespace (Espace de noms de l'élément) : l'espace de noms de l'élément.
- Ingestion labels (Libellés d'ingestion) : libellé à appliquer aux événements de ce flux.
- Split delimiter (Délimiteur de division) : délimiteur utilisé pour séparer les lignes de journal, par exemple
- Cliquez sur Next (Suivant).
- Vérifiez la configuration de votre nouveau flux dans l'écran Finalize (Finaliser), puis cliquez sur Submit (Envoyer).
- Cliquez sur Generate Secret Key (Générer une clé secrète) pour générer une clé secrète permettant d'authentifier ce flux.
- Copiez et stockez la clé secrète, car vous ne pourrez plus l'afficher. Vous pouvez générer une nouvelle clé secrète, mais cela rendra la clé secrète précédente obsolète.
- Dans l'onglet Details (Détails), copiez l'URL du point de terminaison du flux à partir du champ Endpoint Information (Informations sur le point de terminaison). Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
- Facultatif : Cliquez sur le bouton Feed Enabled (Flux activé) pour désactiver le flux. Le flux est activé par défaut.
- Cliquez sur Done (OK).
Créer une clé API pour le flux webhook
- Accédez à la page Google Cloud console Credentials (Identifiants) de la console.
- Cliquez sur Create credentials (Créer des identifiants), puis sélectionnez API key (Clé API).
- Restreignez l'accès de la clé API à l'API Chronicle.
Spécifier l'URL du point de terminaison
- Dans votre application cliente, spécifiez le point de terminaison HTTPS disponible dans le flux webhook.
Activez l'authentification en spécifiant la clé API et la clé secrète en tant qu'en-têtes personnalisés au format suivant :
X-goog-api-key: API_KEY X-Webhook-Access-Key: SECRETNous vous recommandons de spécifier la clé API en tant qu'en-tête plutôt que dans l'URL.
curl --location 'ENDPOINT_URL' \ --header 'Content-Type: application/json' \ --header 'X-goog-api-key: API_KEY' \ --header 'X-Webhook-Access-Key: SECRET' \ --data '{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}' \ --failSi votre client webhook n'accepte pas les en-têtes personnalisés, vous pouvez spécifier la clé API et la clé secrète à l'aide de paramètres de requête au format suivant :
ENDPOINT_URL?key=API_KEY&secret=SECRET
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.