Raccogliere i log di contesto di Microsoft Azure AD

Supportato in:

Questo documento descrive come raccogliere i log di Microsoft Azure Active Directory (AD) configurando un feed Google Security Operations.

Azure Active Directory (AZURE_AD) ora si chiama Microsoft Entra ID. I log di controllo di Azure AD (AZURE_AD_AUDIT) ora sono log di controllo di Microsoft Entra ID.

Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.

Un'etichetta di importazione identifica il parser che normalizza i dati dei log non elaborati in formato UDM strutturato.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un abbonamento Azure a cui puoi accedere
  • Un ruolo di amministratore globale o amministratore di Azure AD
  • Un Azure AD (tenant) in Azure

Come configurare Azure AD

  1. Accedi al portale Azure.
  2. Vai a Home > Registrazione app, seleziona un'applicazione registrata o registrala se non ne hai ancora creata una.
  3. Per registrare un'applicazione, nella sezione Registrazione app, fai clic su Nuova registrazione.
  4. Nel campo Nome, fornisci il nome visualizzato per l'applicazione.
  5. Nella sezione Tipi di account supportati, seleziona l'opzione richiesta per specificare chi può utilizzare l'applicazione o accedere all'API.
  6. Fai clic su Register (Registrati).
  7. Vai alla pagina Panoramica e copia l'ID applicazione (client) e l'ID directory (tenant), necessari per configurare il feed Google Security Operations.
  8. Fai clic su Autorizzazioni API.
  9. Fai clic su Aggiungi un'autorizzazione e seleziona Microsoft Graph nel nuovo riquadro.
  10. Fai clic su Autorizzazioni applicazione.
  11. Seleziona le autorizzazioni AuditLog.Read.All, Directory.Read.All e SecurityEvents.Read.All. Assicurati che le autorizzazioni siano autorizzazioni applicative e non autorizzazioni delegate.
  12. Fai clic su Concedi il consenso amministratore per la directory predefinita. Le applicazioni sono autorizzate a chiamare le API quando gli utenti o gli amministratori concedono loro le autorizzazioni nell'ambito della procedura di consenso.
  13. Vai a Impostazioni > Gestisci.
  14. Fai clic su Certificati e secret.
  15. Fai clic su Nuovo segreto client. Nel campo Valore viene visualizzato il client secret.
  16. Copia il valore del client secret. Il valore viene visualizzato solo al momento della creazione ed è necessario per la registrazione dell'app Azure e per configurare il feed Google Security Operations.

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 Log di contesto di Azure AD.
  5. Seleziona API di terze parti come Tipo di origine.
  6. Seleziona Contesto organizzativo Azure AD come Tipo di log.
  7. Fai clic su Avanti.
  8. Configura i seguenti parametri di input obbligatori:
    • ID client OAUTH: specifica l'ID client che hai ottenuto in precedenza.
    • Client secret OAUTH: specifica il client secret che hai ottenuto in precedenza.
    • ID tenant: specifica l'ID tenant che hai ottenuto in precedenza.
  9. Fai clic su Avanti e poi su Invia.

Per saperne di più sui feed di Google Security Operations, consulta la documentazione sui feed di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di feed, consulta Configurazione dei feed per tipo. Se riscontri problemi durante la creazione dei feed, contatta l'assistenza di Google Security Operations.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • ID client OAUTH: specifica l'ID client che hai ottenuto in precedenza.
  • Client secret OAUTH: specifica il client secret che hai ottenuto in precedenza.
  • ID tenant: specifica l'ID tenant che hai ottenuto in precedenza.

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.

Riferimento alla mappatura dei campi

Questo codice del parser trasforma i log non elaborati in formato JSON di Azure Active Directory in un modello UDM (Unified Data Model). Estrae le informazioni di utenti e gestori, inclusi attributi, ruoli, relazioni ed etichette, gestendo varie incongruenze dei dati e arricchendo l'output con campi standardizzati.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
businessPhones user.phone_numbers Mappato direttamente dal campo businessPhones nel log non elaborato. Vengono estratti e mappati più numeri di telefono come voci separate.
city user.personal_address.city Mappato direttamente dal campo city nel log non elaborato.
companyName user.company_name Mappato direttamente dal campo companyName nel log non elaborato.
country user.personal_address.country_or_region Mappato direttamente dal campo country nel log non elaborato. Se country è vuoto, il valore viene estratto da usageLocation.
createdDateTime user.attribute.creation_time Convertito in un timestamp dal campo createdDateTime nel log non elaborato utilizzando il formato RFC 3339.
reparto user.department Mappato direttamente dal campo department nel log non elaborato. Più reparti vengono estratti e mappati come voci separate.
displayName user.user_display_name Mappato direttamente dal campo displayName nel log non elaborato.
employeeId user.employee_id Mappato direttamente dal campo employeeId nel log non elaborato. Se employeeId è vuoto, il valore viene estratto da extension_employeeNumber.
employeeType user.attribute.labels.value (key: employeeType) Mappato direttamente dal campo employeeType nel log non elaborato e aggiunto come etichetta con la chiave employeeType.
extension_employeeNumber user.employee_id Mappato a user.employee_id se employeeId è vuoto.
extension_wfc_AccountType event.idm.entity.entity.labels.value (chiave: wfc_AccountType) Mappato direttamente dal campo extension_wfc_AccountType nel log non elaborato e aggiunto come etichetta con la chiave wfc_AccountType.
extension_wfc_AccountingUnitName event.idm.entity.entity.labels.value (chiave: extension_wfc_AccountingUnitName) Mappato direttamente dal campo extension_wfc_AccountingUnitName nel log non elaborato e aggiunto come etichetta con la chiave extension_wfc_AccountingUnitName.
extension_wfc_execDescription event.idm.entity.entity.labels.value (chiave: extension_wfc_execDescription) Mappato direttamente dal campo extension_wfc_execDescription nel log non elaborato e aggiunto come etichetta con la chiave extension_wfc_execDescription.
extension_wfc_groupDescription event.idm.entity.entity.labels.value (chiave: extension_wfc_groupDescription) Mappato direttamente dal campo extension_wfc_groupDescription nel log non elaborato e aggiunto come etichetta con la chiave extension_wfc_groupDescription.
extension_wfc_orgDescription event.idm.entity.entity.labels.value (chiave: extension_wfc_orgDescription) Mappato direttamente dal campo extension_wfc_orgDescription nel log non elaborato e aggiunto come etichetta con la chiave extension_wfc_orgDescription.
givenName user.first_name Mappato direttamente dal campo givenName nel log non elaborato.
gopher-devices event.idm.entity.relations Ogni dispositivo nell'array gopher-devices è mappato a una voce di relazione separata. deviceId è mappato a product_object_id, operatingSystem e operatingSystemVersion vengono combinati per formare platform_version, model è mappato direttamente e createdDateTime viene convertito in un timestamp e mappato a created_timestamp. La relazione è impostata su OWNS e la direzione è impostata su UNIDIRECTIONAL.
gopher-groups event.idm.entity.relations Ogni gruppo nell'array gopher-groups viene mappato a una voce di relazione separata. id è mappato a product_object_id e displayName è mappato a group_display_name. La relazione è impostata su MEMBER e la direzione è impostata su UNIDIRECTIONAL.
gopher-manager.businessPhones empmanager.phone_numbers Mappato a empmanager.phone_numbers se manager è vuoto.
gopher-manager.country empmanager.personal_address.country_or_region Mappato a empmanager.personal_address.country_or_region se manager è vuoto. Se sia gopher-manager.country che gopher-manager.usageLocation sono vuoti, il campo rimane vuoto.
gopher-manager.department empmanager.department Mappato a empmanager.department se manager è vuoto.
gopher-manager.displayName empmanager.user_display_name Mappato a empmanager.user_display_name se manager è vuoto.
gopher-manager.employeeId empmanager.employee_id Mappato a empmanager.employee_id se manager è vuoto e gopher-manager.employeeId non è vuoto.
gopher-manager.extension_employeeNumber empmanager.employee_id Mappato a empmanager.employee_id se manager e gopher-manager.employeeId sono vuoti e gopher-manager.extension_employeeNumber non è vuoto.
gopher-manager.givenName empmanager.first_name Mappato a empmanager.first_name se manager è vuoto.
gopher-manager.id empmanager.product_object_id Mappato a empmanager.product_object_id se manager è vuoto.
gopher-manager.jobTitle empmanager.title Mappato a empmanager.title se manager è vuoto.
gopher-manager.mail empmanager.email_addresses Mappato a empmanager.email_addresses se manager è vuoto.
gopher-manager.onPremisesImmutableId user.attribute.labels.value (key: gopher-manager onPremisesImmutableId) Mappato come etichetta con la chiave gopher-manager onPremisesImmutableId.
gopher-manager.onPremisesSamAccountName empmanager.userid Mappato a empmanager.userid se manager è vuoto.
gopher-manager.onPremisesSecurityIdentifier empmanager.windows_sid Mappato a empmanager.windows_sid se manager è vuoto.
gopher-manager.proxyAddresses empmanager.email_addresses, empmanager.group_identifiers Se manager è vuoto, ogni indirizzo nell'array gopher-manager.proxyAddresses viene mappato su empmanager.email_addresses o empmanager.group_identifiers a seconda che inizi con "smtp" o "SMTP".
gopher-manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (key: refreshTokensValidFromDateTime) Mappato come etichetta con la chiave refreshTokensValidFromDateTime se manager è vuoto.
gopher-manager.streetAddress empmanager.personal_address.name Mappato a empmanager.personal_address.name se manager è vuoto.
gopher-manager.surname empmanager.last_name Mappato a empmanager.last_name se manager è vuoto.
gopher-manager.usageLocation user.attribute.labels.value (key: manager_src_usageLocation) Mappato come etichetta con la chiave manager_src_usageLocation.
gopher-manager.userType empmanager.attribute.roles.name Mappato a empmanager.attribute.roles.name se manager è vuoto.
ID user.product_object_id Mappato direttamente dal campo id nel log non elaborato.
identità user.attribute.labels.value (key: signInType), user.attribute.labels.value (key: userPrincipalName) signInType è mappato come etichetta con la chiave signInType. Se signInType e userPrincipalName non sono vuoti, vengono combinati e mappati come etichetta con la chiave userPrincipalName.
jobTitle user.title Mappato direttamente dal campo jobTitle nel log non elaborato.
posta user.email_addresses Mappato direttamente dal campo mail nel log non elaborato. Se mail inizia con "svc-", user_role.type è impostato su SERVICE_ACCOUNT.
mailNickname user.attribute.labels.value (chiave: mailNickname) Mappato direttamente dal campo mailNickname nel log non elaborato e aggiunto come etichetta con la chiave mailNickname.
manager.businessPhones empmanager.phone_numbers Mappato a empmanager.phone_numbers se gopher-manager è vuoto.
manager.city empmanager.personal_address.city Mappato a empmanager.personal_address.city se gopher-manager è vuoto.
manager.companyName empmanager.company_name Mappato a empmanager.company_name se gopher-manager è vuoto.
manager.country empmanager.personal_address.country_or_region Mappato a empmanager.personal_address.country_or_region se gopher-manager è vuoto. Se sia manager.country che manager.usageLocation sono vuoti, il campo rimane vuoto.
manager.department empmanager.department Mappato a empmanager.department se gopher-manager è vuoto.
manager.displayName empmanager.user_display_name Mappato a empmanager.user_display_name se gopher-manager è vuoto.
manager.employeeId empmanager.employee_id Mappato a empmanager.employee_id se gopher-manager è vuoto e manager.employeeId non è vuoto.
manager.extension_employeeNumber empmanager.employee_id Mappato a empmanager.employee_id se gopher-manager e manager.employeeId sono vuoti e manager.extension_employeeNumber non è vuoto.
manager.givenName empmanager.first_name Mappato a empmanager.first_name se gopher-manager è vuoto.
manager.id empmanager.product_object_id Mappato a empmanager.product_object_id se gopher-manager è vuoto.
manager.jobTitle empmanager.title Mappato a empmanager.title se gopher-manager è vuoto.
manager.mail empmanager.email_addresses Mappato a empmanager.email_addresses se gopher-manager è vuoto.
manager.onPremisesSamAccountName empmanager.userid Mappato a empmanager.userid se gopher-manager è vuoto.
manager.onPremisesSecurityIdentifier empmanager.windows_sid Mappato a empmanager.windows_sid se gopher-manager è vuoto.
manager.proxyAddresses empmanager.email_addresses, empmanager.group_identifiers Se gopher-manager è vuoto, ogni indirizzo nell'array manager.proxyAddresses viene mappato su empmanager.email_addresses o empmanager.group_identifiers a seconda che inizi con "smtp" o "SMTP".
manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (key: refreshTokensValidFromDateTime) Mappato come etichetta con la chiave refreshTokensValidFromDateTime se gopher-manager è vuoto.
manager.state empmanager.personal_address.state Mappato a empmanager.personal_address.state se gopher-manager è vuoto.
manager.streetAddress empmanager.personal_address.name Mappato a empmanager.personal_address.name se gopher-manager è vuoto.
manager.surname empmanager.last_name Mappato a empmanager.last_name se gopher-manager è vuoto.
manager.usageLocation user.attribute.labels.value (key: manager_src_usageLocation), empmanager.personal_address.country_or_region Mappato come etichetta con la chiave manager_src_usageLocation. Se manager.country è vuoto, il valore viene mappato anche a empmanager.personal_address.country_or_region.
manager.userType empmanager.attribute.roles.name Mappato a empmanager.attribute.roles.name se gopher-manager è vuoto.
onPremisesDistinguishedName user.attribute.labels.value (key: onPremisesDistinguishedName), user.attribute.labels.value (key: onPremisesDistinguishedName-OU data) Il nome distinto completo viene mappato come etichetta con la chiave onPremisesDistinguishedName. La parte OU del nome distinto viene estratta e mappata come etichetta con la chiave onPremisesDistinguishedName-OU data. Se la parte dell'unità organizzativa contiene "Admin", user_role.type è impostato su ADMINISTRATOR. Se contiene "Account di servizio", user_role.type è impostato su SERVICE_ACCOUNT.
onPremisesDomainName user.group_identifiers, user.attribute.labels.value (chiave: onPremisesDomainName) Mappato direttamente a user.group_identifiers e aggiunto come etichetta con la chiave onPremisesDomainName.
onPremisesImmutableId user.attribute.labels.value (key: onPremisesImmutableId) Mappato direttamente dal campo onPremisesImmutableId nel log non elaborato e aggiunto come etichetta con la chiave onPremisesImmutableId.
onPremisesSamAccountName user.userid, user.attribute.labels.value (key: onPremisesSamAccountName) Mappato a user.userid se sAMAccountName è vuoto. Aggiunto anche come etichetta con la chiave onPremisesSamAccountName.
onPremisesSecurityIdentifier user.windows_sid Mappato direttamente dal campo onPremisesSecurityIdentifier nel log non elaborato.
proxyAddresses user.email_addresses, user.group_identifiers Ogni indirizzo nell'array proxyAddresses viene mappato a user.email_addresses o user.group_identifiers a seconda che inizi con "smtp" o "SMTP". Se l'indirizzo inizia con "smtp" o "SMTP", il prefisso "smtp:" o "SMTP:" viene rimosso e l'indirizzo email rimanente viene estratto e mappato su user.email_addresses.
refreshTokensValidFromDateTime user.attribute.labels.value (chiave: refreshTokensValidFromDateTime) Mappato direttamente dal campo refreshTokensValidFromDateTime nel log non elaborato e aggiunto come etichetta con la chiave refreshTokensValidFromDateTime.
sAMAccountName user.userid Mappato direttamente dal campo sAMAccountName nel log non elaborato.
state user.personal_address.state Mappato direttamente dal campo state nel log non elaborato.
streetAddress user.personal_address.name Mappato direttamente dal campo streetAddress nel log non elaborato.
surname user.last_name Mappato direttamente dal campo surname nel log non elaborato.
usageLocation user.personal_address.country_or_region Se country è vuoto, il valore viene mappato a user.personal_address.country_or_region.
userPrincipalName user.email_addresses Mappato direttamente dal campo userPrincipalName nel log non elaborato. Se userPrincipalName inizia con "svc-", user_role.type è impostato su SERVICE_ACCOUNT.
userType user.attribute.roles.name Mappato direttamente dal campo userType nel log non elaborato e aggiunto a user.attribute.roles.name.
Parser Logic Mappatura UDM Logica
N/D event.idm.entity.metadata.vendor_name Imposta su "Microsoft".
N/D event.idm.entity.metadata.product_name Imposta "Azure Active Directory".
N/D event.idm.entity.metadata.entity_type Imposta il valore su "USER".
N/D event.idm.entity.metadata.collected_timestamp Imposta il campo create_time dal log non elaborato.
accountEnabled user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) Se accountEnabled è true, user.user_authentication_status è impostato su "ACTIVE" e viene aggiunta un'etichetta con la chiave accountEnabled e il valore "true". In caso contrario, viene aggiunta un'etichetta con la chiave accountEnabled e il valore "false".
empmanager-src.accountEnabled user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) Se manager è vuoto e empmanager-src.accountEnabled è "true", user.user_authentication_status è impostato su "ACTIVE" e viene aggiunta un'etichetta con la chiave accountEnabled e il valore "true". In caso contrario, viene aggiunta un'etichetta con la chiave accountEnabled e il valore "false".
onPremisesDistinguishedName user_role.type Se la parte OU del nome distinto contiene "Admin", user_role.type è impostato su ADMINISTRATOR. Se contiene "Account di servizio", user_role.type è impostato su SERVICE_ACCOUNT.
userPrincipalName user_role.type Se userPrincipalName inizia con "svc-", user_role.type è impostato su SERVICE_ACCOUNT.
empmanager-src.onPremisesDistinguishedName manager_role.type Se gopher-manager è vuoto e la parte dell'unità organizzativa del nome distinto del gestore contiene "Users", manager_role.type è impostato su ADMINISTRATOR. Se contiene "Account di servizio", manager_role.type è impostato su SERVICE_ACCOUNT.
empmanager-src.userPrincipalName manager_role.type Se gopher-manager è vuoto e empmanager-src.userPrincipalName inizia con "svc-", manager_role.type è impostato su SERVICE_ACCOUNT.
posta user_role.type Se mail inizia con "svc-", user_role.type è impostato su SERVICE_ACCOUNT.

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