Coletar registros do Microsoft Azure AD

Compatível com:

Este documento descreve como coletar registros do Microsoft Azure Active Directory (AD) configurando um feed de operações de segurança do Google.

O Azure Active Directory (AZURE_AD) agora é chamado de ID do Microsoft Entra. Os registros de auditoria do Azure AD (AZURE_AD_AUDIT) agora são registros de auditoria do ID do Microsoft Entra.

Para mais informações, consulte Ingestão de dados para as operações de segurança do Google.

Um rótulo de transferência identifica o analisador que normaliza os dados de registro brutos para o formato estruturado do UDM.

Antes de começar

Para concluir as tarefas desta página, confira se você tem o seguinte:

  • Uma assinatura do Azure em que você pode fazer login.
  • Uma função de administrador global ou administrador do Azure AD.
  • Um Azure AD (locatário) no Azure.

Configurar o Azure AD

  1. Faça login no portal do Azure.
  2. Acesse Início > Registro de apps, selecione um app registrado ou registre um app se você ainda não criou um.
  3. Para registrar um aplicativo, clique em Novo registro na seção Registro do app.
  4. No campo Nome, informe o nome de exibição do aplicativo.
  5. Na seção Tipos de contas compatíveis, selecione a opção necessária para especificar quem pode usar o aplicativo ou acessar a API.
  6. Clique em Registrar.
  7. Acesse a página Visão geral e copie o ID do aplicativo (cliente) e o ID do diretório (tenant), que são necessários para configurar o feed das Operações de segurança do Google.
  8. Clique em Permissões da API.
  9. Clique em Adicionar uma permissão e selecione Microsoft Graph no novo painel.
  10. Clique em Permissões do app.
  11. Selecione as permissões AuditLog.Read.All, Directory.Read.All e SecurityEvents.Read.All. Verifique se as permissões são permissões do app e não permissões delegadas.
  12. Clique em Conceder consentimento de administrador para o diretório padrão. Os aplicativos são autorizados a chamar APIs quando recebem permissões de usuários ou administradores como parte do processo de consentimento.
  13. Acesse Configurações > Gerenciar.
  14. Clique em Certificados e segredos.
  15. Clique em New client secret. No campo Valor, a chave secreta do cliente aparece.
  16. Copie o valor da chave secreta do cliente. O valor é mostrado apenas no momento da criação e é necessário para o registro do app do Azure e para configurar o feed do Google Security Operations.

Configurar um feed no Google Security Operations para processar registros do Azure AD

  1. Selecione Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. Insira um nome exclusivo para o nome do feed.
  4. Selecione API de terceiros como o Tipo de origem.
  5. Selecione Azure AD como o Tipo de registro.
  6. Clique em Próxima.
  7. Configure os seguintes parâmetros de entrada obrigatórios:
    • ID do cliente OAUTH: especifique o ID do cliente que você recebeu anteriormente.
    • Chave secreta do cliente OAUTH: especifique a chave secreta do cliente que você recebeu anteriormente.
    • ID do locatário: especifique o ID do locatário que você recebeu anteriormente.
  8. Clique em Próxima e em Enviar.

Para mais informações sobre os feeds do Google Security Operations, consulte a documentação dos feeds do Google Security Operations. Para informações sobre os requisitos de cada tipo de feed, consulte Configuração de feeds por tipo. Se você tiver problemas ao criar feeds, entre em contato com o suporte da Google Security Operations.

Referência do mapeamento de campo

Esse código de analisador transforma os registros brutos do Azure AD no formato JSON em um modelo de dados unificado (UDM, na sigla em inglês). Primeiro, ele normaliza os dados removendo campos desnecessários e, em seguida, extrai informações relevantes, como detalhes do usuário, carimbos de data/hora e especificidades do evento, mapeando-os para os campos correspondentes do UDM para representação e análise consistentes.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
activityDateTime read_only_udm.metadata.event_timestamp.seconds O valor é extraído do campo activityDateTime e convertido em segundos desde a época.
activityDisplayName read_only_udm.security_result.summary O valor é mapeado diretamente do campo activityDisplayName.
additionalDetails.0.value read_only_udm.network.http.user_agent O valor é mapeado diretamente do campo additionalDetails.0.value.
additionalDetails.1.key read_only_udm.target.resource.attribute.labels.key O valor é mapeado diretamente do campo additionalDetails.1.key.
additionalDetails.1.value read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo additionalDetails.1.value.
am_category read_only_udm.metadata.description O valor é mapeado diretamente do campo am_category.
am_tenantId read_only_udm.metadata.product_deployment_id O valor é mapeado diretamente do campo am_tenantId.
appDisplayName read_only_udm.target.application O valor é mapeado diretamente do campo appDisplayName. Se appDisplayName estiver vazio, o valor será retirado de resourceDisplayName.
appId read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo appId.
appliedConditionalAccessPolicies.displayName read_only_udm.about.user.user_display_name O valor é mapeado diretamente do campo appliedConditionalAccessPolicies.displayName.
appliedConditionalAccessPolicies.enforcedGrantControls read_only_udm.security_result.rule_labels.value O valor é mapeado diretamente do campo appliedConditionalAccessPolicies.enforcedGrantControls.
appliedConditionalAccessPolicies.enforcedSessionControls read_only_udm.security_result.rule_labels.value O valor é mapeado diretamente do campo appliedConditionalAccessPolicies.enforcedSessionControls.
appliedConditionalAccessPolicies.id read_only_udm.about.user.userid O valor é mapeado diretamente do campo appliedConditionalAccessPolicies.id.
appliedConditionalAccessPolicies.result read_only_udm.about.labels.value O valor é mapeado diretamente do campo appliedConditionalAccessPolicies.result.
authenticationDetails.authenticationMethod read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo authenticationDetails.authenticationMethod.
authenticationDetails.authenticationMethodDetail read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo authenticationDetails.authenticationMethodDetail.
authenticationDetails.authenticationStepDateTime read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo authenticationDetails.authenticationStepDateTime.
authenticationDetails.authenticationStepRequirement read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo authenticationDetails.authenticationStepRequirement.
authenticationDetails.authenticationStepResultDetail read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo authenticationDetails.authenticationStepResultDetail.
authenticationProcessingDetails.key read_only_udm.additional.fields.key O valor é mapeado diretamente do campo authenticationProcessingDetails.key, com o prefixo "authenticationProcessingDetails - ".
authenticationProcessingDetails.value read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo authenticationProcessingDetails.value.
callerIpAddress read_only_udm.principal.ip O valor é mapeado diretamente do campo callerIpAddress.
callerIpAddress read_only_udm.principal.asset.ip O valor é mapeado diretamente do campo callerIpAddress.
categoria read_only_udm.metadata.description O valor é mapeado diretamente do campo category.
clientAppUsed read_only_udm.principal.application O valor é mapeado diretamente do campo clientAppUsed.
conditionalAccessStatus read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo conditionalAccessStatus.
correlationId read_only_udm.network.session_id O valor é mapeado diretamente do campo correlationId.
correlationId read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo correlationId.
createdDateTime read_only_udm.metadata.event_timestamp.seconds O valor é extraído do campo createdDateTime e convertido em segundos desde a época.
deviceDetail.browser read_only_udm.network.http.user_agent O valor é mapeado diretamente do campo deviceDetail.browser.
deviceDetail.deviceId read_only_udm.principal.asset.asset_id O valor é mapeado diretamente do campo deviceDetail.deviceId, com o prefixo "ID do dispositivo:".
deviceDetail.deviceId read_only_udm.principal.asset_id O valor é mapeado diretamente do campo deviceDetail.deviceId, com o prefixo "ID do dispositivo:".
deviceDetail.displayName read_only_udm.principal.asset.hostname O valor é mapeado diretamente do campo deviceDetail.displayName.
deviceDetail.isCompliant read_only_udm.principal.asset.attribute.labels.value O valor é mapeado diretamente do campo deviceDetail.isCompliant.
deviceDetail.isManaged read_only_udm.principal.asset.attribute.labels.value O valor é mapeado diretamente do campo deviceDetail.isManaged.
deviceDetail.operatingSystem read_only_udm.principal.platform_version O valor é mapeado diretamente do campo deviceDetail.operatingSystem.
deviceDetail.trustType read_only_udm.principal.asset.attribute.labels.value O valor é mapeado diretamente do campo deviceDetail.trustType.
durationMs read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo durationMs.
errorCode read_only_udm.security_result.rule_id O valor é mapeado diretamente do campo errorCode.
nível empresarial read_only_udm.target.user.user_display_name O valor é mapeado diretamente do campo identity se for diferente de userId e não corresponder a um padrão de endereço de e-mail.
initiatedBy.user.displayName read_only_udm.principal.user.user_display_name O valor é mapeado diretamente do campo initiatedBy.user.displayName.
initiatedBy.user.id read_only_udm.principal.user.userid O valor é mapeado diretamente do campo initiatedBy.user.id.
initiatedBy.user.ipAddress read_only_udm.principal.ip O valor é mapeado diretamente do campo initiatedBy.user.ipAddress.
initiatedBy.user.ipAddress read_only_udm.principal.asset.ip O valor é mapeado diretamente do campo initiatedBy.user.ipAddress.
initiatedBy.user.userPrincipalName read_only_udm.principal.user.email_addresses O valor é mapeado diretamente do campo initiatedBy.user.userPrincipalName se corresponder a um padrão de endereço de e-mail.
ipAddress read_only_udm.principal.ip O valor é extraído do campo ipAddress usando um padrão grok para extrair o endereço IP.
ipAddress read_only_udm.principal.asset.ip O valor é extraído do campo ipAddress usando um padrão grok para extrair o endereço IP.
isInteractive read_only_udm.extensions.auth.mechanism O valor será mapeado como "INTERACTIVE" se isInteractive for "true". Caso contrário, será mapeado como "MECHANISM_OTHER".
isInteractive read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo isInteractive.
level read_only_udm.security_result.severity O valor é mapeado do campo level com base na seguinte lógica: * "Information", "Informational", "0" e "4" são mapeados para "INFORMATIONAL". * "Warning", "1" e "3" são mapeados para "MEDIUM". * "Erro" e "2" são mapeados para "ERROR". * "Critical", "CRITICAL", "critical" são mapeados para "CRITICAL".
level read_only_udm.security_result.severity_details O valor é mapeado diretamente do campo level.
location.city read_only_udm.principal.location.city O valor é mapeado diretamente do campo location.city.
location.countryOrRegion read_only_udm.principal.location.country_or_region O valor é mapeado diretamente do campo location.countryOrRegion.
location.geoCoordinates.latitude read_only_udm.principal.location.region_coordinates.latitude O valor é mapeado diretamente do campo location.geoCoordinates.latitude e convertido em um número flutuante.
location.geoCoordinates.latitude read_only_udm.principal.location.region_latitude O valor é mapeado diretamente do campo location.geoCoordinates.latitude e convertido em um número flutuante.
location.geoCoordinates.longitude read_only_udm.principal.location.region_coordinates.longitude O valor é mapeado diretamente do campo location.geoCoordinates.longitude e convertido em um número flutuante.
location.geoCoordinates.longitude read_only_udm.principal.location.region_longitude O valor é mapeado diretamente do campo location.geoCoordinates.longitude e convertido em um número flutuante.
location.state read_only_udm.principal.location.state O valor é mapeado diretamente do campo location.state.
networkLocationDetails.networkNames read_only_udm.additional.fields.value.string_value O valor é gerado concatenando todos os valores da matriz networkLocationDetails.networkNames, separados por vírgulas.
networkLocationDetails.networkType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo networkLocationDetails.networkType.
networkLocationDetails.networkType read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo networkLocationDetails.networkType.
operationName read_only_udm.metadata.event_type O valor é mapeado para "USER_LOGIN" se operationName for "Atividade de login", "USER_CHANGE_PERMISSIONS" se operationName for "Adicionar membro ao grupo" e "USER_RESOURCE_UPDATE_PERMISSIONS" se operationName for "Adicionar atribuição de função do app ao serviço principal". Caso contrário, o valor é determinado com base na presença de outros campos: * "USER_LOGIN" se has_target_user for "true". * "USER_UNCATEGORIZED" se has_principal_user for "true". * "STATUS_UPDATE" se has_principal for "true". * "GENERIC_EVENT", caso contrário.
operationType read_only_udm.security_result.action_details O valor é mapeado diretamente do campo operationType.
properties.activity read_only_udm.security_result.summary O valor é mapeado diretamente do campo properties.activity.
properties.activityDateTime read_only_udm.metadata.event_timestamp.seconds O valor é extraído do campo properties.activityDateTime e convertido em segundos desde a época.
properties.additionalInfo read_only_udm.network.http.user_agent O valor é extraído do campo properties.additionalInfo analisando a string JSON e extraindo o valor correspondente à chave "userAgent".
properties.additionalInfo read_only_udm.target.url O valor é extraído do campo properties.additionalInfo analisando a string JSON e extraindo o valor correspondente à chave "alertUrl".
properties.appId read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo properties.appId.
properties.appDisplayName read_only_udm.target.application O valor é mapeado diretamente do campo properties.appDisplayName.
properties.appliedConditionalAccessPolicies.displayName read_only_udm.security_result.rule_name O valor é mapeado diretamente do campo properties.appliedConditionalAccessPolicies.displayName.
properties.appliedConditionalAccessPolicies.id read_only_udm.security_result.rule_id O valor é mapeado diretamente do campo properties.appliedConditionalAccessPolicies.id.
properties.appliedConditionalAccessPolicies.result read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.appliedConditionalAccessPolicies.result.
properties.authenticationDetails.authenticationMethod read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationDetails.authenticationMethod.
properties.authenticationDetails.authenticationMethodDetail read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationDetails.authenticationMethodDetail.
properties.authenticationDetails.authenticationStepDateTime read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationDetails.authenticationStepDateTime.
properties.authenticationDetails.authenticationStepRequirement read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationDetails.authenticationStepRequirement.
properties.authenticationDetails.authenticationStepResultDetail read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationDetails.authenticationStepResultDetail.
properties.authenticationProcessingDetails.key read_only_udm.additional.fields.key O valor é mapeado diretamente do campo properties.authenticationProcessingDetails.key, com o prefixo "properties authenticationProcessingDetails - ".
properties.authenticationProcessingDetails.value read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.authenticationProcessingDetails.value.
properties.authenticationRequirement read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.authenticationRequirement.
properties.authenticationRequirementPolicies.detail read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationRequirementPolicies.detail.
properties.authenticationRequirementPolicies.requirementProvider read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.authenticationRequirementPolicies.requirementProvider.
properties.clientAppUsed read_only_udm.principal.application O valor é mapeado diretamente do campo properties.clientAppUsed.
properties.conditionalAccessStatus read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.conditionalAccessStatus.
properties.createdDateTime read_only_udm.metadata.event_timestamp.seconds O valor é extraído do campo properties.createdDateTime e convertido em segundos desde a época.
properties.crossTenantAccessType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.crossTenantAccessType.
properties.detectedDateTime read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.detectedDateTime.
properties.detectionTimingType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.detectionTimingType.
properties.homeTenantId read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.homeTenantId.
properties.id read_only_udm.metadata.product_log_id O valor é mapeado diretamente do campo properties.id.
properties.initiatedBy.user.displayName read_only_udm.principal.user.user_display_name O valor é mapeado diretamente do campo properties.initiatedBy.user.displayName.
properties.initiatedBy.user.id read_only_udm.principal.user.windows_sid O valor é mapeado diretamente do campo properties.initiatedBy.user.id.
properties.initiatedBy.user.ipAddress read_only_udm.principal.ip O valor é mapeado diretamente do campo properties.initiatedBy.user.ipAddress.
properties.initiatedBy.user.ipAddress read_only_udm.principal.asset.ip O valor é mapeado diretamente do campo properties.initiatedBy.user.ipAddress.
properties.initiatedBy.user.userPrincipalName read_only_udm.principal.user.userid O valor é mapeado diretamente do campo properties.initiatedBy.user.userPrincipalName se não corresponder a um padrão de endereço de e-mail.
properties.initiatedBy.user.userPrincipalName read_only_udm.principal.user.email_addresses O valor é mapeado diretamente do campo properties.initiatedBy.user.userPrincipalName se corresponder a um padrão de endereço de e-mail.
properties.ipAddress read_only_udm.principal.ip O valor é extraído do campo properties.ipAddress usando um padrão grok para extrair o endereço IP.
properties.ipAddress read_only_udm.principal.asset.ip O valor é extraído do campo properties.ipAddress usando um padrão grok para extrair o endereço IP.
properties.isGuest read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.isGuest.
properties.isDeleted read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.isDeleted.
properties.isProcessing read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.isProcessing.
properties.lastUpdatedDateTime read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.lastUpdatedDateTime.
properties.location.city read_only_udm.principal.location.city O valor é mapeado diretamente do campo properties.location.city.
properties.location.countryOrRegion read_only_udm.principal.location.country_or_region O valor é mapeado diretamente do campo properties.location.countryOrRegion.
properties.location.geoCoordinates.latitude read_only_udm.principal.location.region_coordinates.latitude O valor é mapeado diretamente do campo properties.location.geoCoordinates.latitude e convertido em um número flutuante.
properties.location.geoCoordinates.latitude read_only_udm.principal.location.region_latitude O valor é mapeado diretamente do campo properties.location.geoCoordinates.latitude e convertido em um número flutuante.
properties.location.geoCoordinates.longitude read_only_udm.principal.location.region_coordinates.longitude O valor é mapeado diretamente do campo properties.location.geoCoordinates.longitude e convertido em um número flutuante.
properties.location.geoCoordinates.longitude read_only_udm.principal.location.region_longitude O valor é mapeado diretamente do campo properties.location.geoCoordinates.longitude e convertido em um número flutuante.
properties.location.state read_only_udm.principal.location.state O valor é mapeado diretamente do campo properties.location.state.
properties.networkLocationDetails.networkNames read_only_udm.additional.fields.value.string_value O valor é gerado concatenando todos os valores da matriz properties.networkLocationDetails.networkNames, separados por vírgulas.
properties.networkLocationDetails.networkType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.networkLocationDetails.networkType.
properties.networkLocationDetails.networkType read_only_udm.security_result.detection_fields.value O valor é mapeado diretamente do campo properties.networkLocationDetails.networkType.
properties.resourceServicePrincipalId read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo properties.resourceServicePrincipalId.
properties.riskDetail read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskDetail.
properties.riskEventType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskEventType.
properties.riskLastUpdatedDateTime read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskLastUpdatedDateTime.
properties.riskLevel read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskLevel.
properties.riskLevelDuringSignIn read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskLevelDuringSignIn.
properties.riskState read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskState.
properties.riskType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.riskType.
properties.source read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.source.
properties.targetResources.0.id read_only_udm.target.user.product_object_id O valor é mapeado diretamente do campo properties.targetResources.0.id.
properties.targetResources.modifiedProperties.0.newValue read_only_udm.target.group.product_object_id O valor é mapeado diretamente do campo properties.targetResources.modifiedProperties.0.newValue.
properties.tokenIssuerType read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo properties.tokenIssuerType.
properties.userAgent read_only_udm.network.http.parsed_user_agent O valor é mapeado diretamente do campo properties.userAgent e convertido em um objeto de agente do usuário analisado.
properties.userAgent read_only_udm.network.http.user_agent O valor é mapeado diretamente do campo properties.userAgent.
properties.userId read_only_udm.target.user.product_object_id O valor é mapeado diretamente do campo properties.userId.
properties.userPrincipalName read_only_udm.target.user.userid O valor é mapeado diretamente do campo properties.userPrincipalName se não corresponder a um padrão de endereço de e-mail.
properties.userPrincipalName read_only_udm.target.user.email_addresses O valor é mapeado diretamente do campo properties.userPrincipalName se corresponder a um padrão de endereço de e-mail.
result read_only_udm.security_result.action O valor será mapeado para "ALLOW" se result for "success".
result read_only_udm.security_result.action_details O valor é mapeado diretamente do campo result se result for "success".
resultDescription read_only_udm.security_result.description O valor é mapeado diretamente do campo resultDescription.
resultSignature read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo resultSignature.
resultType read_only_udm.security_result.action O valor é mapeado para "ALLOW" se resultType for "0".
resultType read_only_udm.security_result.rule_id O valor é mapeado diretamente do campo resultType se não estiver vazio nem "0".
resultType read_only_udm.security_result.summary O valor é mapeado para "O login foi bem-sucedido" se resultType for "0" e "O login falhou", caso contrário.
resourceDisplayName read_only_udm.target.application O valor é mapeado diretamente do campo resourceDisplayName.
resourceDisplayName read_only_udm.target.resource.name O valor é mapeado diretamente do campo resourceDisplayName.
resourceId read_only_udm.target.resource.id O valor é mapeado diretamente do campo resourceId.
resourceId read_only_udm.target.resource.product_object_id O valor é mapeado diretamente do campo resourceId.
resourceServicePrincipalId read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo resourceServicePrincipalId.
riskDetail read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo riskDetail.
riskEventTypes read_only_udm.additional.fields.value.string_value O valor é extraído da matriz riskEventTypes e mapeado para um valor de string na matriz additional.fields.
riskEventTypes read_only_udm.additional.fields.value.list_value.values.string_value O valor é mapeado diretamente de cada elemento da matriz riskEventTypes.
riskEventTypes_v2 read_only_udm.additional.fields.value.list_value.values.string_value O valor é mapeado diretamente de cada elemento da matriz riskEventTypes_v2.
riskLevelAggregated read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo riskLevelAggregated.
riskLevelDuringSignIn read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo riskLevelDuringSignIn.
riskState read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo riskState.
status.additionalDetails read_only_udm.security_result.description O valor é mapeado diretamente do campo status.additionalDetails.
status.errorCode read_only_udm.security_result.action O valor é mapeado para "ALLOW" se status.errorCode for "0".
status.errorCode read_only_udm.security_result.rule_id O valor é mapeado diretamente do campo status.errorCode, se não estiver vazio.
status.errorCode read_only_udm.security_result.summary O valor é mapeado para "O login foi bem-sucedido" se status.errorCode for "0" e "O login falhou", caso contrário.
status.failureReason read_only_udm.additional.fields.value.string_value O valor é mapeado diretamente do campo status.failureReason.
targetResources.displayName read_only_udm.target.resource.name O valor é mapeado diretamente do campo targetResources.displayName.
targetResources.id read_only_udm.target.resource.id O valor é mapeado diretamente do campo targetResources.id.
targetResources.id read_only_udm.target.resource.product_object_id O valor é mapeado diretamente do campo targetResources.id.
targetResources.modifiedProperties.displayName read_only_udm.target.resource.attribute.labels.key O valor é mapeado diretamente do campo targetResources.modifiedProperties.displayName.
targetResources.modifiedProperties.newValue read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo targetResources.modifiedProperties.newValue depois da remoção das aspas duplas.
targetResources.modifiedProperties.oldValue read_only_udm.target.resource.attribute.labels.value O valor é mapeado diretamente do campo targetResources.modifiedProperties.oldValue.
targetResources.type read_only_udm.target.resource.type O valor é mapeado diretamente do campo targetResources.type.
targetResources.userPrincipalName read_only_udm.target.user.user_display_name O valor é mapeado diretamente do campo targetResources.userPrincipalName.
tenantId read_only_udm.metadata.product_deployment_id O valor é mapeado diretamente do campo tenantId.
tempo read_only_udm.metadata.event_timestamp.seconds O valor é extraído do campo time e convertido em segundos desde a época.
userAgent read_only_udm.network.http.parsed_user_agent O valor é mapeado diretamente do campo userAgent e convertido em um objeto de agente do usuário analisado.
userAgent read_only_udm.network.http.user_agent O valor é mapeado diretamente do campo userAgent.
userDisplayName read_only_udm.target.user.user_display_name O valor é mapeado diretamente do campo userDisplayName se for diferente de userId e não corresponder a um padrão de endereço de e-mail.
userPrincipalName read_only_udm.principal.administrative_domain A parte do domínio do endereço de e-mail é extraída do campo userPrincipalName usando um padrão grok e mapeada para o campo principal.administrative_domain.
userPrincipalName read_only_udm.target.user.email_addresses O valor é mapeado diretamente do campo userPrincipalName se corresponder a um padrão de endereço de e-mail.
userPrincipalName read_only_udm.target.user.userid O valor é mapeado diretamente do campo userPrincipalName se não corresponder a um padrão de endereço de e-mail.
userId read_only_udm.target.user.product_object_id O valor é mapeado diretamente do campo userId.
read_only_udm.metadata.log_type AZURE_AD Esse valor é codificado no analisador.
read_only_udm.metadata.vendor_name Microsoft Esse valor é codificado no analisador.
read_only_udm.metadata.product_name Azure AD Esse valor é codificado no analisador.
read_only_udm.extensions.auth.type SSO Esse valor é codificado no analisador.

Alterações

2024-07-05

  • "isInteractive" foi mapeado para "security_result.detection_fields".

2024-04-02

  • "properties.createdDateTime" foi mapeado para "metadata.event_timestamp".
  • Mapeou "properties.resourceServicePrincipalId" e "resourceServicePrincipalId" para "target.resource.attribute.labels".
  • "properties.authenticationProcessingDetails", "authenticationProcessingDetails" e "properties.networkLocationDetails" foram mapeados para "additional.fields".
  • "properties.userAgent" foi mapeado para "network.http.user_agent" e "network.http.parsed_user_agent".
  • Mapeamos "properties.authenticationRequirement" para "additional.fields".

2024-06-03

  • O mapeamento de "policies.displayName" mudou de "about.user.user_display_name" para "security_result.rule_name".
  • O mapeamento de "policies.id" mudou de "about.user.userid" para "security_result.rule_id".
  • O mapeamento de "policies.result" mudou de "about.labels" para "security_result.detection_fields".

2024-05-29

  • Quando "status.errorCode" for "0", defina "security_result.action" como "ALLOW".

2024-05-13

Correção de bugs:

  • "userPrincipalName" foi associado a "target.user.userid".

2024-05-10

  • Mapeamos "networkLocationDetails.n.networkNames", "properties.networkLocationDetails.n.networkNames", "networkLocationDetails.n.networkType" e "properties.networkLocationDetails.n.networkType" para "additional.fields".
  • Mapeamos "properties.userAgent" e "userAgent" para "network.http.user_agent" e "network.http.parsed_user_agent".

2024-05-03

Correção de bugs:

  • A verificação "on_error" foi adicionada antes do mapeamento de "target.modifiedProperties.n.newValue".
  • Mapeamos "target.modifiedProperties.n.oldValue" e "target.modifiedProperties.n.displayName" para "target.resource.attribute.labels".
  • "activityDisplayName" foi mapeado para "security_result.summary".

2024-04-30

  • Mapeou "properties.authenticationDetails", "properties.networkLocationDetails", "properties.authenticationRequirementPolicies", "networkLocationDetails" e "authenticationRequirementPolicies" para "security_result.detection_fields".

2024-04-02

  • Mapeamos "properties.authenticationRequirement" para "additional.fields".

2024-04-02

  • O "authenticationRequirement" foi mapeado para "additional.fields".

2024-02-26

  • "appliedConditionalAccessPolicies" foi associado a "security_result".
  • "isInteractive" foi mapeado para "extensions.auth.mechanism".
  • Mapeamos "location.geoCoordinates.altitude" para "additional.fields".

2024-02-09

  • Mapeou "authenticationDetails.authenticationMethod", "authenticationDetails.authenticationMethodDetail", "authenticationDetails.authenticationStepResultDetail", "authenticationDetails.authenticationStepDateTime" e "authenticationDetails.authenticationStepRequirement" para "security_result.detection_fields".
  • Mapeamos "authenticationDetails.succeeded" para "security_result.action".
  • "status.additionalDetails" foi associado a "security_result.description".

2024-01-11

  • O "correlationId" foi mapeado para "security_result.detection_fields".

2023-11-20

  • Mapeamos "tenantId" para "metadata.product_deployment_id".
  • Mapeamos "Nível" para "security_result.severity_details" e "security_result.severity".
  • "properties.userDisplayName" foi mapeado para "target.user.user_display_name".
  • "identity" foi mapeado para "target.user.user_display_name".
  • "properties.activityDateTime" foi mapeado para "metadata.event_timestamp".
  • "properties.activity" foi mapeado para "security_result.summary".
  • Mapeou "resultSignature", "properties.riskLevel", "properties.isGuest", "properties.isDeleted", "properties.isProcessing",
  • "properties.riskLastUpdatedDateTime", "properties.riskType", "properties.riskEventType", "properties.riskState", "properties.riskDetail", "properties.source", "properties.detectionTimingType"
  • "properties.detectedDateTime", "properties.lastUpdatedDateTime", "properties.tokenIssuerType", "properties.homeTenantId", "properties.userType", "properties.crossTenantAccessType", "durationMs" para "additional.fields".
  • "resourceId" foi mapeado para "target.resource.product_object_id".
  • Mapeamos "properties.location.geoCoordinates.longitude" e "location.geoCoordinates.longitude" para "principal.location.region_coordinates.longitude".
  • Mapeamos "properties.location.geoCoordinates.latitude" e "location.geoCoordinates.latitude" para "principal.location.region_coordinates.latitude".

2023-07-12

  • Mapeou "deviceDetail.isCompliant", "deviceDetail.isManaged" e "deviceDetail.trustType" para "principal.asset.attribute.labels".
  • "deviceDetail.deviceId" foi mapeado para "principal.asset.asset_id".
  • "deviceDetail.browser" foi associado a "network.http.user_agent".
  • Mapeamos "deviceDetail.operatingSystem" para "principal.platform_version".
  • "status.failureReason" foi mapeado para "additional.fields".
  • "status.errorCode" foi associado a "security_result.rule_id".
  • Mapeamos "deviceDetail.displayName" para "principal.asset.hardware".

2023-03-14

  • "Navegador" foi mapeado para "principal.resource.attribute.labels".
  • "IsCompliant", "isManaged" e "trustType" foram mapeados para "principal.asset.attribute.labels".
  • O formulário "domain" "userPrincipalName" foi mapeado para "principal.administrative_domain".

2022-12-16

  • Adição de uma verificação condicional para o campo "initiatedBy.user.userPrincipalName" e mapeado para "principal.user.email_addresses".

2022-10-28

  • Mapeamos "additionalDetails.0.value" para "network.http.user_agent".
  • "additionalDetails.1.value" foi associado a "target.resource.attribute.labels".
  • "Id" foi mapeado para "metadata.product_log_id".
  • "initiatedBy.user.id" foi mapeado para "principal.user.userid".
  • "initiatedBy.user.displayName" foi mapeado para "principal.user.user_display_name".
  • "initiatedBy.user.ipAddress" foi associado a "principal.ip".
  • "initiatedBy.user.userPrincipalName" foi associado a "principal.user.email_addresses".
  • "operationType" foi associado a "security_result.action_details".
  • "target.displayName" foi mapeado para "target.resource.name".
  • "target.id" foi mapeado para "target.resource.id".
  • "target.type" foi associado a "target.resource.type".
  • Mapeou "field.newValue" para "target.resource.product_object_id" se field.displayName for "AppRole.Id". Caso contrário, mapeou "field.newValue" para "target.resource.attribute.labels".
  • Adição de verificação de errorCode.
  • "LoggedByService" foi mapeado para "target.application".
  • "activityDisplayName" foi associado a "metadata.product_event_type".
  • Mapeou "metadata.event_type" para "USER_RESOURCE_UPDATE_PERMISSIONS", em que "activityDisplayName" é "Adicionar atribuição de função do app ao principal de serviço".

2022-08-25

  • Se "properties.initiatedBy.user.userPrincipalName" corresponder a "padrão de regex de e-mail", será associado a "principal.user.email_addresses". Caso contrário, será associado a "principal.user.userid".
  • Se "properties.userPrincipalName" ou "userPrincipalName" corresponder a "email regex pattern", será associado a "target.user.email_addresses". Caso contrário, será associado a "target.user.userid".

2022-08-11

  • A tag de exclusão "TAG_MALFORMED_ENCODING" foi removida.
  • "event_type" "GENERIC_EVENT" adicionado.

2022-05-29

  • Melhoria: o laço for do campo "riskEventTypes_v2" foi modificado para "additional.fields".
  • O campo "level" foi mapeado para "security_result.severity_details".
  • O campo "properties.result" foi mapeado para "security_result.action_details".

2022-04-20

  • Correção de bug: os registros foram analisados com o evento "appDisplayName": "NotApplicable".
  • Modificação do laço for para o campo "riskEventTypes".