Implementare le unioni senza una sezione di corrispondenza
Questo documento spiega il concetto di operazioni di unione senza una sezione match
o un'unione di dati all'interno della ricerca di Google Security Operations.
Puoi utilizzare le operazioni di join per correlare e combinare i dati non elaborati di più origini in base a valori di campo comuni. Combinando eventi e entità di sicurezza correlati in un'unica visualizzazione completa, puoi fornire un rilevamento e un'indagine sulle minacce più efficaci.
A differenza delle unioni statistiche che richiedono una sezione match per aggregare i risultati,
un'unione di dati recupera i dati completi di eventi o entità e li visualizza
senza alcuna aggregazione.
Come funzionano le unioni di dati
Puoi creare un'unione di dati mettendo in correlazione campi comuni in diversi blocchi di eventi o entità. Puoi farlo in uno dei seguenti modi:
Equivalgono direttamente i campi (ad esempio,
$e1.principal.hostname = $e2.principal.hostname)Assegna entrambi i campi alla stessa variabile segnaposto (ad esempio,
$host = $e1.principal.hostnamee$host = $e2.principal.hostname).
In entrambi i casi, Search unisce implicitamente i blocchi in cui i valori di questi campi sono identici.
Tipi di unione dei dati supportati
Puoi utilizzare i seguenti tipi di unione dei dati nelle query di ricerca:
Unioni da evento a evento:metti in correlazione i dati tra due diversi tipi di eventi Unified Data Model (UDM).
Unioni da evento a ECG:arricchisci i dati sugli eventi UDM con informazioni del grafico del contesto delle entità (ECG).
Unioni evento-evento
I join da evento a evento sono ideali per correlare i campi tra due diversi tipi di eventi UDM. Ciò è utile per trovare sequenze di eventi o azioni che coinvolgono le stesse entità in diverse origini log o tipi di eventi.
Il seguente esempio di query trova tutte le connessioni di rete (NETWORK_CONNECTION)
che hanno origine da un host in cui si è verificato anche un accesso utente (USER_LOGIN):
// Find user logins and assign the hostname to the $host placeholder
$e1.metadata.event_type = "USER_LOGIN"
$host = $e1.principal.hostname
// Find network connections and join them where the hostname matches the
$host placeholder
$e2.metadata.event_type = "NETWORK_CONNECTION"
$host = $e2.principal.hostname
Limitazioni
È possibile unire un massimo di due eventi.
L'intervallo di tempo della query è limitato a un massimo di 14 giorni.
Il limite di query è di 120 query all'ora (QPH).
Esempi
Il seguente esempio di query trova tutte le connessioni di rete
(NETWORK_CONNECTION) provenienti da un host in cui si è verificato anche un accesso utente
(USER_LOGIN):
// Find user logins and assign the hostname to the $host placeholder
$e1.metadata.event_type = "USER_LOGIN"
$host = $e1.principal.hostname
// Find network connections and join them where the hostname matches the $host
placeholder
$e2.metadata.event_type = "NETWORK_CONNECTION"
$host = $e2.principal.hostname
Unione in base all'ID utente
$e1.metadata.event_type = "USER_LOGIN"
$e1.security_result.action = "ALLOW"
$e1.principal.user.userid = $user
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.principal.user.userid = $user
Partecipa tramite indirizzo IP
$e1.metadata.event_type = "USER_LOGIN"
$e1.security_result.action = "ALLOW"
$e1.principal.ip = $ip
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.principal.ip = $ip
Unioni del grafico di contesto da evento a entità
I join da evento a ECG sono ideali per arricchire gli eventi UDM con dati contestuali sulle entità coinvolte (ad esempio asset, utenti) dell'ECG. Questa unione fornisce un quadro più completo combinando i dati sugli eventi in tempo reale con le informazioni storiche e sulle entità relazionali.
Limitazioni
L'intervallo di tempo della query è limitato a un massimo di 14 giorni.
Il limite di query è 120 QPH.
Nella query è possibile unire un massimo di due eventi UDM.
Nella query è possibile unire al massimo un evento ECG.
L'esportazione in una tabella di dati non è supportata per le query di unione da evento a ECG.
I join ECG-to-ECG non sono supportati.
I join da ECG a tabella di dati non sono supportati.
Esempi
Questa query arricchisce gli eventi di connessione di rete con le informazioni sugli asset provenienti dal ECG unendo il nome host.
// Find network connections and assign the hostname to the $host placeholder
$e1.metadata.event_type = "NETWORK_CONNECTION"
$host = $e1.principal.asset.hostname
// Find asset entities in the graph and join where the hostname matches the
$host placeholder
$g1.graph.metadata.entity_type = "ASSET"
$host = $g1.graph.entity.asset.hostname
Unione in base all'indirizzo IP con un tipo di log specifico
$ip = $e1.principal.ip
$ip = $g1.graph.entity.ip
$e1.metadata.log_type = "WINDOWS_DEFENDER_ATP"
$g1.graph.entity.ip = "10.19.6.24"
Partecipare con un nome host con un filtro IP specifico
$e1.metadata.event_type = "FILE_CREATION"
$host = $e1.principal.hostname
$e1.principal.ip = "10.0.0.76"
$g1.graph.metadata.entity_type = "ASSET"
$host = $g1.graph.entity.hostname
Best practice
Per evitare prestazioni lente e timeout delle query, utilizza filtri specifici e ristretti all'interno di ogni blocco ($e1, $e2, $g1) nelle query di unione.
Ad esempio, una query generica come la seguente:
$e1.metadata.event_type = "USER_LOGIN"
$e2.metadata.event_type = "NETWORK_CONNECTION"
right join $e1.principal.hostname = $e2.principal.hostname
Può essere ottimizzato aggiungendo criteri specifici come segue:
$e1.metadata.event_type = "USER_LOGIN"
$e1.principal.ip = "192.168.1.101"
$e1.principal.user.userid = "alex"
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.src.hostname = "altostrat.com"
right join $e1.principal.hostname = $e2.principal.hostname
Utilizzare i risultati
I risultati di un'unione di dati vengono visualizzati in una tabella Unioni, inclusi i campi combinati di entrambi gli eventi correlati. Questa tabella è diversa da una visualizzazione delle statistiche, in quanto fornisce i dati completi di eventi o entità e non un conteggio aggregato.
Dopo aver eseguito una query, puoi utilizzare i risultati nei seguenti modi:
Scarica come CSV:esporta il set di risultati completo in un file CSV per l'analisi offline.
Esporta in tabelle di dati:salva i risultati in una tabella di dati all'interno della tua istanza per riferimento o per ulteriori correlazioni (solo per le unioni da evento a evento).
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.