Receber registros de atividade do Microsoft Azure

Compatível com:

Este documento descreve as etapas necessárias para ingerir os registros de atividades do Microsoft Azure (AZURE_ACTIVITY) no Google Security Operations.

Configurar uma conta de armazenamento

Siga estas etapas para configurar uma conta do Storage:

  1. No console do Azure, pesquise Contas de armazenamento.
  2. Clique em Criar.
  3. Selecione a assinatura, o grupo de recursos, a região, a performance (recomendamos a padrão) e a redundância (recomendamos GRS ou LRS) necessárias para a conta e insira um nome para a nova conta de armazenamento.
  4. Clique em Revisar + criar, revise a visão geral da conta e clique em Criar.
  5. Na página Visão geral da conta de armazenamento, selecione Chaves de acesso no painel de navegação à esquerda da janela.
  6. Clique em Mostrar chaves e anote a chave compartilhada da conta de armazenamento.
  7. Selecione Endpoints no menu de navegação à esquerda da janela.
  8. Anote o endpoint do serviço de blob. (https://<storageaccountname>.blob.core.windows.net/)

Configurar o registro de atividades do Azure

Siga estas etapas para configurar o registro de atividades do Azure:

  1. No console do Azure, pesquise Monitor.
  2. Clique no link Registro de atividades no painel de navegação à esquerda da página.
  3. Clique em Exportar registros de atividade na parte de cima da janela.
  4. Clique em Adicionar configuração de diagnóstico.
  5. Selecione todas as categorias que você quer exportar para o Google Security Operations.
  6. Em Detalhes do destino, selecione Arquivar em uma conta de armazenamento.
  7. Selecione a assinatura e a conta de armazenamento que você criou na etapa anterior.
  8. Clique em Salvar.

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

Siga estas etapas para configurar um feed nas Operações de segurança do Google e processar os registros do Azure:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Add New.
  3. Insira um nome exclusivo para o Nome do campo.
  4. Selecione Microsoft Azure Blob Storage como o Tipo de origem.
  5. Selecione Atividade do Microsoft Azure como o tipo de registro.
  6. Clique em Próxima.
  7. Configure os seguintes parâmetros de entrada obrigatórios:
    • URI do Azure: insira o valor do endpoint do serviço de blobs que você registrou anteriormente, com o sufixo insights-activity-logs (por exemplo, https://acme-azure-chronicle.blob.core.windows.net/insights-activity-logs)
    • O URI é um: selecione Diretório que inclui subdiretórios.
    • Opção de exclusão da origem: especifique se você quer excluir arquivos e diretórios após a transferência.
    • Chave compartilhada: insira o valor da chave compartilhada que você capturou anteriormente.
  8. Clique em Próxima e em Enviar.

Referência do mapeamento de campo

Esse código de analisador primeiro inicializa um grande número de campos para strings vazias e, em seguida, realiza uma série de manipulações de string e operações de análise JSON para extrair informações relevantes da mensagem de registro de atividade do Azure. Por fim, ele mapeia os dados extraídos para os campos do Modelo de dados unificado (UDM), categorizando o tipo de evento e enriquecendo-o com outros detalhes, como gravidade, informações principais e dados de rede.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
categoria read_only_udm.security_result.category_details Mapeado diretamente do campo "category" no registro bruto.
callerIpAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mapeado diretamente do campo "callerIpAddress" no registro bruto.
correlationId read_only_udm.security_result.detection_fields.correlationId Mapeado diretamente do campo "correlationId" no registro bruto.
data.callerIpAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mapeado diretamente do campo "callerIpAddress" no objeto "data" no registro bruto.
data.correlationId read_only_udm.security_result.detection_fields.correlationId Mapeado diretamente do campo "correlationId" no objeto "data" no registro bruto.
data.DeploymentUnit read_only_udm.target.resource.name Mapeado diretamente do campo "DeploymentUnit" no objeto "data" no registro bruto.
data.details read_only_udm.metadata.description Mapeado diretamente do campo "details" no objeto "data" no registro bruto, somente se o campo "details" não for "Unknown".
data.entity read_only_udm.additional.fields.entity Mapeado diretamente do campo "entidade" no objeto "dados" no registro bruto.
data.EventName read_only_udm.metadata.product_event_type Mapeado diretamente do campo "EventName" no objeto "data" no registro bruto.
data.hierarchy read_only_udm.additional.fields.hierarchy Mapeado diretamente do campo "hierarquia" no objeto "dados" no registro bruto.
data.identity.authorization.action read_only_udm.security_result.detection_fields.action Mapeado diretamente do campo "action" no objeto "authorization" do objeto "identity" no registro bruto.
data.identity.authorization.evidence.principalId read_only_udm.principal.user.product_object_id, read_only_udm.principal.resource.product_object_id, read_only_udm.principal.group.product_object_id Mapeado diretamente do campo "principalId" no objeto "evidence" do objeto "authorization" do objeto "identity" no registro bruto. O campo específico da UDM mapeado depende do valor do campo "principalType". Se "principalType" for "User" ou "ServicePrincipal", ele será mapeado para principal.user.product_object_id. Se "principalType" for "Group", ele será mapeado para principal.group.product_object_id. Se "principalType" for "ServicePrincipal", ele será mapeado para principal.resource.product_object_id.
data.identity.authorization.evidence.principalType read_only_udm.principal.resource.resource_subtype Mapeado diretamente do campo "principalType" no objeto "evidence" do objeto "authorization" do objeto "identity" no registro bruto.
data.identity.authorization.evidence.role read_only_udm.principal.user.role_name Mapeado diretamente do campo "role" no objeto "evidence" do objeto "authorization" do objeto "identity" no registro bruto.
data.identity.authorization.evidence.roleAssignmentId read_only_udm.principal.resource.attribute.labels.roleAssignmentId Mapeado diretamente do campo "roleAssignmentId" no objeto "evidence" do objeto "authorization" do objeto "identity" no registro bruto.
data.identity.authorization.evidence.roleAssignmentScope read_only_udm.principal.resource.attribute.labels.roleAssignmentScope Mapeado diretamente do campo "roleAssignmentScope" no objeto "evidence" do objeto "authorization" do objeto "identity" no registro bruto.
data.identity.authorization.evidence.roleDefinitionId read_only_udm.principal.resource.attribute.labels.roleDefinitionId Mapeado diretamente do campo "roleDefinitionId" no objeto "evidence" do objeto "authorization" do objeto "identity" no registro bruto.
data.identity.authorization.scope read_only_udm.security_result.detection_fields.scope Mapeado diretamente do campo "escopo" no objeto "autorização" do objeto "identidade" no registro bruto.
data.identity.claims.aio read_only_udm.security_result.detection_fields.aio Mapeado diretamente do campo "aio" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.appid read_only_udm.security_result.detection_fields.appid Mapeado diretamente do campo "appid" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.appidacr read_only_udm.security_result.detection_fields.appidacr Mapeado diretamente do campo "appidacr" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.aud read_only_udm.security_result.detection_fields.aud Mapeado diretamente do campo "aud" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.exp read_only_udm.security_result.detection_fields.exp Mapeado diretamente do campo "exp" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.http://schemas.microsoft.com/identity/claims/identityprovider read_only_udm.security_result.detection_fields.identityprovider Mapeado diretamente do campo "http://schemas.microsoft.com/identity/claims/identityprovider" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.http://schemas.microsoft.com/identity/claims/objectidentifier read_only_udm.security_result.detection_fields.objectidentifier Mapeado diretamente do campo "http://schemas.microsoft.com/identity/claims/objectidentifier" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.http://schemas.microsoft.com/identity/claims/tenantid read_only_udm.security_result.detection_fields.tenantid Mapeado diretamente do campo "http://schemas.microsoft.com/identity/claims/tenantid" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier read_only_udm.security_result.detection_fields.nameidentifier Mapeado diretamente do campo "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.iat read_only_udm.security_result.detection_fields.iat Mapeado diretamente do campo "iat" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.iss read_only_udm.security_result.detection_fields.iss Mapeado diretamente do campo "iss" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.nbf read_only_udm.security_result.detection_fields.nbf Mapeado diretamente do campo "nbf" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.rh read_only_udm.security_result.detection_fields.rh Mapeado diretamente do campo "rh" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.uti read_only_udm.security_result.detection_fields.uti Mapeado diretamente do campo "uti" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.ver read_only_udm.security_result.detection_fields.ver Mapeado diretamente do campo "ver" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.claims.xms_tcdt read_only_udm.security_result.detection_fields.xms_tcdt Mapeado diretamente do campo "xms_tcdt" no objeto "claims" do objeto "identity" no registro bruto.
data.identity.UserName read_only_udm.principal.user.user_display_name Mapeado diretamente do campo "UserName" no objeto "identity" no registro bruto.
data.level read_only_udm.security_result.severity, read_only_udm.security_result.severity_details Mapeado diretamente do campo "level" no objeto "data" no registro bruto. O campo "level" também é usado para determinar o valor do campo severity. Se "level" for "Information" ou "Informational", severity será definido como "INFORMATIONAL". Se "level" for "Warning", severity será definido como "MEDIUM". Se "level" for "Error", severity será definido como "ERROR". Se "level" for "Critical", severity será definido como "CRITICAL".
data.location read_only_udm.target.location.name Mapeado diretamente do campo "local" no objeto "dados" no registro bruto.
data.operationName read_only_udm.metadata.product_event_type Mapeado diretamente do campo "operationName" no objeto "data" no registro bruto.
data.properties.EventChannel read_only_udm.additional.fields.properties EventChannel Mapeado diretamente do campo "EventChannel" no objeto "properties" do objeto "data" no registro bruto.
data.properties.EventSource read_only_udm.additional.fields.properties EventSource Mapeado diretamente do campo "EventSource" no objeto "properties" do objeto "data" no registro bruto.
data.properties.EventId read_only_udm.metadata.product_log_id Mapeado diretamente do campo "EventId" no objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.cause read_only_udm.security_result.detection_fields.cause Mapeado diretamente do campo "cause" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.clientIPAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mapeado diretamente do campo "clientIPAddress" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.compromisedHost read_only_udm.principal.asset.hostname, read_only_udm.principal.hostname Mapeado diretamente do campo "compromisedHost" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.currentHealthStatus read_only_udm.security_result.detection_fields.currentHealthStatus Mapeado diretamente do campo "currentHealthStatus" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.previousHealthStatus read_only_udm.security_result.detection_fields.previousHealthStatus Mapeado diretamente do campo "previousHealthStatus" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.type read_only_udm.security_result.detection_fields.type Mapeado diretamente do campo "type" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.User read_only_udm.principal.user.userid Mapeado diretamente do campo "Usuário" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto.
data.properties.eventProperties.userName read_only_udm.principal.user.user_display_name Mapeado diretamente do campo "userName" no objeto "eventProperties" do objeto "properties" do objeto "data" no registro bruto, depois de remover o prefixo "SECURE\".
data.properties.ipAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mapeado diretamente do campo "ipAddress" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacyChannels read_only_udm.security_result.detection_fields.legacyChannels Mapeados diretamente do campo "legacyChannels" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacyEventDataId read_only_udm.security_result.detection_fields.legacyEventDataId Mapeado diretamente do campo "legacyEventDataId" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacyResourceId read_only_udm.security_result.detection_fields.legacyResourceId Mapeado diretamente do campo "legacyResourceId" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacyResourceGroup read_only_udm.security_result.detection_fields.legacyResourceGroup Mapeado diretamente do campo "legacyResourceGroup" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacyResourceProviderName read_only_udm.security_result.detection_fields.legacyResourceProviderName Mapeado diretamente do campo "legacyResourceProviderName" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacyResourceType read_only_udm.security_result.detection_fields.legacyResourceType Mapeado diretamente do campo "legacyResourceType" no objeto "properties" do objeto "data" no registro bruto.
data.properties.legacySubscriptionId read_only_udm.security_result.detection_fields.legacySubscriptionId Mapeado diretamente do campo "legacySubscriptionId" no objeto "properties" do objeto "data" no registro bruto.
data.properties.operationId read_only_udm.security_result.detection_fields.operationId Mapeado diretamente do campo "operationId" no objeto "properties" do objeto "data" no registro bruto.
data.properties.result read_only_udm.security_result.action_details Mapeado diretamente do campo "result" no objeto "properties" do objeto "data" no registro bruto.
data.properties.statusCode read_only_udm.network.http.response_code Mapeado diretamente do campo "statusCode" no objeto "properties" do objeto "data" no registro bruto.
data.properties.suspiciousCommandLine read_only_udm.target.process.command_line Mapeado diretamente do campo "suspiciousCommandLine" no objeto "properties" do objeto "data" no registro bruto.
data.properties.suspiciousProcess read_only_udm.target.process.file.full_path Mapeado diretamente do campo "suspiciousProcess" no objeto "properties" do objeto "data" no registro bruto.
data.properties.suspiciousProcessId read_only_udm.target.process.pid Mapeado diretamente do campo "suspiciousProcessId" no objeto "properties" do objeto "data" no registro bruto.
data.properties.tlsVersion read_only_udm.network.tls.version Mapeado diretamente do campo "tlsVersion" no objeto "properties" do objeto "data" no registro bruto.
data.properties.userAgent read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Mapeado diretamente do campo "userAgent" no objeto "properties" do objeto "data" no registro bruto.
data.properties.userAgentHeader read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Mapeado diretamente do campo "userAgentHeader" no objeto "properties" do objeto "data" no registro bruto.
data.properties.userId read_only_udm.target.user.product_object_id Mapeado diretamente do campo "userId" no objeto "properties" do objeto "data" no registro bruto.
data.ReleaseVersion read_only_udm.metadata.product_version Mapeado diretamente do campo "ReleaseVersion" no objeto "data" no registro bruto.
data.resourceId read_only_udm.target.resource.name Mapeado diretamente do campo "resourceId" no objeto "data" no registro bruto.
data.resourceType read_only_udm.additional.fields.resourceType Mapeado diretamente do campo "resourceType" no objeto "data" no registro bruto.
data.resultDescription read_only_udm.metadata.description Mapeado diretamente do campo "resultDescription" no objeto "data" no registro bruto.
data.resultSignature read_only_udm.additional.fields.resultSignature Mapeado diretamente do campo "resultSignature" no objeto "data" no registro bruto.
data.resultType read_only_udm.security_result.action_details, read_only_udm.additional.fields.resultType Mapeado diretamente do campo "resultType" no objeto "data" no registro bruto.
data.RoleLocation read_only_udm.target.location.name Mapeado diretamente do campo "RoleLocation" no objeto "data" no registro bruto.
data.time read_only_udm.metadata.event_timestamp O campo "time" no objeto "data" no registro bruto é analisado para extrair o carimbo de data/hora, que é mapeado para event_timestamp.
data.uri read_only_udm.network.http.referral_url Mapeado diretamente do campo "uri" no objeto "data" no registro bruto.
read_only_udm.extensions.auth.mechanism INTERACTIVE Defina como "INTERACTIVE" se o campo "isInteractive" no objeto "properties" do objeto "data" no registro bruto for "true". Caso contrário, será definido como "MECHANISM_OTHER".
read_only_udm.extensions.auth.type MACHINE Defina como "MACHINE" se o campo "category" no registro bruto for "NonInteractiveUserSignInLogs", "ManagedIdentitySignInLogs" ou "ServicePrincipalSignInLogs".
read_only_udm.metadata.log_type AZURE_ACTIVITY Fixado em "AZURE_ACTIVITY".
read_only_udm.metadata.vendor_name Microsoft Fixado em "Microsoft".
read_only_udm.principal.platform WINDOWS, MAC, LINUX, ANDROID Determinado com base no valor do campo "properties.test.deviceDetail.operatingSystem". Se ele contiver "Win", platform será definido como "WINDOWS". Se ele contiver "Mac", platform será definido como "MAC". Se ele contiver "Lin", platform será definido como "LINUX". Se ele contiver "Android", platform será definido como "ANDROID".
read_only_udm.principal.resource.type SERVICE_ACCOUNT, UNSPECIFIED Determinado com base no valor do campo "identity.authorization.evidence.principalType". Se for "ServicePrincipal", type será definido como "SERVICE_ACCOUNT". Caso contrário, será definido como "UNSPECIFIED".
read_only_udm.security_result.action ALLOW, BLOCK, UNKNOWN_ACTION Determinado com base nos valores dos campos "resultType", "status_errorcode" e "statusText". Se "resultType" for "Success", "success", "Succeeded", "Started", "Resolved", "Active", "Updated", "Start", "Accept", "Accepted", "0" ou se "status_errorcode" for 0 ou "statusText" for "Success", action será definido como "ALLOW". Se "resultType" for "Failure" ou "Failed", ou se "status_errorcode" não estiver vazio ou se "resultType" não estiver vazio, action será definido como "BLOCK". Caso contrário, será definido como "UNKNOWN_ACTION".
read_only_udm.target.cloud.environment MICROSOFT_AZURE Fixado em "MICROSOFT_AZURE".

Alterações

2024-07-10

  • Se "identity.authorization.evidence.principalType" for igual a "Group", mapeie "identity.authorization.evidence.principalId" para "principal.group.product_object_id".
  • Se "identity.authorization.evidence.principalType" for igual a "User" ou "ServicePrincipal", mapeie "identity.authorization.evidence.principalId" para "principal.user.product_object_id".
  • O gsub foi adicionado para mudar o campo "properties" para "properties.test" e o campo inicial "properties" foi removido.

2024-07-08

  • Mapeou "properties.compromisedEntity", "properties.attackedResourceType" e "properties.intent" para "target.resource.attribute.labels".
  • Mapeamos "properties.severity" para "security_result.severity".

2024-06-18

  • Quando "principal.user.userid" não está presente, o mapeamento de "metadata.event_type" muda de "USER_RESOURCE_ACCESS" para "GENERIC_EVENT".

2024-06-18

  • "operationVersion" foi mapeado para "metadata.product_version".
  • Mapeamos "properties.authenticationRequirementPolicies.requirementProvider" e "properties.authenticationRequirementPolicies.detail" para "security_result.detection_fields".
  • Mapeamos "properties.authenticationDetails.StatusSequence", "properties.correlationId", "properties.uniqueTokenIdentifier" e "properties.authenticationDetails.RequestSequence" para "security_result.detection_fields".
  • "properties.appDisplayName" foi mapeado para "target.application".
  • Mapeou "properties.conditionalAccessStatus", "properties.appliedConditionalAccessPolicies", "properties.authenticationContextClassReferences", "properties.signInTokenProtectionStatus", "properties.originalRequestId", "properties.authenticationProcessingDetails", "properties.clientCredentialType", "properties.processingTimeInMilliseconds", "properties.riskDetail", "properties.riskLevelAggregated", "properties.riskLevelDuringSignIn", "properties.riskState" e "properties.originalTransferMethod" para "additional.fields".
  • Mapeamos "properties.riskEventTypes", "properties.riskEventTypes_v2", "properties.homeTenantId", "properties.autonomousSystemNumber", "properties.autonomousSystemNumber" e "properties.privateLinkDetails" para "additional.fields".
  • Mapeou "properties.resourceId", "properties.resourceTenantId" e "properties.resourceServicePrincipalId" para "target.resource.attribute.labels".
  • "properties.userType" foi mapeado para "principal.user.attribute.roles".
  • "properties.userPrincipalName" foi associado a "principal.user.email_addresses".
  • "properties.clientAppUsed" foi mapeado para "principal.application".
  • "properties.deviceDetail.deviceId" foi associado a "principal.asset.asset_id" e "principal.asset_id".
  • "properties.appId" foi mapeado para "target.resource.attribute.labels".
  • "properties.status.additionalDetails" foi mapeado para "security_result.description".
  • "properties.responseBody.name" foi mapeado para "security_result.rule_name".
  • Mapeamos "properties.responseBody.properties.sourcePortRanges" e "properties.responseBody.properties.destinationPortRanges" para "additional.fields".
  • Quando "properties.responseBody.properties.sourceAddressPrefixes" é um único endereço IP, ele é mapeado para "principal.ip".
  • Quando "properties.responseBody.properties.sourceAddressPrefixes" é um intervalo de endereços IP, ele é mapeado para "additional.fields".
  • Quando "properties.responseBody.properties.sourceAddressPrefix" é um único endereço IP ou endereço IP com porta, ele é mapeado para "principal.ip" e "principal.port".
  • Quando "properties.responseBody.properties.sourceAddressPrefix" é um intervalo de endereços IP, ele é mapeado para "additional.fields".
  • Quando "properties.responseBody.properties.destinationAddressPrefixes" é um único endereço IP, ele é associado a "target.ip".
  • Quando "properties.responseBody.properties.destinationAddressPrefixes" é um intervalo de endereços IP, ele é associado a "additional.fields".
  • Quando "properties.responseBody.properties.destinationAddressPrefix" é um único endereço IP ou endereço IP com porta, ele é associado a "target.ip" e "target.port".
  • Quando "properties.responseBody.properties.destinationAddressPrefix" é um intervalo de endereços IP, ele é associado a "additional.fields".
  • Quando "properties.responseBody.properties.sourcePortRange" é uma única porta, ela é associada a "principal.port".
  • Quando "properties.responseBody.properties.sourcePortRange" é um intervalo de portas, ele é mapeado para "additional.fields".
  • Quando "properties.responseBody.properties.destinationPortRange" é uma única porta, ela é mapeada para "target.port".
  • Quando "properties.responseBody.properties.destinationPortRange" é um intervalo de portas, ele é associado a "additional.fields".
  • "properties.id" e "properties.status.errorCode" foram mapeados para "security_result.detection_fields".
  • "properties.isInteractive" foi mapeado para "extensions.auth.mechanism".
  • Quando "properties.deviceDetail.operatingSystem" é "ANDROID", "principal.platform" é mapeado para "ANDROID".

2024-06-03

  • Mapeamos "SUBSCRIPTIONS", "RESOURCEGROUPS", "STORAGEACCOUNTS", "PROVIDERS" e "SNAPSHOTS" de "resourceId" para "target.resource.attribute.labels".

2024-05-21

  • Se "identity.authorization.evidence.principalType" for igual a "Usuário", "Grupo" ou "Aplicativo", mapeie "principal.resource.type" para "NÃO ESPECIFICADO".
  • "identity.authorization.evidence.role" foi associado a "principal.user.role_name".
  • "identity.authorization.evidence.principalType" foi associado a "principal.resource.resource_subtype".
  • "identity.authorization.evidence.principalId" foi associado a "principal.user.product_object_id".
  • Mapeamos "identity.authorization.evidence.roleAssignmentId", "identity.authorization.evidence.roleAssignmentScope" e "identity.authorization.evidence.roleDefinitionId" para "principal.resource.attribute.labels".

2024-05-03

  • Quando "category" é "SignInLogs", "properties.userDisplayName" é mapeado para "principal.user.user_display_name".
  • Mapeamos "properties.requestbody.properties.priority" e "properties.response.properties.priority" para "security_result.detection_fields".
  • "properties.requestbody.properties.protocol" foi mapeado para "network.ip_protocol".
  • "properties.requestbody.properties.direction" foi mapeado para "network.direction".
  • "properties.response.properties.protocol" foi mapeado para "network.ip_protocol".
  • "properties.response.properties.direction" foi mapeado para "network.direction".
  • "properties.response.properties.destinationPortRange" foi mapeado para "target.port".

2024-04-26

  • "operationName.value" foi associado a "metadata.product_event_type".
  • Mapeou "category.value" para "security_result.category_details".
  • "httpRequest.uri" foi associado a "network.http.referral_url".
  • "httpRequest.method" foi mapeado para "network.http.method".
  • "httpRequest.clientIpAddress" foi associado a "principal.ip" e "principal.asset.ip".
  • "eventDataId" foi associado a "security_result.detection_fields".
  • "httpRequest.clientRequestId" foi associado a "additional.fields".

2024-04-16

  • Foi adicionado suporte para mapear "network.application_protocol" se "protocol" for conhecido. Caso contrário, "protocol" será mapeado para "additional.fields".

2024-04-12

  • "properties.requestbody.properties.allowBlobPublicAccess" foi mapeado para "security_result.detection_fields".

2024-04-10

  • "resourceId" foi mapeado para "target.resource.name".
  • Quando "resourceId" está presente, "targetResources.displayName", "identity", "Type" e "properties.resourceDisplayName" são mapeados para "target.resource.attribute.labels".

2024-03-29

  • "ResourceGUID" foi mapeado para "target.resource.product_object_id".
  • "Type" foi mapeado para "target.resource.name".
  • Mapeamos "ClientCity" para "principal.location.city".
  • "ClientCountryOrRegion" foi associado a "principal.location.country_or_region".
  • "ClientIP" foi mapeado para "principal.ip" e "principal.asset.ip".
  • "ClientStateOrProvince" foi associado a "principal.location.state".
  • "ClientType" foi mapeado para "principal.resource.attribute.labels".
  • "IKey" foi mapeado para "target.resource.attribute.labels".
  • "_BilledSize" e "DurationMs" foram mapeados para "additional.fields".
  • Mapeamos "OperationId", "SDKVersion" e "ItemCount" para "properties.operationId".
  • Mapeamos "ParentId", "Properties.WebtestLocationId", "Properties.FullTestResultAvailable", "Properties.SourceId", "Properties._MS_altIds", "Properties.WebtestArmResourceName", "Properties.SyntheticMonitorId" e "Success" para "security_result.detection_fields".
  • "Message" foi mapeado para "metadata.description".
  • "Id" foi mapeado para "principal.resource.product_object_id".
  • "Nome" foi mapeado para "principal.resource.name".

2024-03-25

  • Quando "category" é "ServicePrincipalSignInLogs" ou "NonInteractiveUserSigninLogs" ou "ManagedIdentitySignInLogs", mapeie "createdDateTime" para "metadata.event_timestamp".
  • Mapeou "properties.authenticationDetails.authenticationStepDateTime", "properties.authenticationDetails.authenticationMethod", "properties.authenticationDetails.authenticationStepResultDetail", "properties.authenticationDetails.authenticationStepRequirement", "properties.id" e "properties.resourceServicePrincipalId" para "security_result.detection_fields".
  • "properties.authenticationDetails.succeeded" foi associado a "security_result.action_details".

2024-03-25

  • Quando "properties.requestbody.Properties.RoleDefinitionId" não estiver vazio, defina "security_result.detection_fields.key" como "RequestBody roleDefinitionId".
  • Mapeamos "properties.roleDefinitionId", "properties.principalId", "properties.responseBody.properties.roleDefinitionId" e "properties.requestbody.Properties.PrincipalId" para "security_result.detection_fields".

2024-03-13

  • Mapeou "properties.requestbody.properties.roleDefinitionId" e "properties.requestbody.properties.principalId" para "security_result.detection_fields".

2024-03-05

  • "resultType" foi associado a "security_result.action_details".
  • "properties.requestbody.Properties.PrincipalId" foi mapeado para "principal.user.userid".
  • Quando "resultType" não está vazio, "properties.status.failureReason" é mapeado para "security_result.detection_fields".
  • Mapeou "properties.hardwareProfile.vmSize", "properties.provisioningState" e "properties.requestbody.Properties.RoleDefinitionId" para "security_result.detection_fields".

2024-02-13

Correção de bugs:

  • Quando "identity.UserName" for e-mail, mapeie para "principal.user.email_addresses". Caso contrário, mapeie para "principal.user.user_display_name".

2024-02-12

  • Adição de suporte a registros JSON que estão sendo descartados.
  • "OperationNameValue" foi associado a "metadata.product_event_type".
  • Mapeou "properties.eventDataId", "properties.subscriptionId", "properties.resourceGroup" e "properties.resourceProviderValue" para "security_result.detection_fields".
  • "Caller" foi associado a "principal.user.userid".
  • "ActivityStatusValue" foi associado a "security_result.action".

2024-02-01

  • Correção de bugs:
  • Quando o campo "category" tem o valor "NonInteractiveUserSignInLogs" ou "OperationName" é "Sign-in activity", mude "metadata.event_type" de "USER_LOGOUT" para "USER_LOGIN".
  • "properties.incomingTokenType" e "properties.deviceDetail.browser" foram mapeados para "additional.fields".
  • "properties.userAgent" foi associado a "network.http.user_agent".
  • Quando o valor "properties.userAgent" não existe, apenas "properties.deviceDetail.browser" é mapeado para "network.http.user_agent".
  • O "user_agent_field" analisado foi mapeado para "network.http.parsed_user_agent".
  • Mapeamos "properties.eventProperties.clientIPAddress" e "callerIpAddress" para "principal.asset.ip".
  • Mapeamos "hostname", "rscname" e "properties.eventProperties.compromisedHost" para "principal.asset.hostname".

2024-01-07

  • Correção de bugs:
  • Um padrão Grok foi adicionado para validar "callerIpAddress" como um endereço IP.
  • "properties.accountName" foi mapeado para "principal.user.userid".
  • "uri" foi associado a "network.http.refferal_url".
  • "properties.userAgentHeader" foi mapeado para "network.http.user_agent".
  • "properties.tlsVersion" foi mapeado para "network.tls.version".
  • "statusCode" foi associado a "network.http.response_code".
  • "protocol" foi mapeado para "network.application_protocol".
  • Mapeamos "properties.clientRequestId", "properties.etag", "properties.objectKey", "properties.responseMd5" e "resourceType" para "additional.fields".

2023-10-09

  • Foi adicionado suporte para analisar registros não analisados.
  • Renomeação dos seguintes campos:
  • De "OperationName" para "operationName".
  • De "CorrelationId" para "correlationId".
  • De "Categoria" para "categoria".
  • De "ResourceId" para "resourceId".
  • De "ResultType" para "resultType".
  • Mapeamos "ProviderName" e "ProviderGuid" para "security_result.detection_fields".
  • Mapeamos "ResultDescription" para "metadata.description".

2023-09-13

Melhoria:

  • "properties.eventCategory" foi mapeado para "security_result.detection_fields".
  • "opproperties.operationIderationName" foi associado a "security_result.detection_fields".
  • "properties.eventName" foi associado a "security_result.summary".
  • "properties.EventName" foi associado a "security_result.summary".
  • "properties.legacyResourceType" foi mapeado para "security_result.detection_fields".
  • "properties.CallerCredentialType" foi mapeado para "security_result.detection_fields".
  • "properties.EventChannel" foi mapeado para "security_result.detection_fields".
  • "properties.EventSource" foi associado a "security_result.detection_fields".
  • "properties.legacyResourceId" foi mapeado para "security_result.detection_fields".
  • "properties.eventProperties.User" foi associado a "principal.user.id" e "principal.user.email_addresses".
  • "properties.Caller" foi associado a "principal.user.id" e "principal.user.email_addresses".
  • "caller" foi associado a "principal.user.id" e "principal.user.email_addresses".
  • "properties.IpAddress" foi mapeado para "principal.ip".
  • "properties.Description_scrubbed" foi mapeado para "security_result.description".

2023-02-22

Melhoria:

  • "tenantId" foi mapeado para "metadata.product_deployment_id".
  • "operationName" foi associado a "metadata.product_event_type".
  • Mapeamos "category" para "security_result.category_details".
  • "callerIpAddress" foi mapeado para "principal.ip".
  • "identity" foi mapeado para "target.resource.name".
  • Mapeamos "result" para "security_result.action_details".
  • "properties.activityDisplayName" foi mapeado para "security_result.summary".
  • "location" foi mapeado para "principal.location.name".
  • "Nível" foi mapeado para "security_result.severity_details".
  • "properties.initiatedBy.app.displayName" foi mapeado para "principal.application".
  • "properties.targetResources.displayName" foi mapeado para "target.resource.name".
  • "properties.targetResources.id" foi mapeado para "target.resource.product_object_id".
  • "properties.targetResources.modifiedProperties.displayName" foi associado a "target.user.attribute.labels".
  • "properties.additionalDetails" foi mapeado para "additional.fields".
  • "properties.loggedByService" foi mapeado para "target.application".
  • "properties.userId" foi associado a "target.user.product_object_id".
  • "properties.resourceDisplayName" foi mapeado para "target.resource.name".
  • "properties.location.city" foi mapeado para "principal.location.city".
  • "properties.location.state" foi mapeado para "principal.location.state".
  • "properties.location.countryOrRegion" foi associado a "principal.location.country_or_region".
  • "properties.ipAddress" foi mapeado para "principal.ip".
  • "properties.location.geoCoordinates.latitude" foi mapeado para "principal.location.region_latitude".
  • "properties.location.geoCoordinates.longitude" foi mapeado para "principal.location.region_longitude".
  • "properties.servicePrincipalId" foi mapeado para "principal.user.userid".
  • "properties.servicePrincipalName" foi mapeado para "principal.user.user_display_name".
  • Mapeamos "properties.tokenIssuerType", "properties.authenticationProcessingDetails.0.value", "properties.operationType", "properties.authenticationRequirement" e "properties.deviceDetail.trustType" para "additional.fields".
  • "resultDescription" foi mapeado para "metadata.description".
  • "properties.userDisplayName" foi mapeado para "target.user.user_display_name".
  • "properties.appDisplayName" foi mapeado para "target.application".
  • "properties.userType" foi mapeado para "principal.user.attribute.roles".
  • "properties.status.failureReason" foi associado a "security_result.action_details".
  • "properties.deviceDetail.operatingSystem" foi mapeado para "principal.platform_version".
  • Mapeamos "properties.deviceDetail.displayName" para "principal.asset.hardware".
  • "properties.deviceDetail.browser" foi associado a "network.http.user_agent".
  • "properties.userPrincipalName" foi associado a "principal.user.email_addresses".

2022-11-28

Melhoria:

  • O campo "correlationId" foi mapeado para "security_result.detection_fields".
  • O campo "level" foi mapeado para "security_result.severity_details".
  • O seguinte mapeamento foi adicionado para a categoria "ResourceHealth" :
  • O campo "properties.legacyEventDataId" foi mapeado para "security_result.detection_fields".
  • O campo "properties.legacyChannels" foi mapeado para "security_result.detection_fields".
  • O campo "properties.legacySubscriptionId" foi mapeado para "security_result.detection_fields".
  • O campo "properties.legacyResourceGroup" foi mapeado para "security_result.detection_fields".
  • O campo "properties.legacyResourceProviderName" foi mapeado para "security_result.detection_fields".
  • O campo "properties.eventProperties.currentHealthStatus" foi mapeado para "security_result.detection_fields".
  • O campo "properties.eventProperties.previousHealthStatus" foi mapeado para "security_result.detection_fields".
  • O campo "properties.eventProperties.type" foi mapeado para "security_result.detection_fields".
  • O campo "properties.eventProperties.cause" foi mapeado para "security_result.detection_fields".

2022-09-26

Melhoria: campos adicionados.

  • "tenantId " foi mapeado para "metadata.product_deployment_id"

2022-06-20

Melhoria:

  • Foi adicionada uma verificação condicional para "entity_properties".
  • quando "category" for igual a "Security"
  • "properties.eventProperties.clientIPAddress" foi mapeado para "principal.ip".
  • "properties.eventProperties.accountSessionId" foi mapeado para "network.session_id".
  • "properties.eventProperties.suspiciousProcess" foi associado a "target.process.file.full_path".
  • "properties.eventProperties.suspiciousCommandLine" foi associado a "target.process.command_line".
  • "properties.eventProperties.suspiciousProcessId" foi associado a "target.process.pid".
  • "properties.eventProperties.compromisedHost" foi mapeado para "principal.hostname".
  • Mapeamos "resultDescription" para "metadata.description".
  • "properties.legacySubscriptionId" foi mapeado para "security_result.detection_fields".
  • "properties.legacyResourceProviderName" foi mapeado para "security_result.detection_fields".

2022-05-19

Melhoria: vários campos foram adicionados e modificados.

  • claims, Identity, aud, tenantid, principalId, action, appidacr, iat, exp, nbf, rh, uti, ver, xms_tcdt, principalType, roleAssignmentId, appid, aio, iss, nameidentifier, roleDefinitionId, scope mapped to security_result.detection_fields
  • resultSignature, resultType, hierarchy, resource_type, entity, mapeados para additional.fields.
  • RoleLocation mapeado para location.name.
  • categoria mapeada para security_result.category_details.