Coletar registros de login do Azure AD

Compatível com:

Este documento explica como exportar registros de login do Azure AD para o Google Security Operations usando uma conta de armazenamento do Azure. O analisador recebe registros brutos no formato JSON e os transforma em um formato estruturado compatível com o modelo de dados unificado (UDM, na sigla em inglês). Ele extrai campos relevantes, normaliza valores, processa carimbos de data/hora diferentes 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ê tem uma instância do Google SecOps.
  • Verifique se você tem um locatário do Azure ativo.
  • Verifique se você tem 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. Leia 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 e rede.
  7. Clique em Mostrar ao lado de chave1 ou chave2.
  8. Clique em Copiar para a área de transferência para copiar a chave.
  9. Salve a chave em um local seguro para uso futuro.
  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 Blob (por exemplo, https://<storageaccountname>.blob.core.windows.net).
  12. Salve o URL do endpoint em um local seguro para uso futuro.

Configurar a exportação de registros para os 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.
    • Digite um nome descritivo para a configuração de diagnóstico.
  4. Selecione Registros de login.
  5. Selecione a caixa de seleção Arquivar em uma conta de armazenamento como destino.
    • Especifique a assinatura e a conta de armazenamento.

Configurar um feed no Google SecOps para processar os registros de login do Azure

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, Logs de login do Azure).
  4. Selecione Microsoft Azure Blob Storage como o Tipo de origem.
  5. Selecione Login do Azure como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:

    • 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>)
    • URI é um: selecione o TIPO DE URI de acordo com a configuração do fluxo de registros (Arquivo único | Diretório | Diretório que inclui subdiretórios).
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.

    • Chave compartilhada: a chave de acesso ao Armazenamento de blobs do Azure.

    • Namespace de recursos: o namespace de recursos.

    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.

  8. Clique em Próxima.

  9. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento de 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 no registro bruto.
ConditionalAccessPolicies[].enforcedGrantControls[] read_only_udm.security_result.rule_labels.value Mapeado diretamente da matriz enforcedGrantControls dentro da 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 dentro da 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 no registro bruto.
ConditionalAccessPolicies[].Result read_only_udm.security_result.rule_labels.value Mapeado diretamente do campo Result na matriz ConditionalAccessPolicies no 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 são mapeados para INFORMATIONAL; Warning, 1 ou 3 são mapeados para MEDIUM; Error ou 2 são mapeados para ERROR; Critical são mapeados 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 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 no 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 no 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 no 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 no 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 no 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 no 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 ele 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.

Alterações

2024-05-07

  • Parser recém-criado

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