Vectra
Questo documento fornisce indicazioni su come integrare Vectra con Google SecOps.
Casi d'uso
- Importa i rilevamenti di Vectra per utilizzarli per creare avvisi di Google Security Operations. In Google SecOps, gli avvisi possono essere utilizzati per eseguire orchestrazioni con playbook o analisi manuali.
- Esegui azioni di arricchimento: ottieni dati da Vectra per arricchire i dati negli avvisi di Google SecOps.
Autorizzazione del prodotto
Per ottenere un token API, devi andare alla pagina del profilo e copiarlo.

Configura l'integrazione di Vectra in Google SecOps
Per istruzioni dettagliate su come configurare un'integrazione in Google SecOps, consulta Configura le integrazioni.
Parametri di integrazione
Utilizza i seguenti parametri per configurare l'integrazione:
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| Nome istanza | Stringa | N/D | No | Nome dell'istanza per cui intendi configurare l'integrazione. |
| Descrizione | Stringa | N/D | No | Descrizione dell'istanza. |
| Root API | Stringa | https://{address}:{port} | Sì | Root API del server Vectra. |
| Token API | Password | N/D | Sì | Token API dell'account Vectra. |
| Verifica SSL | Casella di controllo | Selezionata | Sì | Se l'opzione è abilitata, verifica che il certificato SSL per la connessione al server Vectra sia valido. |
| Esegui da remoto | Casella di controllo | Deselezionata | No | Seleziona il campo per eseguire l'integrazione configurata da remoto. Una volta selezionata, viene visualizzata l'opzione per selezionare l'utente remoto (agente). |
Azioni
Dindin
Descrizione
Testa la connettività a Vectra con i parametri forniti nella pagina di configurazione dell'integrazione nella pagina Google SecOps Content Hub.
Esegui il
L'azione non viene eseguita sulle entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | L'azione non deve avere esito negativo né interrompere l'esecuzione di un playbook: Se l'operazione ha esito positivo: Stampa "Connessione al server Vectra riuscita con i parametri di connessione forniti". L'azione dovrebbe non riuscire e interrompere l'esecuzione di un playbook: Print "Failed to connect to the Vectra server! Error is {0}".format(exception.stacktrace) |
Generale |
Endpoint di arricchimento
Descrizione
Recupera le informazioni di sistema dell'endpoint in base al nome host o all'indirizzo IP.
Esegui il
Questa azione viene eseguita sulle seguenti entità:
- Indirizzo IP
- Nome host
Risultati dell'azione
Arricchimento delle entità
| Nome del campo di arricchimento | Origine (chiave JSON) | Logica - Quando applicarle |
|---|---|---|
| Vectra_id | results/id | Se disponibile in JSON |
| Vectra_name | results/name | Se disponibile in JSON |
| Vectra_state | results/state | Se disponibile in JSON |
| Vectra_threat | results/threat | Se disponibile in JSON |
| Vectra_certainty | results/certainty | Se disponibile in JSON |
| Vectra_ip | results/last_source | Se disponibile in JSON |
| Vectra_tags | {results/tags} separati da spazi | Se disponibile in JSON |
| Vectra_note | results/note | Se disponibile in JSON |
| Vectra_url | results/url | Se disponibile in JSON |
| Vectra_last_modified | results/last_modified | Se disponibile in JSON |
| Vectra_groups | {results/groups} separati da spazi | Se disponibile in JSON |
| Vectra_is_key_asset | results/is_key_asset | Se disponibile in JSON |
| Vectra_has_active_traffic | results/has_active_traffic | Se disponibile in JSON |
| Vectra_is_targeting_key_asset | results/is_targeting_key_asset | Se disponibile in JSON |
| Vectra_privilege_level | results/privilege_level | Se disponibile in JSON |
| Vectra_previous_ip | {results/previous_ips} separati da spazi | Se disponibile in JSON |
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Risultato 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"
}
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | L'azione non deve non riuscire né interrompere l'esecuzione di un playbook: In caso di esito positivo e se almeno una delle entità fornite è stata arricchita (is_success = true): Print "Successfully enriched the following endpoints from Vectra: \n {0}".format(entity.identifier list) Se l'azione ha trovato più corrispondenze in Vectra per alcune entità Google SecOps, è stata utilizzata la prima corrispondenza per arricchire l'endpoint: Stampa "Multiple matches were found in Vectra, taking first match for the following entities:/n {0}".format(entity.identifiers list) Se non riesco ad arricchire entità specifiche(is_success = true): Stampa "Nessuna entità è stata arricchita". L'azione dovrebbe non riuscire e interrompere l'esecuzione di un playbook: Stampa "Errore durante l'esecuzione dell'azione "Arricchisci endpoint". Reason: {0}''.format(error.Stacktrace) |
Generale |
Aggiungi tag
Descrizione
Aggiungi tag all'endpoint o al rilevamento in Vectra.
Parametri
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| Tipo di elemento | Elenco a discesa | Endpoint Valori possibili: Rilevamento |
Sì | Seleziona il tipo di elemento a cui vuoi aggiungere i tag. |
| ID elemento | Stringa | N/D | Sì | Specifica l'ID del rilevamento/endpoint. |
| Tag | CSV | N/D | Sì | Specifica i tag che vuoi aggiungere al rilevamento/endpoint. I tag devono essere separati da una virgola, ad esempio: tag1, tag2. |
Esegui il
Questa azione non viene eseguita sulle entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | L'azione non deve non riuscire né interrompere l'esecuzione di un playbook: Se il rilevamento/endpoint viene trovato e i tag sono stati aggiornati correttamente (is_success = true): Print "Successfully added tags {0} to {1} with ID {2}.format(tags, Item Type, Item ID) Se il rilevamento/endpoint è stato trovato, ma i tag non sono stati aggiunti (is_success=False): Stampa "L'azione non è riuscita ad aggiungere i tag annuncio {0} a {1} con ID {2}. Reason: {3}. format(tags, Item Type, Item ID, tags parameter from response)". Se il rilevamento/endpoint non è stato trovato (is_success=False): Stampa "{0} con ID {1} non trovato.format(tipo di articolo, ID articolo)." II is_success=false senza una situazione specifica e non si tratta di un errore critico: Stampa "L'azione non è riuscita ad aggiungere tag a {0} con ID {1}.format(Item Type, Item ID)": L'azione non deve riuscire e deve interrompere l'esecuzione di un playbook: Stampa "Errore durante l'esecuzione dell'azione "Aggiungi tag". Reason: {0}''.format(error.Stacktrace) |
Generale |
Rimuovi tag
Descrizione
Rimuovi i tag dall'endpoint o dal rilevamento in Vectra.
Parametri
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| Tipo di elemento | Elenco a discesa | Endpoint Valori possibili: Rilevamento |
Sì | Seleziona il tipo di articolo da cui vuoi rimuovere i tag. |
| ID elemento | Stringa | N/D | Sì | Specifica l'ID del rilevamento/endpoint. |
| Tag | CSV | N/D | Sì | Specifica i tag che vuoi rimuovere dal rilevamento/endpoint. I tag devono essere separati da una virgola, ad esempio: tag1, tag2. |
Esegui il
Questa azione non viene eseguita sulle entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | L'azione non deve non riuscire né interrompere l'esecuzione di un playbook: Se il rilevamento/endpoint viene trovato e i tag sono stati aggiornati correttamente (is_success = true): Print "Successfully removed tags {0} from {1} with ID {2}.format(tags, Item Type, Item ID) Se il rilevamento/endpoint non è stato trovato (is_success=False): Print "{0} with ID {1} was not found.".format(Item Type, Item ID)." Se il rilevamento/endpoint è stato trovato, ma il tag non è stato trovato (is_success=False): Stampa "Tags {0} don't exist in {1} with ID {2}.".format(list of tags that were not found separated by comma, Item Type, Item ID)." Se is_success=false senza una situazione specifica e non si tratta di un errore critico: Stampa "L'azione non è riuscita a rimuovere i tag da {0} con ID {1}.format(Item Type, Item ID)": L'azione non deve riuscire e deve interrompere l'esecuzione di un playbook: Stampa "Errore durante l'esecuzione dell'azione "Rimuovi tag". Reason: {0}''.format(error.Stacktrace) |
Generale |
Aggiorna nota
Descrizione
Aggiorna la nota per l'endpoint o il rilevamento.
Parametri
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| Tipo di elemento | Elenco a discesa | Endpoint Valori possibili: Rilevamento |
Sì | Seleziona il tipo di articolo per cui vuoi aggiornare una nota. |
| ID elemento | Stringa | N/D | Sì | Specifica l'ID del rilevamento/endpoint. |
| Nota | Stringa | N/D | Sì | Specifica la nota che vuoi aggiungere al rilevamento/endpoint. |
Esegui il
Questa azione non viene eseguita sulle entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | L'azione non deve non riuscire né interrompere l'esecuzione di un playbook: Se il rilevamento/endpoint viene trovato e la nota è stata aggiornata correttamente (is_success = true): Stampa "Nota aggiornata correttamente su {1} con ID {2}.format(Item Type, Item ID) Se il rilevamento/endpoint non è stato trovato (is_success=False): Print "{0} with ID {1} was not found.".format(Item Type, Item ID)." Se is_success=false senza una situazione specifica e non si tratta di un errore critico: Stampa "L'azione non è riuscita ad aggiornare la nota su {0} con ID {1}.format(tipo di articolo, ID articolo)": L'azione non deve riuscire e deve interrompere l'esecuzione di un playbook: Stampa "Errore durante l'esecuzione dell'azione "Aggiorna nota". Reason: {0}''.format(error.Stacktrace) |
Generale |
Aggiorna lo stato del rilevamento
Descrizione
Aggiorna lo stato del rilevamento.
Parametri
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| ID rilevamento | Numero intero | N/D | Sì | Specifica l'ID rilevamento per cui vuoi aggiornare lo stato. |
| Stato | DDL | Fisso Valori possibili: Fisso Attivo |
Sì | Specifica lo stato da impostare per il rilevamento. |
Esegui il
Questa azione non viene eseguita sulle entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output\* | L'azione non deve non riuscire né interrompere l'esecuzione di un playbook: Se il rilevamento viene trovato e lo stato è stato aggiornato correttamente (is_success = true): Print "Successfully updated status to '{0}' on detection with ID {1}.format(Status, Detection ID)
Se il rilevamento non è stato trovato (is_success=False): Stampa "Detection with ID {1} was not found.".format(Detection ID)." Se is_success=false senza una situazione specifica e non si tratta di un errore critico: Stampa "L'azione non è riuscita ad aggiornare lo stato del rilevamento con ID {1}.format(detection ID)": L'azione non deve riuscire e deve interrompere l'esecuzione di un playbook: Stampa "Errore durante l'esecuzione dell'azione "Aggiorna stato di rilevamento". Reason: {0}''.format(error.Stacktrace) |
Generale |
Ottieni i dettagli della regola di triage
Descrizione
Ricevi informazioni dettagliate sulle regole di triage.
Parametri
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| ID regole di triage | Numero intero | N/D | Sì | Specifica un elenco separato da virgole di ID delle regole di triage. Esempio: 28,29 |
| Crea insight | Casella di controllo | Vero | Sì | Se abilitata, l'azione creerà un insight separato per ogni regola di triage elaborata. |
Esegui il
Questa azione non viene eseguita sulle entità.
Risultati dell'azione
Insight
| Titolo insight | Descrizione dell'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) |
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| is_success | Vero/Falso | is_success:False |
Risultato 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"
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | L'azione non deve non riuscire né interrompere l'esecuzione di un playbook: Se l'operazione va a buon fine e almeno uno degli ID regola forniti è stato arricchito (is_success = true): Print "Successfully retrieved information about the following triage rules from Vectra: \n {0}".format(processed rule ids) Se non riesci ad arricchire entità specifiche(is_success = true): Stampa "L'azione non è riuscita a recuperare le informazioni sulle seguenti regole di triage\n: {0}".format(not processed rule ids) Se l'arricchimento non riesce per tutte le entità (is_success = false): Stampa "No information was retrieved about the triage rules." (Nessuna informazione recuperata sulle regole di triage). L'azione non deve riuscire e deve interrompere l'esecuzione di un playbook: Stampa "Errore durante l'esecuzione dell'azione "Recupera i dettagli della regola di triage". Reason: {0}''.format(error.Stacktrace) |
Generale |
| Tabella della bacheca casi | Nome tabella: Triage Rules Details Colonne della tabella: ID (mappato come id) Attivato (mappato come attivato) Categoria di rilevamento (mappata come detection_category) Categoria di triage (mappata come triage_category) Rilevamento (mappato come rilevamento) Whitelist (mappato come is_whitelist) Priority (mappato come priority) Data/ora di creazione (mappata come created_timestamp) |
Generale |
Connettori
Vectra - Detections Connector
Configura il connettore Vectra - Detections in Google SecOps
Per istruzioni dettagliate su come configurare un connettore in Google SecOps, consulta Configurazione del connettore.
Parametri del connettore
Utilizza i seguenti parametri per configurare il connettore:
| Nome visualizzato del parametro | Tipo | Valore predefinito | Is Mandatory | Descrizione |
|---|---|---|---|---|
| Nome campo prodotto | Stringa | Nome prodotto | Sì | Inserisci il nome del campo di origine per recuperare il nome del campo del prodotto. |
| Nome campo evento | Stringa | eventType | Sì | Inserisci il nome del campo di origine per recuperare il nome del campo evento. |
Nome campo ambiente |
Stringa | "" | No | Descrive il nome del campo in cui è memorizzato il nome dell'ambiente. Se il campo dell'ambiente non viene trovato, l'ambiente è quello predefinito. |
Pattern regex dell'ambiente |
Stringa | .* | No | Un pattern regex da eseguire sul valore trovato nel campo "Nome campo ambiente". Il valore predefinito è .* per rilevare tutto e restituire il valore invariato. Utilizzato per consentire all'utente di manipolare il campo dell'ambiente tramite la logica delle espressioni regolari. Se il pattern regex è nullo o vuoto o se il valore dell'ambiente è nullo, il risultato finale dell'ambiente è l'ambiente predefinito. |
| Timeout dello script (secondi) | Numero intero | 180 | Sì | Limite di timeout per il processo Python che esegue lo script corrente. |
| Root API | Stringa | https://x.x.x.x:x:x | Sì | Root API del server Vectra. |
| Token API | Password | N/D | Sì | Token API dell'account Vectra. |
| Punteggio di minaccia più basso da recuperare | Numero intero | 50 | Sì | Il punteggio di minaccia più basso che verrà utilizzato per recuperare i rilevamenti. Min: 0 Max: 100 |
| Punteggio di certezza più basso da recuperare | Numero intero | 0 | No | Il punteggio di certezza più basso che verrà utilizzato per recuperare i rilevamenti. Min: 0 Max: 100 |
| Filtro per categoria | Valori separati da virgola | Command and Control,Botnet ,Reconnaissance,Lateral Movement,Exfiltration,Info | Specifica le categorie di rilevamenti da importare in Google SecOps. Valori possibili: Comando e controllo Botnet Ricognizione Movimento laterale Esfiltrazione Informazioni |
|
| Numero massimo di ore di recupero indietro | Numero intero | 1 | No | Numero di ore da cui recuperare le minacce. |
| Numero massimo di rilevamenti da recuperare | Numero intero | 25 | No | Il numero di rilevamenti da elaborare per un'iterazione del connettore. Il limite è 5000. Si tratta di una limitazione di Vectra. |
| Utilizza la lista consentita come lista bloccata | Casella di controllo | Deselezionata | Sì | Se questa opzione è attiva, la lista consentita verrà utilizzata come lista bloccata. |
| Verifica SSL | Casella di controllo | Selezionata | Sì | Se l'opzione è abilitata, verifica che il certificato SSL per la connessione al server Vectra sia valido. |
| Indirizzo del server proxy | Stringa | N/D | No | L'indirizzo del server proxy da utilizzare. |
| Nome utente proxy | Stringa | N/D | No | Il nome utente del proxy con cui eseguire l'autenticazione. |
| Password proxy | Password | N/D | No | La password del proxy con cui eseguire l'autenticazione. |
Regole del connettore
Supporto dei proxy
Il connettore supporta il proxy.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.