Integra OpenSearch con Google SecOps
Versione integrazione: 1.0
Questo documento spiega come integrare OpenSearch con Google Security Operations.
Casi d'uso
L'integrazione di OpenSearch riguarda i seguenti casi d'uso di orchestrazione e indagine sulla sicurezza:
Ricerca automatica delle minacce: esegui periodicamente ricerche in tutti gli indici OpenSearch per indicatori di compromissione (IoC) specifici o pattern sospetti utilizzando query Lucene e DSL.
Importazione centralizzata degli avvisi: importa i documenti da OpenSearch come avvisi azionabili in Google SecOps, assicurandoti che gli eventi di sicurezza del tuo data lake vengano assegnati in ordine di priorità e analizzati.
Recupero dei dati contestuali: arricchisci i casi di sicurezza esistenti estraendo automaticamente i log o i dati storici correlati da OpenSearch per fornire agli analisti un contesto più approfondito durante un'indagine.
Mappatura flessibile dei dati: mappa dinamicamente i livelli di gravità e i tag dell'ambiente dai documenti OpenSearch agli standard Google SecOps per mantenere la coerenza tra le diverse origini log.
Prima di iniziare
Prima di configurare l'integrazione nella piattaforma Google SecOps, verifica di disporre di quanto segue:
File del certificato CA: un file dell'autorità di certificazione valido per proteggere la connessione.
Ultima versione dell'integrazione: assicurati di utilizzare la versione più recente dell'integrazione OpenSearch.
Certificato con codifica Base64: il contenuto del file del certificato CA deve essere convertito in una stringa Base64 prima della configurazione.
Per configurare l'integrazione con un certificato CA, completa i seguenti passaggi:
- Apri la pagina dei parametri di configurazione dell'integrazione.
- Incolla la stringa con codifica Base64 nel campo File certificato CA.
- Seleziona la casella di controllo Verifica SSL.
- Fai clic su Test per verificare che l'integrazione sia configurata correttamente.
Parametri di integrazione
L'integrazione di OpenSearch richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Server Address |
Obbligatorio. L'URL dell'endpoint dell'istanza OpenSearch, inclusi il protocollo e
la porta (ad esempio, |
Username |
Facoltativo. Il nome utente utilizzato per l'autenticazione con l'istanza OpenSearch. |
Password |
Facoltativo. La password associata al nome utente specificato. |
API Token |
Facoltativo. Il token API utilizzato per l'autenticazione in alternativa a un nome utente e una password. |
Authenticate |
Facoltativo. Se selezionata, l'integrazione autentica la connessione al server OpenSearch utilizzando le credenziali fornite. |
Verify SSL |
Facoltativo. Se selezionata, l'integrazione convalida il certificato SSL quando si connette al server OpenSearch. |
CA Certificate File |
Facoltativo. Il contenuto del file del certificato dell'autorità di certificazione (CA) in formato PEM, utilizzato per verificare il certificato SSL del server. |
Per istruzioni su come configurare un'integrazione in Google SecOps, consulta Configurare le integrazioni.
Se necessario, potrai apportare modifiche in un secondo momento. Dopo aver configurato un'istanza di integrazione, puoi utilizzarla nei playbook. Per saperne di più su come configurare e supportare più istanze, consulta Supportare più istanze.
Azioni
Per ulteriori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania e Eseguire un'azione manuale.
Ricerca avanzata ES
Utilizza l'azione Ricerca avanzata ES per eseguire una query di ricerca preconfigurata sul server OpenSearch e recuperare i risultati in formato dizionario.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
L'azione Ricerca avanzata ES richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Index |
Facoltativo. Il pattern di ricerca per l'indice OpenSearch (ad esempio,
Il valore predefinito è |
Query |
Facoltativo. La query di ricerca da eseguire utilizzando la sintassi di Lucene (ad esempio,
Il valore predefinito è |
Limit |
Facoltativo. Il numero massimo di documenti da restituire. Imposta questo valore su
Il valore predefinito è |
Display Field |
Facoltativo. Un elenco separato da virgole di campi specifici da restituire. Il valore predefinito è |
Search Field |
Facoltativo. Il campo specifico in cui eseguire la ricerca quando Il valore predefinito è |
Timestamp Field |
Facoltativo. Il nome del campo utilizzato per il filtro basato sul tempo. Se sia Il valore predefinito è |
Oldest Date |
Facoltativo. La data di inizio della ricerca. L'azione restituisce i record che si sono verificati in questa data e ora o dopo. Puoi fornire un timestamp UTC esatto
( Il valore predefinito è |
Earliest Date |
Facoltativo. La data di fine della ricerca. L'azione restituisce record che si sono verificati in data o prima di questo timestamp. Puoi fornire un timestamp UTC esatto
( Il valore predefinito è |
Output dell'azione
L'azione Ricerca avanzata ES fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca casi | Non disponibile |
| Link alla bacheca casi | Non disponibile |
| Tabella della bacheca casi | Non disponibile |
| Tabella di arricchimento | Non disponibile |
| Risultato JSON | Non disponibile |
| Messaggi di output | Disponibile |
| Risultato dello script | Disponibile |
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ricerca ES avanzata:
| Nome del risultato dello script | Valore |
|---|---|
results |
RESULTS |
Ricerca DSL
Utilizza l'azione DSL Search per eseguire una ricerca completa in tutti gli indici OpenSearch e recuperare i risultati in formato dizionario.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
L'azione Ricerca DSL richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Index |
Facoltativo. Il pattern di ricerca per l'indice OpenSearch (ad esempio,
Il valore predefinito è |
Query |
Facoltativo. La query di ricerca da eseguire utilizzando la sintassi di Lucene (ad esempio,
Il valore predefinito è |
Limit |
Facoltativo. Il numero massimo di documenti da restituire. Imposta questo valore su
Il valore predefinito è |
Output dell'azione
L'azione Ricerca DSL fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca casi | Non disponibile |
| Link alla bacheca casi | Non disponibile |
| Tabella della bacheca casi | Non disponibile |
| Tabella di arricchimento | Non disponibile |
| Risultato JSON | Disponibile |
| Messaggi di output | Disponibile |
| Risultato dello script | Disponibile |
Risultato JSON
L'esempio seguente mostra l'output del risultato JSON ricevuto quando si utilizza l'azione DSL Search:
[
{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source": {
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
}, {
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
Risultato dello script
La seguente tabella elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ricerca DSL:
| Nome del risultato dello script | Valore |
|---|---|
results |
RESULTS |
Dindin
Utilizza l'azione Ping per testare la connettività a OpenSearch.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
Nessuno.
Output dell'azione
L'azione Ping fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca casi | Non disponibile |
| Link alla bacheca casi | Non disponibile |
| Tabella della bacheca casi | Non disponibile |
| Tabella di arricchimento | Non disponibile |
| Risultato JSON | Non disponibile |
| Messaggi di output | Disponibile |
| Risultato dello script | Disponibile |
Risultato dello script
La seguente tabella elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ping:
| Nome del risultato dello script | Valore |
|---|---|
| is_success | true o false |
Ricerca semplice di ES
Utilizza l'azione Ricerca ES semplice per eseguire una ricerca di base in tutti i campi indicizzati in OpenSearch e recuperare i risultati in formato dizionario.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
L'azione Ricerca ES semplice richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Index |
Facoltativo. Il pattern di ricerca per l'indice OpenSearch (ad esempio,
Il valore predefinito è |
Query |
Facoltativo. La query di ricerca da eseguire utilizzando la sintassi di Lucene (ad esempio,
Il valore predefinito è |
Limit |
Facoltativo. Il numero massimo di documenti da restituire. Imposta questo valore su
Il valore predefinito è |
Output dell'azione
L'azione Ricerca ES semplice fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca casi | Non disponibile |
| Link alla bacheca casi | Non disponibile |
| Tabella della bacheca casi | Non disponibile |
| Tabella di arricchimento | Non disponibile |
| Risultato JSON | Disponibile |
| Messaggi di output | Disponibile |
| Risultato dello script | Disponibile |
Risultato JSON
Il seguente esempio mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Ricerca ES semplice:
[{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source":
{
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
},
{
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ricerca ES semplice:
| Nome del risultato dello script | Valore |
|---|---|
results |
RESULTS |
Connettori
Per saperne di più su come configurare i connettori in Google SecOps, consulta Importare i dati (connettori).
Connettore OpenSearch
Utilizza il connettore OpenSearch per cercare indici OpenSearch specifici con una query Lucene fornita e inserire i documenti come avvisi in Google SecOps.
Input del connettore
Il connettore OpenSearch richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Product Field Name |
Obbligatorio. Il nome del campo in cui è memorizzato il nome del prodotto. Il nome del prodotto influisce principalmente sulla mappatura. Per semplificare e migliorare la procedura di mappatura per il connettore, il valore predefinito viene risolto in un valore di riserva a cui viene fatto riferimento dal codice. Per impostazione predefinita, qualsiasi input non valido per questo parametro viene risolto in un valore di riserva. Il valore predefinito è |
Event Field Name |
Obbligatorio. Il nome del campo che determina il nome (sottotipo) dell'evento. Il valore predefinito è
|
Script Timeout (Seconds) |
Obbligatorio. Il limite di timeout, in secondi, per il processo Python che esegue lo script corrente. Il valore predefinito è |
Server Address |
Obbligatorio. L'URL dell'endpoint dell'istanza OpenSearch, inclusi il protocollo e
la porta (ad esempio, |
Username |
Facoltativo. Il nome utente utilizzato per l'autenticazione con l'istanza OpenSearch. |
Password |
Facoltativo. La password associata al nome utente specificato. |
Authenticate |
Facoltativo. Se selezionata, l'integrazione autentica la connessione al server OpenSearch utilizzando le credenziali fornite. |
API Token |
Facoltativo. Il token API utilizzato per l'autenticazione in alternativa a un nome utente e una password. |
Verify SSL |
Facoltativo. Se selezionata, l'integrazione convalida il certificato SSL quando si connette al server OpenSearch. |
Alert Name Field |
Obbligatorio. Il nome del campo che contiene il nome dell'avviso (ad esempio,
|
Timestamp Field |
Obbligatorio. Il nome del campo che contiene il timestamp (ad esempio,
|
Environment Field Name |
Facoltativo. Il nome del campo in cui è memorizzato il nome dell'ambiente. Se il campo ambiente non è presente, il connettore utilizza il valore predefinito. Il valore predefinito è |
Indexes |
Facoltativo. Il pattern di indice da cercare. Utilizza |
Query |
Facoltativo. La query di ricerca da eseguire utilizzando la sintassi Lucene. |
Alerts Count Limit |
Obbligatorio. Il numero massimo di avvisi da recuperare in un singolo ciclo. Il valore predefinito è |
Max Days Backwards |
Obbligatorio. Il numero di giorni precedenti a oggi per recuperare gli avvisi. Questo parametro può essere applicato all'iterazione iniziale del connettore dopo l'attivazione del connettore per la prima volta o al valore di riserva per un timestamp del connettore scaduto. Il valore predefinito è |
Severity Field Name |
Facoltativo. Il nome del campo utilizzato per estrarre il valore di gravità dell'avviso. Se il campo contiene valori numerici (numeri interi o in virgola mobile), il connettore
li mappa automaticamente ai livelli di gravità di Google SecOps (ad esempio, |
Proxy Server Address |
Facoltativo. L'indirizzo del server proxy da utilizzare. |
Proxy Username |
Facoltativo. Il nome utente utilizzato per l'autenticazione con il server proxy. |
Proxy Password |
Facoltativo. La password utilizzata per l'autenticazione con il server proxy. |
Environment Regex Pattern |
Facoltativo. Un pattern di espressione regolare da eseguire sul valore trovato nel campo
Utilizza il valore predefinito Se il pattern dell'espressione regolare è nullo o vuoto oppure il valore dell'ambiente è nullo, il risultato finale dell'ambiente è l'ambiente predefinito. |
Connettore OpenSearch DSL
Utilizza il connettore OpenSearch DSL per importare i documenti come avvisi in Google SecOps effettuando chiamate API REST utilizzando query DSL (Domain Specific Language).
Input del connettore
Il connettore DSL OpenSearch richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Product Field Name |
Obbligatorio. Il nome del campo in cui è memorizzato il nome del prodotto. Il nome del prodotto influisce principalmente sulla mappatura. Per semplificare e migliorare la procedura di mappatura per il connettore, il valore predefinito viene risolto in un valore di riserva a cui viene fatto riferimento dal codice. Per impostazione predefinita, qualsiasi input non valido per questo parametro viene risolto in un valore di riserva. Il valore predefinito è Il valore predefinito è |
Event Field Name |
Obbligatorio. Il nome del campo che determina il nome (sottotipo) dell'evento. Il valore predefinito è |
Script Timeout (Seconds) |
Obbligatorio. Il limite di timeout, in secondi, per il processo Python che esegue lo script corrente. Il valore predefinito è |
Server Address |
Obbligatorio. L'URL dell'endpoint dell'istanza OpenSearch, incluso il protocollo (ad esempio |
Port |
Obbligatorio. La porta utilizzata per connettersi al server API OpenSearch. |
Query |
Obbligatorio. La query DSL utilizzata per la ricerca in formato JSON. Per migliorare la stabilità del connettore, ti consigliamo di includere una chiave timestamp di ordinamento in ordine crescente all'interno della query. |
Index |
Obbligatorio. L'indice utilizzato per la ricerca. Utilizza |
Timestamp Field |
Obbligatorio. Il nome del campo che contiene il timestamp (ad esempio,
|
Alert Field Name |
Obbligatorio. Il nome del campo che contiene il nome dell'avviso (ad esempio,
|
Description Field |
Facoltativo. Il nome del campo che contiene la descrizione dell'avviso (ad esempio,
|
Severity |
Obbligatorio. Il livello di gravità statico da assegnare a tutti gli avvisi importati. Questo
parametro viene utilizzato se Il valore predefinito è |
Alert Severity |
Facoltativo. La gravità da assegnare agli avvisi. Questo parametro ha la priorità su
Se vuoi utilizzare la mappatura dinamica utilizzando |
Severity Field Name |
Facoltativo. Il nome del campo utilizzato per estrarre il valore di gravità dell'avviso. Se il campo contiene valori numerici (numeri interi o in virgola mobile), il connettore
li mappa automaticamente ai livelli di gravità di Google SecOps
(ad esempio, |
Alerts Count Limit |
Facoltativo. Il numero massimo di avvisi da recuperare in un singolo ciclo. Il valore predefinito è |
Authenticate |
Facoltativo. Se selezionato, il connettore autentica la connessione utilizzando le credenziali fornite. |
Username |
Facoltativo. Il nome utente utilizzato per l'autenticazione con l'istanza OpenSearch. |
Password |
Facoltativo. La password utilizzata per l'autenticazione con l'istanza OpenSearch. |
Use SSL |
Facoltativo. Se selezionato, il connettore abilita una connessione SSL/TLS al server. |
Proxy Server Address |
Facoltativo. L'indirizzo del server proxy da utilizzare per la connessione. |
Proxy Username |
Facoltativo. Il nome utente utilizzato per l'autenticazione con il server proxy. |
Proxy Password |
Facoltativo. La password utilizzata per l'autenticazione con il server proxy. |
Environment Field Name |
Facoltativo. Il nome del campo in cui è memorizzato il nome dell'ambiente. Se il campo ambiente non è presente, il connettore utilizza il valore predefinito. Il valore predefinito è |
Environment Regex Pattern |
Facoltativo. Un pattern di espressione regolare da eseguire sul valore trovato nel campo
Utilizza il valore predefinito Se il pattern dell'espressione regolare è nullo o vuoto oppure il valore dell'ambiente è nullo, il risultato finale dell'ambiente è l'ambiente predefinito. Il valore predefinito è |
Supporto della notazione
Il connettore supporta tre diverse notazioni per la mappatura dei campi. Ad esempio,
per mappare event.type, puoi fornire _source_event_type, event_type o
event.type.
Ciò si applica ai seguenti parametri:
Product Field NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription Field(solo connettore DSL)
Come mappare la gravità nel connettore
Se Severity Field Name contiene valori numerici (interi o numeri in virgola mobile), il
connettore li mappa nel seguente modo:
- Critica: 100
- Alto: 80 ≤ x < 100
- Medio: 60 ≤ x < 80
- Basso: 40 ≤ x < 60
- Informativo: x < 40
Per i valori stringa, devi aggiornare il file severity_map_config.json nella cartella
degli script del connettore.
Configurazione di esempio
Per mappare un campo event.severity contenente "Malicious", "Unknown" o "Benign":
- Inserisci
event.severitynel parametro Nome campo gravità. - Aggiornamento
severity_map_config.json:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.