Intégrer Splunk à Google SecOps

Ce document explique comment intégrer Splunk à Google SecOps.

Avant de commencer

Avant d'intégrer Splunk à Google SecOps, déterminez la méthode d'ingestion appropriée pour votre architecture de déploiement et vérifiez que votre environnement satisfait toutes les dépendances, tous les chemins réseau et toutes les autorisations d'accès requis.

Google SecOps est compatible avec deux méthodes d'ingestion :

  • Ingestion basée sur le push : Splunk évalue les alertes en local et envoie les événements directement à Google SecOps à l'aide du module complémentaire TA-Siemplify et des actions de déclenchement d'alerte. Aucune configuration de connecteur n'est requise dans Google SecOps.

  • Ingestion en mode pull : les connecteurs Google SecOps interrogent périodiquement les points de terminaison de l'API REST Splunk pour récupérer les alertes, les résultats de recherche SPL ou les événements notables Splunk ES.

Ingestion basée sur le push

L'ingestion basée sur le push nécessite une connectivité HTTPS sortante directe de Splunk vers Google SecOps, ainsi que des configurations de modules complémentaires spécifiques sur vos têtes de recherche Splunk.

Vérifiez que les conditions suivantes sont remplies avant de configurer l'ingestion basée sur le push :

  1. Téléchargez et installez le package TA-Siemplify depuis Splunkbase sur toutes les têtes de recherche Splunk cibles. Dans les environnements distribués, déployez le module complémentaire sur votre cluster Search Head à l'aide de Splunk Deployer ou du serveur de déploiement.

  2. Vérifiez qu'une version compatible du modèle d'informations communes Splunk (Splunk_SA_CIM) est installée sur la tête de recherche pour prendre en charge les journaux et les alertes modulaires.

  3. Assurez-vous que vos têtes de recherche Splunk disposent d'un accès réseau sortant via HTTPS (port TCP 443) à l'URL de votre instance Google SecOps.

  4. Vérifiez que vous disposez d'un compte Google SecOps avec des autorisations d'administrateur pour générer des clés API (Paramètres > Avancés > API). Assurez-vous que la clé API générée est associée à un rôle disposant des autorisations de création d'alertes et de demandes.

  5. Si vous prévoyez d'ingérer des événements bruts à partir de recherches transformées (par exemple, des recherches utilisant stats, chart ou timechart), assurez-vous que dispatch.buckets = 1 est configuré dans savedsearches.conf sur vos Search Heads.

Ingestion basée sur l'extraction

L'ingestion basée sur l'extraction, les actions de playbook et les jobs de synchronisation nécessitent Google SecOps (ou un agent à distance) pour établir des connexions administratives entrantes à Splunk.

Vérifiez que vous remplissez les conditions suivantes avant de configurer des connecteurs, des actions ou des jobs de type "pull" :

  1. Connectivité réseau : vérifiez la visibilité réseau de Google SecOps (ou de votre agent distant) vers le port de l'API REST de gestion Splunk (par défaut : 8089/TCP).

  2. Certificat CA personnalisé : si votre instance Splunk utilise un certificat CA privé ou interne, vérifiez que vous exécutez l'intégration Splunk version 26.0 ou ultérieure dans Google SecOps.

  3. Authentification : obtenez des identifiants utilisateur Splunk valides (nom d'utilisateur et mot de passe) ou générez un jeton Splunk Bearer (pour activer cette méthode d'authentification sur la plate-forme Splunk, l'authentification par jeton est requise).

  4. Autorisations du rôle Splunk : assurez-vous que le compte Splunk utilisé pour l'authentification dispose d'un rôle avec les autorisations suivantes :

  5. Autorisations de datastore et de recherche : vérifiez que le compte d'authentification a accès aux datastores Splunk pertinents pour les composants que vous avez choisis :

    • Connecteur Splunk pour l'extraction : autorisations de lecture pour le tableau de conversion siemplify_alerts (rempli lorsque TA-Siemplify est installé et configuré en mode Pull).
    • Connecteur et actions de requête Splunk :
      • Autorisations de recherche sur les index d'événements cibles (ne nécessitent pas TA-Siemplify).
      • Autorisations d'écriture et de saisie sur l'index cible si vous utilisez l'action Envoyer un événement.
    • Connecteur et jobs d'événements notables Splunk ES : une installation active de Splunk Enterprise Security (ES), des autorisations de lecture pour l'index notable et l'accès à la macro get_notable_index (ne nécessite pas TA-Siemplify).

Paramètres d'intégration

Utilisez les paramètres suivants pour configurer l'intégration :

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Adresse du serveur Chaîne {SCHEMA}://{IP}:{PORT} Oui Adresse du serveur Splunk.
Nom d'utilisateur Chaîne N/A Non Adresse e-mail de l'utilisateur à utiliser pour se connecter à Splunk.
Mot de passe Mot de passe N/A Non Mot de passe de l'utilisateur correspondant.
Jeton d'API Mot de passe N/A Non Jeton d'API Splunk. Lorsque ce champ n'est pas vide, le jeton API est prioritaire par rapport aux autres méthodes d'authentification.
Vérifier le protocole SSL Case à cocher Décochée Non Cochez cette case si votre connexion Splunk nécessite une validation SSL (elle est décochée par défaut).
Fichier de certificat CA Chaîne N/A Non Fichier de certificat CA encodé en base64.

Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente dans Votre bureau et Effectuer une action manuelle.

Récupérer les événements hôtes

Obtenez des événements liés aux hôtes dans Splunk.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Limite d'événements par hôte Integer 100 Oui Spécifiez le nombre d'événements à renvoyer par hôte.
Résultats de Chaîne Il y a 24h Oui Spécifiez l'heure de début des événements.
Résultats pour Chaîne maintenant Oui Spécifiez l'heure de fin des événements.
Champs de résultat CSV N/A Non Spécifiez une liste de champs à renvoyer, séparés par une virgule.
Index Chaîne N/A Non Spécifiez l'index à utiliser lors de la recherche d'événements liés à l'hôte. Si rien n'est fourni, l'action n'utilisera pas l'index.
Clé d'hôte Chaîne hôte Non Spécifiez la clé à utiliser pour obtenir des informations sur les événements hôtes. Valeur par défaut : "host".

Exécuter sur

Cette action s'exécute sur l'entité "Nom d'hôte".

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
success Vrai/Faux success:False
Résultat JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si l'opération réussit et que des résultats sont disponibles : "Successfully returned events for the following hosts in Splunk: \n {0}".format(entity.identifier)

Si l'opération réussit et que les résultats ne sont pas disponibles pour certains : "Aucun événement n'a été trouvé pour les hôtes suivants dans Splunk :\n {0}".format(entity.identifier)

Si l'opération aboutit et que les résultats ne sont pas disponibles pour tous les hôtes : "Aucun événement n'a été trouvé pour les hôtes fournis dans Splunk"

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale se produit (par exemple, des identifiants incorrects, une absence de connexion au serveur ou autre) : "Erreur lors de l'exécution de l'action "Obtenir les événements de l'hôte". Motif : {0}''.format(error.Stacktrace)

Si le code d'erreur est 400 : "Erreur lors de l'exécution de l'action "Obtenir les événements de l'hôte". Motif : {0}''.format(messages/text)

Général
Table du mur des cas

Nom : événements {Entity.identifier}

Colonnes : en fonction des résultats.

Ping

Testez la connectivité à Splunk avec les paramètres fournis sur la page de configuration de l'intégration dans l'onglet Google Security Operations Marketplace.

Paramètres

N/A

Exécuter sur

Cette action ne s'exécute pas sur les entités et ne comporte pas de paramètres d'entrée obligatoires.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
en cas de succès : "Connexion au serveur Splunk établie avec succès avec les paramètres de connexion fournis !"

L'action doit échouer et arrêter l'exécution d'un playbook :
if not successful : "Failed to connect to the Splunk server! Error is {0}".format(exception.stacktrace)

Général

Splunk Csv Viewer

Paramètres

Paramètre Type Valeur par défaut Obligatoire Description
Résultats string N/A Oui Résultats bruts.

Exécuter sur

Cette action s'applique à toutes les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_succeed Vrai/Faux is_succeed:False

SplunkQuery

Exécutez une requête dans Splunk.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Mode Recherche LDD

Intelligente

Valeurs possibles :

  • Verbose
  • Intelligente
  • Rapide
Non Spécifiez le mode d'exécution de la recherche.
Requête Chaîne Oui Spécifiez la requête à exécuter. Exemple : index="_internal"
Limite du nombre de résultats Integer 100 Non

Spécifiez le nombre de résultats à renvoyer.
Remarque : Ce paramètre ajoute le mot clé "head" à la requête fournie. La valeur par défaut est 100.

Résultats de Chaîne Il y a 24 h Non Spécifiez l'heure de début de la requête. Par défaut : -24h
Résultats à Chaîne maintenant Non Spécifiez l'heure de fin de la requête. Valeur par défaut : "now".
Champs de résultat CSV Non

Spécifiez une liste de champs à renvoyer, séparés par une virgule.
 Remarque : Ce paramètre ajoute le mot clé "fields" à la requête fournie.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_succeed Vrai/Faux is_succeed:False
Résultat JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si l'opération réussit et que des résultats sont disponibles : "Successfully returned results for the query "{0}" in Splunk".format(query)

Si la requête aboutit, mais qu'aucun résultat n'est disponible : "Aucun résultat n'a été trouvé pour la requête "{0}" dans Splunk".format(query)

Message asynchrone : "En attente de l'exécution de la requête {0}".format(nom de la requête)

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale se produit, comme des identifiants incorrects, une absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "SplunkQuery". Motif : {0}''.format(error.Stacktrace)

Si le code d'erreur est 400 : "Erreur lors de l'exécution de l'action "SplunkQuery". Motif : {0}''.format(messages/text)

Général
Table du mur des cas

Nom : Résultats de la requête Splunk

Colonnes : en fonction des résultats.

Général

Envoyer un événement

Envoyez un événement à Splunk.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Index Chaîne main Oui Spécifiez l'index dans lequel l'événement doit être créé.
Événement Chaîne N/A Oui Spécifiez l'événement brut à envoyer.
Hôte Chaîne N/A Non Spécifiez l'hôte associé à l'événement.
Source Chaîne N/A Non Spécifiez la source de l'événement. Exemple : www.
Sourcetype Chaîne N/A Non Spécifiez le type de source de l'événement. Exemple : web_event

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
success Vrai/Faux success:False
Résultat JSON
{
    "index": "default",
    "bytes": 70,
    "host": "dogo",
    "source": "www",
    "sourcetype": "web_event"
}
Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

En cas de succès : "Un événement a bien été ajouté à l'index "{0}" dans Splunk.".format(index)

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale se produit (par exemple, des identifiants incorrects, une absence de connexion au serveur, etc.) : "Erreur lors de l'exécution de l'action "Envoyer un événement". Motif : {0}''.format(error.Stacktrace)

Si le code d'erreur est 400 : "Erreur lors de l'exécution de l'action "Envoyer l'événement". Motif : {0}''.format(messages/text)

Général

Mettre à jour les grands événements

Mettez à jour les événements notables dans Splunk ES.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
ID des événements notables CSV N/A Oui Spécifiez les ID des événements notables. Exemple : 1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7@@notable@@cb87390ae72763679d3f6f8f097ebe2b,1D234D5B-1531-2D2B-BB94-41C439BE12B7@@notable@@cb87390ae72763679d3f6f8f097ebe2b
État LDD

Sélectionnez une réponse

Valeurs possibles :

Sélectionnez une réponse

Non attribué

Nouveau

En cours

En attente

Résolu

Fermé

Oui Spécifiez le nouvel état des événements notables.
Urgence LDD

Sélectionnez une réponse

Valeurs possibles :

Sélectionnez une réponse

Critique

Élevé

Moyen

Faible

Informatif

Oui Indiquez le nouveau niveau d'urgence de l'événement notable.
Nouveau propriétaire Chaîne N/A Oui Indiquez le nouveau propriétaire de l'événement notable.
Commentaire Chaîne N/A Oui Indiquez le commentaire pour l'événement notable.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si l'opération réussit et que des données sont disponibles (is_success=true)

print "Successfully updated {0} notable events in Splunk.".format(count(notable_events))

Si la mise à jour échoue (status_code=400, is_success=false) :

print "Action wasn't able to update notable events. Reason:{0}".format(string_from_response)

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale s'est produite (par exemple, des identifiants incorrects, aucune connexion au serveur, etc.) :

print "Error executing action "Update Notable Events". Motif : {0}''.format(error.Stacktrace)

Général

Exécuter une requête d'entité

Exécutez une requête d'entité dans Splunk.

Comment utiliser les paramètres d'action ?

Cette action permet de récupérer facilement des informations sur les entités. Par exemple, vous pouvez résoudre le cas d'utilisation dans lequel vous souhaitez voir le nombre d'événements des points de terminaison concernés par les hachages fournis sans créer de requêtes complexes. Pour résoudre ce problème dans Splunk, vous devez préparer la requête suivante : index="main" | where (device_ip="10.0.0.1" or device_ip="10.12.12.12") and (hash="bad_hash_1" or hash="bad_hash_2") Pour créer la même requête à l'aide de l'action "Execute Entity Query" (Exécuter une requête d'entité), vous devez renseigner les paramètres de l'action de la manière suivante :

Requête index="main"
Clé d'entité IP device_ip
Clé d'entité de hachage de fichier hash
Opérateur multi-entités ET

Vous pouvez laisser tous les autres champs vides.

Si le cas d'utilisation consiste à déterminer le nombre de points de terminaison affectés par les hachages fournis, la configuration de "Execute Entity Query" (Exécuter une requête d'entité) se présentera comme suit.

Requête index="main"
Clé d'entité de hachage de fichier hash

Dans ce cas, l'opérateur "Cross Entity Operator" n'aura aucun impact, car il n'affecte la requête que lorsque plusieurs "clés d'entité" sont fournies.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Mode Recherche LDD

Intelligente

Valeurs possibles :

  • Verbose
  • Intelligente
  • Rapide

Non Spécifiez le mode d'exécution de la recherche.
Requête Chaîne Oui Spécifiez la requête à exécuter sans la clause "Where". Exemple : index="_internal"
Limite du nombre de résultats Integer 100 Non Spécifiez le nombre de résultats à renvoyer. Remarque : Ce paramètre ajoute le mot clé "head" à la requête fournie. La valeur par défaut est 100.
Résultats de Chaîne Il y a 24 h Non Spécifiez l'heure de début de la requête. Par défaut : -24h
Résultats à Chaîne maintenant Non Spécifiez l'heure de fin de la requête. Valeur par défaut : "now".
Champs de résultat CSV N/A Non

Spécifiez une liste de champs à renvoyer, séparés par une virgule.
 Remarque : Ce paramètre ajoute le mot clé "fields" à la requête fournie.

Clé d'entité IP Chaîne N/A Non Spécifiez la clé à utiliser avec les entités IP. Pour en savoir plus, veuillez consulter la documentation de l'action.
Clé d'entité du nom d'hôte Chaîne N/A Non Spécifiez la clé à utiliser avec les entités "Nom d'hôte" lors de la préparation du fichier . Pour en savoir plus, veuillez consulter la documentation de l'action.
Clé d'entité de hachage de fichier Chaîne N/A Non Spécifiez la clé à utiliser avec les entités "Hachage de fichier". Pour en savoir plus, veuillez consulter la documentation de l'action.
Clé de l'entité utilisateur Chaîne N/A Non Spécifiez la clé à utiliser avec les entités utilisateur. Pour en savoir plus, veuillez consulter la documentation de l'action.
Clé d'entité d'URL Chaîne N/A Non Spécifiez la clé à utiliser avec les entités URL. Pour en savoir plus, veuillez consulter la documentation de l'action.
Clé d'entité de l'adresse e-mail Chaîne N/A Non Spécifiez la clé à utiliser avec les entités "Adresse e-mail". Pour en savoir plus, veuillez consulter la documentation de l'action.
Arrêter si le nombre d'entités est insuffisant Case à cocher Cochée Oui Si cette option est activée, l'action ne s'exécutera pas, sauf si tous les types d'entités sont disponibles pour les "Clés d'entité" spécifiées. Exemple : si "Clé d'entité d'adresse IP" et "Clé d'entité de hachage de fichier" sont spécifiées, mais qu'il n'y a pas de hachages de fichier dans le champ d'application, l'action n'exécutera pas la requête si ce paramètre est activé.
Opérateur multi-entités LDD

OU

Valeurs possibles :

OU

ET

Oui Spécifiez l'opérateur logique à utiliser entre les différents types d'entités.

Exécuter sur

Cette action s'applique aux entités suivantes :

  • Adresse IP
  • Hôte
  • Utilisateur
  • Hash
  • URL

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_succeed Vrai/Faux is_succeed:False
Résultat JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si l'opération réussit et que des résultats sont disponibles : "Successfully returned results for the query "{0}" in Splunk".format(query)

Si la requête aboutit, mais qu'aucun résultat n'est disponible : "Aucun résultat n'a été trouvé pour la requête "{0}" dans Splunk".format(query)

Message asynchrone : "En attente de l'exécution de la requête {0}".format(nom de la requête)

Si l'option "Arrêter si le nombre d'entités est insuffisant" est activée et que le nombre de types d'entités disponibles pour les "Clés d'entité" fournies est insuffisant (is_success=false) : l'action n'a pas pu créer la requête, car le nombre de types d'entités fournis pour les "Clés d'entité" spécifiées est insuffisant. Veuillez désactiver le paramètre "Arrêter si le nombre d'entités est insuffisant" ou fournir au moins une entité pour chaque "Clé d'entité .." spécifiée.

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale se produit (par exemple, des identifiants incorrects, une absence de connexion au serveur, etc.) : "Erreur lors de l'exécution de l'action "Exécuter une requête d'entité". Motif : {0}''.format(error.Stacktrace)

Si le code d'erreur est 400 : "Erreur lors de l'exécution de l'action "Exécuter la requête d'entité". Motif : {0}''.format(messages/text)

Général
Table du mur des cas

Nom : Résultats de la requête Splunk

Colonnes : en fonction des résultats.

Général

Connecteurs

Pour en savoir plus sur la configuration des connecteurs dans Google SecOps, consultez Ingérer vos données (connecteurs).

Splunk Query Connector

Le connecteur envoie les requêtes qui font partie de la liste dynamique (whitelist), récupère les résultats et crée une demande en fonction des résultats obtenus.

Exemples de requêtes Splunk pour afficher les journaux

  1. Les requêtes doivent être saisies en tant que règles de la liste dynamique (whitelist).

  2. Les requêtes de recherche comportant plusieurs filtres doivent utiliser un espace comme séparateur entre les filtres de recherche (par exemple, index=cim_modactions sourcetype=modular_alerts:risk).

  3. Si vous utilisez plusieurs règles de liste dynamique (whitelist) au lieu de saisir plusieurs filtres de recherche délimités par des espaces dans la même règle, une recherche distincte est exécutée pour chaque règle ajoutée.

    • index=cim_modactions
    • sourcetype=modular_alerts:send_data_to_siemplify
    • index=_internal sourcetype=splunkd
    • component=sendmodalert
    • action=send_data_to_siemplify
    • index=_internal source=/opt/splunk/var/log/splunk/send_data_to_siemplify_modalert.log

Paramètres du connecteur

Pour configurer le connecteur, utilisez les paramètres suivants :

Paramètres
Product Field Name Obligatoire

Saisissez le nom du champ source pour récupérer le nom Product Field.

La valeur par défaut est device_product.

Event Field Name Obligatoire

Saisissez le nom du champ source pour récupérer le nom Event Field.

La valeur par défaut est app.

API Root Obligatoire

Racine de l'API de l'instance Splunk.

La valeur par défaut est https://IP:8089.

Username Obligatoire

Nom d'utilisateur du compte Splunk.

Password Obligatoire

Mot de passe du compte Splunk.

API Token Optional

Jeton d'API Splunk.

Si ce champ contient une valeur, le jeton d'API est prioritaire sur les autres méthodes d'authentification.

Verify SSL Obligatoire

Si cette option est cochée, elle vérifie que le certificat SSL de la connexion au serveur CrowdStrike est valide.

(case décochée par défaut).

Environment Field Name Optional

Nom du champ dans lequel le nom de l'environnement est stocké.

Rule Generator Field Obligatoire

Nom du champ utilisé pour mapper la valeur du générateur de règles.

Alert Name Field Name Obligatoire

Nom de l'alerte.

Events Count Limit Per Query Optional

Nombre maximal d'événements à récupérer par requête.

Max Day Backwards Optional

Nombre de jours dans le passé à partir desquels récupérer les événements.

Aggregate Events Query Optional

Si cette option est activée, le connecteur regroupe tous les événements dans une seule alerte.

Désactivé par défaut

PythonProcessTimeout (Seconds) Obligatoire

Délai avant expiration du processus Python exécutant le script actuel.

La valeur par défaut est de 60 secondes.

Proxy Server Address Optional

Adresse du serveur proxy à utiliser.

Proxy Username Optional

Nom d'utilisateur du proxy pour l'authentification.

Proxy Password Optional

Mot de passe du proxy pour l'authentification.

Environment Regex Pattern Optional

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ Environment Field Name.

La valeur par défaut .* récupère tout et renvoie la valeur inchangée.

Ce paramètre vous permet de manipuler le champ "environment" à l'aide de la logique d'expression régulière.

Si le modèle d'expression régulière est nul ou vide, ou si la valeur de l'environnement est nulle, l'environnement final est l'environnement par défaut.

Règles du connecteur

Le connecteur est compatible avec le proxy.

Splunk Pull Connector

transférer les alertes et événements de Splunk vers Google SecOps ;

Paramètres du connecteur

Pour configurer le connecteur, utilisez les paramètres suivants :

Paramètres
Product Field Name Obligatoire

Saisissez le nom du champ source pour récupérer le nom Product Field.

La valeur par défaut est device_product.

Event Field Name Obligatoire

Saisissez le nom du champ source pour récupérer le nom Event Field.

La valeur par défaut est name.

Environment Field Name Optional

Nom du champ dans lequel le nom de l'environnement est stocké.

Si le champ d'environnement est introuvable, l'environnement de résultat est "" .

La valeur par défaut est "".

Environment Regex Pattern Optional

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ Environment Field Name.

La valeur par défaut .* récupère tout et renvoie la valeur inchangée.

Ce paramètre vous permet de manipuler le champ "environment" à l'aide de la logique d'expression régulière.

Si le modèle d'expression régulière est nul ou vide, ou si la valeur de l'environnement est nulle, le résultat final de l'environnement est "".

PythonProcessTimeout (Seconds) Obligatoire

Délai avant expiration du processus Python exécutant le script actuel.

La valeur par défaut est de 60 secondes.

Server Address Obligatoire

Adresse IP du serveur de l'API Splunk.

Port Obligatoire

Port de l'instance Splunk.

La valeur par défaut est 8089.

Username Obligatoire

Nom d'utilisateur du compte Splunk.

Password Obligatoire

Mot de passe du compte Splunk.

Time Frame Optional

Période pour récupérer les alertes.

La valeur par défaut est de 1 heure.

Exemples :

Si la valeur est définie sur une minute, le connecteur récupère les alertes à partir d'une minute avant.

Si la valeur est définie sur trois heures, le connecteur récupère les alertes émises au cours des trois dernières heures.

Si la valeur est définie sur un jour ou une semaine, le connecteur récupère les alertes à partir d'un jour (24 heures) ou d'une semaine, respectivement.

Alerts Count Limit Optional

Nombre d'alertes renvoyées par le connecteur par itération.

La valeur par défaut est 100.

Use SSL Optional

Cochez cette case pour activer la connexion SSL ou TLS.

(case décochée par défaut).

Proxy Server Address Optional

Adresse du serveur proxy à utiliser.

Proxy Username Optional

Nom d'utilisateur du proxy pour l'authentification.

Proxy Password Optional

Mot de passe du proxy pour l'authentification.

Règles du connecteur

Le connecteur est compatible avec le proxy.

Connecteur d'événements notables Splunk ES

Ingérez les événements notables depuis Splunk ES.

Définir la priorité d'une demande

La priorité de la demande est définie par le paramètre Urgency dans l'événement notable. Seul ce paramètre est pris en compte lors de l'ingestion de l'événement notable dans Google SecOps.

Paramètres du connecteur

Pour configurer le connecteur, utilisez les paramètres suivants :

Paramètres
Product Field Name Obligatoire

Saisissez le nom du champ source pour récupérer le nom Product Field.

La valeur par défaut est Product Name.

Event Field Name Obligatoire

Saisissez le nom du champ source pour récupérer le nom Event Field.

La valeur par défaut est index.

Environment Field Name Optional

Nom du champ dans lequel le nom de l'environnement est stocké.

Si le champ d'environnement n'est pas trouvé, l'environnement par défaut est utilisé.

La valeur par défaut est "".

Environment Regex Pattern Optional

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ Environment Field Name.

La valeur par défaut .* récupère tout et renvoie la valeur inchangée.

Ce paramètre vous permet de manipuler le champ "environment" à l'aide de la logique d'expression régulière.

Si le modèle d'expression régulière est nul ou vide, ou si la valeur de l'environnement est nulle, l'environnement final est l'environnement par défaut.

Script Timeout (Seconds) Obligatoire

Délai avant expiration du processus Python exécutant le script actuel.

La valeur par défaut est de 180 secondes.

Server Address Obligatoire

Adresse du serveur de l'instance Splunk.

La valeur par défaut est https://:8089.

Username Optional

Nom d'utilisateur du compte Splunk.

Password Optional

Mot de passe du compte Splunk.

API Token Obligatoire

Jeton d'API Splunk.

Si ce champ contient une valeur, le jeton d'API est prioritaire sur les autres méthodes d'authentification.

Lowest Urgency To Fetch Obligatoire

Niveau d'urgence le plus faible utilisé pour récupérer les événements notables.

Les valeurs possibles sont les suivantes :

  • Informational
  • Low
  • Medium
  • High
  • Critical

La valeur par défaut est Medium.

Fetch Max Hours Backwards Optional

Nombre d'heures dans le passé à partir desquelles récupérer les événements notables.

La valeur par défaut est de 1 heure.

Only Drilldown Events Optional

Si cette option est activée, le connecteur tente de récupérer les événements d'analyse sans récupérer les événements de base. Ce paramètre nécessite que l'option Fetch Base Events soit activée.

Désactivé par défaut

Padding Time Optional

Nombre d'heures qui seront utilisées comme marge intérieure.

Si aucune valeur n'est fournie, ce paramètre n'est pas applicable.

La valeur maximale est de 12 heures.

Max Notable Events To Fetch Optional

Nombre d'événements notables à traiter par itération de connecteur.

La valeur par défaut est 10.

Use whitelist as a blacklist Obligatoire

Si cette option est activée, la liste dynamique est utilisée comme liste de blocage.

Désactivé par défaut

Verify SSL Obligatoire

Si cette option est cochée, elle vérifie que le certificat SSL de la connexion au serveur CrowdStrike est valide.

(case décochée par défaut).

Proxy Server Address Optional

Adresse du serveur proxy à utiliser.

Proxy Username Optional

Nom d'utilisateur du proxy pour l'authentification.

Proxy Password Optional

Mot de passe du proxy pour l'authentification.

Query Filter Optional

Filtre de requête supplémentaire envoyé à Splunk pour obtenir les événements notables.

La valeur fournie ici est ajoutée à la clause de requête WHERE.

Extract Base Events Optional

Si cette option est activée, le connecteur extrait les événements de base liés à l'événement notable à l'aide d'informations sur le job. Dans le cas contraire, le connecteur crée un événement Google SecOps en fonction de l'événement notable.

Si ce paramètre est défini sur True, mais que le connecteur ne peut pas fonctionner avec les jobs, il utilise les informations sur les événements notables comme mécanisme de secours.

Cette option est activée par défaut.

Multivalue Fields Optional

Liste de champs séparés par une virgule et contenant plusieurs entités.

Par exemple, si un champ contient deux noms d'hôte, l'événement notable est divisé en deux événements Google SecOps pour mapper correctement les entités.

Notable Event Data Along Base Event Optional

S'il est activé, le connecteur ajoute des événements Google SecOps en fonction de l'événement notable en plus des événements de base.

Désactivé par défaut

Rule Generator Field Name Optional

Nom du champ utilisé pour mapper la valeur du générateur de règles.

Seules les informations sur l'événement notable lui-même sont utilisées pour la mise en correspondance. Les autres événements sont ignorés. Si une valeur non valide est fournie, le connecteur définit le champ sur la valeur rule_name.

Alert Name Source Optional

Source du nom de l'alerte.

Les valeurs possibles sont les suivantes :

  • Search Name
  • Rule Name

La valeur par défaut est Search Name.

Utiliser le paramètre Query Filter

Si vous devez affiner les événements notables en fonction de paramètres spécifiques, utilisez le paramètre Query Filter. La valeur fournie dans ce paramètre est ajoutée à la clause WHERE de la requête envoyée pour obtenir les événements notables.

Voici un exemple de requête envoyée :

(`get_notable_index` OR `get_sequenced_index`) | eval `get_event_id_meval`,
rule_id=event_id | tags outputfield=tag | `mvappend_field(tag,orig_tag)` |
`notable_xref_lookup` | `get_correlations` | `get_current_status` | `get_owner`
| `get_urgency` | typer | where (urgency="medium" AND urgency="low") AND
(status_label="Unassigned" OR status_label="New")  | tail 50 | fields *

Par exemple, si Query Filter = isTesting = True, la requête s'affiche comme suit :

search (`get_notable_index` OR `get_sequenced_index`) | eval epoch=_time | eval
`get_event_id_meval`,rule_id=event_id | tags outputfield=tag |
`mvappend_field(tag,orig_tag)` | `notable_xref_lookup` | `get_correlations` |
`get_current_status` | `get_owner` | `get_urgency` | typer | where
(urgency!="informational" AND urgency!="low" **AND isTesting = "True"**) |
fields *

Règles du connecteur

Le connecteur Splunk ES utilise des listes dynamiques et des listes de blocage (whitelist et blacklist). Il utilise le champ search_name de l'événement pour le comparer à la liste dynamique.

Événement de connecteur

[{
    "indicator": "2012/06/29_21:50", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-578a9be5-0e03-4ec0-940d-4b1842f40fd0", 
    "date_last": "2020-07-15 08:12:07 AM",
"Url": "indicator"
  },{
    "indicator": "2010/12/19_16:35", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-52cadd07-330a-45fd-962f-32e22d36a89a", 
    "date_last": "2020-07-15 08:12:07 AM"
  }]

Jobs

Pour en savoir plus sur les jobs, consultez Configurer un job et Planification avancée.

Synchroniser les événements fermés Splunk ES

Synchronise les événements notables Splunk ES fermés et les alertes Google SecOps.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Adresse du serveur Chaîne https://IP:8089 Oui Adresse du serveur de l'instance Splunk.
Nom d'utilisateur Chaîne N/A Non Nom d'utilisateur du compte Splunk.
Mot de passe Mot de passe N/A Non Mot de passe du compte Splunk.
Jeton d'API Mot de passe N/A Oui Jeton d'API Splunk. Lorsque ce champ n'est pas vide, le jeton API est prioritaire par rapport aux autres méthodes d'authentification.
Nombre maximal d'heures en arrière Integer 24 Oui Spécifiez le nombre d'heures en arrière pour synchroniser les états. (par défaut : 24 heures).
Vérifier le protocole SSL Case à cocher Cochée Oui Si cette option est activée, vérifiez que le certificat SSL de la connexion au serveur Splunk est valide.

Synchroniser les commentaires Splunk ES

Ce job synchronise les commentaires dans les événements Splunk ES et les demandes Google SecOps.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Adresse du serveur Chaîne https://IP:8089 Oui Adresse du serveur de l'instance Splunk.
Nom d'utilisateur Chaîne N/A Non Nom d'utilisateur du compte Splunk.
Mot de passe Mot de passe N/A Non Mot de passe du compte Splunk.
Jeton d'API Mot de passe N/A Oui Jeton d'API Splunk. Lorsque ce champ n'est pas vide, le jeton API est prioritaire par rapport aux autres méthodes d'authentification.
Vérifier le protocole SSL Case à cocher Cochée Oui Si cette option est activée, vérifiez que le certificat SSL de la connexion au serveur Splunk est valide.

Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.