Vectra
Ce document explique comment intégrer Vectra à Google SecOps.
Cas d'utilisation
- 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.
- 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.

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