Intégrer CSV à Google SecOps
Ce document décrit 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 prend en charge les cas d'utilisation suivants :
Recherche de menaces basée sur les fichiers : Recherchez rapidement dans les fichiers journaux CSV locaux ou distants des chaînes spécifiques ou des entités malveillantes pour identifier les menaces enregistrées historiquement.
Génération automatisée d'alertes: Ingère automatiquement les enregistrements des systèmes existants qui produisent des données au format CSV, en les convertissant en alertes exploitables avec un mappage de gravité personnalisé.
Portabilité et rapports des données : Transformez par programmation les résultats JSON d’autres actions de playbook au format CSV pour une exportation simplifiée 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 systèmes : Traitez efficacement les fichiers avec des encodages de caractères variés, tels que les anciens formats Excel, pour garantir la cohérence des données entre 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 :
Capacités de la plateforme interne: Cette intégration fournit des capacités de traitement de fichiers intégrées et ne nécessite pas de clés API ou d'informations d'identification tierces externes pour l'authentification.
Permissions 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 et les gérer sur le système hôte. Exécutez la commande suivante sur la machine agent pour accorder les autorisations nécessaires à 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 | 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 la case cochée, l'option permettant de sélectionner l'utilisateur distant (agent) s'affiche. |
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.
Enregistrer JSON au format CSV
Enregistrer 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 du 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 été transformé et enregistré dans le chemin d'accès au fichier fourni. | L'action a réussi. |
| 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 Policy Intelligence Google Cloud | 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 le fichier JSON au format CSV". | L'action a renvoyé une erreur. Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants. |
Rechercher par chaîne
Recherchez des chaînes dans les fichiers CSV.
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| Chemin d'accès au fichier 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 itère sur tous les fichiers CSV du dossier. |
| Colonne CSV | Chaîne | N/A | Non | Spécifiez une liste de colonnes séparées par une virgule qui peuvent contenir des informations sur les entités. Si rien n'est fourni, l'action effectue une recherche dans toutes les colonnes. |
| Jours en arrière | Chaîne | 10 | Non | Spécifiez le nombre de jours en arrière pour traiter les fichiers CSV. |
| Valeur de recherche | 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'encodages de fichiers | Chaîne | utf-8, latin-1, iso-8859-1 | Oui | Liste des types d'encodage CSV utilisés pour décoder vos fichiers CSV, séparés par une virgule (par exemple, utf-8, latin-1, iso-8859-1, utf-16, etc.). 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 (à partir de l'exemple ci-dessus), l'encodage 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, l'encodage 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, la fonction « Rechercher une valeur » fonctionnera comme une liste de valeurs séparées par des virgules, et non comme une seule chaîne de caractères. |
| Champs à renvoyer | CSV | N/A | Non | Spécifiez une liste de valeurs, séparées par des virgules, qui doivent être renvoyées. |
Cas d'utilisation
Recherchez des chaînes dans les fichiers CSV.
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 |
|---|---|---|
| count_rows_csv | Nombre quelconque de lignes | nombre_de_lignes += 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 avec succès concernant les chaînes suivantes : \n (chaîne_de_recherche)" 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 succès pour tous les enregistrements : "Aucune information n'a été trouvée pour les éléments fournis." Si tous les encodages sont invalides : "Erreur lors de l'exécution de l'action « Recherche CSV par chaîne ». Les encodages fournis sont invalides. Veuillez vérifier l'orthographe." |
Général |
Recherche par entité
Rechercher des entités dans des fichiers CSV et les enrichir.
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| Chemin d'accès au fichier 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 itère sur tous les fichiers CSV du dossier. |
| Colonne CSV | Chaîne | N/A | Oui | Spécifiez une liste de colonnes séparées par une virgule qui peuvent contenir des informations sur les entités. Si rien n'est fourni, l'action effectue une recherche dans toutes les colonnes. |
| Il y a quelques jours | Chaîne | 10 | Oui | Spécifiez le nombre de jours en arrière pour traiter les fichiers CSV. |
| Marquer comme suspect | Case à cocher | Décochée | Non | Si cette option est activée, l'action signalera 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'encodages de fichiers | Chaîne | utf-8, latin-1, iso-8859-1 | Oui | Liste des types d'encodage CSV utilisés pour décoder vos fichiers CSV, séparés par une virgule (par exemple, utf-8, latin-1, iso-8859-1, utf-16, etc.). 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 (à partir de l'exemple ci-dessus), l'encodage 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, l'encodage 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, une information sera générée si l'entité a été trouvée dans le fichier. |
| Champs à renvoyer | CSV | N/A | Non | Spécifiez une liste de valeurs séparées par des virgules qui doivent être renvoyées. |
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 |
|---|---|---|
| count_rows_csv | Nombre quelconque de lignes | nombre_de_lignes += 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 avec succès concernant les entités suivantes : \n (entity.identifier)" Pour les entités introuvables : « Aucune information n'a été trouvée concernant les entités suivantes : \n (entity.identifier) » Si aucun succès pour chaque entité : « Aucune information n'a été trouvée pour les entités fournies. » Si tous les encodages sont invalides : "Erreur lors de l'exécution de l'action « Recherche CSV par chaîne ». Les encodages fournis sont invalides. Veuillez vérifier l'orthographe." |
Général |
Ping
Testez la connectivité.
Paramètres
N/A
Exécuter sur
Cette action s'applique à 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 des fichiers CSV situés dans un dossier spécifique et convertissez ces données en alertes dans le système Google SecOps.
Ce sujet illustre le mécanisme et la configuration par lesquels Google SecOps produit des fichiers CSV, ainsi que les flux de travail pris en charge et les actions effectuées au sein de la plateforme.
Cas d'utilisation
Un client reçoit des fichiers CSV d'un système, et ces fichiers peuvent avoir différents encodages.
* 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 Google SecOps aux fichiers CSV : configurez un dossier pour les fichiers CSV.
Transfert des enregistrements CSV vers Google SecOps
Travailler avec des enregistrements de fichiers CSV
Lorsque vous configurez Google SecOps pour qu'il fonctionne avec des fichiers CSV comme source d'alertes, vous êtes invité à fournir un dossier spécifique à partir duquel les fichiers CSV seront extraits. Les équipes Google SecOps récupèrent tous les enregistrements d'un fichier CSV et les transmettent pour qu'ils soient traduits et contextualisés sous forme d'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 nombres entiers et à virgule flottante, aucune configuration supplémentaire n'est requise. Le connecteur lira ces valeurs et les mappera conformément aux normes Google SecOps. Pour rappel, voici comment les valeurs entières sont mises en correspondance :
- 100 – Critique
- 100 > x >= 80 : élevé
- 80 > x >=60 : moyenne
- 60 > x >=40 : faible
- 40 > x Informational
Si la réponse contient des chaînes, 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 pour la gravité.
Au début, le fichier se présente comme suit : 1 2 3 { "Default": 50 }
Imaginez une situation où les valeurs nécessaires se trouvent dans event.severity. event.severity peut contenir les valeurs suivantes : "Malicious", "Benign" et "Unknown".
Tout d'abord, nous devons spécifier dans le paramètre "Nom du champ de gravité" que nous allons utiliser event.severity. Ensuite, nous devons mettre à jour le fichier de configuration. Après les modifications, le fichier severity_map_config.json devrait ressembler à ceci : 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 | 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 (sous-type) de l'événement. |
| 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 à importer. |
| Limite CSV | Chaîne | N/A | Non | Combien 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 les informations relatives au générateur de règles. |
| Nom du champ temporel | Chaîne | N/A | Non | Nom du champ contenant les informations relatives à l'heure de l'événement. |
| Le fichier CSV contient un en-tête | Case à cocher | Cochée | Oui | Indique si le fichier csv possède 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 les informations relatives au nom de l'alerte. |
| Nom du champ de gravité | Chaîne | N/A | Non | Nom du champ contenant les informations relatives à la gravité. |
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 auprès des membres de la communauté et des professionnels Google SecOps.