Receber registros de atividade do Microsoft Azure
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:
- No console do Azure, pesquise Contas de armazenamento.
- Clique em Criar.
- 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.
- Clique em Revisar + criar, revise a visão geral da conta e clique em Criar.
- Na página Visão geral da conta de armazenamento, selecione Chaves de acesso no painel de navegação à esquerda da janela.
- Clique em Mostrar chaves e anote a chave compartilhada da conta de armazenamento.
- Selecione Endpoints no menu de navegação à esquerda da janela.
- 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:
- No console do Azure, pesquise Monitor.
- Clique no link Registro de atividades no painel de navegação à esquerda da página.
- Clique em Exportar registros de atividade na parte de cima da janela.
- Clique em Adicionar configuração de diagnóstico.
- Selecione todas as categorias que você quer exportar para o Google Security Operations.
- Em Detalhes do destino, selecione Arquivar em uma conta de armazenamento.
- Selecione a assinatura e a conta de armazenamento que você criou na etapa anterior.
- 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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Add New.
- Insira um nome exclusivo para o Nome do campo.
- Selecione Microsoft Azure Blob Storage como o Tipo de origem.
- Selecione Atividade do Microsoft Azure como o tipo de registro.
- Clique em Próxima.
- 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.
- 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.