Vectra

Questo documento fornisce indicazioni su come integrare Vectra con Google SecOps.

Casi d'uso

  1. 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.
  2. 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.

Posizione del token API

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:
In caso contrario:

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:
In caso di errore irreversibile, ad esempio credenziali errate, nessuna connessione al server, altro:

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

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:
In caso di errore irreversibile (credenziali errate, errore di connessione, arresto anomalo dell'azione):

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

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:
In caso di errore irreversibile (credenziali errate, errore di connessione, arresto anomalo dell'azione):

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

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:
In caso di errore irreversibile (credenziali errate, errore di connessione, arresto anomalo dell'azione):

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:
In caso di errore irreversibile (credenziali errate, errore di connessione, arresto anomalo dell'azione):

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:
In caso di errore irreversibile (credenziali errate, errore di connessione, arresto anomalo dell'azione):

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.