Recolha registos de contexto do Microsoft Azure AD

Compatível com:

Este documento descreve como pode recolher registos do Microsoft Azure Active Directory (AD) configurando um feed do Google Security Operations.

O Azure Active Directory (AZURE_AD) chama-se agora Microsoft Entra ID. Os registos de auditoria do Azure AD (AZURE_AD_AUDIT) são agora registos de auditoria do Microsoft Entra ID.

Para mais informações, consulte o artigo Ingestão de dados no Google Security Operations.

Uma etiqueta de carregamento identifica o analisador que normaliza os dados de registo não processados para o formato UDM estruturado.

Antes de começar

Certifique-se de que cumpre os seguintes pré-requisitos:

  • Uma subscrição do Azure na qual pode iniciar sessão
  • Uma função de administrador global ou administrador do Azure AD
  • Um Azure AD (inquilino) no Azure

Como configurar o Azure AD

  1. Inicie sessão no portal do Azure.
  2. Aceda a Página inicial > Registo de apps, selecione uma aplicação registada ou registe uma aplicação se ainda não tiver criado uma.
  3. Para registar uma aplicação, na secção Registo de apps, clique em Novo registo.
  4. No campo Nome, indique o nome a apresentar da sua aplicação.
  5. Na secção Tipos de contas suportados, selecione a opção necessária para especificar quem pode usar a aplicação ou aceder à API.
  6. Clique em Registar.
  7. Aceda à página Vista geral e copie o ID da aplicação (cliente) e o ID do diretório (inquilino), que são necessários para configurar o feed do Google Security Operations.
  8. Clique em Autorizações da API.
  9. Clique em Adicionar uma autorização e, de seguida, selecione Microsoft Graph no novo painel.
  10. Clique em Autorizações da aplicação.
  11. Selecione as autorizações AuditLog.Read.All, Directory.Read.All e SecurityEvents.Read.All. Certifique-se de que as autorizações são Autorizações da aplicação e não Autorizações delegadas.
  12. Clique em Conceder consentimento de administrador para o diretório predefinido. As aplicações são autorizadas a chamar APIs quando lhes são concedidas autorizações por utilizadores ou administradores como parte do processo de consentimento.
  13. Aceda a Definições > Gerir.
  14. Clique em Certificados e secrets.
  15. Clique em Novo segredo do cliente. No campo Valor, é apresentado o segredo do cliente.
  16. Copie o valor do segredo do cliente. O valor é apresentado apenas no momento da criação e é necessário para o registo da app Azure e para configurar o feed do Google Security Operations.

Configure feeds

Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:

  • Definições do SIEM > Feeds > Adicionar novo
  • Content Hub > Pacotes de conteúdo > Começar

Como configurar o feed de contexto do Microsoft Azure AD

  1. Clique no pacote Plataforma Azure.
  2. Localize o tipo de registo Contexto organizacional do Azure AD.
  3. Especifique valores para os seguintes campos:

    • Tipo de origem: API de terceiros (recomendado)
    • ID de cliente OAUTH: especifique o ID de cliente que obteve anteriormente.
    • Segredo do cliente OAUTH: especifique o segredo do cliente que obteve anteriormente.
    • ID do inquilino: especifique o ID do inquilino que obteve anteriormente.
    • Recuperar dispositivos: se deve recuperar informações do dispositivo no contexto do utilizador.
    • Obter grupos: se deve obter informações sobre membros de grupos no contexto do utilizador.
    • Caminho completo da API: URL do ponto final da API REST Microsoft Graph.
    • Ponto final de autenticação da API: ponto final de autenticação do Microsoft Active Directory.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Espaço de nomes do recurso: espaço de nomes associado ao feed.
    • Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.

Para mais informações sobre os feeds do Google Security Operations, consulte a documentação dos feeds do Google Security Operations. Para obter informações sobre os requisitos de cada tipo de feed, consulte o artigo Configuração do feed por tipo. Se tiver problemas ao criar feeds, contacte o apoio técnico das Operações de segurança da Google.

Referência de mapeamento de campos

Este código de análise transforma registos formatados JSON não processados do Azure Active Directory num modelo de dados unificado (UDM). Extrai informações de utilizadores e gestores, incluindo atributos, funções, relações e etiquetas, ao mesmo tempo que processa várias inconsistências de dados e enriquece o resultado com campos normalizados.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
businessPhones user.phone_numbers Mapeado diretamente a partir do campo businessPhones no registo não processado. Vários números de telefone são extraídos e mapeados como entradas separadas.
cidade user.personal_address.city Mapeado diretamente a partir do campo city no registo não processado.
companyName user.company_name Mapeado diretamente a partir do campo companyName no registo não processado.
country user.personal_address.country_or_region Mapeado diretamente a partir do campo country no registo não processado. Se country estiver vazio, o valor é retirado de usageLocation.
createdDateTime user.attribute.creation_time Convertido numa data/hora a partir do campo createdDateTime no registo não processado através do formato RFC 3339.
departamento user.department Mapeado diretamente a partir do campo department no registo não processado. Vários departamentos são extraídos e mapeados como entradas separadas.
displayName user.user_display_name Mapeado diretamente a partir do campo displayName no registo não processado.
employeeId user.employee_id Mapeado diretamente a partir do campo employeeId no registo não processado. Se employeeId estiver vazio, o valor é retirado de extension_employeeNumber.
employeeType user.attribute.labels.value (key: employeeType) Mapeado diretamente a partir do campo employeeType no registo não processado e adicionado como uma etiqueta com a chave employeeType.
extension_employeeNumber user.employee_id Mapeado para user.employee_id se employeeId estiver vazio.
extension_wfc_AccountType event.idm.entity.entity.labels.value (key: wfc_AccountType) Mapeado diretamente a partir do campo extension_wfc_AccountType no registo não processado e adicionado como uma etiqueta com a chave wfc_AccountType.
extension_wfc_AccountingUnitName event.idm.entity.entity.labels.value (key: extension_wfc_AccountingUnitName) Mapeado diretamente a partir do campo extension_wfc_AccountingUnitName no registo não processado e adicionado como uma etiqueta com a chave extension_wfc_AccountingUnitName.
extension_wfc_execDescription event.idm.entity.entity.labels.value (key: extension_wfc_execDescription) Mapeado diretamente a partir do campo extension_wfc_execDescription no registo não processado e adicionado como uma etiqueta com a chave extension_wfc_execDescription.
extension_wfc_groupDescription event.idm.entity.entity.labels.value (key: extension_wfc_groupDescription) Mapeado diretamente a partir do campo extension_wfc_groupDescription no registo não processado e adicionado como uma etiqueta com a chave extension_wfc_groupDescription.
extension_wfc_orgDescription event.idm.entity.entity.labels.value (key: extension_wfc_orgDescription) Mapeado diretamente a partir do campo extension_wfc_orgDescription no registo não processado e adicionado como uma etiqueta com a chave extension_wfc_orgDescription.
givenName user.first_name Mapeado diretamente a partir do campo givenName no registo não processado.
gopher-devices event.idm.entity.relations Cada dispositivo na matriz gopher-devices é mapeado para uma entrada de relação separada. deviceId é mapeado para product_object_id, operatingSystem e operatingSystemVersion são combinados para formar platform_version, model é mapeado diretamente e createdDateTime é convertido num registo de data/hora e mapeado para created_timestamp. A relação está definida como OWNS e a direção está definida como UNIDIRECTIONAL.
gopher-groups event.idm.entity.relations Cada grupo na matriz gopher-groups é mapeado para uma entrada de relação separada. O endereço id está mapeado para product_object_id e o endereço displayName está mapeado para group_display_name. A relação está definida como MEMBER e a direção está definida como UNIDIRECTIONAL.
gopher-manager.businessPhones empmanager.phone_numbers Mapeado para empmanager.phone_numbers se manager estiver vazio.
gopher-manager.country empmanager.personal_address.country_or_region Mapeado para empmanager.personal_address.country_or_region se manager estiver vazio. Se ambos os campos gopher-manager.country e gopher-manager.usageLocation estiverem vazios, o campo fica vazio.
gopher-manager.department empmanager.department Mapeado para empmanager.department se manager estiver vazio.
gopher-manager.displayName empmanager.user_display_name Mapeado para empmanager.user_display_name se manager estiver vazio.
gopher-manager.employeeId empmanager.employee_id Mapeado para empmanager.employee_id se manager estiver vazio e gopher-manager.employeeId não estiver vazio.
gopher-manager.extension_employeeNumber empmanager.employee_id Mapeado para empmanager.employee_id se manager e gopher-manager.employeeId estiverem vazios e gopher-manager.extension_employeeNumber não estiver vazio.
gopher-manager.givenName empmanager.first_name Mapeado para empmanager.first_name se manager estiver vazio.
gopher-manager.id empmanager.product_object_id Mapeado para empmanager.product_object_id se manager estiver vazio.
gopher-manager.jobTitle empmanager.title Mapeado para empmanager.title se manager estiver vazio.
gopher-manager.mail empmanager.email_addresses Mapeado para empmanager.email_addresses se manager estiver vazio.
gopher-manager.onPremisesImmutableId user.attribute.labels.value (key: gopher-manager onPremisesImmutableId) Mapeado como uma etiqueta com a chave gopher-manager onPremisesImmutableId.
gopher-manager.onPremisesSamAccountName empmanager.userid Mapeado para empmanager.userid se manager estiver vazio.
gopher-manager.onPremisesSecurityIdentifier empmanager.windows_sid Mapeado para empmanager.windows_sid se manager estiver vazio.
gopher-manager.proxyAddresses empmanager.email_addresses, empmanager.group_identifiers Se manager estiver vazio, cada endereço na matriz gopher-manager.proxyAddresses é mapeado para empmanager.email_addresses ou empmanager.group_identifiers, consoante comece por "smtp" ou "SMTP".
gopher-manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (key: refreshTokensValidFromDateTime) Mapeado como uma etiqueta com a chave refreshTokensValidFromDateTime se manager estiver vazio.
gopher-manager.streetAddress empmanager.personal_address.name Mapeado para empmanager.personal_address.name se manager estiver vazio.
gopher-manager.surname empmanager.last_name Mapeado para empmanager.last_name se manager estiver vazio.
gopher-manager.usageLocation user.attribute.labels.value (key: manager_src_usageLocation) Mapeado como uma etiqueta com a chave manager_src_usageLocation.
gopher-manager.userType empmanager.attribute.roles.name Mapeado para empmanager.attribute.roles.name se manager estiver vazio.
id user.product_object_id Mapeado diretamente a partir do campo id no registo não processado.
identidades user.attribute.labels.value (key: signInType), user.attribute.labels.value (key: userPrincipalName) O elemento signInType está mapeado como uma etiqueta com a chave signInType. Se signInType e userPrincipalName não estiverem vazios, são combinados e mapeados como uma etiqueta com a chave userPrincipalName.
jobTitle user.title Mapeado diretamente a partir do campo jobTitle no registo não processado.
mail user.email_addresses Mapeado diretamente a partir do campo mail no registo não processado. Se mail começar por "svc-", user_role.type é definido como SERVICE_ACCOUNT.
mailNickname user.attribute.labels.value (key: mailNickname) Mapeado diretamente a partir do campo mailNickname no registo não processado e adicionado como uma etiqueta com a chave mailNickname.
manager.businessPhones empmanager.phone_numbers Mapeado para empmanager.phone_numbers se gopher-manager estiver vazio.
manager.city empmanager.personal_address.city Mapeado para empmanager.personal_address.city se gopher-manager estiver vazio.
manager.companyName empmanager.company_name Mapeado para empmanager.company_name se gopher-manager estiver vazio.
manager.country empmanager.personal_address.country_or_region Mapeado para empmanager.personal_address.country_or_region se gopher-manager estiver vazio. Se ambos os campos manager.country e manager.usageLocation estiverem vazios, o campo fica vazio.
manager.department empmanager.department Mapeado para empmanager.department se gopher-manager estiver vazio.
manager.displayName empmanager.user_display_name Mapeado para empmanager.user_display_name se gopher-manager estiver vazio.
manager.employeeId empmanager.employee_id Mapeado para empmanager.employee_id se gopher-manager estiver vazio e manager.employeeId não estiver vazio.
manager.extension_employeeNumber empmanager.employee_id Mapeado para empmanager.employee_id se gopher-manager e manager.employeeId estiverem vazios e manager.extension_employeeNumber não estiver vazio.
manager.givenName empmanager.first_name Mapeado para empmanager.first_name se gopher-manager estiver vazio.
manager.id empmanager.product_object_id Mapeado para empmanager.product_object_id se gopher-manager estiver vazio.
manager.jobTitle empmanager.title Mapeado para empmanager.title se gopher-manager estiver vazio.
manager.mail empmanager.email_addresses Mapeado para empmanager.email_addresses se gopher-manager estiver vazio.
manager.onPremisesSamAccountName empmanager.userid Mapeado para empmanager.userid se gopher-manager estiver vazio.
manager.onPremisesSecurityIdentifier empmanager.windows_sid Mapeado para empmanager.windows_sid se gopher-manager estiver vazio.
manager.proxyAddresses empmanager.email_addresses, empmanager.group_identifiers Se gopher-manager estiver vazio, cada endereço na matriz manager.proxyAddresses é mapeado para empmanager.email_addresses ou empmanager.group_identifiers, consoante comece por "smtp" ou "SMTP".
manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (key: refreshTokensValidFromDateTime) Mapeado como uma etiqueta com a chave refreshTokensValidFromDateTime se gopher-manager estiver vazio.
manager.state empmanager.personal_address.state Mapeado para empmanager.personal_address.state se gopher-manager estiver vazio.
manager.streetAddress empmanager.personal_address.name Mapeado para empmanager.personal_address.name se gopher-manager estiver vazio.
manager.surname empmanager.last_name Mapeado para empmanager.last_name se gopher-manager estiver vazio.
manager.usageLocation user.attribute.labels.value (key: manager_src_usageLocation), empmanager.personal_address.country_or_region Mapeado como uma etiqueta com a chave manager_src_usageLocation. Se manager.country estiver vazio, o valor também é mapeado para empmanager.personal_address.country_or_region.
manager.userType empmanager.attribute.roles.name Mapeado para empmanager.attribute.roles.name se gopher-manager estiver vazio.
onPremisesDistinguishedName user.attribute.labels.value (key: onPremisesDistinguishedName), user.attribute.labels.value (key: onPremisesDistinguishedName-OU data) O nome totalmente distinto é mapeado como uma etiqueta com a chave onPremisesDistinguishedName. A parte OU do nome distinto é extraída e mapeada como uma etiqueta com a chave onPremisesDistinguishedName-OU data. Se a parte da UO contiver "Admin", o valor user_role.type é definido como ADMINISTRATOR. Se contiver "Contas de serviço", o valor user_role.type é definido como SERVICE_ACCOUNT.
onPremisesDomainName user.group_identifiers, user.attribute.labels.value (key: onPremisesDomainName) Mapeado diretamente para user.group_identifiers e adicionado como uma etiqueta com a chave onPremisesDomainName.
onPremisesImmutableId user.attribute.labels.value (key: onPremisesImmutableId) Mapeado diretamente a partir do campo onPremisesImmutableId no registo não processado e adicionado como uma etiqueta com a chave onPremisesImmutableId.
onPremisesSamAccountName user.userid, user.attribute.labels.value (key: onPremisesSamAccountName) Mapeado para user.userid se sAMAccountName estiver vazio. Também adicionado como uma etiqueta com a chave onPremisesSamAccountName.
onPremisesSecurityIdentifier user.windows_sid Mapeado diretamente a partir do campo onPremisesSecurityIdentifier no registo não processado.
proxyAddresses user.email_addresses, user.group_identifiers Cada endereço na matriz proxyAddresses é mapeado para user.email_addresses ou user.group_identifiers, consoante comece por "smtp" ou "SMTP". Se o endereço começar por "smtp" ou "SMTP", o prefixo "smtp:" ou "SMTP:" é removido, e o endereço de email restante é extraído e mapeado para user.email_addresses.
refreshTokensValidFromDateTime user.attribute.labels.value (key: refreshTokensValidFromDateTime) Mapeado diretamente a partir do campo refreshTokensValidFromDateTime no registo não processado e adicionado como uma etiqueta com a chave refreshTokensValidFromDateTime.
sAMAccountName user.userid Mapeado diretamente a partir do campo sAMAccountName no registo não processado.
estado user.personal_address.state Mapeado diretamente a partir do campo state no registo não processado.
streetAddress user.personal_address.name Mapeado diretamente a partir do campo streetAddress no registo não processado.
apelido user.last_name Mapeado diretamente a partir do campo surname no registo não processado.
usageLocation user.personal_address.country_or_region Se country estiver vazio, o valor é mapeado para user.personal_address.country_or_region.
userPrincipalName user.email_addresses Mapeado diretamente a partir do campo userPrincipalName no registo não processado. Se userPrincipalName começar por "svc-", user_role.type é definido como SERVICE_ACCOUNT.
userType user.attribute.roles.name Mapeado diretamente a partir do campo userType no registo não processado e adicionado a user.attribute.roles.name.
Parser Logic Mapeamento de UDM Lógica
N/A event.idm.entity.metadata.vendor_name Definido como "Microsoft".
N/A event.idm.entity.metadata.product_name Definido como "Azure Active Directory".
N/A event.idm.entity.metadata.entity_type Definido como "USER".
N/A event.idm.entity.metadata.collected_timestamp Definido para o campo create_time do registo não processado.
accountEnabled user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) Se accountEnabled for verdadeiro, user.user_authentication_status é definido como "ACTIVE" e é adicionada uma etiqueta com a chave accountEnabled e o valor "true". Caso contrário, é adicionada uma etiqueta com a chave accountEnabled e o valor "false".
empmanager-src.accountEnabled user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) Se manager estiver vazio e empmanager-src.accountEnabled for "true", user.user_authentication_status é definido como "ACTIVE" e é adicionada uma etiqueta com a chave accountEnabled e o valor "true". Caso contrário, é adicionada uma etiqueta com a chave accountEnabled e o valor "false".
onPremisesDistinguishedName user_role.type Se a parte OU do nome distinto contiver "Admin", o valor user_role.type é definido como ADMINISTRATOR. Se contiver "Contas de serviço", o valor user_role.type é definido como SERVICE_ACCOUNT.
userPrincipalName user_role.type Se userPrincipalName começar por "svc-", user_role.type é definido como SERVICE_ACCOUNT.
empmanager-src.onPremisesDistinguishedName manager_role.type Se gopher-manager estiver vazio e a parte da UO do nome distinto do gestor contiver "Users", manager_role.type é definido como ADMINISTRATOR. Se contiver "Contas de serviço", o valor manager_role.type é definido como SERVICE_ACCOUNT.
empmanager-src.userPrincipalName manager_role.type Se gopher-manager estiver vazio e empmanager-src.userPrincipalName começar por "svc-", manager_role.type é definido como SERVICE_ACCOUNT.
mail user_role.type Se mail começar por "svc-", user_role.type é definido como SERVICE_ACCOUNT.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.