Intégrer un fichier CSV à Google SecOps

Ce document explique comment intégrer CSV à Google Security Operations.

Ce document explique comment intégrer CSV à Google Security Operations.

Cas d'utilisation

Dans Google SecOps, l'intégration CSV est compatible avec les cas d'utilisation suivants :

  • Recherche de menaces basée sur des fichiers : recherchez rapidement des chaînes spécifiques ou des entités malveillantes dans des fichiers journaux CSV locaux ou distants pour identifier les menaces enregistrées dans l'historique.

  • Génération d'alertes automatisée : ingérez automatiquement les enregistrements des anciens systèmes qui génèrent des données au format CSV, en les convertissant en alertes exploitables avec un mappage de gravité personnalisé.

  • Portabilité des données et reporting : transformez de manière programmatique les résultats JSON d'autres actions de playbook au format CSV pour les exporter facilement vers des outils de reporting externes ou un stockage local.

  • Enrichissement automatisé des entités : utilisez des fichiers CSV comme source locale de renseignements sur les menaces pour enrichir automatiquement les entités et les marquer comme suspectes lors de l'exécution du playbook.

  • Synchronisation des données entre les systèmes : traitez efficacement les fichiers avec différents encodages de caractères, tels que les anciens formats Excel, pour garantir la cohérence des données entre les différents outils de sécurité.

Avant de commencer

Avant de configurer l'intégration dans Google SecOps, vérifiez que vous disposez des éléments suivants :

  • Fonctionnalités de la plate-forme interne : cette intégration fournit des fonctionnalités de traitement de fichiers intégrées et ne nécessite pas de clés API ni d'identifiants tiers externes pour l'authentification.

  • Autorisations du système de fichiers : si un agent distant est utilisé, l'intégration nécessite des autorisations spécifiques pour accéder aux fichiers du système hôte et les gérer. Exécutez la commande suivante sur la machine de l'agent pour accorder les autorisations nécessaires pour votre répertoire cible : chown scripting:scripting "directory_path"

Paramètres d'intégration

L'intégration CSV nécessite les paramètres suivants :

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Nom de l'instance Chaîne N/A Non Nom de l'instance pour laquelle vous souhaitez configurer l'intégration.
Description Chaîne N/A Non Description de l'instance.
Exécuter à distance Case à cocher Décochée Non Cochez le champ pour exécuter l'intégration configurée à distance. Une fois cette option cochée, l'option permettant de sélectionner l'utilisateur distant (agent) s'affiche.

Pour savoir comment configurer une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement si nécessaire. Après avoir configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour en savoir plus sur la configuration et la prise en charge de plusieurs instances, consultez Prendre en charge plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis votre bureau et Exécuter une action manuelle dans votre demande.

Enregistrer le fichier JSON au format CSV

Enregistrez un objet JSON au format CSV.

Paramètres

Nom du paramètre Type Valeur par défaut Obligatoire Description
Objet JSON JSON N/A Oui Spécifie l'objet JSON à enregistrer au format CSV.
Écraser Booléen Faux Non Si cette option est activée, l'action écrase le fichier existant.
Chemin d'accès au fichier Chaîne N/A Oui Spécifie le chemin d'accès absolu au fichier CSV nouvellement créé. Si seul le nom de fichier est fourni, l'action stocke le fichier dans un dossier /tmp/.

Exécuter sur

N/A

Résultats de l'action

Résultat du script
Nom du résultat du script Valeur
is_success Vrai/Faux
Résultat JSON
{"filepath": "{file name}"}
Mur des cas

L'action fournit les messages de sortie suivants :

Message de sortie Description du message
L'objet JSON a bien été transformé et enregistré dans le chemin d'accès au fichier fourni. L'action a bien été effectuée.
Le fichier est introuvable pour le chemin d'accès fourni. Le fichier n'existe pas.
Aucune activité n'a été trouvée pour les comptes de service fournis dans Google Cloud Policy Intelligence L'action n'a trouvé aucune donnée pour les comptes de service listés.
Erreur lors de l'exécution de l'action "Enregistrer au format JSON en CSV".

L'action a renvoyé une erreur.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Recherche par chaîne

Recherchez des chaînes dans les fichiers CSV.

Paramètres

Nom du paramètre Type Valeur par défaut Est obligatoire Description
Chemin d'accès CSV Chaîne N/A Oui Spécifiez le chemin d'accès au fichier CSV ou à un dossier contenant tous les fichiers CSV. Si un dossier est fourni, l'action s'applique à tous les fichiers CSV du dossier.
Colonne CSV Chaîne N/A Non Spécifiez une liste de colonnes pouvant contenir des informations sur l'entité, séparées par une virgule. Si rien n'est fourni, l'action effectuera une recherche dans toutes les colonnes.
Jours en arrière Chaîne 10 Non Spécifiez le nombre de jours à remonter pour traiter les fichiers CSV.
Rechercher une valeur Chaîne N/A Non Spécifiez une chaîne à rechercher. Si l'option "Rechercher plusieurs chaînes" est activée, ce paramètre est traité comme une liste de chaînes à rechercher, séparées par une virgule.
Ne renvoie que la première ligne. Case à cocher Décochée Non Si cette option est activée, l'action ne renverra qu'une seule ligne dans le premier fichier correspondant à l'entité.
Types d'encodage de fichier Chaîne utf-8, latin-1, iso-8859-1 Oui Liste d'éléments séparés par une virgule des types d'encodage CSV utilisés pour décoder vos fichiers CSV, par exemple utf-8, latin-1, iso-8859-1, utf-16... L'ordre dans lequel les types d'encodage sont indiqués définit l'ordre dans lequel ils sont utilisés pour décoder les fichiers.Par exemple (dans l'exemple ci-dessus), utf-8 a la priorité la plus élevée et sera utilisé principalement pour décoder tous les fichiers. S'il existe un fichier CSV qui utilise un autre encodage, le suivant dans l'ordre (latin-1) sera utilisé, et ainsi de suite, jusqu'à ce que le dernier encodage soit utilisé.
Rechercher plusieurs chaînes Case à cocher Décochée Non Si cette option est activée, "Valeur de recherche" fonctionnera comme une liste de valeurs séparées par une virgule, au lieu d'une seule chaîne.
Champs à renvoyer CSV N/A Non Spécifiez une liste de valeurs à renvoyer, séparées par une virgule.

Cas d'utilisation

Recherchez des chaînes dans les fichiers CSV.

Exécuter sur

Cette action s'exécute sur toutes les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
count_rows_csv N'importe quel nombre de lignes count_rows += 1
Résultat JSON
[
    {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        },
        "Entity": "host"
    }, {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        }, "Entity": "1.1.1.1"
    }
]
Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

Pour les enregistrements trouvés : "Informations trouvées pour les chaînes suivantes : \n (search_string)"

Si aucun enregistrement n'est trouvé pour certaines chaînes : "L'action n'a pas pu trouver d'informations sur les chaînes suivantes :"

Si aucun enregistrement n'est trouvé :"Aucune information n'a été trouvée pour les éléments fournis."

Si tous les encodages ne sont pas valides : "Erreur lors de l'exécution de l'action "Recherche CSV par chaîne". Les encodages fournis ne sont pas valides. Veuillez vérifier l'orthographe."

Général

Rechercher par entité

Recherchez des entités dans des fichiers CSV et enrichissez-les.

Paramètres

Nom du paramètre Type Valeur par défaut Est obligatoire Description
Chemin d'accès CSV Chaîne N/A Oui Spécifiez le chemin d'accès au fichier CSV ou à un dossier contenant tous les fichiers CSV. Si un dossier est fourni, l'action s'applique à tous les fichiers CSV du dossier.
Colonne CSV Chaîne N/A Oui Spécifiez une liste de colonnes pouvant contenir des informations sur l'entité, séparées par une virgule. Si rien n'est fourni, l'action effectuera une recherche dans toutes les colonnes.
Jours précédents Chaîne 10 Oui Spécifiez le nombre de jours à remonter pour traiter les fichiers CSV.
Marquer comme suspect Case à cocher Décochée Non Si cette option est activée, l'action marquera l'entité comme suspecte si elle a été trouvée dans le fichier.
Ne renvoie que la première ligne. Case à cocher Décochée Non Si cette option est activée, l'action ne renverra qu'une seule ligne dans le premier fichier correspondant à l'entité.
Types d'encodage de fichier Chaîne utf-8, latin-1, iso-8859-1 Oui Liste d'éléments séparés par une virgule des types d'encodage CSV utilisés pour décoder vos fichiers CSV, par exemple utf-8, latin-1, iso-8859-1, utf-16... L'ordre dans lequel les types d'encodage sont indiqués définit l'ordre dans lequel ils sont utilisés pour décoder les fichiers.Par exemple (dans l'exemple ci-dessus), utf-8 a la priorité la plus élevée et sera utilisé principalement pour décoder tous les fichiers. S'il existe un fichier CSV qui utilise un autre encodage, le suivant dans l'ordre (latin-1) sera utilisé, et ainsi de suite, jusqu'à ce que le dernier encodage soit utilisé.
Enrichir les entités Case à cocher Cochée Non Si cette option est activée, l'action ajoutera les informations du fichier CSV à la table d'enrichissement de l'entité.
Créer un insight Case à cocher Cochée Non Si cette option est activée, l'action crée un insight si l'entité a été trouvée dans le fichier.
Champs à renvoyer CSV N/A Non Spécifiez une liste de valeurs à renvoyer, séparées par une virgule.

Exécuter sur

Cette action s'exécute sur toutes les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
count_rows_csv N'importe quel nombre de lignes count_rows += 1
Résultat JSON
[
    {
        "EntityResult": [{
            "domain": "example.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "Arcsight",
            "id": "1011",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "blocked",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "Ziv",
            "eventHostName": "WS-ZivDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }, {
            "domain": "SmartCompany.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "ESM",
            "id": "1012",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "allowed",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "GG",
            "eventHostName": "WS-GGDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }],
        "Entity": "192.168.11.11"
    }
]
Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

Pour les entités trouvées : "Informations trouvées sur les entités suivantes : \n (entity.identifier)"

Pour les entités introuvables : "Aucune information n'a été trouvée sur les entités suivantes : \n (entity.identifier)"

Si aucune entité n'est trouvée : "Aucune information n'a été trouvée pour les entités fournies."

Si tous les encodages ne sont pas valides : "Erreur lors de l'exécution de l'action "Recherche CSV par chaîne". Les encodages fournis ne sont pas valides. Veuillez vérifier l'orthographe."

Général

Ping

Tester la connectivité.

Paramètres

N/A

Exécuter sur

Cette action s'exécute sur toutes les entités.

Résultats de l'action

Résultat du script

N/A

Résultat JSON
N/A

Connecteurs

Connecteur CSV

Récupérez les données de fichiers CSV situés dans un dossier spécifique, puis convertissez-les en alertes dans le système Google SecOps.

Cette rubrique illustre le mécanisme et la configuration par lesquels Google SecOps produit des fichiers CSV, ainsi que les workflows compatibles et les actions effectuées sur la plate-forme.

Cas d'utilisation

Un client dispose de fichiers CSV provenant d'un système, et ces fichiers peuvent être encodés différemment.

*   Add support for comma-separated encodings in the Encoding field in the
    connector.
    *   The connector should try the different encodings by their order in
        the field (first encoding - highest priority, last - lowest
        priority) with try/except. If no matching encoding was found -
        consider the file as an error and notify.
    *   Put a default value for the fields - a list of most common CSV
        encodings by priority (utf8, latin1, and iso...)

Accès aux fichiers CSV

Accès de Google SecOps aux fichiers CSV : configurez un dossier pour les fichiers CSV.

Transfert d'enregistrements CSV vers Google SecOps

Utiliser des enregistrements de fichiers CSV

Lorsque vous configurez Google SecOps pour qu'il utilise des fichiers CSV comme source d'alerte, vous devez indiquer un dossier spécifique à partir duquel les fichiers CSV seront récupérés. Google SecOps récupère tous les enregistrements d'un fichier CSV et les transmet pour qu'ils soient traduits et contextualisés en tant qu'alertes pour les demandes.

Mapper la gravité dans le connecteur

Pour mapper la gravité, vous devez spécifier le champ à utiliser pour obtenir la valeur de la gravité dans le paramètre "Nom du champ de gravité". La réponse peut contenir trois types de valeurs : des entiers, des nombres à virgule flottante et des chaînes. Pour les entiers et les nombres à virgule flottante, aucune configuration supplémentaire n'est requise. Le connecteur lira ces valeurs et les mappera conformément aux normes Google SecOps. Voici un rappel rapide de la façon dont les valeurs entières sont mappées :

  • 100 - Critique
  • 100 > x >= 80 : élevée
  • 80 > x >=60 : Moyen
  • 60 > x >=40 : faible
  • 40 > x Informations

Si nous utilisons des chaînes dans la réponse, une configuration supplémentaire est requise. Dans le dossier où se trouvent les scripts du connecteur, vous trouverez un fichier de configuration nommé severity_map_config.json. Ce fichier définit les règles de mappage de la gravité.

Au départ, le fichier se présente comme suit : 1 2 3 { "Default": 50 }

Imaginons une situation où les valeurs nécessaires se trouvent dans event.severity. event.severity peut contenir les valeurs suivantes : "Malicious", "Benign", "Unknown".

Tout d'abord, nous devons spécifier dans le paramètre "Nom du champ de gravité" que nous utiliserons event.severity. Ensuite, nous devons mettre à jour le fichier de configuration. Après les modifications, voici à quoi doit ressembler le fichier severity_map_config.json : 1 2 3 4 5 6 7 8 { "event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default": 50 }

Désormais, lorsque le connecteur recevra un événement avec event.severity = "Malicious", il lui attribuera une gravité critique.

Configurer le connecteur CSV dans Google SecOps

Pour obtenir des instructions détaillées sur la configuration d'un connecteur dans Google SecOps, consultez Configurer le connecteur.

Paramètres du connecteur

Utilisez les paramètres suivants pour configurer le connecteur :

Nom du paramètre Type Valeur par défaut Est obligatoire Description
Nom du champ de produit Chaîne device_product Oui Nom du champ utilisé pour déterminer le produit de l'appareil.
Nom du champ d'événement Chaîne nom Non Nom du champ utilisé pour déterminer le nom de l'événement (sous-type).
Délai avant expiration du script (en secondes) Chaîne 60 Oui Délai avant expiration (en secondes) du processus Python exécutant le script actuel.
Chemin d'accès au dossier CSV Chaîne N/A Oui Chemin d'accès au dossier contenant tous les fichiers CSV à ingérer.
Limite de CSV Chaîne N/A Non Nombre de fichiers CSV à traiter par itération.
Nom du champ du générateur de règles Chaîne N/A Non Nom du champ contenant des informations sur le générateur de règles.
Nom du champ temporel Chaîne N/A Non Nom du champ contenant des informations sur l'heure de l'événement.
Le fichier CSV comporte un en-tête Case à cocher Cochée Oui Indique si le fichier CSV comporte un en-tête.
Type d'encodage de fichier Chaîne utf-8 Oui Définissez le type d'encodage CSV, par exemple iso-8859-1, latin1, utf-8, utf-16.
Nom du champ d'alerte Chaîne N/A Non Nom du champ contenant des informations sur le nom de l'alerte.
Nom du champ de gravité Chaîne N/A Non

Nom du champ contenant des informations sur la gravité.
Remarque : Vous pouvez mapper la gravité en fonction des valeurs de la réponse. Pour ce faire, vous devez accéder au dossier d'exécution du connecteur et modifier severity_mapping_config.json. Consultez la documentation pour référence.

Règles du connecteur

Assistance de proxy

Le connecteur n'est pas compatible avec le proxy.

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