Arricchimento
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_idnon è disponibile.
- Nome host, MAC e
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 |
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_addresseprincipal.useridpotrebbero 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_IDePRODUCT_OBJECT_ID. - Compila
noun.usercon 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:
|
| 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.ipartifact.locationartifact.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:
- Utilizza dati arricchiti dal contesto nella ricerca UDM.
- Utilizzare dati arricchiti dal contesto nelle regole.
- Utilizzare i dati arricchiti dal contesto nei report.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.