Coletar registros do Azure Firewall

Compatível com:

Este documento explica como exportar logs do Azure Firewall para o Google Security Operations usando a conta de armazenamento do Azure. Primeiro, o analisador tenta processar a entrada como JSON, extraindo dados do campo Registros. Se o campo Record estiver vazio, o analisador usará uma série de padrões Grok e instruções condicionais para extrair campos relevantes da mensagem, processando diferentes formatos e variações nos logs do Azure Firewall.

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 logs do Azure Firewall

  1. Faça login no portal do Azure usando sua conta privilegiada.
  2. Acesse Firewalls e selecione o firewall necessário.
  3. Selecione Monitoramento > Serviços de diagnóstico.
  4. Clique em + Adicionar configuração de diagnóstico.
    • Digite um nome descritivo para a configuração de diagnóstico.
  5. Selecione allLogs.
  6. Selecione a caixa de seleção Arquivar em uma conta de armazenamento como destino.
    • Especifique a assinatura e a conta de armazenamento.
  7. Clique em Salvar.

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

  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 Azure Firewall).
  4. Selecione Microsoft Azure Blob Storage como o Tipo de origem.
  5. Selecione Azure Firewall 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.

Mapeamento do UDM

Campo de registro Mapeamento de UDM Lógica
@timestamp metadata.event_timestamp Converte o campo de registro bruto @timestamp para o formato UDM.
categoria security_result.rule_type Mapeia o campo de registro bruto category para a UDM.
operationName metadata.product_event_type Mapeia o campo de registro bruto operationName para a UDM.
properties.Action security_result.action Mapeia o campo de registro bruto properties.Action para a UDM, convertendo ALLOW em ALLOW, DENY em BLOCK e qualquer outro valor em UNKNOWN_ACTION.
properties.DestinationIp target.ip Mapeia o campo de registro bruto properties.DestinationIp para a UDM.
properties.DestinationPort target.port Mapeia o campo de registro bruto properties.DestinationPort para a UDM.
properties.DnssecOkBit additional.fields.value.bool_value Mapeia o campo de registro bruto properties.DnssecOkBit para a UDM.
properties.EDNS0BufferSize additional.fields.value.number_value Mapeia o campo de registro bruto properties.EDNS0BufferSize para a UDM.
properties.ErrorMessage additional.fields.value.string_value Mapeia o campo de registro bruto properties.ErrorMessage para a UDM.
properties.ErrorNumber additional.fields.value.number_value Mapeia o campo de registro bruto properties.ErrorNumber para a UDM.
properties.Policy security_result.detection_fields.value Mapeia o campo de registro bruto properties.Policy para a UDM.
properties.Protocol network.ip_protocol Mapeia o campo de registro bruto properties.Protocol para o UDM se ele não for HTTPS ou HTTP.
properties.Protocol network.application_protocol Mapeia o campo de registro bruto properties.Protocol para o UDM se ele for HTTPS ou HTTP.
properties.QueryClass network.dns.questions.class Mapeia o campo de registro bruto properties.QueryClass para a UDM usando uma tabela de pesquisa para mapear classes de consulta DNS.
properties.QueryId network.dns.id Mapeia o campo de registro bruto properties.QueryId para a UDM.
properties.QueryName network.dns.questions.name Mapeia o campo de registro bruto properties.QueryName para a UDM.
properties.QueryType network.dns.questions.type Mapeia o campo de registro bruto properties.QueryType para o UDM usando uma tabela de pesquisa para mapear tipos de registro DNS.
properties.RequestSize network.sent_bytes Mapeia o campo de registro bruto properties.RequestSize para a UDM.
properties.ResponseCode network.dns.response_code Mapeia o campo de registro bruto properties.ResponseCode para a UDM usando uma tabela de pesquisa para mapear códigos de resposta DNS.
properties.ResponseFlags additional.fields.value.string_value Mapeia o campo de registro bruto properties.ResponseFlags para a UDM.
properties.ResponseSize network.received_bytes Mapeia o campo de registro bruto properties.ResponseSize para a UDM.
properties.Rule security_result.rule_name Mapeia o campo de registro bruto properties.Rule para a UDM.
properties.RuleCollection security_result.detection_fields.value Mapeia o campo de registro bruto properties.RuleCollection para a UDM.
properties.RuleCollectionGroup security_result.detection_fields.value Mapeia o campo de registro bruto properties.RuleCollectionGroup para a UDM.
properties.SourceIp principal.ip Mapeia o campo de registro bruto properties.SourceIp para a UDM.
properties.SourcePort principal.port Mapeia o campo de registro bruto properties.SourcePort para a UDM.
properties.msg security_result.description Mapeia o campo de registro bruto properties.msg para o UDM depois de extrair outros campos dele.
records.category security_result.rule_type Mapeia o campo de registro bruto records.category para a UDM.
records.operationName metadata.product_event_type Mapeia o campo de registro bruto records.operationName para a UDM.
records.properties.msg Esse campo é usado para extrair vários campos usando padrões Grok e não tem um mapeamento direto para a UDM.
records.resourceId metadata.product_log_id Mapeia o campo de registro bruto records.resourceId para a UDM.
resourceId metadata.product_log_id Mapeia o campo de registro bruto resourceId para a UDM.
tempo metadata.event_timestamp Converte o campo de registro bruto time para o formato UDM.
metadata.vendor_name Esse campo é preenchido pelo analisador com o valor Microsoft Inc..
metadata.product_name Esse campo é preenchido pelo analisador com o valor Azure Firewall Application Rule.
metadata.log_type Esse campo é preenchido pelo analisador com o valor AZURE_FIREWALL.
additional.fields.key Esse campo é preenchido pelo analisador com a chave do campo adicional.
security_result.detection_fields.key Esse campo é preenchido pelo analisador com a chave do campo de detecção.
network.application_protocol Esse campo é preenchido pelo analisador com o valor DNS para registros DNS.
metadata.event_type Esse campo é preenchido pelo analisador com base na mensagem de registro. Pode ser NETWORK_CONNECTION, GENERIC_EVENT, STATUS_UPDATE ou NETWORK_DNS.

Alterações

2024-12-26

Correção de bugs:

  • Quando os registros contêm a palavra-chave Alert, o security_result.action é mapeado para ALLOW.

2024-11-13

Melhoria:

  • Action foi mapeado para security_result.detection_fields.
  • Signature foi mapeado para security_result.detection_fields.
  • IDS foi mapeado para security_result.detection_fields.
  • Priority foi mapeado para security_result.priority_details.
  • Classification foi mapeado para security_result.detection_fields.

2024-09-04

Melhoria:

  • Mapeou from_ip para dns.questions.name em eventos DNS.

2024-07-02

Melhoria:

  • Foi adicionado suporte para processar um novo formato de carimbo de data/hora.

2024-04-29

Melhoria:

  • Foi adicionado suporte para processar um novo formato de registros ingeridos.

2024-02-07

Melhoria:

  • ICMP type foi mapeado para additional.fields.
  • Mapeamento de Action e properties.Action para security_result.action_details.

2023-06-01

Melhoria:

  • Os registros JSON da categoria AZFWDnsQuery recém-ingeridos são analisados.
  • properties.msg mapeado em registros JSON recém-ingeridos da categoria AzureFirewallNetworkRule.

2022-04-29

Correção de bugs:

  • Os registros JSON recém-ingeridos são analisados para aumentar a porcentagem geral de análise.
  • operationName mapeado para metadata.product_event_type.
  • resourceId mapeado para metadata.product_log_id.

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