Raccogliere i log di accesso di Azure AD
Questo documento spiega come esportare i log di accesso di Azure AD in Google Security Operations utilizzando un account di archiviazione Azure. L'analizzatore sintattico prende i log non elaborati in formato JSON e li trasforma in un formato strutturato conforme all'Unified Data Model (UDM). Estrae i campi pertinenti, normalizza i valori, gestisce timestamp diversi e arricchisce i dati con un contesto relativo alla sicurezza, come informazioni sugli utenti, indirizzi IP e criteri di accesso condizionale.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di avere un tenant Azure attivo.
- Assicurati di disporre dell'accesso privilegiato ad Azure.
Configura l'account di archiviazione Azure
- Nella console di Azure, cerca Account di archiviazione.
- 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.
- Prestazioni: seleziona il rendimento (consigliato standard).
- Redundanza: seleziona la ridondanza (consigliata GRS o LRS).
- Nome account di archiviazione: inserisci un nome per il nuovo account di archiviazione.
- Fai clic su Review + create (Rivedi e crea).
- Esamina la panoramica dell'account e fai clic su Crea.
- Nella pagina Panoramica dell'account di archiviazione, seleziona il sottomenu Chiavi di accesso in Sicurezza + reti.
- Fai clic su Mostra accanto a chiave1 o chiave2.
- Fai clic su Copia negli appunti per copiare la chiave.
- Salva la chiave in un luogo sicuro per utilizzarla in un secondo momento.
- 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 un luogo sicuro per utilizzarlo in un secondo momento.
Configurare l'esportazione dei log per i log di accesso di Azure AD
- Accedi al portale di Azure utilizzando il tuo account con privilegi.
- Vai a Microsoft Entra ID > Monitoraggio > Impostazioni di diagnostica.
- Fai clic su Aggiungi impostazione di diagnostica.
- Inserisci un nome descrittivo per l'impostazione di diagnostica.
- Seleziona Log di accesso.
- Seleziona la casella di controllo Archivia in un account di archiviazione come destinazione.
- Specifica l'abbonamento e l'account di archiviazione.
Configura un feed in Google SecOps per importare i log di accesso di Azure
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log di accesso di Azure).
- Seleziona Microsoft Azure Blob Storage come Tipo di origine.
- Seleziona Accesso di Azure come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI Azure: l'URL dell'endpoint del 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 esempioinsights-logs-<logname>
)
- L'URI è un: seleziona il TIPO DI URI in base alla configurazione dello stream di log (File singolo | 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.
Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
- URI Azure: l'URL dell'endpoint del blob.
Fai clic su Avanti.
Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
AppDisplayName | read_only_udm.target.application | Mappato direttamente dal campo AppDisplayName nel log non elaborato. |
AppId | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo AppId nel log non elaborato. La chiave è impostata su appId . |
Categoria | read_only_udm.security_result.category_details | Mappato direttamente dal campo Category nel log non elaborato. |
ConditionalAccessPolicies[].displayName | read_only_udm.security_result.rule_name | Mappato direttamente dal campo displayName all'interno dell'array ConditionalAccessPolicies nel log non elaborato. |
ConditionalAccessPolicies[].enforcedGrantControls[] | read_only_udm.security_result.rule_labels.value | Mappato direttamente dall'array enforcedGrantControls all'interno dell'array ConditionalAccessPolicies nel log non elaborato. La chiave è impostata su applied_conditional_access_policies_enforced_grant_controls . |
ConditionalAccessPolicies[].enforcedSessionControls[] | read_only_udm.security_result.rule_labels.value | Mappato direttamente dall'array enforcedSessionControls all'interno dell'array ConditionalAccessPolicies nel log non elaborato. La chiave è impostata su applied_conditional_access_policies_enforced_session_controls . |
ConditionalAccessPolicies[].id | read_only_udm.security_result.rule_id | Mappato direttamente dal campo id all'interno dell'array ConditionalAccessPolicies nel log non elaborato. |
ConditionalAccessPolicies[].Result | read_only_udm.security_result.rule_labels.value | Mappato direttamente dal campo Result all'interno dell'array ConditionalAccessPolicies nel log non elaborato. La chiave è impostata su applied_conditional_access_policies_result . |
ConditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo ConditionalAccessStatus nel log non elaborato. La chiave è impostata su conditionalAccessStatus . |
CorrelationId | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo CorrelationId nel log non elaborato. La chiave è impostata su correlationId . |
DurationMs | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo DurationMs nel log non elaborato. La chiave è impostata su durationMs . |
HomeTenantId | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo HomeTenantId nel log non elaborato. La chiave è impostata su HomeTenantId . |
IPAddress | read_only_udm.principal.asset.ip, read_only_udm.principal.ip | Mappato direttamente dal campo IPAddress nel log non elaborato. |
ID | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo Id nel log non elaborato. La chiave è impostata su id . |
Identità | read_only_udm.target.resource.attribute.labels.value | Mappato direttamente dal campo Identity nel log non elaborato. La chiave è impostata su identity . |
Livello | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | Mappato direttamente dal campo Level nel log non elaborato. La gravità viene determinata in base al valore di Level : Information , Informational , 0 o 4 corrisponde a INFORMATIONAL ; Warning , 1 o 3 corrisponde a MEDIUM ; Error o 2 corrisponde a ERROR ; Critical corrisponde a CRITICAL . |
OperationName | read_only_udm.metadata.product_event_type | Mappato direttamente dal campo OperationName nel log non elaborato. |
ResourceGroup | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo ResourceGroup nel log non elaborato. La chiave è impostata su ResourceGroup . |
ResultSignature | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo ResultSignature nel log non elaborato. La chiave è impostata su resultSignature . |
ResultType | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo ResultType nel log non elaborato. La chiave è impostata su resultType . |
TenantId | read_only_udm.metadata.product_deployment_id | Mappato direttamente dal campo TenantId nel log non elaborato. |
TimeGenerated | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Mappato direttamente dal campo TimeGenerated nel log non elaborato. Il campo viene analizzato come timestamp e utilizzato per compilare i campi seconds e nanos . |
TokenIssuerType | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo TokenIssuerType nel log non elaborato. La chiave è impostata su TokenIssuerType . |
UniqueTokenIdentifier | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo UniqueTokenIdentifier nel log non elaborato. La chiave è impostata su UniqueTokenIdentifier . |
UserAgent | read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent | Mappato direttamente dal campo UserAgent nel log non elaborato. Il campo viene analizzato come stringa user agent e utilizzato per compilare l'oggetto parsed_user_agent . |
UserDisplayName | read_only_udm.target.user.user_display_name | Mappato direttamente dal campo UserDisplayName nel log non elaborato. |
ID utente | read_only_udm.target.user.userid | Mappato direttamente dal campo UserId nel log non elaborato. |
UserPrincipalName | read_only_udm.target.user.email_addresses | Mappato direttamente dal campo UserPrincipalName nel log non elaborato, ma solo se corrisponde al pattern dell'indirizzo email. |
UserType | read_only_udm.target.user.attribute.roles.name | Mappato direttamente dal campo UserType nel log non elaborato. |
_Internal_WorkspaceResourceId | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo _Internal_WorkspaceResourceId nel log non elaborato. La chiave è impostata su Internal_WorkspaceResourceId . |
_ItemId | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo _ItemId nel log non elaborato. La chiave è impostata su ItemId . |
properties.appId | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo appId all'interno dell'oggetto properties nel log non elaborato. La chiave è impostata su appId . |
properties.authenticationDetails[].authenticationMethod | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo authenticationMethod all'interno dell'array authenticationDetails nel log non elaborato. La chiave è impostata su authenticationMethod . |
properties.authenticationDetails[].authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo authenticationMethodDetail all'interno dell'array authenticationDetails nel log non elaborato. La chiave è impostata su authenticationMethodDetail . |
properties.authenticationDetails[].authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo authenticationStepDateTime all'interno dell'array authenticationDetails nel log non elaborato. La chiave è impostata su authenticationStepDateTime . |
properties.authenticationDetails[].authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo authenticationStepRequirement all'interno dell'array authenticationDetails nel log non elaborato. La chiave è impostata su authenticationStepRequirement . |
properties.authenticationDetails[].authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo authenticationStepResultDetail all'interno dell'array authenticationDetails nel log non elaborato. La chiave è impostata su authenticationStepResultDetail . |
properties.authenticationDetails[].succeeded | read_only_udm.security_result.action, read_only_udm.security_result.action_details | Mappato direttamente dal campo succeeded all'interno dell'array authenticationDetails nel log non elaborato. Se il valore è true , l'azione viene impostata su ALLOW ; in caso contrario, viene impostata su BLOCK . |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo conditionalAccessStatus all'interno dell'oggetto properties nel log non elaborato. La chiave è impostata su conditionalAccessStatus . |
properties.id | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo id all'interno dell'oggetto properties nel log non elaborato. La chiave è impostata su id . |
properties.status.errorCode | read_only_udm.security_result.action | Se il valore è 0, l'azione viene impostata su ALLOW ; in caso contrario, viene impostata su BLOCK . |
properties.userId | read_only_udm.target.user.userid | Mappato direttamente dal campo userId all'interno dell'oggetto properties nel log non elaborato. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | Mappato direttamente dal campo userPrincipalName all'interno dell'oggetto properties nel log non elaborato, ma solo se corrisponde al pattern dell'indirizzo email. |
resourceId | read_only_udm.target.resource.name | Mappato direttamente dal campo resourceId nel log non elaborato. |
tempo | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Mappato direttamente dal campo time nel log non elaborato. Il campo viene analizzato come timestamp e utilizzato per compilare i campi seconds e nanos . |
read_only_udm.extensions.auth.type | Il valore è impostato su AUTHTYPE_UNSPECIFIED . |
|
read_only_udm.metadata.event_type | Il valore viene determinato in base alla presenza dei campi principal.ip e target.user.userid : se sono presenti entrambi, il tipo viene impostato su USER_LOGIN ; se è presente solo principal.ip , il tipo viene impostato su STATUS_UPDATE ; in caso contrario, viene impostato su GENERIC_EVENT . |
Modifiche
2024-05-07
- Analizzatore appena creato
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.