Integra OpenSearch con Google SecOps
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 della sicurezza:
Caccia alle minacce automatizzata: esegui ricerche periodiche in tutti gli indici OpenSearch per individuare indicatori di compromissione (IoC) specifici o pattern sospetti utilizzando query Lucene e DSL.
Importazione centralizzata degli avvisi: importa i documenti da OpenSearch come avvisi utilizzabili in Google SecOps, assicurandoti che gli eventi di sicurezza del tuo data lake vengano classificati in ordine di priorità ed esaminati.
Recupero dei dati contestuali: arricchisci i casi di sicurezza esistenti estraendo automaticamente i log correlati o i dati storici da OpenSearch per fornire agli analisti un contesto più approfondito durante un'indagine.
Mappatura dei dati flessibile: mappa dinamicamente i livelli di gravità e i tag dell'ambiente dai documenti OpenSearch agli standard di Google SecOps per mantenere la coerenza tra le diverse origini dei 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 di OpenSearch.
Certificato con codifica Base64: i contenuti del file del certificato CA devono essere convertiti 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 CA Certificate File (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 durante la connessione 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 Configura le integrazioni.
Se necessario, puoi 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 Supporto di più istanze.
Azioni
Per saperne di più sulle azioni, consulta Rispondi alle azioni in attesa dalla scrivania di lavoro ed Esegui un'azione manuale nel tuo caso.
Ricerca avanzata ES
Utilizza l'azione Ricerca ES avanzata per eseguire una query di ricerca preconfigurata sul server OpenSearch e recuperare i risultati in un formato dizionario.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
L'azione Advanced ES Search 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 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 da cercare quando Il valore predefinito è |
Timestamp Field |
Facoltativo. Il nome del campo utilizzato per i filtri basati 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 corrispondenza o dopo questo timestamp. Puoi fornire un timestamp UTC esatto ( Il valore predefinito è |
Earliest Date |
Facoltativo. La data di fine della ricerca. L'azione restituisce i record che si sono verificati in corrispondenza o prima di questo timestamp. Puoi fornire un timestamp UTC esatto ( Il valore predefinito è |
Output azione
L'azione Ricerca ES avanzata fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca richieste | 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 per l'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 un formato dizionario.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
L'azione DSL Search 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 Lucene (ad esempio, Il valore predefinito è |
Limit |
Facoltativo. Il numero massimo di documenti da restituire. Imposta questo valore su Il valore predefinito è |
Output azione
L'azione DSL Search fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca richieste | 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 utilizzi 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 tabella seguente elenca il valore per l'output del risultato dello script quando utilizzi l'azione DSL Search:
| 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 azione
L'azione Ping fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca richieste | 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 per l'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 un 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 Lucene (ad esempio, Il valore predefinito è |
Limit |
Facoltativo. Il numero massimo di documenti da restituire. Imposta questo valore su Il valore predefinito è |
Output azione
L'azione Ricerca ES semplice fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca richieste | 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 utilizzi 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 per l'output del risultato dello script quando utilizzi l'azione Ricerca ES semplice:
| Nome del risultato dello script | Valore |
|---|---|
results |
RESULTS |
Connettori
Per scoprire di più sulla configurazione dei connettori in Google SecOps, consulta Importa i dati (connettori).
Connettore OpenSearch
Utilizza il connettore OpenSearch per eseguire ricerche negli indici OpenSearch specificati con una query Lucene fornita e importare 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 il processo di mappatura per il connettore, il valore predefinito viene risolto in un valore di riserva a cui viene fatto riferimento dal codice. Qualsiasi input non valido per questo parametro viene risolto in un valore di riserva per impostazione predefinita. Il valore predefinito è |
Event Field Name |
Obbligatorio. Il nome del campo che determina il nome dell'evento (sottotipo). 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 durante la connessione 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 dell'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 estrarre 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 della gravità per l'avviso. Se il campo contiene valori numerici (numeri interi o con 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 o se 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 OpenSearch DSL 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 il processo di mappatura per il connettore, il valore predefinito viene risolto in un valore di riserva a cui viene fatto riferimento dal codice. Qualsiasi input non valido per questo parametro viene risolto in un valore di riserva per impostazione predefinita. Il valore predefinito è Il valore predefinito è |
Event Field Name |
Obbligatorio. Il nome del campo che determina il nome dell'evento (sottotipo). 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, è consigliabile includere una chiave di timestamp di ordinamento in ordine crescente nella 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 con |
Severity Field Name |
Facoltativo. Il nome del campo utilizzato per estrarre il valore della gravità per l'avviso. Se il campo contiene valori numerici (numeri interi o con 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 estrarre in un singolo ciclo. Il valore predefinito è |
Authenticate |
Facoltativo. Se questa opzione è selezionata, 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 selezionata, 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 dell'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 o se 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.
Questo vale per i 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 (numeri interi o con virgola mobile), il connettore li mappa come segue:
- Critica: 100
- Alta: 80 ≤ x < 100
- Medio: 60 ≤ x < 80
- Basso: 40 ≤ x < 60
- Informative: x < 40
Per i valori di 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à. - Aggiorna
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.