Esegui ricerche nel contesto dell'entità
La funzionalità Contesto entità nella ricerca migliora le indagini sulla sicurezza e la risposta agli incidenti consentendo agli utenti di cercare e visualizzare gli eventi di contesto correlati alle entità all'interno del proprio account Google Security Operations. A differenza delle ricerche limitate allo schema di eventi standard Unified Data Model (UDM), questa funzionalità risponde alla necessità di eseguire ricerche oltre i dati sugli eventi UDM, incluso il contesto delle entità UDM, e fornisce informazioni più approfondite sugli incidenti di sicurezza.
Vantaggi principali
- Gli analisti della sicurezza e i threat hunter possono eseguire query sulle informazioni contestuali relative alle entità.
- Facilitare l'analisi delle cause principali, la ricerca delle minacce e la network forensics.
- Gli utenti possono eseguire ricerche statistiche sul contesto delle entità per comprendere i pattern di telemetria e le entità interessate tramite l'analisi della telemetria.
Utilizza il contesto dell'entità nella ricerca
Puoi utilizzare il contesto delle entità per ottenere informazioni dai risultati di ricerca nei seguenti modi:
- Esegui ricerche utilizzando i nomi dei campi delle entità UDM: crea le query di ricerca utilizzando i nomi dei campi delle entità UDM. Ad esempio, per trovare tutti gli eventi di contesto associati a un nome host specifico, crea una ricerca utilizzando
graph.entity.hostname. - Accedi alla scheda Panoramica: la scheda Panoramica fornisce un riepilogo generale delle entità trovate nella ricerca, sfruttando le informazioni della query inserita da un utente per visualizzare le informazioni. La pagina Panoramica mostra informazioni per i tipi di entità, ad esempio
DOMAIN_NAME,IP_ADDRESS,ASSET,USER,FILE,GROUPeRESOURCE. - Utilizza la scheda Entità: la scheda Entità elenca tutti gli eventi di contesto delle entità ricevuti, inclusi i componenti secondari come Tendenza nel tempo, Filtro snapshot, Aggregazioni ed Eventi. Le entità sono suddivise in entità con data ed entità senza data, visualizzate in schede separate.
- Visualizza aggregati: gli aggregati vengono visualizzati per i campi, in modo simile alla ricerca di eventi UDM. Le aggregazioni sono ulteriormente suddivise in tipi di contesto: contesto dell'entità, contesto derivato e contesto globale.
Interfaccia dei risultati di ricerca di Entity Context Graph
L'interfaccia dei risultati di ricerca del grafico di contesto delle entità (ECG) fornisce diverse schede per aiutarti ad analizzare i dati di contesto delle entità:
Scheda Risultati: mostra
Timed DataeTimeless Data.- Dati temporizzati: mostra le entità che avevano un valore per
metadata.interval.end_timedurante l'importazione. - Dati senza tempo: mostra le entità che non avevano un valore per
metadata.interval.end_time.
L'interfaccia mostra le entità con o senza un intervallo di tempo, fino al numero massimo di risultati configurato.
- Dati temporizzati: mostra le entità che avevano un valore per
Scheda Avvisi: mostra tutti gli avvisi associati alle entità trovate nella ricerca.
Scheda Panoramica: presenta informazioni sull'entità nella query di ricerca.
Grafico Attività nel tempo:
Mostra il numero di entità e il contesto delle entità validi all'interno di ogni bucket temporale. Puoi utilizzare il cursore per aumentare o diminuire lo zoom dell'intervallo di tempo.
Entità modificate totali: l'Entity Context Graph (ECG) archivia i dati in bucket temporali entro il loro periodo di validità. Inoltre, copia questi dati nel bucket temporale successivo, a condizione che l'entità rimanga valida (in base a
end_time). Questo grafico si aggiorna ogni volta che una proprietà dell'entità cambia tra due bucket temporali.
Caso d'uso: indaga su un account utente compromesso
Considera il seguente scenario: un analista della sicurezza deve indagare su un account utente potenzialmente compromesso (email@company.com). Segui questi passaggi per esaminare il problema:
Identifica l'utente compromesso: un avviso segnala che l'utente email@company.com è stato identificato come account sospetto.
Raccogli informazioni sul contesto dell'entità: ottieni dati contestuali sull'utente per comprendere l'ambito e l'impatto.
Esegui query: utilizza Contesto dell'entità nella ricerca per eseguire le seguenti query:
graph.entity.user.email_addresses = "email@company.com"per recuperare informazioni sull'utente.graph.entity.user.email_addresses = "email@company.com" AND graph.metadata.product_name = "Google Cloud Compute Context"per controllare il nome del prodotto e altri metadati.
Analizza la scheda Panoramica: la scheda Panoramica mostra il riepilogo dell'entità per l'utente, tra cui:
- Controlla i timestamp
First Seen HoureLast Seen Hour.
- Controlla i timestamp
- Esamina i nomi host, gli indirizzi IP e gli indirizzi MAC (se disponibili).
- Ispeziona il modello hardware, la piattaforma del sistema operativo e la versione della piattaforma.
Esamina la scheda Eventi: visualizza gli eventi associati a questo utente, inclusi i tentativi di accesso e le anomalie.
Aggregati di recensioni: identifica pattern e anomalie nei dati di contesto delle entità, distribuiti in Contesto entità, Contesto derivato e Contesto globale.
Esempi di ricerca
Per cercare i dati di contesto delle entità, utilizza i nomi dei campi delle entità UDM nelle query di ricerca:
graph.entity.hostnamegraph.entity.ip = "8.8.8.8" and graph.metadata.entity_type = "ASSET"
I risultati di ricerca mostrano informazioni chiave sulle entità, tra cui:
- Metadati entità
- Metriche (
First Seen Hour,Last Seen Hour) - Relazioni (
Entity,Direction,Entity_label,Entity_type,Relationship) - A seconda del tipo di entità, campi specifici, come
Principal_ipper gli asset,Mail_idper gli utenti,File_nameper gli hash/file eDomain_nameeIP_addressper i domini.
Esempi di contesto dell'entità nella ricerca
Questa sezione fornisce esempi pratici per l'utilizzo della funzionalità Contesto entità UDM per analizzare le statistiche delle entità.
Ricerca delle statistiche delle entità UDM
Per visualizzare le origini e i tipi di contesto disponibili, esegui la seguente ricerca delle statistiche delle entità UDM nella ricerca UDM:
graph.metadata.source_type = $sourceType
graph.metadata.entity_type = $entityType
match:
$sourceType, $entityType
outcome:
$total = count(graph.metadata.product_entity_id)
order:
$sourceType, $total desc
limit:
100
Il Selettore dell'ora mostra i dati attivi all'interno del grafico delle entità, non quando i dati di contesto sono stati importati.
Poiché la ricerca di entità UDM utilizza l'interfaccia di ricerca UDM standard, puoi utilizzare funzionalità come il riquadro Aggregazioni (per visualizzare i valori più alti o più bassi), la tabella dei risultati e i risultati espansi delle statistiche UDM.
Esempio: Visualizza ENTITY_TYPE distinti
Per espandere la ricerca di entità UDM, puoi includere l'origine log, lo spazio dei nomi e un array di risultati per mostrare i ENTITY_TYPE distinti osservati, come segue:
graph.metadata.source_type = "ENTITY_CONTEXT"
$logType = strings.to_upper(graph.metadata.event_metadata.base_labels.log_types)
$namespace = strings.to_upper(graph.metadata.event_metadata.base_labels.namespaces)
match:
$logType, $namespace
outcome:
$total = count(graph.metadata.product_entity_id)
$entityTypes = array_distinct(graph.metadata.entity_type)
order:
$logType, $total desc
limit:
100
Esempio: perfeziona l'insieme di entità
Puoi perfezionare un insieme specifico di entità utilizzando la funzionalità di pivot della ricerca UDM. Questo perfezionamento genera quindi una query YARA-L come la seguente:
graph.metadata.source_type = "ENTITY_CONTEXT"
$logType = strings.to_upper( graph.metadata.event_metadata.base_labels.log_types )
$namespace = strings.to_upper( graph.metadata.event_metadata.base_labels.namespaces )
AND strings.to_upper( graph.metadata.event_metadata.base_labels.log_types ) = "WINDOWS_AD"
AND strings.to_upper( graph.metadata.event_metadata.base_labels.namespaces ) = "ACME"
Contesto derivato
Google SecOps fornisce i seguenti tipi di contesto derivato:
- Timestamp
first_seenelast_seenper ogniENTITY_TYPE Prevalence: il numero di asset che hanno eseguito l'accesso a un determinatoENTITY_TYPE
Timestamp First Seen Hour e Last Seen Hour
Google SecOps esegue un'analisi statistica dei dati in entrata e arricchisce i record di contesto delle entità con i timestamp first_seen e last_seen:
- Il campo
first_seen_timeacquisisce l'ora in cui un'entità è stata rilevata per la prima volta nell'ambiente del cliente. - Il campo
last_seen_timeregistra l'ora dell'osservazione più recente di quell'entità.
Utenti con un'ora della prima visualizzazione negli ultimi 7 giorni:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "USER"
graph.entity.user.userid != ""
graph.entity.user.first_seen_time.hours >= timestamp.current_hours()-(86400 * 7)
Domini rilevati per la prima volta negli ultimi 7 giorni:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "DOMAIN_NAME"
//optional, filter to only return FQDN
graph.entity.domain.name = /^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/
graph.entity.domain.first_seen_time.hours >= timestamp.current_hours()-(86400 * 7)
File (hash) osservati negli ultimi 7 giorni:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "FILE"
//graph.entity.file.md5 != ""
//graph.entity.file.sha1 != ""
graph.entity.file.sha256 != ""
graph.entity.file.first_seen_time.hours >= timestamp.current_hours() - (86400 * 7)
ENTITY_TYPE rappresenta un hash FILE, ad esempio entity.file.hash.
All'interno dell'oggetto hash, il tipo può essere uno dei seguenti:
md5sha1sha256
Per cercare un hash specifico, puoi eseguire una ricerca di entità UDM per il tipo di hash specificato:
// This will search ENTITY, DERIVED, and GLOBAL Source Types
graph.metadata.entity_type = "FILE"
graph.entity.file.sha256 = "eb5db1feadda5351c3b8fc0770e9f4c173484df5dc4a785bd1bdce7806a9e498"
Indirizzi IP
ENTITY_TYPES derivato di IP_ADDRESS può rappresentare entità interne o esterne.
La seguente ricerca di statistiche delle entità UDM identifica i IP_ADDRESSES osservati di recente e utilizza funzioni aggregate (nella sezione dei risultati) per contarli in base al blocco CIDR:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "IP_ADDRESS"
//note, for IP addresses the first seen is under artifact, not ip
graph.entity.artifact.first_seen_time.hours >= timestamp.current_hours()-(86400 * 7)
outcome:
$total = count(graph.metadata.product_entity_id)
$classA = sum(if(net.ip_in_range_cidr(graph.entity.ip, "10.0.0.0/8"),1,0))
$classB = sum(if(net.ip_in_range_cidr(graph.entity.ip, "172.16.0.0/12"),1,0))
$classC = sum(if(net.ip_in_range_cidr(graph.entity.ip, "192.168.0.0/16"),1,0))
$classD = sum(if(net.ip_in_range_cidr(graph.entity.ip, "224.0.0.0/4"),1,0))
// we shouldn't see results here…
$classE = sum(if(net.ip_in_range_cidr(graph.entity.ip, "240.0.0.0/4"),1,0))
$thisNetwork = sum(if(net.ip_in_range_cidr(graph.entity.ip, "0.0.0.0/8"),1,0))
$loopback = sum(if(net.ip_in_range_cidr(graph.entity.ip, "127.0.0.0/8"),1,0))
$linklocal = sum(if(net.ip_in_range_cidr(graph.entity.ip, "169.254.0.0/16"),1,0))
$benchmark = sum(if(net.ip_in_range_cidr(graph.entity.ip, "198.18.0.0/15"),1,0))
$cgnat = sum(if(net.ip_in_range_cidr(graph.entity.ip, "10.64.0.0/10"),1,0))
Per esaminare ulteriormente un intervallo insolito o imprevisto, puoi eseguire una ricerca di entità UDM:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "IP_ADDRESS"
net.ip_in_range_cidr(graph.entity.ip, "198.18.0.0/15")
Prevalenza
La prevalenza è sempre di tipo DERIVED_CONTEXT.
La seguente ricerca di entità UDM identifica i nomi di dominio osservati raramente. Questi domini sono associati nello specifico a un massimo di un asset distinto al giorno, durante la finestra temporale della query (day_max = 1), e a un massimo di un asset distinto nei 10 giorni precedenti (rolling_max = 1).
Questo pattern è utile per rilevare i domini con un'interazione limitata nel tuo ambiente:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "DOMAIN_NAME"
//optional, filter to only return specific TLDs where the FQDN is more than X characters
//graph.entity.domain.name = /^.{40,}\.(?:sx|cc|st|ac|lc|wd|vg|tv|cm|gd)$/
graph.entity.domain.prevalence.rolling_max = 1
graph.entity.domain.prevalence.day_max = 1
In alternativa, puoi trasformarla in una ricerca aggregata di statistiche delle entità UDM e aggregare i risultati:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "DOMAIN_NAME"
//optional, filter to only return FQDN
graph.entity.domain.name = /^.{40,}\.(?:sx|cc|st|ac|lc|wd|vg|tv|cm|gd)$/
$domain = graph.entity.domain.name
$length = strings.length(graph.entity.domain.name)
$tld = strings.extract_domain(graph.entity.domain.name)
graph.entity.domain.prevalence.day_max = 1
graph.entity.domain.prevalence.rolling_max = 1
match:
$domain, $tld, $length
limit:
10
Ricerche di base dei campi delle entità UDM
Di seguito sono riportati altri esempi di utilizzo della funzionalità Contesto dell'entità nella ricerca in Google SecOps, in base alle fonti disponibili:
graph.entity.hostnamegraph.entity.ip = "8.8.8.8" and graph.metadata.entity_type = "ASSET"principal.ipprincipal.hostname="baz"principal.ip="1.2.3.4"network.dns.questions.name="youtube.com"
Pivot dai campi entità
Utilizza i campi delle entità per creare tabelle pivot ed esplorare i dati correlati. Esempi di campi pivot:
network.email.tonetwork.email.ccprincipal.process.file.fileMetadata.pe.importHashprincipal.process.file.sha256network.dns.questions.name
Informazioni sui campi dinamici
Le origini fanno riferimento a campi strutturati dinamici con prefissi, ad esempio additional. Puoi cercare questi campi all'interno degli eventi UDM.
Considerazioni sul controllo degli accessi
Il sistema impone un limite di 50 eventi per i dati di contesto globali. Sia gli utenti globali sia quelli con ambito possono visualizzare i dati.
Le seguenti fonti forniscono dati di contesto globali:
| Dati di contesto globali | Dove un utente può visualizzare o interagire con questi dati | Chi può vederlo |
|---|---|---|
| Navigazione sicura | - Ricerca - Regole |
Tutti gli utenti |
| Relazioni di VirusTotal | - Ricerca - Regole |
Tutti gli utenti |
| WHOIS | - Ricerca - Regole |
Tutti gli utenti |
| Maiuscolo | - Ricerca - Regole |
Tutti gli utenti |
IOC di intelligence open source (OPEN_SOURCE_INTEL_IOC) |
- Ricerca - Regole |
Tutti gli utenti |
Mandiant Fusion IoC (MANDIANT_FUSION_IOC) |
- Ricerca - Regole - Minacce emergenti |
Tutti gli utenti |
Limitazioni
- Limiti di volume: limite di 1 milione di risultati cumulativi per i dati con e senza data.
- Dati di contesto globali: esiste un limite di 50 righe per i dati di contesto globali sensibili, come
UPPERCASE_VT_PROTECTED,MANDIANT_FUSION_IOCeVIRUS_TOTAL_CONNECTIONS. - Coerenza dei dati: i dati relativi all'ultimo rilevamento possono subire un ritardo fino a 2 ore. Le entità correlate possono mostrare solo un sottoinsieme delle entità elencate in un evento.
Funzionalità non supportate:
- Ricerche inverse sui campi delle entità, ricerche di campi raggruppati, prevalenza bassa e mappa termica.
- Non puoi unire query di contesto di entità e query di eventi.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.