Vectra

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

Cas d'utilisation

  1. Ingérez les détections Vectra pour les utiliser afin de créer des alertes Google Security Operations. Ensuite, dans Google SecOps, les alertes peuvent être utilisées pour effectuer des orchestrations avec des playbooks ou une analyse manuelle.
  2. Effectuer des actions d'enrichissement : obtenir des données de Vectra pour enrichir les données des alertes Google SecOps.

Autorisation de produit

Pour obtenir un jeton d'API, vous devez accéder à la page de profil et le copier.

Emplacement du jeton d'API

Configurer l'intégration de Vectra dans Google SecOps

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

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 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.
Racine de l'API Chaîne https://{address}:{port} Oui Racine de l'API du serveur Vectra.
Jeton d'API Mot de passe N/A Oui Jeton d'API du compte Vectra.
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 Vectra est valide.
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.

Actions

Ping

Description

Testez la connectivité à Vectra avec les paramètres fournis sur la page de configuration de l'intégration dans la page du hub de contenus Google SecOps.

Exécuter sur

L'action n'est pas exécutée sur les 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 :

Affichez "Successfully connected to the Vectra server with the provided connection parameters!"

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

Print "Failed to connect to the Vectra server! Error is {0}".format(exception.stacktrace)

Général

Enrichir le point de terminaison

Description

Récupérez les informations système du point de terminaison à l'aide de son nom d'hôte ou de son adresse IP.

Exécuter sur

Cette action s'exécute sur les entités suivantes :

  • Adresse IP
  • Nom d'hôte

Résultats de l'action

Enrichissement d'entités
Nom du champ d'enrichissement Source (clé JSON) Logique : quand les utiliser ?
Vectra_id results/id Lorsqu'il est disponible au format JSON
Vectra_name results/name Lorsqu'il est disponible au format JSON
Vectra_state results/state Lorsqu'il est disponible au format JSON
Vectra_threat results/threat Lorsqu'il est disponible au format JSON
Vectra_certainty results/certainty Lorsqu'il est disponible au format JSON
Vectra_ip results/last_source Lorsqu'il est disponible au format JSON
Vectra_tags {results/tags} séparés par des espaces Lorsqu'il est disponible au format JSON
Vectra_note results/note Lorsqu'il est disponible au format JSON
Vectra_url results/url Lorsqu'il est disponible au format JSON
Vectra_last_modified results/last_modified Lorsqu'il est disponible au format JSON
Vectra_groups {results/groups} séparés par des espaces Lorsqu'il est disponible au format JSON
Vectra_is_key_asset results/is_key_asset Lorsqu'il est disponible au format JSON
Vectra_has_active_traffic results/has_active_traffic Lorsqu'il est disponible au format JSON
Vectra_is_targeting_key_asset results/is_targeting_key_asset Lorsqu'il est disponible au format JSON
Vectra_privilege_level results/privilege_level Lorsqu'il est disponible au format JSON
Vectra_previous_ip {results/previous_ips} séparés par des espaces Lorsqu'il est disponible au format JSON
Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Résultat JSON
{
            "id": 131,
            "name": "DESKTOP-DAIOS7J",
            "active_traffic": false,
            "has_active_traffic": false,
            "t_score": 0,
            "threat": 0,
            "c_score": 0,
            "certainty": 0,
            "severity": null,
            "last_source": "10.0.2.68",
            "ip": "10.0.2.68",
            "previous_ips": [],
            "last_detection_timestamp": "2019-10-08T17:13:57Z",
            "key_asset": false,
            "is_key_asset": false,
            "state": "inactive",
            "targets_key_asset": false,
            "is_targeting_key_asset": false,
            "detection_set": [],
            "host_artifact_set": [
                {
                    "type": "netbios",
                    "value": "DESKTOP-DAIOS7J",
                    "source": null,
                    "siem": false
                }
            ],
            "sensor": "YLq09aHU",
            "sensor_name": "Vectra X",
            "tags": [],
            "note": null,
            "note_modified_by": null,
            "note_modified_timestamp": null,
            "url": "https://70.54.200.216:64443/api/v2.1/hosts/131",
            "host_url": "https://70.54.200.216:64443/api/v2.1/hosts/131",
            "last_modified": "2020-02-12T13:41:51Z",
            "assigned_to": null,
            "assigned_date": null,
            "groups": [],
            "has_custom_model": false,
            "privilege_level": null,
            "privilege_category": null,
            "probable_owner": null,
            "detection_profile": null,
            "host_session_luids": [],
            "host_luid": "e0M-jygN"
}
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 réussite et si au moins l'une des entités fournies a été enrichie (is_success = true) :

Print "Successfully enriched the following endpoints from Vectra: \n {0}".format(entity.identifier list)

Si l'action a trouvé plusieurs correspondances dans Vectra pour certaines entités Google SecOps, la première correspondance a été utilisée pour enrichir le point de terminaison :

Afficher "Plusieurs correspondances ont été trouvées dans Vectra, en prenant la première correspondance pour les entités suivantes :/n {0}".format(entity.identifiers list)

Si je ne parviens pas à enrichir des entités spécifiques(is_success = true) :

Imprimez "Aucune entité n'a été enrichie".

L'action doit échouer et arrêter l'exécution d'un playbook :
En cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. :

Affichez "Erreur lors de l'exécution de l'action "Enrichir le point de terminaison". Reason: {0}''.format(error.Stacktrace)

Général

Ajouter des tags

Description

Ajoutez des tags au point de terminaison ou à la détection dans Vectra.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Type d'élément Menu déroulant

Point de terminaison

Valeurs possibles :
Endpoint

Détection

Oui Sélectionnez le type d'élément auquel vous souhaitez ajouter des tags.
ID de l'élément Chaîne N/A Oui Spécifiez l'ID de la détection/du point de terminaison.
Tags CSV N/A Oui Spécifiez les tags que vous souhaitez ajouter à la détection/au point de terminaison. Les tags doivent être séparés par une virgule (par exemple, tag1, tag2).

Exécuter sur

Cette action ne s'exécute pas sur les 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 la détection/le point de terminaison est trouvé et que les tags ont bien été mis à jour (is_success = true) :

Afficher "Successfully added tags {0} to {1} with ID {2}.format(tags, Item Type, Item ID)

Si la détection/le point de terminaison a été trouvé, mais que les tags n'ont pas été ajoutés (is_success=False) :

Imprimer "L'action n'a pas pu ajouter les tags {0} à {1} avec l'ID {2}. Motif : {3}. format(tags, type d'article, ID de l'article, tags parameter from response)".

Si la détection/le point de terminaison n'a pas été trouvé (is_success=False) :

Affichez "{0} with ID {1} was not found.format(Item Type, Item ID)."

II is_success=false sans situation spécifique et il ne s'agit pas d'une erreur critique :

Imprimez "L'action n'a pas pu ajouter de tags à {0} avec l'ID {1}.format(Item Type, Item ID)" :

L'action doit échouer et arrêter l'exécution d'un playbook :
En cas d'erreur fatale (identifiants incorrects, erreur de connexion, plantage de l'action) :

Affichez "Erreur lors de l'exécution de l'action "Ajouter des tags". Reason: {0}''.format(error.Stacktrace)

Général

Supprimer des tags

Description

Supprimez les tags du point de terminaison ou de la détection dans Vectra.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Type d'élément Menu déroulant

Point de terminaison

Valeurs possibles :
Endpoint

Détection

Oui Sélectionnez le type d'élément dont vous souhaitez supprimer les tags.
ID de l'élément Chaîne N/A Oui Spécifiez l'ID de la détection/du point de terminaison.
Tags CSV N/A Oui Spécifiez les tags que vous souhaitez supprimer de la détection/du point de terminaison. Les tags doivent être séparés par une virgule (par exemple, tag1, tag2).

Exécuter sur

Cette action ne s'exécute pas sur les 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 la détection/le point de terminaison est trouvé et que les tags ont bien été mis à jour (is_success = true) :

Print "Successfully removed tags {0} from {1} with ID {2}.format(tags, Item Type, Item ID)

Si la détection/le point de terminaison n'a pas été trouvé (is_success=False) :

Affichez "{0} with ID {1} was not found.".format(Item Type, Item ID)."

Si la détection/le point de terminaison a été trouvé, mais que la balise n'a pas été trouvée (is_success=False) :

Affichez "Les tags {0} n'existent pas dans {1} avec l'ID de l'article {2}.".format(liste des tags non trouvés séparés par une virgule, type d'élément, ID de l'élément).

Si is_success=false sans situation spécifique et qu'il ne s'agit pas d'une erreur critique :

Imprimez "L'action n'a pas pu supprimer les tags de {0} avec l'ID de l'article {1}.format(Item Type, Item ID)" :

L'action doit échouer et arrêter l'exécution d'un playbook :
En cas d'erreur fatale (identifiants incorrects, erreur de connexion, plantage de l'action) :

Affichez "Erreur lors de l'exécution de l'action "Supprimer les tags". Reason: {0}''.format(error.Stacktrace)

Général

Mettre à jour la note

Description

Note de mise à jour pour le point de terminaison ou la détection.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Type d'élément Menu déroulant

Point de terminaison

Valeurs possibles :
Endpoint

Détection

Oui Sélectionnez le type d'élément sur lequel vous souhaitez modifier une note.
ID de l'élément Chaîne N/A Oui Spécifiez l'ID de la détection/du point de terminaison.
Remarque Chaîne N/A Oui Spécifiez la note que vous souhaitez ajouter à la détection ou au point de terminaison.

Exécuter sur

Cette action ne s'exécute pas sur les 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 la détection/le point de terminaison est trouvé et que la note a bien été mise à jour (is_success = true) :

Afficher "Successfully updated note on {1} with ID {2}.format(Item Type, Item ID)

Si la détection/le point de terminaison n'a pas été trouvé (is_success=False) :

Affichez "{0} with ID {1} was not found.".format(Item Type, Item ID)."

Si is_success=false sans situation spécifique et qu'il ne s'agit pas d'une erreur critique :

Imprimer "L'action n'a pas pu mettre à jour la note sur {0} avec l'ID de l'article {1}.format(Item Type, Item ID)" :

L'action doit échouer et arrêter l'exécution d'un playbook :
En cas d'erreur fatale (identifiants incorrects, erreur de connexion, plantage de l'action) :

Affichez "Erreur lors de l'exécution de l'action "Mettre à jour la note". Reason: {0}''.format(error.Stacktrace)

Général

Mettre à jour l'état de la détection

Description

Mettez à jour l'état de la détection.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
ID de détection Integer N/A Oui Spécifiez l'ID de détection pour lequel vous souhaitez mettre à jour l'état.
État LDD

Correction

Valeurs possibles :

Fixe

Actif

Oui Spécifiez l'état à définir pour la détection.

Exécuter sur

Cette action ne s'exécute pas sur les 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 une détection est trouvée et que l'état a bien été mis à jour (is_success = true) :

Afficher « Statut mis à jour avec succès à '{0}' suite à la détection avec l'ID {1}.format(Statut, ID de détection)

Si aucune détection n'a été trouvée (is_success=False) :

Affichez "Detection with ID {1} was not found.".format(ID de détection)."

Si is_success=false sans situation spécifique et qu'il ne s'agit pas d'une erreur critique :

Affichez "Action wasn't able to update status on detection with ID {1}.format(detection ID)" :

L'action doit échouer et arrêter l'exécution d'un playbook :
En cas d'erreur fatale (identifiants incorrects, erreur de connexion, plantage de l'action) :

Affichez "Erreur lors de l'exécution de l'action "Mettre à jour l'état de détection". Reason: {0}''.format(error.Stacktrace)

Général

Obtenir les détails d'une règle de tri

Description

Obtenez des informations détaillées sur les règles de tri.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
ID des règles de tri Integer N/A Oui Spécifiez une liste d'ID de règles de tri séparés par une virgule. Exemple : 28,29
Créer des insights Case à cocher Vrai Oui Si cette option est activée, l'action crée un insight distinct pour chaque règle de tri traitée.

Exécuter sur

Cette action ne s'exécute pas sur les entités.

Résultats de l'action

Insight
Titre de l'insight Description de l'insight
"Triage Rule {0}".format(triage_rule) "Detection Category: {0}\n Triage Category: {1}\n Detection: {2} \n Description: {3}".format(detection_category, triage_category, detection, description)
Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Résultat JSON
{
    "id": 28,
    "url": "https://api.demo.vectranetworks.com/api/v2.1/rules/28",
    "description": "whatever",
    "enabled": true,
    "created_timestamp": "2020-10-01T17:21:19Z",
    "last_timestamp": "2020-10-01T17:21:19Z",
    "is_whitelist": false,
    "priority": 1,
    "active_detections": 1,
    "total_detections": 1,
    "template": false,
    "additional_conditions": {
        "OR": [
            {
                "AND": [
                    {
                        "ANY_OF": {
                            "field": "remote1_ip",
                            "values": [
                                {
                                    "url": null,
                                    "value": "35.166.75.118",
                                    "label": "35.166.75.118"
                                }
                            ],
                            "groups": [],
                            "label": "C&C Server IP"
                        }
                    }
                ]
            }
        ]
    },
    "source_conditions": {
        "OR": [
            {
                "AND": [
                    {
                        "ANY_OF": {
                            "field": "host",
                            "values": [
                                {
                                    "url": "https://api.demo.vectranetworks.com/api/v2.1/hosts/142",
                                    "value": 142,
                                    "label": "IP-10.10.100.10"
                                }
                            ],
                            "groups": [],
                            "label": "Host"
                        }
                    }
                ]
            }
        ]
    },
    "detection_category": "COMMAND & CONTROL",
    "triage_category": "triage rule 1",
    "detection": "Hidden HTTPS Tunnel"
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 qu'au moins l'un des ID de règle fournis a été enrichi (is_success = true) :

Print "Successfully retrieved information about the following triage rules from Vectra: \n {0}".format(processed rule ids)

Si l'enrichissement d'entités spécifiques échoue(is_success = true) :

Print "Action was not able to retrieve information about the following triage rules\n: {0}".format(not processed rule ids)

Si l'enrichissement échoue pour toutes les entités (is_success = false) :

Affichez "Aucune information n'a été récupérée sur les règles de tri."

L'action doit échouer et arrêter l'exécution d'un playbook :
En cas d'erreur fatale (identifiants incorrects, erreur de connexion, plantage de l'action) :

Affichez "Erreur lors de l'exécution de l'action "Obtenir les détails de la règle de tri". Reason: {0}''.format(error.Stacktrace)

Général
Tableau du mur des cas

Nom de la table : Détails des règles de tri

Colonnes du tableau :

ID (mappé en tant qu'ID)

Activé (mappé comme activé)

Catégorie de détection (mappée en tant que detection_category)

Catégorie de tri (mappée en tant que triage_category)

Détection (mappée en tant que détection)

Liste blanche (mappée en tant que is_whitelist)

Priorité (mappée en tant que priorité)

Date de création (mappée en tant que created_timestamp)

Général

Connecteurs

Vectra - Connecteur de détections

Configurer le connecteur Vectra - Detections 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 à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Nom du champ de produit Chaîne Nom du produit Oui Saisissez le nom du champ source pour récupérer le nom du champ produit.
Nom du champ d'événement Chaîne eventType Oui Saisissez le nom du champ source pour récupérer le nom du champ d'événement.

Nom du champ d'environnement

Chaîne "" Non

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é.

Modèle d'expression régulière de l'environnement

Chaîne .* Non

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ "Nom du champ d'environnement".

La valeur par défaut est ".*" pour tout récupérer et renvoyer la valeur inchangée.

Permet à l'utilisateur de manipuler le champ "environment" à l'aide d'une 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 est l'environnement par défaut.

Délai avant expiration du script (en secondes) Entier 180 Oui Délai avant expiration du processus Python exécutant le script actuel.
Racine de l'API Chaîne https://x.x.x.x:x:x Oui Racine de l'API du serveur Vectra.
Jeton d'API Mot de passe N/A Oui Jeton d'API du compte Vectra.
Score de menace le plus faible à récupérer Integer 50 Oui

Score de menace le plus bas qui sera utilisé pour récupérer les détections.

Min : 0

Max : 100

Score de certitude le plus faible à récupérer Integer 0 Non

Score de certitude le plus bas qui sera utilisé pour récupérer les détections.

Min : 0

Max : 100

Filtre par catégorie Valeurs séparées par une virgule Commande et contrôle,Botnet ,Reconnaissance,Mouvement latéral,Exfiltration,Info

Spécifiez les catégories de détections à ingérer dans Google SecOps.

Valeurs possibles :

Commande et contrôle

Botnet

Reconnaissance

Mouvement latéral

Exfiltration

Infos

Récupérer le nombre maximal d'heures en arrière Integer 1 Non Nombre d'heures dans le passé à partir desquelles récupérer les menaces.
Nombre maximal de détections à récupérer Integer 25 Non Nombre de détections à traiter par itération de connecteur. La limite est de 5 000. Il s'agit d'une limitation de Vectra.
Utiliser la liste d'autorisation comme liste de blocage Case à cocher Décochée Oui Si cette option est activée, la liste d'autorisation sera utilisée comme liste de blocage.
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 Vectra est valide.
Adresse du serveur proxy Chaîne N/A Non Adresse du serveur proxy à utiliser.
Nom d'utilisateur du proxy Chaîne N/A Non Nom d'utilisateur du proxy pour l'authentification.
Mot de passe du proxy Mot de passe N/A Non Mot de passe du proxy pour l'authentification.

Règles du connecteur

Assistance de proxy

Le connecteur est compatible avec les proxys.

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