Raccogliere i log di accesso di Azure AD

Supportato in:

Questo documento spiega come esportare i log di accesso di Azure AD in Google Security Operations utilizzando un account di archiviazione Azure. Il parser prende i log non elaborati in formato JSON e li trasforma in un formato strutturato conforme al modello UDM (Unified Data Model). Estrae i campi pertinenti, normalizza i valori, gestisce timestamp diversi e arricchisce i dati con il contesto relativo alla sicurezza, come informazioni utente, indirizzi IP e criteri di accesso condizionale.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Un tenant Azure attivo
  • Accesso con privilegi ad Azure

Configura l'account di archiviazione di Azure

  1. Nella console Azure, cerca Storage accounts.
  2. Fai clic su + Crea.
  3. 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 rendimento (consigliato Standard).
    • Ridondanza: seleziona la ridondanza (consigliata GRS o LRS).
    • Nome account di archiviazione: inserisci un nome per il nuovo account di archiviazione.
  4. Fai clic su Review + create (Rivedi e crea).
  5. Controlla la panoramica dell'account e fai clic su Crea.
  6. Nella pagina Panoramica account di archiviazione, seleziona il sottomenu Chiavi di accesso in Sicurezza e networking.
  7. Fai clic su Mostra accanto a key1 o key2.
  8. Fai clic su Copia negli appunti per copiare la chiave.
  9. Salva la chiave in una posizione sicura per utilizzarla in un secondo momento.
  10. Nella pagina Panoramica dell'account di archiviazione, seleziona il sottomenu Endpoint in Impostazioni.
  11. Fai clic su Copia negli appunti per copiare l'URL dell'endpoint Blob service, ad esempio https://<storageaccountname>.blob.core.windows.net.
  12. Salva l'URL dell'endpoint in una posizione sicura per utilizzarlo in un secondo momento.

Come configurare l'esportazione dei log per i log di accesso di Azure AD

  1. Accedi al portale di Azure utilizzando il tuo account con privilegi.
  2. Vai a Microsoft Entra ID > Monitoraggio > Impostazioni di diagnostica.
  3. Fai clic su Aggiungi impostazione diagnostica.
    • Inserisci un nome descrittivo per l'impostazione di diagnostica.
  4. Seleziona Log di accesso.
  5. Seleziona la casella di controllo Archivia in un account di archiviazione come destinazione.
    • Specifica l'abbonamento e l'account di archiviazione.

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

Configurare i feed da Impostazioni SIEM > Feed

Per configurare più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare i feed per prodotto.

Per configurare un singolo feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Azure Sign-In Logs.
  5. Seleziona Microsoft Azure Blob Storage come Tipo di origine.
  6. Seleziona Azure Sign-In come Tipo di log.
  7. Fai clic su Avanti.
  8. 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>)
    • URI è un: seleziona il TIPO DI URI 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 di importazione.

    • Chiave condivisa: la chiave di accesso ad Azure Blob Storage.

    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.

  9. Fai clic su Avanti.

  10. 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>)
  • URI è un: seleziona il TIPO DI URI 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 di importazione.
  • 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: 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
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. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato su applied_conditional_access_policies_result.
ConditionalAccessStatus read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo ConditionalAccessStatus nel log non elaborato. Il tasto è impostato su conditionalAccessStatus.
CorrelationId read_only_udm.security_result.detection_fields.value Mappato direttamente dal campo CorrelationId nel log non elaborato. Il tasto è impostato su correlationId.
DurationMs read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo DurationMs nel log non elaborato. Il tasto è impostato su durationMs.
HomeTenantId read_only_udm.security_result.detection_fields.value Mappato direttamente dal campo HomeTenantId nel log non elaborato. Il tasto è impostato 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. Il tasto è impostato su id.
Identità read_only_udm.target.resource.attribute.labels.value Mappato direttamente dal campo Identity nel log non elaborato. Il tasto è impostato 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. Il tasto è impostato su ResourceGroup.
ResultSignature read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo ResultSignature nel log non elaborato. Il tasto è impostato su resultSignature.
ResultType read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo ResultType nel log non elaborato. Il tasto è impostato 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. Il tasto è impostato su TokenIssuerType.
UniqueTokenIdentifier read_only_udm.security_result.detection_fields.value Mappato direttamente dal campo UniqueTokenIdentifier nel log non elaborato. Il tasto è impostato 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 una 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. Il tasto è impostato su Internal_WorkspaceResourceId.
_ItemId read_only_udm.security_result.detection_fields.value Mappato direttamente dal campo _ItemId nel log non elaborato. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato 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. Il tasto è impostato 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 è impostata su ALLOW; in caso contrario, è 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. Il tasto è impostato 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. Il tasto è impostato su id.
properties.status.errorCode read_only_udm.security_result.action Se il valore è 0, l'azione è impostata su ALLOW; in caso contrario, è 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 è impostato su USER_LOGIN; se è presente solo principal.ip, il tipo è impostato su STATUS_UPDATE; altrimenti, è impostato su GENERIC_EVENT.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.