Coletar registros de login do Azure AD

Compatível com:

Este documento explica como exportar registros de entrada do Azure AD para o Google Security Operations usando uma conta de armazenamento do Azure. O analisador usa registros brutos no formato JSON e os transforma em um formato estruturado compatível com o modelo de dados unificado (UDM). Ele extrai campos relevantes, normaliza valores, processa diferentes carimbos de data/hora e enriquece os dados com contexto relacionado à segurança, como informações do usuário, endereços IP e políticas de acesso condicional.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

  • Instância do Google SecOps
  • Um locatário ativo do Azure
  • Acesso privilegiado ao Azure

Configurar a conta de armazenamento do Azure

  1. No console do Azure, pesquise Contas de armazenamento.
  2. Clique em + Criar.
  3. Especifique valores para os seguintes parâmetros de entrada:
    • Assinatura: selecione a assinatura.
    • Grupo de recursos: selecione o grupo de recursos.
    • Região: selecione a região.
    • Performance: selecione a performance (padrão recomendado).
    • Redundância: selecione a redundância (GRS ou LRS recomendado).
    • Nome da conta de armazenamento: insira um nome para a nova conta de armazenamento.
  4. Clique em Revisar + criar.
  5. Revise a visão geral da conta e clique em Criar.
  6. Na página Visão geral da conta de armazenamento, selecione o submenu Chaves de acesso em Segurança + rede.
  7. Clique em Mostrar ao lado de key1 ou key2.
  8. Clique em Copiar para a área de transferência para copiar a chave.
  9. Salve a chave em um local seguro para uso posterior.
  10. Na página Visão geral da conta de armazenamento, selecione o submenu Endpoints em Configurações.
  11. Clique em Copiar para a área de transferência para copiar o URL do endpoint do serviço de blob. Por exemplo, https://<storageaccountname>.blob.core.windows.net.
  12. Salve o URL do endpoint em um local seguro para uso posterior.

Como configurar a exportação de registros para registros de login do Azure AD

  1. Faça login no portal do Azure usando sua conta privilegiada.
  2. Acesse Microsoft Entra ID > Monitoramento > Configurações de diagnóstico.
  3. Clique em Adicionar configuração de diagnóstico.
    • Insira um nome descritivo para a configuração de diagnóstico.
  4. Selecione Registros de login.
  5. Marque a caixa de seleção Arquivar em uma conta de armazenamento como destino.
    • Especifique a Assinatura e a Conta de armazenamento.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds > Adicionar novo feed
  • Central de conteúdo > Pacotes de conteúdo > Começar

Como configurar o feed de login do Azure AD

  1. Clique no pacote Plataforma do Azure.
  2. Localize o tipo de registro Login do Azure AD.
  3. Especifique valores para os seguintes campos:

    • Tipo de origem: armazenamento de blobs V2 do Microsoft Azure.
    • URI do Azure: o URL do endpoint do blob.
      • ENDPOINT_URL/BLOB_NAME
        • Substitua:
          • ENDPOINT_URL: o URL do endpoint do blob (https://<storageaccountname>.blob.core.windows.net)
          • BLOB_NAME: o nome do blob (por exemplo, insights-logs-<logname>)
    • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.

    • Idade máxima do arquivo: arquivos modificados nos últimos dias. O padrão é de 180 dias.

    • Chave compartilhada: a chave de acesso ao Azure Blob Storage.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Namespace do recurso: namespace associado ao feed.
    • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre como configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
AppDisplayName read_only_udm.target.application Mapeado diretamente do campo AppDisplayName no registro bruto.
AppId read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo AppId no registro bruto. A chave está definida como appId.
Categoria read_only_udm.security_result.category_details Mapeado diretamente do campo Category no registro bruto.
ConditionalAccessPolicies[].displayName read_only_udm.security_result.rule_name Mapeado diretamente do campo displayName na matriz ConditionalAccessPolicies do registro bruto.
ConditionalAccessPolicies[].enforcedGrantControls[] read_only_udm.security_result.rule_labels.value Mapeado diretamente da matriz enforcedGrantControls na matriz ConditionalAccessPolicies no registro bruto. A chave está definida como applied_conditional_access_policies_enforced_grant_controls.
ConditionalAccessPolicies[].enforcedSessionControls[] read_only_udm.security_result.rule_labels.value Mapeado diretamente da matriz enforcedSessionControls na matriz ConditionalAccessPolicies no registro bruto. A chave está definida como applied_conditional_access_policies_enforced_session_controls.
ConditionalAccessPolicies[].id read_only_udm.security_result.rule_id Mapeado diretamente do campo id na matriz ConditionalAccessPolicies do registro bruto.
ConditionalAccessPolicies[].Result read_only_udm.security_result.rule_labels.value Mapeado diretamente do campo Result na matriz ConditionalAccessPolicies do registro bruto. A chave está definida como applied_conditional_access_policies_result.
ConditionalAccessStatus read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo ConditionalAccessStatus no registro bruto. A chave está definida como conditionalAccessStatus.
CorrelationId read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo CorrelationId no registro bruto. A chave está definida como correlationId.
DurationMs read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo DurationMs no registro bruto. A chave está definida como durationMs.
HomeTenantId read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo HomeTenantId no registro bruto. A chave está definida como HomeTenantId.
IPAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mapeado diretamente do campo IPAddress no registro bruto.
ID read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo Id no registro bruto. A chave está definida como id.
Identidade read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo Identity no registro bruto. A chave está definida como identity.
Nível read_only_udm.security_result.severity, read_only_udm.security_result.severity_details Mapeado diretamente do campo Level no registro bruto. A gravidade é determinada com base no valor de Level: Information, Informational, 0 ou 4 mapeiam para INFORMATIONAL; Warning, 1 ou 3 mapeiam para MEDIUM; Error ou 2 mapeiam para ERROR; Critical mapeia para CRITICAL.
OperationName read_only_udm.metadata.product_event_type Mapeado diretamente do campo OperationName no registro bruto.
ResourceGroup read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo ResourceGroup no registro bruto. A chave está definida como ResourceGroup.
ResultSignature read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo ResultSignature no registro bruto. A chave está definida como resultSignature.
ResultType read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo ResultType no registro bruto. A chave está definida como resultType.
TenantId read_only_udm.metadata.product_deployment_id Mapeado diretamente do campo TenantId no registro bruto.
TimeGenerated read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos Mapeado diretamente do campo TimeGenerated no registro bruto. O campo é analisado como um carimbo de data/hora e usado para preencher os campos seconds e nanos.
TokenIssuerType read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo TokenIssuerType no registro bruto. A chave está definida como TokenIssuerType.
UniqueTokenIdentifier read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo UniqueTokenIdentifier no registro bruto. A chave está definida como UniqueTokenIdentifier.
UserAgent read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Mapeado diretamente do campo UserAgent no registro bruto. O campo é analisado como uma string de user agent e usado para preencher o objeto parsed_user_agent.
UserDisplayName read_only_udm.target.user.user_display_name Mapeado diretamente do campo UserDisplayName no registro bruto.
UserId read_only_udm.target.user.userid Mapeado diretamente do campo UserId no registro bruto.
UserPrincipalName read_only_udm.target.user.email_addresses Mapeado diretamente do campo UserPrincipalName no registro bruto, mas somente se ele corresponder ao padrão de endereço de e-mail.
UserType read_only_udm.target.user.attribute.roles.name Mapeado diretamente do campo UserType no registro bruto.
_Internal_WorkspaceResourceId read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo _Internal_WorkspaceResourceId no registro bruto. A chave está definida como Internal_WorkspaceResourceId.
_ItemId read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo _ItemId no registro bruto. A chave está definida como ItemId.
properties.appId read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo appId no objeto properties no registro bruto. A chave está definida como appId.
properties.authenticationDetails[].authenticationMethod read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo authenticationMethod na matriz authenticationDetails do registro bruto. A chave está definida como authenticationMethod.
properties.authenticationDetails[].authenticationMethodDetail read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo authenticationMethodDetail na matriz authenticationDetails do registro bruto. A chave está definida como authenticationMethodDetail.
properties.authenticationDetails[].authenticationStepDateTime read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo authenticationStepDateTime na matriz authenticationDetails do registro bruto. A chave está definida como authenticationStepDateTime.
properties.authenticationDetails[].authenticationStepRequirement read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo authenticationStepRequirement na matriz authenticationDetails do registro bruto. A chave está definida como authenticationStepRequirement.
properties.authenticationDetails[].authenticationStepResultDetail read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo authenticationStepResultDetail na matriz authenticationDetails do registro bruto. A chave está definida como authenticationStepResultDetail.
properties.authenticationDetails[].succeeded read_only_udm.security_result.action, read_only_udm.security_result.action_details Mapeado diretamente do campo succeeded na matriz authenticationDetails do registro bruto. Se o valor for true, a ação será definida como ALLOW. Caso contrário, será definida como BLOCK.
properties.conditionalAccessStatus read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo conditionalAccessStatus no objeto properties no registro bruto. A chave está definida como conditionalAccessStatus.
properties.id read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo id no objeto properties no registro bruto. A chave está definida como id.
properties.status.errorCode read_only_udm.security_result.action Se o valor for 0, a ação será definida como ALLOW. Caso contrário, será definida como BLOCK.
properties.userId read_only_udm.target.user.userid Mapeado diretamente do campo userId no objeto properties no registro bruto.
properties.userPrincipalName read_only_udm.target.user.email_addresses Mapeado diretamente do campo userPrincipalName no objeto properties no registro bruto, mas somente se corresponder ao padrão de endereço de e-mail.
resourceId read_only_udm.target.resource.name Mapeado diretamente do campo resourceId no registro bruto.
tempo read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos Mapeado diretamente do campo time no registro bruto. O campo é analisado como um carimbo de data/hora e usado para preencher os campos seconds e nanos.
read_only_udm.extensions.auth.type O valor é definido como AUTHTYPE_UNSPECIFIED.
read_only_udm.metadata.event_type O valor é determinado com base na presença dos campos principal.ip e target.user.userid: se ambos estiverem presentes, o tipo será definido como USER_LOGIN; se apenas principal.ip estiver presente, o tipo será definido como STATUS_UPDATE; caso contrário, será definido como GENERIC_EVENT.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.