Raccogli i log di Microsoft Defender for Endpoint su iOS
Questo documento descrive come raccogliere i log di Microsoft Defender for Endpoint su iOS configurando un feed di Google SecOps utilizzando Microsoft Azure Blob Storage V2.
Microsoft Defender for Endpoint su iOS è una soluzione di difesa dalle minacce mobile che protegge i dispositivi iOS da phishing, connessioni di rete non sicure e app dannose. Fornisce protezione web utilizzando una VPN locale e si integra con Microsoft Intune per la gestione dei dispositivi. Gli eventi dei dispositivi iOS vengono acquisiti nelle stesse tabelle di ricerca avanzata di altre piattaforme Defender for Endpoint, tra cui DeviceEvents, DeviceInfo, DeviceLogonEvents e DeviceNetworkEvents.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso con privilegi al portale di Microsoft Azure con le autorizzazioni per:
- Crea account di archiviazione
- Configura le impostazioni di diagnostica (per i servizi Azure)
- Gestisci le chiavi di accesso
- Accesso al portale Microsoft Defender con le autorizzazioni per:
- Configura le impostazioni di Esportazione dei dati
- Gestisci le impostazioni di Microsoft Defender XDR
- Dispositivi iOS con iOS 16.0 o versioni successive
Dispositivi registrati tramite il Portale aziendale Intune o Microsoft Authenticator
Configura l'account Azure Storage
Crea account di archiviazione
- Nel portale Azure, cerca Account di archiviazione.
- Fai clic su + Crea.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Abbonamento Seleziona il tuo abbonamento Azure Gruppo di risorse Seleziona un elemento esistente o creane uno nuovo Nome account di archiviazione Inserisci un nome univoco (ad esempio defenderioslogssa)Regione Seleziona la regione (ad esempio East US)Prestazioni Standard (consigliato) Ridondanza GRS (archiviazione con ridondanza geografica) o LRS (archiviazione con ridondanza locale) Fai clic su Review + create (Rivedi e crea).
Esamina la panoramica dell'account e fai clic su Crea.
Attendi il completamento del deployment.
Ottieni le credenziali dell'account di archiviazione
- Vai all'account di archiviazione che hai appena creato.
- Nel pannello di navigazione a sinistra, seleziona Chiavi di accesso in Sicurezza + networking.
- Fai clic su Mostra chiavi.
- Copia e salva i seguenti dati per un utilizzo futuro:
- Nome account di archiviazione: il nome che hai creato (ad esempio,
defenderioslogssa) - Chiave 1 o Chiave 2: la chiave di accesso condivisa (una stringa casuale a 512 bit con codifica Base64)
- Nome account di archiviazione: il nome che hai creato (ad esempio,
Ottieni l'endpoint del servizio Blob
- Nello stesso account di archiviazione, seleziona Endpoint dal menu di navigazione a sinistra.
- Copia e salva l'URL dell'endpoint del servizio Blob.
- Esempio:
https://defenderioslogssa.blob.core.windows.net/
- Esempio:
Ottieni l'ID risorsa dell'account di archiviazione
- Nello stesso account di archiviazione, seleziona Proprietà dal menu di navigazione a sinistra.
- Scorri verso il basso fino a ID risorsa account di archiviazione.
- Fai clic sull'icona di copia accanto all'ID risorsa e salvalo per utilizzarlo in un secondo momento.
- Esempio:
/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/defenderioslogssa
- Esempio:
Configura l'esportazione dei dati di Microsoft Defender for Endpoint
- Accedi al portale Microsoft Defender all'indirizzo
https://security.microsoft.com. - Vai a Impostazioni > Microsoft Defender XDR > Impostazioni di esportazione dei dati.
- Fai clic su + Aggiungi impostazioni di esportazione dei dati.
- Nel campo Nome, inserisci un nome descrittivo (ad esempio
Export to Chronicle). - Nella sezione Inoltra eventi a, seleziona Azure Storage.
- Nel campo ID risorsa account di archiviazione, incolla l'ID risorsa account di archiviazione che hai copiato in precedenza.
Nella sezione Scegli gli eventi, seleziona i tipi di eventi da esportare. Per un monitoraggio completo dei dispositivi iOS, seleziona quanto segue:
- DeviceEvents: eventi generali del dispositivo, inclusi lanci di app ed eventi di sistema
- DeviceInfo: informazioni sull'inventario dei dispositivi, tra cui la versione del sistema operativo e le proprietà del dispositivo
- DeviceLogonEvents: eventi di accesso e autenticazione
- DeviceNetworkEvents: connessioni di rete ed eventi di protezione web
- DeviceProcessEvents: eventi di creazione e terminazione dei processi
- DeviceFileEvents: eventi di creazione, modifica ed eliminazione di file
- AlertInfo: metadati degli avvisi di Defender for Endpoint
- AlertEvidence: prove associate agli avvisi
Fai clic su Salva.
Dopo la configurazione, Microsoft Defender for Endpoint inizia a esportare gli eventi nel tuo account Azure Storage. Gli eventi sono organizzati in container di blob con il seguente pattern di denominazione:
deviceeventsdeviceinfodevicelogoneventsdevicenetworkeventsdeviceprocesseventsdevicefileeventsalertinfoalertevidence
Ogni container archivia gli eventi in una struttura di cartelle gerarchica organizzata per data e ora:
container-name/ └── year=YYYY/month=MM/day=DD/hour=HH/ └── [event-files].json
Configura un feed in Google SecOps per importare i log di Microsoft Defender for Endpoint su iOS
Devi creare un feed separato per ogni contenitore di tipo di evento. Ripeti i seguenti passaggi per ogni container di cui vuoi eseguire l'importazione.
- Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > 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 es.
Defender iOS - DeviceEvents). - Seleziona Microsoft Azure Blob Storage V2 come Tipo di origine.
- Seleziona Microsoft Defender for Endpoint su iOS come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI Azure: inserisci l'URL dell'endpoint del servizio Blob con il percorso del container:
https://defenderioslogssa.blob.core.windows.net/deviceevents/Sostituisci quanto segue:
defenderioslogssa: il nome del tuo account Azure Storage.deviceevents: il nome del container di blob per il tipo di evento.
- Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze:
- Mai: non elimina mai i file dopo i trasferimenti.
- Elimina i file trasferiti: elimina i file dopo il trasferimento riuscito.
- Elimina i file trasferiti e le directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.
- Età massima dei file: includi i file modificati negli ultimi giorni (il valore predefinito è 180 giorni)
- Chiave condivisa: inserisci il valore della chiave condivisa (chiave di accesso) acquisito dall'account di archiviazione.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed (ad esempio
defender_ios)
Fai clic su Avanti.
Controlla la nuova configurazione del feed di notizie nella schermata Finalizza e poi fai clic su Invia.
Ripeti i passaggi precedenti per ogni contenitore di tipo di evento che vuoi importare (ad esempio deviceinfo, devicelogonevents, devicenetworkevents e così via). Utilizza nomi descrittivi per i feed per distinguere i tipi di eventi.
Configura il firewall di Azure Storage (se abilitato)
Se il tuo account Azure Storage utilizza un firewall, devi aggiungere gli intervalli IP di Google SecOps.
- Nel portale Azure, vai al tuo account di archiviazione.
- Seleziona Networking in Sicurezza e networking.
- In Firewall e reti virtuali, seleziona Abilitato da reti virtuali e indirizzi IP selezionati.
- Nella sezione Firewall, in Intervallo di indirizzi, fai clic su + Aggiungi intervallo IP.
Aggiungi ogni intervallo IP di Google SecOps in notazione CIDR.
Per ottenere gli intervalli IP attuali:
- Consulta la documentazione relativa alla lista consentita IP
- In alternativa, recuperali in modo programmatico utilizzando l'API di gestione dei feed.
Fai clic su Salva.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
| _TimeReceivedBySvc | additional.fields | Unite alle etichette create da ogni campo di origine |
| properties.InitiatingProcessUniqueId | additional.fields | |
| properties.MachineGroup | additional.fields | |
| properties.IsProcessRemoteSession | additional.fields | |
| properties.IsInitiatingProcessRemoteSession | additional.fields | |
| properties.InitiatingProcessSessionId | additional.fields | |
| properties.InitiatingProcessParentCreationTime | additional.fields | |
| properties.InitiatingProcessVersionInfoOriginalFileName | additional.fields | |
| properties.InitiatingProcessVersionInfoFileDescription | additional.fields | |
| properties.InitiatingProcessVersionInfoInternalFileName | additional.fields | |
| properties.InitiatingProcessVersionInfoProductName | additional.fields | |
| properties.AdditionalFields | additional.fields | |
| properties.DeliveryAction | additional.fields | |
| properties.DeliveryLocation | additional.fields | |
| properties.EmailAction | additional.fields | |
| properties.EmailActionPolicy | additional.fields | |
| properties.EmailActionPolicyGuid | additional.fields | |
| properties.AttachmentCount | additional.fields | |
| properties.UrlCount | additional.fields | |
| properties.EmailLanguage | additional.fields | |
| properties.EmailClusterId | additional.fields | |
| properties.Connectors | additional.fields | |
| properties.OrgLevelAction | additional.fields | |
| properties.OrgLevelPolicy | additional.fields | |
| properties.UserLevelAction | additional.fields | |
| properties.UserLevelPolicy | additional.fields | |
| properties.ConfidenceLevel | additional.fields | |
| SPF | additional.fields | |
| DKIM | additional.fields | |
| DMARC | additional.fields | |
| CompAuth | additional.fields | |
| properties.BulkComplaintLevel | additional.fields | |
| has_email | metadata.event_type | Impostato su "EMAIL_TRANSACTION" se has_email è true, altrimenti su "NETWORK_CONNECTION" se has_principal e has_target sono true, altrimenti su "STATUS_UPDATE" se has_principal è true e has_target è false, altrimenti su "GENERIC_EVENT" |
| has_principal | metadata.event_type | |
| has_target | metadata.event_type | |
| tenantId | metadata.product_deployment_id | Valore copiato direttamente |
| operationName | metadata.product_event_type | Valore copiato direttamente |
| properties.InitiatingProcessVersionInfoProductVersion | metadata.product_version | Valore copiato direttamente |
| properties.EmailDirection | network.direction | Impostato su "INBOUND" se è uguale a "Inbound" |
| properties.SenderFromAddress | network.email.from | Valore copiato direttamente |
| properties.InternetMessageId | network.email.mail_id | Valore copiato direttamente |
| properties.Subject | network.email.subject | Merged from properties.Subject |
| properties.RecipientEmailAddress | network.email.to | Unito da properties.RecipientEmailAddress |
| properties.SenderFromDomain | principal.administrative_domain | Valore di properties.SenderFromDomain se non è vuoto, altrimenti properties.InitiatingProcessAccountDomain |
| properties.InitiatingProcessAccountDomain | principal.administrative_domain | |
| properties.DeviceId | principal.asset.asset_id | Concatenato come "DeviceId:%{properties.DeviceId}" |
| properties.DeviceName | principal.asset.hostname | Valore copiato direttamente |
| properties.SenderIPv4 | principal.asset.ip | Unito da properties.SenderIPv4 e properties.SenderIPv6 |
| properties.SenderIPv6 | principal.asset.ip | |
| properties.DeviceName | principal.hostname | Valore copiato direttamente |
| properties.SenderIPv4 | principal.ip | Unito da properties.SenderIPv4 e properties.SenderIPv6 |
| properties.SenderIPv6 | principal.ip | |
| properties.InitiatingProcessCommandLine | principal.process.command_line | Valore copiato direttamente |
| properties.InitiatingProcessFolderPath | principal.process.file.full_path | Valore copiato direttamente |
| properties.InitiatingProcessMD5 | principal.process.file.md5 | Valore copiato direttamente |
| properties.InitiatingProcessFileName | principal.process.file.names | Merged from properties.InitiatingProcessFileName |
| properties.InitiatingProcessSHA1 | principal.process.file.sha1 | Valore copiato direttamente |
| properties.InitiatingProcessSHA256 | principal.process.file.sha256 | Valore copiato direttamente se corrisponde alla regex esadecimale |
| properties.InitiatingProcessParentFileName | principal.process.parent_process.file.full_path | Valore copiato direttamente |
| properties.InitiatingProcessParentId | principal.process.parent_process.pid | Convertito in stringa |
| properties.InitiatingProcessId | principal.process.pid | Convertito in stringa |
| properties.InitiatingProcessCreationTime | principal.resource.attribute.labels | Unite alle etichette create da ogni campo di origine |
| properties.InitiatingProcessParentCreationTime | principal.resource.attribute.labels | |
| properties.InitiatingProcessVersionInfoOriginalFileName | principal.resource.attribute.labels | |
| properties.InitiatingProcessVersionInfoFileDescription | principal.resource.attribute.labels | |
| properties.InitiatingProcessVersionInfoInternalFileName | principal.resource.attribute.labels | |
| properties.InitiatingProcessVersionInfoProductName | principal.resource.attribute.labels | |
| properties.InitiatingProcessLogonId | principal.resource.attribute.labels | |
| properties.SenderMailFromDomain | principal.user.attribute.labels | Unita con l'etichetta creata da properties.SenderMailFromDomain |
| properties.InitiatingProcessVersionInfoCompanyName | principal.user.company_name | Valore copiato direttamente |
| properties.InitiatingProcessAccountUpn | principal.user.email_addresses | Unito da properties.InitiatingProcessAccountUpn se corrisponde all'espressione regolare dell'email, properties.SenderMailFromAddress, properties.SenderFromAddress |
| properties.SenderMailFromAddress | principal.user.email_addresses | |
| properties.SenderFromAddress | principal.user.email_addresses | |
| properties.SenderObjectId | principal.user.product_object_id | Valore copiato direttamente |
| properties.SenderDisplayName | principal.user.user_display_name | Valore copiato direttamente |
| properties.InitiatingProcessAccountName | principal.user.userid | Valore copiato direttamente |
| properties.InitiatingProcessAccountSid | principal.user.windows_sid | Estratto utilizzando il pattern grok |
| categoria | security_result.category_details | Valore copiato direttamente |
| properties.ReportId | security_result.detection_fields | Unite alle etichette create da ogni campo di origine |
| properties.NetworkMessageId | security_result.detection_fields | |
| properties.AppGuardContainerId | security_result.detection_fields | |
| Tenant | security_result.detection_fields | |
| properties.ActionType | security_result.summary | Valore copiato direttamente |
| properties.ThreatTypes | security_result.threat_name | Valore di properties.ThreatTypes se non è vuoto/null, altrimenti properties.ThreatNames |
| properties.ThreatNames | security_result.threat_name | |
| properties.InitiatingProcessFileSize | target.process.file.size | Convertito in stringa, poi in uinteger |
| properties.ProcessTokenElevation | target.resource.attribute.labels | Unita con l'etichetta creata da properties.ProcessTokenElevation |
| properties.RemoteUrl | target.url | Valore copiato direttamente |
| properties.RecipientEmailAddress | target.user.email_addresses | Unito da properties.RecipientEmailAddress |
| properties.RecipientObjectId | target.user.product_object_id | Valore copiato direttamente |
| metadata.product_name | metadata.product_name | Imposta su "Microsoft Defender Endpoint" |
| metadata.vendor_name | metadata.vendor_name | Impostalo su "MICROSOFT_DEFENDER_ENDPOINT_IOS" |
properties.DeviceName |
principal.hostname and principal.asset.hostname |
Mappato dal log delle modifiche |
properties.Timestamp |
metadata.event_timestamp |
Mappato dal log delle modifiche |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.