Coletar registros do Azure Firewall
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
- No console do Azure, pesquise Contas de armazenamento.
- Clique em Criar.
- 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.
- Clique em Revisar + criar.
- Leia a visão geral da conta e clique em Criar.
- Na página Visão geral da conta de armazenamento, selecione o submenu Chaves de acesso em Segurança e rede.
- Clique em Mostrar ao lado de chave1 ou chave2.
- Clique em Copiar para a área de transferência para copiar a chave.
- Salve a chave em um local seguro para uso futuro.
- Na página Visão geral da conta de armazenamento, selecione o submenu Endpoints em Configurações.
- 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
). - Salve o URL do endpoint em um local seguro para uso futuro.
Configurar a exportação de registros para os logs do Azure Firewall
- Faça login no portal do Azure usando sua conta privilegiada.
- Acesse Firewalls e selecione o firewall necessário.
- Selecione Monitoramento > Serviços de diagnóstico.
- Clique em + Adicionar configuração de diagnóstico.
- Digite um nome descritivo para a configuração de diagnóstico.
- Selecione allLogs.
- Selecione a caixa de seleção Arquivar em uma conta de armazenamento como destino.
- Especifique a assinatura e a conta de armazenamento.
- Clique em Salvar.
Configurar um feed no Google SecOps para processar os registros do Azure Firewall
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Logs do Azure Firewall).
- Selecione Microsoft Azure Blob Storage como o Tipo de origem.
- Selecione Azure Firewall como o Tipo de registro.
- Clique em Próxima.
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.
- URI do Azure: o URL do endpoint do blob.
Clique em Próxima.
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
, osecurity_result.action
é mapeado paraALLOW
.
2024-11-13
Melhoria:
Action
foi mapeado parasecurity_result.detection_fields
.Signature
foi mapeado parasecurity_result.detection_fields
.IDS
foi mapeado parasecurity_result.detection_fields
.Priority
foi mapeado parasecurity_result.priority_details
.Classification
foi mapeado parasecurity_result.detection_fields
.
2024-09-04
Melhoria:
- Mapeou
from_ip
paradns.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 paraadditional.fields
.- Mapeamento de
Action
eproperties.Action
parasecurity_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 categoriaAzureFirewallNetworkRule
.
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.