Carregue registos de atividade do Microsoft Azure
Este documento descreve os passos necessários para carregar registos de atividade do Microsoft Azure
(AZURE_ACTIVITY
) para o Google Security Operations.
Configure uma conta de armazenamento
Conclua os passos seguintes para configurar uma conta de armazenamento:
- Na consola do Azure, pesquise Contas de armazenamento.
- Clique em Criar.
- Selecione a subscrição, o grupo de recursos, a região, o desempenho (recomendamos o Standard) e a redundância (recomendamos o GRS ou o LRS) necessários para a conta e introduza um nome para a nova conta de armazenamento.
- Clique em Rever + criar, reveja a vista geral da conta e clique em Criar.
- Na página Vista geral da conta de armazenamento, selecione Chaves de acesso na navegação do lado esquerdo da janela.
- Clique em Mostrar chaves e tome nota da chave partilhada da conta de armazenamento.
- Selecione Endpoints na navegação do lado esquerdo da janela.
- Tome nota do ponto final do serviço Blob. (https://<storageaccountname>.blob.core.windows.net/)
Configure o registo de atividade do Azure
Conclua os passos seguintes para configurar o registo de atividade do Azure:
- Na consola do Azure, pesquise Monitor.
- Clique no link Registo de atividade na navegação do lado esquerdo da página.
- Clique em Exportar registos de atividade na parte superior da janela.
- Clique em Adicionar definição de diagnóstico.
- Selecione todas as categorias que quer exportar para o Google SecOps.
- Em Detalhes do destino, selecione Arquivar numa conta de armazenamento.
- Selecione a subscrição e a conta de armazenamento que criou no passo anterior.
- Clique em Guardar.
Configure feeds
Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:
- Definições do SIEM > Feeds > Adicionar novo
- Content Hub > Pacotes de conteúdo > Começar
Como configurar o feed de atividade do Microsoft Azure
- Clique no pacote Plataforma Azure.
- Localize o Feed de atividade do Microsoft Azure.
Especifique valores para os seguintes campos:
- Source Type: Microsoft Azure Blob Storage V2
- URI do Azure: introduza o valor do ponto final do serviço de blobs que registou anteriormente, com o sufixo insights-activity-logs (por exemplo, https://acme-azure-chronicle.blob.core.windows.net/insights-activity-logs)
- Opção de eliminação da origem: especifique se pretende eliminar ficheiros e diretórios após a transferência.
- Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias.
- Chave partilhada: introduza o valor da chave partilhada que capturou anteriormente.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Espaço de nomes do recurso: espaço de nomes associado ao feed.
- Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
Clique em Criar feed.
Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.
Referência de mapeamento de campos
Este código do analisador inicializa primeiro um grande número de campos para strings vazias e, em seguida, executa uma série de manipulações de strings e operações de análise JSON para extrair informações relevantes da mensagem do registo de atividade do Azure. Por último, mapeia os dados extraídos para os campos do modelo de dados unificado (UDM), categorizando o tipo de evento e enriquecendo-o com detalhes adicionais, como a gravidade, as informações principais e os dados de rede.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
categoria | read_only_udm.security_result.category_details |
Mapeado diretamente a partir do campo "category" no registo não processado. |
callerIpAddress | read_only_udm.principal.asset.ip , read_only_udm.principal.ip |
Mapeado diretamente a partir do campo "callerIpAddress" no registo não processado. |
correlationId | read_only_udm.security_result.detection_fields.correlationId |
Mapeado diretamente a partir do campo "correlationId" no registo não processado. |
data.callerIpAddress | read_only_udm.principal.asset.ip , read_only_udm.principal.ip |
Mapeado diretamente a partir do campo "callerIpAddress" no objeto "data" no registo não processado. |
data.correlationId | read_only_udm.security_result.detection_fields.correlationId |
Mapeado diretamente a partir do campo "correlationId" no objeto "data" no registo não processado. |
data.DeploymentUnit | read_only_udm.target.resource.name |
Mapeado diretamente a partir do campo "DeploymentUnit" no objeto "data" no registo não processado. |
data.details | read_only_udm.metadata.description |
Mapeado diretamente a partir do campo "details" no objeto "data" no registo não processado, apenas se o campo "details" não for "Unknown". |
data.entity | read_only_udm.additional.fields.entity |
Mapeado diretamente a partir do campo "entity" no objeto "data" no registo não processado. |
data.EventName | read_only_udm.metadata.product_event_type |
Mapeado diretamente a partir do campo "EventName" no objeto "data" no registo não processado. |
data.hierarchy | read_only_udm.additional.fields.hierarchy |
Mapeado diretamente a partir do campo "hierarchy" no objeto "data" no registo não processado. |
data.identity.authorization.action | read_only_udm.security_result.detection_fields.action |
Mapeado diretamente a partir do campo "action" no objeto "authorization" do objeto "identity" no registo não processado. |
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 a partir do campo "principalId" no objeto "evidence" do objeto "authorization" do objeto "identity" no registo não processado. O campo UDM específico ao qual é mapeado depende do valor do campo "principalType". Se "principalType" for "User" ou "ServicePrincipal", é mapeado para principal.user.product_object_id . Se "principalType" for "Group", é mapeado para principal.group.product_object_id . Se "principalType" for "ServicePrincipal", é mapeado para principal.resource.product_object_id . |
data.identity.authorization.evidence.principalType | read_only_udm.principal.resource.resource_subtype |
Mapeado diretamente a partir do campo "principalType" no objeto "evidence" do objeto "authorization" do objeto "identity" no registo não processado. |
data.identity.authorization.evidence.role | read_only_udm.principal.user.role_name |
Mapeado diretamente a partir do campo "role" no objeto "evidence" do objeto "authorization" do objeto "identity" no registo não processado. |
data.identity.authorization.evidence.roleAssignmentId | read_only_udm.principal.resource.attribute.labels.roleAssignmentId |
Mapeado diretamente a partir do campo "roleAssignmentId" no objeto "evidence" do objeto "authorization" do objeto "identity" no registo não processado. |
data.identity.authorization.evidence.roleAssignmentScope | read_only_udm.principal.resource.attribute.labels.roleAssignmentScope |
Mapeado diretamente a partir do campo "roleAssignmentScope" no objeto "evidence" do objeto "authorization" do objeto "identity" no registo não processado. |
data.identity.authorization.evidence.roleDefinitionId | read_only_udm.principal.resource.attribute.labels.roleDefinitionId |
Mapeado diretamente a partir do campo "roleDefinitionId" no objeto "evidence" do objeto "authorization" do objeto "identity" no registo não processado. |
data.identity.authorization.scope | read_only_udm.security_result.detection_fields.scope |
Mapeado diretamente a partir do campo "scope" no objeto "authorization" do objeto "identity" no registo não processado. |
data.identity.claims.aio | read_only_udm.security_result.detection_fields.aio |
Mapeado diretamente a partir do campo "aio" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.appid | read_only_udm.security_result.detection_fields.appid |
Mapeado diretamente a partir do campo "appid" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.appidacr | read_only_udm.security_result.detection_fields.appidacr |
Mapeado diretamente a partir do campo "appidacr" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.aud | read_only_udm.security_result.detection_fields.aud |
Mapeado diretamente a partir do campo "aud" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.exp | read_only_udm.security_result.detection_fields.exp |
Mapeado diretamente a partir do campo "exp" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.http://schemas.microsoft.com/identity/claims/identityprovider |
read_only_udm.security_result.detection_fields.identityprovider |
Mapeado diretamente a partir do campo "http://schemas.microsoft.com/identity/claims/identityprovider" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.http://schemas.microsoft.com/identity/claims/objectidentifier |
read_only_udm.security_result.detection_fields.objectidentifier |
Mapeado diretamente a partir do campo "http://schemas.microsoft.com/identity/claims/objectidentifier" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.http://schemas.microsoft.com/identity/claims/tenantid |
read_only_udm.security_result.detection_fields.tenantid |
Mapeado diretamente a partir do campo "http://schemas.microsoft.com/identity/claims/tenantid" no objeto "claims" do objeto "identity" no registo não processado. |
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 registo não processado. |
data.identity.claims.iat | read_only_udm.security_result.detection_fields.iat |
Mapeado diretamente a partir do campo "iat" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.iss | read_only_udm.security_result.detection_fields.iss |
Mapeado diretamente a partir do campo "iss" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.nbf | read_only_udm.security_result.detection_fields.nbf |
Mapeado diretamente a partir do campo "nbf" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.rh | read_only_udm.security_result.detection_fields.rh |
Mapeado diretamente a partir do campo "rh" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.uti | read_only_udm.security_result.detection_fields.uti |
Mapeado diretamente a partir do campo "uti" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.ver | read_only_udm.security_result.detection_fields.ver |
Mapeado diretamente a partir do campo "ver" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.claims.xms_tcdt | read_only_udm.security_result.detection_fields.xms_tcdt |
Mapeado diretamente a partir do campo "xms_tcdt" no objeto "claims" do objeto "identity" no registo não processado. |
data.identity.UserName | read_only_udm.principal.user.user_display_name |
Mapeado diretamente a partir do campo "UserName" no objeto "identity" no registo não processado. |
data.level | read_only_udm.security_result.severity , read_only_udm.security_result.severity_details |
Mapeado diretamente a partir do campo "level" no objeto "data" no registo não processado. O campo "level" também é usado para determinar o valor do campo severity . Se o "nível" for "Informações" ou "Informativo", severity é definido como "INFORMATIONAL". Se "level" for "Warning", severity é definido como "MEDIUM". Se "level" for "Error", severity é definido como "ERROR". Se "level" for "Critical", severity é definido como "CRITICAL". |
data.location | read_only_udm.target.location.name |
Mapeado diretamente a partir do campo "location" no objeto "data" no registo não processado. |
data.operationName | read_only_udm.metadata.product_event_type |
Mapeado diretamente a partir do campo "operationName" no objeto "data" no registo não processado. |
data.properties.EventChannel | read_only_udm.additional.fields.properties EventChannel |
Mapeado diretamente a partir do campo "EventChannel" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.EventSource | read_only_udm.additional.fields.properties EventSource |
Mapeado diretamente a partir do campo "EventSource" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.EventId | read_only_udm.metadata.product_log_id |
Mapeado diretamente a partir do campo "EventId" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.cause | read_only_udm.security_result.detection_fields.cause |
Mapeado diretamente a partir do campo "cause" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.clientIPAddress | read_only_udm.principal.asset.ip , read_only_udm.principal.ip |
Mapeado diretamente a partir do campo "clientIPAddress" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.compromisedHost | read_only_udm.principal.asset.hostname , read_only_udm.principal.hostname |
Mapeado diretamente a partir do campo "compromisedHost" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.currentHealthStatus | read_only_udm.security_result.detection_fields.currentHealthStatus |
Mapeado diretamente a partir do campo "currentHealthStatus" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.previousHealthStatus | read_only_udm.security_result.detection_fields.previousHealthStatus |
Mapeado diretamente a partir do campo "previousHealthStatus" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.type | read_only_udm.security_result.detection_fields.type |
Mapeado diretamente a partir do campo "type" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.User | read_only_udm.principal.user.userid |
Mapeado diretamente a partir do campo "User" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado. |
data.properties.eventProperties.userName | read_only_udm.principal.user.user_display_name |
Mapeado diretamente a partir do campo "userName" no objeto "eventProperties" do objeto "properties" do objeto "data" no registo não processado, após remover o prefixo "SECURE\". |
data.properties.ipAddress | read_only_udm.principal.asset.ip , read_only_udm.principal.ip |
Mapeado diretamente a partir do campo "ipAddress" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacyChannels | read_only_udm.security_result.detection_fields.legacyChannels |
Mapeado diretamente a partir do campo "legacyChannels" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacyEventDataId | read_only_udm.security_result.detection_fields.legacyEventDataId |
Mapeado diretamente a partir do campo "legacyEventDataId" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacyResourceId | read_only_udm.security_result.detection_fields.legacyResourceId |
Mapeado diretamente a partir do campo "legacyResourceId" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacyResourceGroup | read_only_udm.security_result.detection_fields.legacyResourceGroup |
Mapeado diretamente a partir do campo "legacyResourceGroup" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacyResourceProviderName | read_only_udm.security_result.detection_fields.legacyResourceProviderName |
Mapeado diretamente a partir do campo "legacyResourceProviderName" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacyResourceType | read_only_udm.security_result.detection_fields.legacyResourceType |
Mapeado diretamente a partir do campo "legacyResourceType" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.legacySubscriptionId | read_only_udm.security_result.detection_fields.legacySubscriptionId |
Mapeado diretamente a partir do campo "legacySubscriptionId" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.operationId | read_only_udm.security_result.detection_fields.operationId |
Mapeado diretamente a partir do campo "operationId" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.result | read_only_udm.security_result.action_details |
Mapeado diretamente a partir do campo "result" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.statusCode | read_only_udm.network.http.response_code |
Mapeado diretamente a partir do campo "statusCode" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.suspiciousCommandLine | read_only_udm.target.process.command_line |
Mapeado diretamente a partir do campo "suspiciousCommandLine" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.suspiciousProcess | read_only_udm.target.process.file.full_path |
Mapeado diretamente a partir do campo "suspiciousProcess" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.suspiciousProcessId | read_only_udm.target.process.pid |
Mapeado diretamente a partir do campo "suspiciousProcessId" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.tlsVersion | read_only_udm.network.tls.version |
Mapeado diretamente a partir do campo "tlsVersion" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.userAgent | read_only_udm.network.http.user_agent , read_only_udm.network.http.parsed_user_agent |
Mapeado diretamente a partir do campo "userAgent" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.userAgentHeader | read_only_udm.network.http.user_agent , read_only_udm.network.http.parsed_user_agent |
Mapeado diretamente a partir do campo "userAgentHeader" no objeto "properties" do objeto "data" no registo não processado. |
data.properties.userId | read_only_udm.target.user.product_object_id |
Mapeado diretamente a partir do campo "userId" no objeto "properties" do objeto "data" no registo não processado. |
data.ReleaseVersion | read_only_udm.metadata.product_version |
Mapeado diretamente a partir do campo "ReleaseVersion" no objeto "data" no registo não processado. |
data.resourceId | read_only_udm.target.resource.name |
Mapeado diretamente a partir do campo "resourceId" no objeto "data" no registo não processado. |
data.resourceType | read_only_udm.additional.fields.resourceType |
Mapeado diretamente a partir do campo "resourceType" no objeto "data" no registo não processado. |
data.resultDescription | read_only_udm.metadata.description |
Mapeado diretamente a partir do campo "resultDescription" no objeto "data" no registo não processado. |
data.resultSignature | read_only_udm.additional.fields.resultSignature |
Mapeado diretamente a partir do campo "resultSignature" no objeto "data" no registo não processado. |
data.resultType | read_only_udm.security_result.action_details , read_only_udm.additional.fields.resultType |
Mapeado diretamente a partir do campo "resultType" no objeto "data" no registo não processado. |
data.RoleLocation | read_only_udm.target.location.name |
Mapeado diretamente a partir do campo "RoleLocation" no objeto "data" no registo não processado. |
data.time | read_only_udm.metadata.event_timestamp |
O campo "time" no objeto "data" no registo não processado é analisado para extrair a indicação de tempo, que é, em seguida, mapeada para event_timestamp . |
data.uri | read_only_udm.network.http.referral_url |
Mapeado diretamente a partir do campo "uri" no objeto "data" no registo não processado. |
read_only_udm.extensions.auth.mechanism |
INTERACTIVE |
Definido como "INTERACTIVE" se o campo "isInteractive" no objeto "properties" do objeto "data" no registo não processado for "true". Caso contrário, é definido como "MECHANISM_OTHER". |
read_only_udm.extensions.auth.type |
MACHINE |
Definido como "MACHINE" se o campo "category" no registo não processado for "NonInteractiveUserSignInLogs", "ManagedIdentitySignInLogs" ou "ServicePrincipalSignInLogs". |
read_only_udm.metadata.log_type |
AZURE_ACTIVITY |
Codificado de forma rígida como "AZURE_ACTIVITY". |
read_only_udm.metadata.vendor_name |
Microsoft |
Codificado de forma rígida para "Microsoft". |
read_only_udm.principal.platform |
WINDOWS , MAC , LINUX , ANDROID |
Determinado com base no valor do campo "properties.test.deviceDetail.operatingSystem". Se contiver "Win", platform é definido como "WINDOWS". Se contiver "Mac", platform é definido como "MAC". Se contiver "Lin", platform é definido como "LINUX". Se contiver "Android", platform é 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 é definido como "SERVICE_ACCOUNT". Caso contrário, é 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 um de "Success", "success", "Succeeded", "Started", "Resolved", "Active", "Updated", "Start", "Accept", "Accepted", "0", ou se "status_errorcode" for 0, ou se "statusText" for "Success", action é definido como "ALLOW". Se "resultType" for "Failure", "Failed", se "status_errorcode" não estiver vazio ou se "resultType" não estiver vazio, action é definido como "BLOCK". Caso contrário, é definido como "UNKNOWN_ACTION". |
read_only_udm.target.cloud.environment |
MICROSOFT_AZURE |
Codificado de forma rígida como "MICROSOFT_AZURE". |