Collecter les journaux de sécurité ServiceNow
Présentation
Ce parseur extrait les données d'événements de sécurité des journaux JSON ServiceNow, en mappant les champs pertinents à l'UDM. Il gère différents types d'événements, comme les connexions et les modifications d'autorisations, en renseignant les informations sur l'utilisateur principal/cible, les adresses IP et les métadonnées telles que les détails du fournisseur et du produit.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Instance Google SecOps.
- Accès privilégié à la sécurité ServiceNow.
Configurer des flux
Pour configurer un flux, 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 de sécurité ServiceNow).
- Sélectionnez Webhook comme type de source.
- Sélectionnez ServiceNow Security comme Type de journal.
- Cliquez sur Suivant.
- Facultatif : Spécifiez les valeurs des paramètres d'entrée suivants :
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
\n.
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
- Cliquez sur Suivant.
- Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
- Cliquez sur 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. Vous ne pourrez plus afficher cette clé secrète. Si nécessaire, vous pouvez générer une nouvelle clé secrète, mais l'ancienne deviendra obsolète.
- Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
- Cliquez sur OK.
Créer une clé API pour le flux de webhook
Accédez à la consoleGoogle Cloud > Identifiants.
Cliquez sur Créer des identifiants, puis sélectionnez Clé API.
Restreignez l'accès à la clé API à l'API Google Security Operations.
Spécifier l'URL du point de terminaison
- Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
Activez l'authentification en spécifiant la clé API et la clé secrète dans l'en-tête personnalisé au format suivant :
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRETRecommandation : Spécifiez la clé API en tant qu'en-tête au lieu de la spécifier dans l'URL.
Si votre client de 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=SECRETRemplacez les éléments suivants :
ENDPOINT_URL: URL du point de terminaison du flux.API_KEY: clé API pour s'authentifier auprès de Google SecOps.SECRET: clé secrète que vous avez générée pour authentifier le flux.
Configurer le webhook dans ServiceNow
- Connectez-vous à ServiceNow Security avec un compte privilégié.
- Accédez à Configuration > Surveillance > Connexions.
- Cliquez sur Ajouter .
- Sélectionnez Webhook.
- Spécifiez les valeurs des paramètres suivants :
- Nom : donnez un nom descriptif au webhook (par exemple, Google SecOps).
- URL : saisissez l'ENDPOINT_URL Google SecOps avec API_KEY et SECRET.
- Cliquez sur Enregistrer pour terminer la configuration du webhook.
Mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| created_by | target.user.userid | Mappé sur target.user.userid si snc_user est vide. |
| événement | metadata.product_event_type | Mappé directement à partir du champ de journal brut "event". |
| event_created | metadata.event_timestamp.seconds | Converti en secondes à partir du champ de journal brut "event_created" à l'aide du filtre date. |
| ip_address | principal.ip | Mappé directement à partir du champ de journal brut "ip_address" s'il n'est pas vide. |
| snc_user | target.user.userid | Mappé directement à partir du champ de journal brut "snc_user" s'il n'est pas vide. |
| utilisateur | principal.user.userid | Directement mappé à partir du champ de journal brut "user" (utilisateur) s'il n'est pas vide ou "null". |
| extensions.auth.type | Définissez la valeur sur "MACHINE" si le champ event est "Échec de la connexion", "Connexion SNC", "Connexion administrateur" ou "Usurpation d'identité". |
|
| metadata.event_type | Définissez-le sur "USER_LOGIN" si le champ event est "Échec de la connexion", "Connexion SNC", "Connexion administrateur" ou "Usurpation d'identité". Définissez la valeur sur "USER_CHANGE_PERMISSIONS" si le champ event est "Security Elevation". |
|
| metadata.log_type | Codé en dur sur "SERVICENOW_SECURITY". | |
| metadata.product_name | Codé en dur sur "SERVICENOW_SECURITY". | |
| metadata.vendor_name | Codé en dur sur "SERVICENOW". | |
| principal.user.userid | Définissez la valeur sur "UNKNOWN" si le champ user est vide ou défini sur "null". |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.