Coletar registros do Azure App Service

Compatível com:

Este documento explica como exportar registros do Azure App Service para o Google Security Operations usando uma conta de armazenamento do Azure. O analisador transforma os registros brutos formatados em JSON do Azure App Service em um modelo de dados unificado (UDM) estruturado. Ele extrai campos relevantes dos registros brutos, realiza a limpeza e a normalização de dados e mapeia as informações extraídas para os campos UDM correspondentes, gerando um objeto JSON compatível com a UDM para cada entrada de registro.

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 Serviços de app e selecione o serviço de app necessário.
  3. Selecione Monitoramento > Registros do serviço de app.
  4. Ative a Geração de registros de aplicativos (blob).
  5. Selecione Armazenamento em Gerar registros de serviço da Web.
  6. Selecione a Assinatura e a Conta de armazenamento.
  7. Defina o período de retenção e a cota de acordo com seus requisitos.
  8. Ative a opção ATIVADO para receber mensagens de erro detalhadas.
  9. Ative a opção Ativar para o Rastreamento de solicitações com falha.
  10. Clique em Salvar.

Configurar um feed no Google SecOps para processar os registros do Azure App Service

  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 do serviço de aplicativos do Azure).
  4. Selecione Armazenamento de Blobs do Microsoft Azure como o Tipo de origem.
  5. Selecione Azure APP Service 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, <logname>-logs)
    • 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 do UDM Lógica
AppRoleInstance read_only_udm.principal.resource.product_object_id Mapeamento direto
AppRoleName read_only_udm.principal.resource.name Mapeamento direto
AppVersion read_only_udm.principal.resource.attribute.labels.value Mapeamento direto
Categoria read_only_udm.metadata.product_event_type Mapeamento direto
CIp read_only_udm.target.asset.ip Mapeamento direto
CIp read_only_udm.target.ip Mapeamento direto
ClientCity read_only_udm.principal.location.city Mapeamento direto
ClientCountryOrRegion read_only_udm.principal.location.country_or_region Mapeamento direto
ClientIP read_only_udm.principal.asset.ip Mapeamento direto
ClientIP read_only_udm.principal.ip Mapeamento direto
ClientStateOrProvince read_only_udm.principal.location.state Mapeamento direto
ClientType read_only_udm.additional.fields.value.string_value Mapeamento direto
ComputerName read_only_udm.principal.asset.hostname Mapeamento direto
ComputerName read_only_udm.principal.hostname Mapeamento direto
Cookie read_only_udm.principal.resource.attribute.labels.value Mapeamento direto
CsBytes read_only_udm.network.sent_bytes Renomeado de CsBytes
CsHost read_only_udm.additional.fields.value.string_value Mapeamento direto
CsMethod read_only_udm.network.http.method Mapeamento direto
CsUriQuery read_only_udm.principal.resource.attribute.labels.value Mapeamento direto
CsUriStem read_only_udm.additional.fields.value.string_value Mapeamento direto
CsUriStem read_only_udm.target.url Mapeamento direto
CsUsername read_only_udm.principal.user.user_display_name Mapeamento direto
EventIpAddress read_only_udm.principal.asset.ip Mapeamento direto
EventIpAddress read_only_udm.principal.ip Mapeamento direto
EventPrimaryStampName read_only_udm.additional.fields.value.string_value Mapeamento direto
EventStampName read_only_udm.additional.fields.value.string_value Mapeamento direto
EventStampType read_only_udm.additional.fields.value.string_value Mapeamento direto
Host read_only_udm.principal.asset.hostname Mapeamento direto
Host read_only_udm.principal.hostname Mapeamento direto
IKey read_only_udm.target.resource.attribute.labels.value Mapeamento direto
Instância read_only_udm.additional.fields.value.string_value Mapeamento direto
Nome read_only_udm.additional.fields.value.string_value Mapeamento direto
Protocolo read_only_udm.additional.fields.value.string_value Mapeamento direto
Protocolo read_only_udm.network.application_protocol Mapeado para HTTP se o protocolo for HTTP/1.1
Referenciador read_only_udm.network.http.referral_url Mapeamento direto
ResourceGUID read_only_udm.target.resource.product_object_id Renomeado de ResourceGUID
SDKVersion read_only_udm.additional.fields.value.string_value Mapeamento direto
SDKVersion read_only_udm.principal.resource.attribute.labels.value Mapeamento direto
SPort read_only_udm.principal.port Renomeado de SPort
ScBytes read_only_udm.network.received_bytes Renomeado de ScBytes
ScStatus read_only_udm.network.http.response_code Renomeado de "ScStatus"
TimeTaken read_only_udm.additional.fields.value.string_value Mapeamento direto
Tipo read_only_udm.additional.fields.value.string_value Mapeamento direto
Usuário read_only_udm.principal.user.userid Mapeamento direto
UserAddress read_only_udm.principal.asset.ip Extraídos de UserAddress se for um endereço IP válido
UserAddress read_only_udm.principal.ip Extraídos de UserAddress se for um endereço IP válido
UserAgent read_only_udm.network.http.user_agent Mapeamento direto
UserDisplayName read_only_udm.principal.user.user_display_name Mapeamento direto
categoria read_only_udm.metadata.product_event_type Mapeamento direto
level read_only_udm.security_result.severity Nome mudado de "level" para maiúsculas
local read_only_udm.principal.location.name Mapeamento direto
operationName read_only_udm.additional.fields.value.string_value Mapeamento direto
record.properties.Protocol read_only_udm.additional.fields.value.string_value Mapeamento direto
record.properties.Result read_only_udm.security_result.summary Mapeamento direto
record.time read_only_udm.metadata.event_timestamp Analisado como carimbo de data/hora RFC 3339
resourceId read_only_udm.target.resource.attribute.labels.value Mapeamento direto
resourceId read_only_udm.target.resource.product_object_id Renomeado de resourceId
read_only_udm.metadata.event_type Determinado com base na presença do principal, do destino e do protocolo. Defina como NETWORK_HTTP se principal, destino e Protocol=HTTP estiverem presentes. Defina como NETWORK_CONNECTION se o principal e o destino estiverem presentes. Definido como STATUS_UPDATE se apenas o principal estiver presente. Caso contrário, defina como GENERIC_EVENT.

Alterações

2024-10-18

Melhoria:

  • Mapeamento de properties.XForwardedHost para principal.hostname e principal.asset.hostname.
  • properties_category foi mapeado para additional.fields.
  • properties.roleInstance foi mapeado para principal.resource.product_object_id.
  • properties.message foi mapeado para security_result.summary.

2024-09-30

Melhoria:

  • Foi adicionado suporte para analisar o novo formato de registros JSON não analisados.

2024-06-24

Melhoria:

  • Mapeamento de metadata.product_name e metadata.vendor_name para AZURE_APP_SERVICE.

2024-06-07

Melhoria:

  • Adicionado suporte a registros JSON quando eles não estão em um formato de matriz.
  • properties.ScSubStatus foi mapeado para additional.fields.
  • properties.ScWin32Status foi mapeado para additional.fields.

2024-04-25

Melhoria:

  • properties.User foi mapeado para principal.user.userid.
  • properties.UserDisplayName foi mapeado para principal.user.user_display_name.
  • properties.UserAddress foi mapeado para principal.ip.
  • Mapeamos properties.Protocol, ClientBrowser, ClientModel, ClientOS, OperationId, ParentId e ItemCount para additional.fields.
  • CsUriQuery, SDKVersion e Cookie foram mapeados para principal.resource.attribute.labels.
  • SessionId foi mapeado para network.session_id.
  • Message foi mapeado para security_result.summary.
  • SeverityLevel foi mapeado para security_result.severity_details.

2024-02-20

Melhoria:

  • record.AppRoleInstance foi mapeado para principal.resource.product_object_id.
  • record.AppRoleName foi mapeado para principal.resource.name.
  • record.ClientCity foi mapeado para principal.location.city.
  • record.ClientCountryOrRegion foi mapeado para principal.location.country_or_region.
  • record.ClientStateOrProvince foi mapeado para principal.location.state.
  • record.ClientIP foi mapeado para principal.ip.
  • Result foi mapeado para security_result.summary.
  • UserAgent foi mapeado para network.http.user_agent.
  • Referer foi mapeado para network.http.referral_url.
  • record.ResourceGUID foi mapeado para target.resource.product_object_id.
  • Se record.ResourceGUID não estiver presente, mapeie record.resourceId para target.resource.product_object_id.
  • Se record.ResourceGUID estiver presente, mapeie record.resourceId para additional.fields.
  • record.Type foi mapeado para additional.fields.
  • record.ClientType foi mapeado para additional.fields.
  • record.SDKVersion foi mapeado para additional.fields.
  • record.Name foi mapeado para additional.fields.
  • record.Instance foi mapeado para additional.fields.
  • record.TimeTaken foi mapeado para additional.fields.
  • record.Cookie foi mapeado para additional.fields.
  • record.AppVersion foi mapeado para principal.resource.attribute.labels.
  • record.IKey foi mapeado para target.resource.attribute.labels.
  • record.Category foi mapeado para metadata.product_event_type.
  • CsUriStem foi mapeado para target.url.
  • O mapeamento de CsBytes foi alterado de network.received_bytes para network.sent_bytes.
  • O mapeamento de ScBytes foi alterado de network.sent_bytes para network.received_bytes.

2023-12-07

  • Parser recém-criado.

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