Formattare i dati di log come UDM
Campi evento UDM comuni
Tutti gli eventi Unified Data Model (UDM) hanno un insieme di campi e messaggi comuni che i partner possono compilare indipendentemente dal tipo di evento. Questi campi includono:
- Entità: dispositivi, utenti e processi coinvolti in un evento.
- Metadati evento: quando si è verificato l'evento, il tipo di evento, la sua origine e così via.
- Metadati rete: metadati rete di alto livello per eventi orientati alla rete, nonché dettagli del protocollo all'interno dei messaggi secondari:
- Metadati email: informazioni nei campi A, Da, Cc, Ccn e altri campi email.
- Metadati HTTP: metodo, referral_url, useragent e così via.
- Risultati di sicurezza: qualsiasi classificazione o azione eseguita da un prodotto di sicurezza.
- Metadati aggiuntivi: tutti i dati sugli eventi specifici del fornitore importanti che non possono essere rappresentati in modo adeguato nelle sezioni formali del modello UDM possono essere aggiunti utilizzando un campo payload JSON in formato libero.
Le sezioni seguenti descrivono come codificare e formattare gli eventi per UDM.
Codifica UDM
Gli eventi UDM devono essere inviati a Google Security Operations utilizzando uno dei seguenti formati:
Ai fini di questo documento, i campi sono rappresentati utilizzando una notazione con punti. Ad esempio, la seguente sintassi JSON:
{"menu":
{
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"}
]
}
}
}
È documentato come segue:
menu.id = "file"
menu.value = "File"
menu.popup.menuitem.value = "New"
menu.popup.menuitem.onclick = "CreateNewDoc()"
Formattazione di un evento UDM
Per formattare un evento UDM in modo che sia pronto per essere inviato a Google, devi completare i seguenti passaggi:
- Specifica il tipo di evento: il tipo di evento selezionato determina i campi da includere anche nell'evento.
- Specifica il timestamp dell'evento: specifica il timestamp dell'evento.
- Specifica i nomi (entità): ogni evento deve includere almeno un nome che descriva un dispositivo o un utente partecipante coinvolto nell'evento.
- Specifica il risultato di sicurezza: (facoltativo) specifica i risultati di sicurezza includendo i dettagli sui rischi e sulle minacce per la sicurezza rilevati da un sistema di sicurezza, nonché le azioni intraprese per mitigare questi rischi e minacce.
- Compila le informazioni sugli eventi obbligatorie e facoltative rimanenti utilizzando i campi evento UDM.
Specifica il tipo di evento
Il valore più importante definito per qualsiasi evento inviato in formato UDM è il tipo di evento, specificato utilizzando uno dei valori possibili disponibili per Metadata.event_type. Questi includono valori come PROCESS_OPEN, FILE_CREATION, USER_CREATION, NETWORK_DNS e così via (per l'elenco completo, vedi Metadata.event_type). Ogni tipo di evento richiede anche di compilare un insieme di altri campi e valori con le informazioni associate all'evento originale. Consulta Campi obbligatori e facoltativi per ogni tipo di evento UDM per informazioni dettagliate sui campi da includere per ogni tipo di evento. Il seguente esempio mostra come specificare PROCESS_OPEN come tipo di evento utilizzando la notazione di testo Proto3:
metadata {
event_type: PROCESS_OPEN
}
Specifica il timestamp dell'evento
Devi specificare il timestamp GMT per qualsiasi evento inviato in formato UDM utilizzando Metadata.event_timestamp. Il timbro deve essere codificato utilizzando uno dei seguenti standard:
- Per JSON, utilizza RFC 3339
- Timestamp Proto3
L'esempio seguente mostra come specificare il timestamp utilizzando il formato RFC 3339. Per questo esempio, aaaa-mm-ggThh:mm:ss+hh:mm: anno, mese, giorno, ora, minuto, secondo e lo scarto con fuso orario UTC. Lo scarto da UTC è di -8 ore, il che indica il fuso orario PST.
metadata {
event_timestamp: "2019-09-10T20:32:31-08:00"
}
Specifica i nomi (entità)
Per ogni evento UDM, devi definire uno o più nomi. Un sostantivo rappresenta un partecipante o un'entità in un evento UDM. Un sostantivo potrebbe essere, ad esempio, il dispositivo/utente che esegue l'attività descritta in un evento o il dispositivo/utente che è il target di tale attività descritta nell'evento. I sostantivi possono anche essere allegati o URL. Infine, un sostantivo può essere utilizzato anche per descrivere un dispositivo di sicurezza che ha osservato l'attività descritta nell'evento (ad esempio, un proxy email o un router di rete).
Un evento UDM deve avere specificato uno o più dei seguenti nomi:
principal: rappresenta l'entità che agisce o il dispositivo che ha origine l'attività descritta nell'evento. Il principale deve includere almeno un dettaglio della macchina (nome host, MAC, IP, porta, identificatori specifici del prodotto come un GUID macchina CrowdStrike) o un dettaglio dell'utente (ad esempio, nome utente) e, facoltativamente, i dettagli del processo. NON deve includere nessuno dei seguenti campi: email, file, chiavi o valori del registro.
Se tutti gli eventi si svolgono sulla stessa macchina, questa deve essere descritta solo in principal. La macchina non deve essere descritta anche in target o in src.
Il seguente esempio mostra come potrebbero essere compilati i campi principal:
principal {
hostname: "jane_win10"
asset_id: "Sophos.AV:C070123456-ABCDE"
ip: "10.0.2.10"
port: 60671
user { userid: "john.smith" }
}
Questo esempio fornisce dettagli sul dispositivo e sull'utente che è stato l'attore principale dell'evento. Include l'indirizzo IP, il numero di porta e il nome host del dispositivo, nonché un identificatore di asset specifico del fornitore (di Sophos), ovvero un ID univoco generato dal prodotto di sicurezza di terze parti.
target:rappresenta un dispositivo di destinazione a cui fa riferimento l'evento o un oggetto sul dispositivo di destinazione. Ad esempio, in una connessione firewall dal dispositivo A al dispositivo B, A è descritto come principale e B come destinazione. Per un'iniezione in un processo da parte del processo C nel processo di destinazione D, il processo C viene descritto come principale e il processo D come destinazione.
Entità e target in UDM
Il seguente esempio illustra come vengono compilati i campi di una destinazione:
target {
ip: "198.51.100.31"
port: 80
}
Anche in questo caso, se sono disponibili ulteriori informazioni, come nome host, indirizzi IP aggiuntivi, indirizzi MAC, identificatori di asset proprietari e così via, devono essere incluse anche in target.
Sia principal che target (e altri nomi) possono fare riferimento agli attori sulla stessa macchina. Ad esempio, il processo A (entità) in esecuzione sulla macchina X agisce sul processo B (destinazione) anch'esso sulla macchina X.
- src:rappresenta un oggetto di origine su cui viene eseguita un'azione da parte del partecipante insieme al contesto del dispositivo o del processo per l'oggetto di origine (la macchina in cui si trova l'oggetto di origine). Ad esempio, se l'utente U copia il file A sulla macchina X nel file B sulla macchina Y, sia il file A sia la macchina X verranno specificati nella parte src dell'evento UDM.
- intermediario: rappresenta i dettagli di uno o più dispositivi intermedi che elaborano l'attività descritta nell'evento. Sono inclusi i dettagli del dispositivo relativi a un server proxy, a un server di inoltro SMTP e così via.
- observer:rappresenta un dispositivo osservatore (ad esempio, un packet sniffer o uno scanner di vulnerabilità basato sulla rete), che non è un intermediario diretto, ma che osserva e segnala l'evento in questione.
- about: utilizzato per memorizzare i dettagli di tutti gli oggetti a cui fa riferimento l'evento e che non sono descritti in participant, src, target, intermediary o observer. Ad esempio, potrebbe essere utilizzata per monitorare quanto segue:
- Allegati dei file email
- Domini/URL/IP incorporati nel corpo di un'email
- DLL caricate durante un evento PROCESS_LAUNCH
Le sezioni delle entità degli eventi UDM includono informazioni sui vari partecipanti (dispositivi, utenti, oggetti come URL, file e così via) descritti nell'evento. L'UDM di Google Security Operations ha requisiti obbligatori per quanto riguarda il riempimento dei campi Noun. Questi requisiti sono descritti in Campi obbligatori e facoltativi per ogni tipo di evento UDM. Il set di campi dell'entità che devono essere compilati varia in base al tipo di evento.
Specificare il risultato di sicurezza
Puoi specificare facoltativamente i risultati di sicurezza compilando i campi SecurityResult, inclusi i dettagli sui rischi e sulle minacce per la sicurezza rilevati dal sistema di sicurezza, nonché le azioni intraprese per mitigare questi rischi e minacce. Di seguito sono riportati alcuni esempi di tipi di eventi di sicurezza che richiedono la compilazione dei campi SecurityResult:
- Un proxy di sicurezza email ha rilevato un tentativo di phishing (MAIL_PHISHING) e ha bloccato (BLOCK) l'email.
- Un firewall proxy di sicurezza email ha rilevato due allegati infetti (SOFTWARE_MALICIOUS), li ha messi in quarantena e disinfettati (QUARANTINE, ALLOW_WITH_MODIFICATION) e poi ha inoltrato l'email disinfettata.
- Un sistema SSO ha facilitato un accesso (AUTH_VIOLATION) che è stato bloccato (BLOCK).
- Una sandbox per il malware ha rilevato spyware (SOFTWARE_MALICIOUS) in un allegato cinque minuti dopo che il file è stato recapitato (ALLOW) all'utente nella sua Posta in arrivo.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.