Raccogliere i log di Microsoft Defender for Identity
Questo documento spiega come importare i log di Microsoft Defender for Identity in Google Security Operations utilizzando Azure Storage. Il parser elabora i log JSON o i log in formato CEF se l'analisi JSON non va a buon fine. Estrae i campi, esegue trasformazioni dei dati come conversioni, ridenominazione e unione di stringhe e li mappa al modello UDM (Unified Data Model), gestendo vari formati di log e arricchendo i dati con un contesto aggiuntivo come etichette e dettagli di autenticazione.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- tenant Azure attivo
- Accesso con privilegi ad Azure e ruolo di amministratore della sicurezza
Configura l'account di archiviazione di Azure
- Nella console Azure, cerca Storage accounts.
- Fai clic su Crea.
- Specifica i valori per i seguenti parametri di input:
- Abbonamento: seleziona l'abbonamento.
- Gruppo di risorse: seleziona il gruppo di risorse.
- Regione: seleziona la regione.
- Rendimento: seleziona il tipo di rendimento (Standard consigliato).
- Ridondanza: seleziona il tipo di ridondanza (consigliato GRS o LRS).
- Nome account di archiviazione: inserisci un nome per il nuovo account di archiviazione.
- Fai clic su Review + create (Rivedi e crea).
- Controlla la panoramica dell'account e fai clic su Crea.
- Nella pagina Panoramica dell'account di archiviazione, seleziona il sottomenu Chiavi di accesso in Sicurezza e networking.
- Fai clic su Mostra accanto a key1 o key2.
- Fai clic su Copia negli appunti per copiare la chiave.
- Salva la chiave in un luogo sicuro per riferimento futuro.
- Nella pagina Panoramica dell'account di archiviazione, seleziona il sottomenu Endpoint in Impostazioni.
- Fai clic su Copia negli appunti per copiare l'URL dell'endpoint del servizio Blob. ad esempio,
https://<storageaccountname>.blob.core.windows.net
. - Salva l'URL dell'endpoint in una posizione sicura per riferimento futuro.
- Vai a Panoramica > Visualizzazione JSON.
- Copia e salva l'ID risorsa di Storage.
Configura l'esportazione dei log per Microsoft Defender for Identity
- Accedi al portale Defender utilizzando un account con privilegi.
- Vai a Impostazioni.
- Seleziona la scheda Microsoft Defender XDR.
- Seleziona API Streaming dalla sezione generale e fai clic su Aggiungi.
- Seleziona Inoltra eventi ad Azure Storage.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome univoco e significativo.
- Seleziona Inoltra eventi ad Azure Storage.
- ID risorsa account di archiviazione: inserisci l'ID risorsa Azure Storage copiato in precedenza.
- Tipi di eventi: seleziona sia Avvisi e comportamenti che Dispositivi.
- Fai clic su Invia.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
- Hub dei contenuti > Pacchetti di contenuti
Configura i feed da Impostazioni SIEM > Feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log di Defender Identity).
- Seleziona Microsoft Azure Blob Storage come Tipo di origine.
- Seleziona Microsoft Defender for Identity come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
URI di Azure: l'URL dell'endpoint blob.
ENDPOINT_URL/BLOB_NAME
Sostituisci quanto segue:
ENDPOINT_URL
: l'URL dell'endpoint blob. (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: il nome del blob. (ad esempio,insights-logs-<logname>
)
L'URI è un: seleziona in base alla configurazione del flusso di log (Singolo file | Directory | Directory che include sottodirectory).
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- Chiave condivisa: la chiave di accesso ad Azure Blob Storage.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
URI di Azure: l'URL dell'endpoint blob.
ENDPOINT_URL/BLOB_NAME
Sostituisci quanto segue:
ENDPOINT_URL
: l'URL dell'endpoint blob. (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: il nome del blob. (ad esempio,insights-logs-<logname>
)- L'URI è un: seleziona in base alla configurazione del flusso di log (Singolo file | Directory | Directory che include sottodirectory).
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Chiave condivisa: la chiave di accesso ad Azure Blob Storage.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
category |
metadata.log_type |
Il campo category del log non elaborato è mappato a metadata.log_type . |
properties.AccountDisplayName |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AccountName |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AccountUpn |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.ActionType |
metadata.product_event_type |
Il campo properties.ActionType del log non elaborato è mappato a metadata.product_event_type . |
properties.AdditionalFields.ACTOR.ACCOUNT |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.ACTOR.DEVICE |
principal.asset.asset_id |
Il parser estrae il valore di properties.AdditionalFields.ACTOR.DEVICE e antepone ASSET ID: . |
properties.AdditionalFields.ACTOR.ENTITY_USER |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.Count |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.DestinationComputerDnsName |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.DestinationComputerObjectGuid |
target.asset.product_object_id |
Il primo elemento dell'array properties.AdditionalFields.DestinationComputerObjectGuid è mappato a target.asset.product_object_id . Gli elementi successivi vengono mappati a additional.fields con chiavi come DestinationComputerObjectGuid_1 , DestinationComputerObjectGuid_2 e così via. |
properties.AdditionalFields.DestinationComputerOperatingSystem |
target.asset.platform_software.platform_version |
Il primo elemento dell'array properties.AdditionalFields.DestinationComputerOperatingSystem è mappato a target.asset.platform_software.platform_version . Gli elementi successivi vengono mappati a additional.fields con chiavi come DestinationComputerOperatingSystem_1 , DestinationComputerOperatingSystem_2 e così via. |
properties.AdditionalFields.DestinationComputerOperatingSystemType |
target.asset.platform_software.platform |
Se il valore è windows , il campo UDM è impostato su WINDOWS . |
properties.AdditionalFields.DestinationComputerOperatingSystemVersion |
target.platform_version |
Il primo elemento dell'array properties.AdditionalFields.DestinationComputerOperatingSystemVersion è mappato a target.platform_version . Gli elementi successivi vengono mappati a additional.fields con chiavi come DestinationComputerOperatingSystemVersion1 , DestinationComputerOperatingSystemVersion2 e così via. |
properties.AdditionalFields.FROM.DEVICE |
principal.asset.asset_id |
Il parser estrae il valore di properties.AdditionalFields.FROM.DEVICE e antepone ASSET ID: . |
properties.AdditionalFields.KerberosDelegationType |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.SourceAccountId |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.SourceAccountSid |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.SourceComputerObjectGuid |
principal.asset.product_object_id |
Il campo properties.AdditionalFields.SourceComputerObjectGuid del log non elaborato è mappato a principal.asset.product_object_id . |
properties.AdditionalFields.SourceComputerOperatingSystem |
principal.asset.platform_software.platform_version |
Il campo properties.AdditionalFields.SourceComputerOperatingSystem del log non elaborato è mappato a principal.asset.platform_software.platform_version . |
properties.AdditionalFields.SourceComputerOperatingSystemType |
principal.asset.platform_software.platform_version |
Se il valore è windows , il campo UDM è impostato su WINDOWS . |
properties.AdditionalFields.SourceComputerOperatingSystemVersion |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.Spns |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.TARGET_OBJECT.ENTITY_USER |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.AdditionalFields.TARGET_OBJECT.USER |
target.user.userid |
Il primo elemento dell'array properties.AdditionalFields.TARGET_OBJECT.USER è mappato a target.user.userid . Gli elementi successivi vengono mappati a additional.fields con chiavi come TARGET_OBJECT.USER_1 , TARGET_OBJECT.USER_2 e così via. |
properties.AdditionalFields.TO.DEVICE |
target.asset.asset_id |
Il primo elemento dell'array properties.AdditionalFields.TO.DEVICE è mappato a target.asset.asset_id con ASSET ID: anteposto. Gli elementi successivi vengono mappati a additional.fields con chiavi come TODEVICE1 , TODEVICE2 e così via. |
properties.AuthenticationDetails |
extensions.auth.auth_details |
Il parser rimuove le parentesi graffe, le parentesi quadre e le virgolette doppie dal valore e antepone AuthenticationDetails: . |
properties.DeliveryAction |
additional.fields |
Mappato con la chiave DeliveryAction . |
properties.DeliveryLocation |
additional.fields |
Mappato con la chiave DeliveryLocation . |
properties.DestinationDeviceName |
target.hostname , target.asset.hostname |
Il campo properties.DestinationDeviceName del log non elaborato è mappato sia su target.hostname che su target.asset.hostname . |
properties.DestinationIPAddress |
target.ip , target.asset.ip |
Il campo properties.DestinationIPAddress del log non elaborato è mappato sia su target.ip che su target.asset.ip . |
properties.DestinationPort |
target.port |
Il campo properties.DestinationPort del log non elaborato è mappato a target.port . |
properties.DeviceName |
principal.hostname , principal.asset.hostname |
Il campo properties.DeviceName del log non elaborato è mappato sia su principal.hostname che su principal.asset.hostname . |
properties.EmailClusterId |
additional.fields |
Mappato con la chiave EmailClusterId . |
properties.EmailDirection |
network.direction |
Se il valore è Inbound , il campo UDM è impostato su INBOUND . Se il valore è Outbound , il campo UDM è impostato su OUTBOUND . In caso contrario, è impostato su UNKNOWN_DIRECTION . |
properties.EmailLanguage |
additional.fields |
Mappato con la chiave EmailLanguage . |
properties.InitiatingProcessAccountDomain |
principal.administrative_domain |
Il campo properties.InitiatingProcessAccountDomain del log non elaborato è mappato a principal.administrative_domain . |
properties.InitiatingProcessAccountSid |
principal.user.windows_sid |
Il campo properties.InitiatingProcessAccountSid del log non elaborato è mappato a principal.user.windows_sid . |
properties.InitiatingProcessCommandLine |
principal.process.command_line |
Il campo properties.InitiatingProcessCommandLine del log non elaborato è mappato a principal.process.command_line . |
properties.InitiatingProcessFileName |
principal.process.file.full_path |
Utilizzato in combinazione con properties.InitiatingProcessFolderPath per costruire il percorso completo. Se properties.InitiatingProcessFolderPath contiene già il nome file, viene utilizzato direttamente. |
properties.InitiatingProcessFolderPath |
principal.process.file.full_path |
Utilizzato in combinazione con properties.InitiatingProcessFileName per costruire il percorso completo. |
properties.InitiatingProcessId |
principal.process.pid |
Il campo properties.InitiatingProcessId del log non elaborato è mappato a principal.process.pid . |
properties.InitiatingProcessIntegrityLevel |
about.labels |
Mappato con la chiave InitiatingProcessIntegrityLevel . |
properties.InitiatingProcessMD5 |
principal.process.file.md5 |
Il campo properties.InitiatingProcessMD5 del log non elaborato è mappato a principal.process.file.md5 . |
properties.InitiatingProcessParentId |
principal.process.parent_process.pid |
Il campo properties.InitiatingProcessParentId del log non elaborato è mappato a principal.process.parent_process.pid . |
properties.InitiatingProcessParentFileName |
principal.process.parent_process.file.full_path |
Il campo properties.InitiatingProcessParentFileName del log non elaborato è mappato a principal.process.parent_process.file.full_path . |
properties.InitiatingProcessSHA1 |
principal.process.file.sha1 |
Il campo properties.InitiatingProcessSHA1 del log non elaborato è mappato a principal.process.file.sha1 . |
properties.InitiatingProcessSHA256 |
principal.process.file.sha256 |
Il campo properties.InitiatingProcessSHA256 del log non elaborato è mappato a principal.process.file.sha256 . |
properties.InitiatingProcessTokenElevation |
about.labels |
Mappato con la chiave InitiatingProcessTokenElevation . |
properties.InternetMessageId |
additional.fields |
L'analizzatore sintattico rimuove le parentesi angolari e mappa il valore con la chiave InternetMessageId . |
properties.IPAddress |
principal.ip , principal.asset.ip |
Il campo properties.IPAddress del log non elaborato è mappato sia su principal.ip che su principal.asset.ip . |
properties.LogonType |
extensions.auth.mechanism |
Utilizzato per derivare il valore di extensions.auth.mechanism . |
properties.Port |
principal.port |
Il campo properties.Port del log non elaborato è mappato a principal.port . |
properties.PreviousRegistryKey |
src.registry.registry_key |
Il campo properties.PreviousRegistryKey del log non elaborato è mappato a src.registry.registry_key . |
properties.PreviousRegistryValueData |
src.registry.registry_value_data |
Il campo properties.PreviousRegistryValueData del log non elaborato è mappato a src.registry.registry_value_data . |
properties.PreviousRegistryValueName |
src.registry.registry_value_name |
Il campo properties.PreviousRegistryValueName del log non elaborato è mappato a src.registry.registry_value_name . |
properties.Query |
principal.user.attribute.labels |
Mappato con la chiave LDAP Search Scope . |
properties.RecipientEmailAddress |
Non mappato | Questo campo non è mappato all'oggetto IDM nell'UDM. |
properties.RegistryKey |
target.registry.registry_key |
Il campo properties.RegistryKey del log non elaborato è mappato a target.registry.registry_key . |
properties.RegistryValueData |
target.registry.registry_value_data |
Il campo properties.RegistryValueData del log non elaborato è mappato a target.registry.registry_value_data . |
properties.RegistryValueName |
target.registry.registry_value_name |
Il campo properties.RegistryValueName del log non elaborato è mappato a target.registry.registry_value_name . |
properties.ReportId |
about.labels |
Mappato con la chiave ReportId . |
properties.SenderIPv4 |
principal.ip , principal.asset.ip |
Il campo properties.SenderIPv4 del log non elaborato è mappato sia su principal.ip che su principal.asset.ip . |
properties.SenderMailFromAddress |
principal.user.attribute.labels |
Mappato con la chiave SenderMailFromAddress . |
properties.SenderMailFromDomain |
principal.user.attribute.labels |
Mappato con la chiave SenderMailFromDomain . |
properties.SenderObjectId |
principal.user.product_object_id |
Il campo properties.SenderObjectId del log non elaborato è mappato a principal.user.product_object_id . |
properties.Timestamp |
metadata.event_timestamp |
Il campo properties.Timestamp del log non elaborato è mappato a metadata.event_timestamp . |
tenantId |
observer.cloud.project.id |
Il campo tenantId del log non elaborato è mappato a observer.cloud.project.id . |
N/D | extensions.auth.type |
Il valore MACHINE viene assegnato dal parser. |
N/D | metadata.event_type |
Derivato in base ai campi category e properties.ActionType . Può essere USER_LOGIN , USER_RESOURCE_ACCESS , USER_CHANGE_PASSWORD , REGISTRY_MODIFICATION , REGISTRY_DELETION , REGISTRY_CREATION , GENERIC_EVENT o STATUS_UPDATE . |
N/D | metadata.vendor_name |
Il valore Microsoft viene assegnato dal parser. |
N/D | metadata.product_name |
Il valore Microsoft Defender Identity viene assegnato dal parser. |
cs1 |
metadata.url_back_to_product |
Il campo cs1 del log non elaborato è mappato a metadata.url_back_to_product . |
externalId |
metadata.product_log_id |
Il campo externalId del log non elaborato è mappato a metadata.product_log_id . |
msg |
metadata.description |
Il campo msg del log non elaborato è mappato a metadata.description . |
rule_name |
security_result.rule_name |
Il campo rule_name del log non elaborato è mappato a security_result.rule_name . |
severity |
security_result.severity |
Il campo severity del log non elaborato è mappato a security_result.severity . |
shost |
principal.hostname , principal.asset.hostname |
Il campo shost del log non elaborato è mappato sia su principal.hostname che su principal.asset.hostname . |
src |
principal.ip |
Il campo src del log non elaborato è mappato a principal.ip . |
suser |
principal.user.user_display_name |
Il campo suser del log non elaborato è mappato a principal.user.user_display_name . |
time |
metadata.event_timestamp |
Il campo time del log non elaborato è mappato a metadata.event_timestamp . |
userid |
principal.user.userid |
Il campo userid del log non elaborato è mappato a principal.user.userid . |
N/D | security_result.action |
Derivato in base al campo properties.ActionType . Può essere ALLOW o BLOCK . |
N/D | security_result.summary |
Derivato dal campo category o dal campo properties.ActionType . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.