Arricchimento

Supportato in:

L'arricchimento utilizza i seguenti metodi per aggiungere contesto a un indicatore o a un evento Unified Data Model (UDM):

  • Identifica le entità alias che descrivono un indicatore, in genere un campo UDM.
  • Compila il messaggio UDM con dettagli aggiuntivi dagli alias o dalle entità identificati.
  • Aggiunge dati di arricchimento globali, come GeoIP e VirusTotal, agli eventi UDM.

Informazioni sui pattern della logica di arricchimento

Google SecOps applica pattern logici diversi ai dati a seconda del tipo di arricchimento. Utilizza la seguente tabella per comprendere questi pattern per la risoluzione dei problemi e per spiegare perché determinati campi vengono compilati, uniti o sovrascritti.

Modello logico Descrizione Arricchimento applicabile
Prima partita Segue un elenco di priorità rigoroso. La pipeline esegue query solo sul primo valore disponibile trovato nella sequenza. Artefatto (hash dei file)
Unita Raccoglie e combina i dati di più campi contemporaneamente per creare un singolo record di entità "golden". Asset, User
Procedimento di riserva condizionale Un campo specifico viene utilizzato per l'arricchimento solo se manca un identificatore con priorità più alta. Asset (indirizzo ip)
Mappatura e sovrascrittura Utilizza un ID univoco (PSPI) per risolvere le entità. I dati con alias dell'origine di arricchimento sostituiscono i dati analizzati esistenti. Processo

Arricchimento degli asset

Per l'arricchimento delle risorse, la pipeline identifica le risorse uniche valutando più campi UDM. A differenza dell'arricchimento degli artefatti (che ne sceglie uno), l'arricchimento degli asset unisce il contesto di più ID per creare un profilo completo dell'asset.

Per le risorse, la logica è cumulativa anziché esclusiva, ad eccezione di scenari di fallback specifici. Utilizza questi dettagli per la spiegazione:

  • Tipo di logica: unita o di riserva. La pipeline raccoglie i dati da tutti i campi disponibili per creare una singola visualizzazione "Entità", a meno che non venga soddisfatta una condizione di fallback (come il controllo asset_id).
  • Mappature dei campi:
    • Nome host, MAC e asset_id: trattati come ID principali. I risultati degli alias di tutti questi campi vengono uniti per produrre il profilo dell'asset arricchito finale.
    • Indirizzo IP: incluso nella query di arricchimento solo se asset_id non è disponibile.

Per ogni evento asset, la pipeline estrae i seguenti campi UDM dalle entità principal, src e target:

Campo UDM Tipo di indicatore Logica / precedenza
hostname HOSTNAME Uniti: i risultati dell'assegnazione di alias di questi campi vengono combinati per produrre il record della risorsa arricchito finale.
asset_id PRODUCT_SPECIFIC_ID Unito: identificatore principale utilizzato per consolidare il contesto dell'asset.
mac MAC Unito: utilizzato insieme ad altri identificatori per risolvere la risorsa.
ip IP Soluzione di riserva: inclusa nella query di arricchimento solo se asset_id non è disponibile.

Arricchimento degli utenti

L'arricchimento degli utenti risolve i dati dell'identità cercando identificatori specifici. Come per l'arricchimento degli artefatti, questa pipeline utilizza un ordine di preferenza per determinare quale identificatore viene utilizzato come chiave primaria per la ricerca.

Per ogni evento utente, la pipeline estrae i seguenti campi UDM da principal, src e target:

Campo UDM Tipo di indicatore Logica o precedenza
user.email_addresses EMAIL Priorità più alta:la pipeline tenta innanzitutto di arricchire i dati in base agli indirizzi email principali o secondari dell'utente.
user.windows_sid WINDOWS_SID Seconda priorità:se non è disponibile alcuna email, la pipeline utilizza l'ID di sicurezza (SID) di Windows.
user.userid USER_ID Terza priorità:utilizzata solo se mancano l'email e l'SID; in genere viene mappata a ID locali o specifici dell'applicazione.
user.employee_id EMPLOYEE_ID Priorità più bassa:l'ultimo fallback per risolvere l'identità di un utente.

Per ogni indicatore, la pipeline esegue le seguenti azioni:

  • Recupera un elenco di entità utente. Ad esempio, le entità di principal.email_address e principal.userid potrebbero essere uguali o diverse.
  • Sceglie gli alias dal tipo di indicatore con la priorità più alta, utilizzando questo ordine di priorità: WINDOWS_SID, EMAIL, USERNAME, EMPLOYEE_ID e PRODUCT_OBJECT_ID.
  • Compila noun.user con l'entità il cui intervallo di validità interseca l'ora dell'evento.

Arricchimento del processo

L'arricchimento dei processi si concentra sulla visibilità degli eventi di esecuzione. La pipeline estrae i dettagli del processo e li arricchisce facendo riferimento incrociato alle reputazioni dei file e alle relazioni padre-figlio.

Utilizza l'arricchimento dei processi per mappare un ID processo specifico del prodotto (product_specific_process_id) o PSPI al processo effettivo e recuperare i dettagli sul processo principale. Questo processo si basa sul tipo di batch di eventi EDR.

Entità UDM Origine del campo Logica o priorità
Entità principali principal, src, target Estrazione:la pipeline estrae le informazioni PSPI da queste entità di primo livello per avviare la ricerca.
Processi padre principal.process.parent_process,
src.process.parent_process,
target.process.parent_process
Mappatura:il PSPI recupera i dettagli sul processo principale con l'assegnazione di alias al processo.
Unione dei dati noun.process (ad esempio, principal.process) Regola di sovrascrittura:i campi con alias hanno la priorità assoluta. Se esistono sia dati analizzati sia dati con alias per lo stesso campo, la pipeline sostituisce i dati analizzati con i dati con alias.

La pipeline utilizza l'aliasing dei processi per identificare il processo effettivo dal PSPI e recupera informazioni sul processo padre. Quindi, unisce questi dati nel campo noun.process corrispondente all'interno del messaggio arricchito.

Campi indicizzati EDR per l'aliasing dei processi

Quando viene avviato un processo, il sistema raccoglie i metadati (ad esempio, righe di comando, hash dei file e dettagli del processo padre). Il software EDR in esecuzione sulla macchina assegna un UUID di processo specifico del fornitore.

La tabella seguente elenca i campi indicizzati durante un evento di avvio del processo:

Campo UDM Tipo di indicatore
target.product_specific_process_id PROCESS_ID
target.process L'intero processo, non solo l'indicatore

Oltre al campo target.process dell'evento normalizzato, Google SecOps raccoglie e indicizza le informazioni sul processo padre.

Arricchimento degli artefatti

L'arricchimento degli artefatti aggiunge i metadati hash dei file di VirusTotal e i dati di geolocalizzazione per gli indirizzi IP. Per gli hash dei file, la pipeline si arresta al primo valore trovato in un elenco prioritario; tuttavia, per gli indirizzi IP, elabora tutte le voci in parallelo. Per ogni evento UDM, la pipeline estrae ed esegue query sui dati di contesto per gli indicatori di artefatti seguenti dalle entità principal, src e target, dove il comportamento di arricchimento varia in base al tipo di indicatore:

Tipo di indicatore Logica di estrazione Precedenza / ordine delle operazioni
Hash dei file Prima partita La pipeline cerca gli hash nel seguente ordine e seleziona solo il primo disponibile per eseguire query su VirusTotal:
  1. file.sha256
  2. file.sha1
  3. file.md5
  4. process.file.sha256
  5. process.file.sha1
  6. process.file.md5
Indirizzo IP Parallela (ripetuto) Ogni indirizzo IP pubblico o instradabile viene trattato come una voce indipendente. Non esiste un ordine di preferenza; ogni IP riceve i propri risultati di arricchimento.

La pipeline utilizza l'epoca UNIX e l'ora dell'evento per definire l'intervallo di tempo per le query sugli artefatti dei file. Se sono disponibili dati di geolocalizzazione, la pipeline sovrascrive i seguenti campi UDM per le entità principal, src e target, in base all'origine dei dati di geolocalizzazione:

  • artifact.ip
  • artifact.location
  • artifact.network (solo se i dati includono il contesto della rete IP)
  • location (solo se i dati originali non includono questo campo)

Se la pipeline trova i metadati hash del file, li aggiunge al file o ai campi process.file, a seconda dell'origine dell'indicatore. La pipeline conserva tutti i valori esistenti che non si sovrappongono ai nuovi dati.

Arricchchimento della geolocalizzazione IP

L'aliasing geografico fornisce dati di geolocalizzazione per indirizzi IP esterni. Per ogni indirizzo IP senza alias nel campo principal, target o src per un evento UDM, viene creato un buffer del sottoprotocollo ip_geo_artifact con le informazioni su posizione e ASN associate.

L'aliasing geografico non utilizza la ricerca a ritroso o la memorizzazione nella cache. A causa dell'elevato volume di eventi, Google SecOps mantiene un indice in memoria.

Arricchire gli eventi con i metadati dei file VirusTotal

Google SecOps arricchisce gli hash dei file negli eventi UDM e fornisce un contesto aggiuntivo durante un'indagine. L'assegnazione di alias hash arricchisce gli eventi UDM combinando tutti i tipi di hash dei file e fornendo informazioni su un hash di file durante una ricerca.

Google SecOps integra i metadati dei file VirusTotal e l'arricchimento delle relazioni per identificare i pattern di attività dannose e monitorare i movimenti del malware in una rete.

Un log non elaborato fornisce informazioni limitate sul file. VirusTotal arricchisce l'evento con i metadati del file, inclusi i dettagli su hash e file dannosi. I metadati includono informazioni quali nomi dei file, tipi, funzioni importate e tag. Puoi utilizzare queste informazioni nel motore di ricerca e rilevamento UDM con YARA-L per comprendere gli eventi dei file dannosi e durante la ricerca delle minacce. Ad esempio, puoi rilevare modifiche al file originale che utilizzano i metadati del file per il rilevamento delle minacce.

Le seguenti informazioni vengono archiviate con il record. Per un elenco di tutti i campi UDM, consulta l'elenco dei campi Unified Data Model.

Tipo di dati Campo UDM
sha-256 ( principal | target | src | observer ).file.sha256
md5 ( principal | target | src | observer ).file.md5
sha-1 ( principal | target | src | observer ).file.sha1
dimensioni ( principal | target | src | observer ).file.size
ssdeep ( principal | target | src | observer ).file.ssdeep
vhash ( principal | target | src | observer ).file.vhash
authentihash ( principal | target | src | observer ).file.authentihash
Imphash dei metadati del file PE ( principal | target | src | observer ).file.pe_file.imphash
security_result.threat_verdict ( principal | target | src | observer ).(process | file).security_result.threat_verdict
security_result.severity ( principal | target | src | observer ).(process | file).security_result.severity
last_modification_time ( principal | target | src | observer ).file.last_modification_time
first_seen_time ( principal | target | src | observer ).file.first_seen_time
last_seen_time ( principal | target | src | observer ).file.last_seen_time
last_analysis_time ( principal | target | src | observer ).file.last_analysis_time
exif_info.original_file ( principal | target | src | observer ).file.exif_info.original_file
exif_info.product ( principal | target | src | observer ).file.exif_info.product
exif_info.company ( principal | target | src | observer ).file.exif_info.company
exif_info.file_description ( principal | target | src | observer ).file.exif_info.file_description
signature_info.codesign.id ( principal | target | src | observer ).file.signature_info.codesign.id
signature_info.sigcheck.verfied ( principal | target | src | observer ).file.signature_info.sigcheck.verified
signature_info.sigcheck.verification_message ( principal | target | src | observer ).file.signature_info.sigcheck.verification_message
signature_info.sigcheck.signers.name ( principal | target | src | observer ).file.signature_info.sigcheck.signers.name
signature_info.sigcheck.status ( principal | target | src | observer ).file.signature_info.sigcheck.signers.status
signature_info.sigcheck.valid_usage ( principal | target | src | observer ).file.signature_info.sigcheck.signers.valid_usage
signature_info.sigcheck.cert_issuer ( principal | target | src | observer ).file.signature_info.sigcheck.signers.cert_issuer
file_type ( principal | target | src | observer ).file.file_type

Risolvere i problemi di arricchimento

Se noti che in un evento UDM mancano i dati di arricchimento previsti, utilizza i seguenti suggerimenti per risolvere il problema.

Arricchimento generale

Se alcuni dei tuoi eventi non sono arricchiti, una causa probabile può essere che Google SecOps dia la priorità alla velocità di consegna. Una piccola percentuale di eventi (<1%) potrebbe saltare l'arricchimento durante il primo passaggio. Per risolvere il problema, ricontrolla tra qualche minuto. Il sistema li rielabora automaticamente. Se l'arricchimento è ancora mancante dopo un'ora, verifica che l'origine log sia analizzata correttamente in UDM.

Arricchimento degli artefatti (logica di corrispondenza esatta)

Se il tuo evento ha un hash MD5 e uno SHA256, ma puoi visualizzare i metadati di VirusTotal solo per SHA256, si tratta della logica di prima corrispondenza. La pipeline si arresta non appena trova l'hash con la priorità più alta (sha256). Non esegue query su VirusTotal per l'MD5 se è presente un SHA256.

Se vedi la geolocalizzazione per principal.ip, ma non per target.ip, la logica parallela tratta ogni IP in modo indipendente. Se un IP è interno o privato (non instradabile) e l'altro è pubblico, solo l'IP pubblico riceve l'arricchimento della geolocalizzazione.

Arricchimento degli asset (logica di unione e di riserva)

Se il campo dell'indirizzo IP non mostra i dati di arricchimento nell'asset, significa che si tratta di una logica di fallback condizionale. L'IP viene utilizzato per una query di arricchimento solo se manca asset_id (PSID). Se esiste un asset_id, il sistema si basa su questo e ignora l'IP per quella query specifica per evitare dati ridondanti o in conflitto.

Arricchimento degli utenti (ordine di preferenza)

Se il campo Department mostra "IT" quando i miei log locali indicano "Security", significa che l'arricchimento degli utenti preferisce i campi analizzati rispetto ai campi con alias. Se il log non elaborato è stato analizzato con "IT", la pipeline di arricchimento non lo sovrascrive con il valore "Security" dell'origine identità (ad esempio Okta o AD).

Arricchimento del processo (mappatura e sovrascrittura)

Se nel log non elaborato vedi il nome di un processo, ma nella ricerca UDM viene sostituito da un nome diverso, significa che si tratta di una logica di sovrascrittura. L'arricchimento del processo dà la priorità ai campi con alias. Se la ricerca PSPI restituisce un nome di processo più accurato dal contesto EDR, sostituisce completamente il valore analizzato originale.

Passaggi successivi

Per informazioni su come utilizzare i dati arricchiti con altre funzionalità di Google SecOps, consulta quanto segue:

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.