Coletar registros do Microsoft Azure AD
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
- Faça login no portal do Azure.
- Acesse Início > Registro de apps, selecione um app registrado ou registre um app se você ainda não criou um.
- Para registrar um aplicativo, clique em Novo registro na seção Registro do app.
- No campo Nome, informe o nome de exibição do aplicativo.
- 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.
- Clique em Registrar.
- 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.
- Clique em Permissões da API.
- Clique em Adicionar uma permissão e selecione Microsoft Graph no novo painel.
- Clique em Permissões do app.
- 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.
- 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.
- Acesse Configurações > Gerenciar.
- Clique em Certificados e segredos.
- Clique em New client secret. No campo Valor, a chave secreta do cliente aparece.
- 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
- Selecione Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- Insira um nome exclusivo para o nome do feed.
- Selecione API de terceiros como o Tipo de origem.
- Selecione Azure AD como o Tipo de registro.
- Clique em Próxima.
- 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.
- 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".