Recolha registos do WAF da Cloudflare
Este analisador extrai campos dos registos JSON da firewall de aplicações Web (WAF) da Cloudflare, transforma-os e mapeia-os para o modelo de dados unificado (UDM). Processa várias ações do Cloudflare, enriquecendo os dados com metadados e informações de rede antes de estruturar o resultado no formato UDM.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado a Google Cloud.
- Plano Enterprise da Cloudflare.
- Acesso privilegiado à Cloudflare.
Crie um Google Cloud contentor de armazenamento
- Inicie sessão na Google Cloud consola.
Aceda à página Contentores do Cloud Storage.
Clique em Criar.
Configure o contentor:
- Nome: introduza um nome exclusivo que cumpra os requisitos do nome do contentor (por exemplo, cloudflare-waf).
- Escolha onde quer armazenar os seus dados: selecione uma localização.
- Escolha uma classe de armazenamento para os seus dados: selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento.
- Escolha como controlar o acesso aos objetos: selecione não para aplicar a prevenção de acesso público e selecione um modelo de controlo de acesso para os objetos do seu contentor.
- Classe de armazenamento: escolha com base nas suas necessidades (por exemplo, Standard).
Clique em Criar.
Conceda autorizações de contentor ao utilizador do IAM da Cloudflare
- No Google Cloud, aceda a Armazenamento > Navegador > Recipiente > Autorizações.
- Adicione a conta logpush@cloudflare-data.iam.gserviceaccount.com com a autorização de administrador de objetos de armazenamento.
Crie uma tarefa Logpush para registos de WAF através da IU da Cloudflare
- Inicie sessão no Cloudflare.
- Aceda a Analytics e registos > Logpush.
- Selecione Criar uma tarefa Logpush.
- Em Selecionar um destino, escolha Google Cloud Armazenamento.
- Introduza os seguintes detalhes do destino:
- Contentor: Google Cloud nome do contentor de armazenamento
- Caminho: localização do contentor no contentor de armazenamento
- Selecione Organizar registos em subpastas diárias
- Clique em Continuar.
- Selecione o conjunto de dados Segurança (WAF) para enviar para o armazenamento.
- Configure a tarefa logpush:
- Introduza o Nome da tarefa.
- Em Se os registos corresponderem, pode selecionar os eventos a incluir e/ou remover dos seus registos. Consulte o artigo Filtros para mais informações. Nem todos os conjuntos de dados têm esta opção disponível.
- Nos campos Enviar o seguinte, pode optar por enviar todos os registos para o destino de armazenamento ou escolher seletivamente os registos que quer enviar.
- Clique em Enviar.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos da WAF da Cloudflare).
- Selecione Google Cloud Storage V2 como Tipo de origem.
- Selecione Cloudflare WAF como o Tipo de registo.
- Clique em Obter conta de serviço.
- Clicar em Seguinte.
Especifique valores para os seguintes parâmetros de entrada:
- URI do contentor de armazenamento: o URL do Cloud Storage.
- Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência.
Clicar em Seguinte.
Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
Action |
security_result.action_details |
O valor de Action do registo não processado é diretamente atribuído a este campo da UDM. |
Action |
security_result.action |
O valor deste campo é derivado do campo Action no registo não processado. Se Action for "allow", o campo UDM é definido como ALLOW . Se Action for "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved" ou "managedchallengeinteractivesolved", o campo UDM é definido como ALLOW_WITH_MODIFICATION . Se Action for "drop", "block" ou "connectionclose", o campo UDM é definido como BLOCK . Se Action for "challengefailed" ou "jschallengefailed", o campo UDM é definido como FAIL . Caso contrário, é definido como UNKNOWN_ACTION . |
ClientASN |
network.asn |
O valor de ClientASN do registo não processado é diretamente atribuído a este campo da UDM após a conversão numa string. |
ClientASNDescription |
additional.fields.key |
A chave está definida estaticamente como "ClientASNDescription". |
ClientASNDescription |
additional.fields.value.string_value |
O valor de ClientASNDescription do registo não processado é diretamente atribuído a este campo da UDM. |
ClientCountry |
principal.location.country_or_region |
O valor de ClientCountry do registo não processado é diretamente atribuído a este campo da UDM. |
ClientIP |
principal.ip |
O valor de ClientIP do registo não processado é diretamente atribuído a este campo da UDM. |
ClientRefererHost |
intermediary.hostname |
O valor de ClientRefererHost do registo não processado é diretamente atribuído a este campo da UDM. |
ClientRefererPath |
network.http.referral_url |
O valor de ClientRefererPath do registo não processado é diretamente atribuído a este campo da UDM. |
ClientRequestHost |
target.hostname |
O valor de ClientRequestHost do registo não processado é diretamente atribuído a este campo da UDM. |
ClientRequestMethod |
network.http.method |
O valor de ClientRequestMethod do registo não processado é diretamente atribuído a este campo da UDM. |
ClientRequestPath |
target.file.full_path |
O valor de ClientRequestPath do registo não processado é diretamente atribuído a este campo da UDM. |
ClientRequestProtocol |
network.application_protocol |
A parte do protocolo de ClientRequestProtocol (por exemplo, "HTTP" de "HTTP/1.1") é extraído através do grok, convertido em maiúsculas e atribuído a este campo UDM. |
ClientRequestUserAgent |
network.http.user_agent |
O valor de ClientRequestUserAgent do registo não processado é diretamente atribuído a este campo da UDM. |
Datetime |
metadata.event_timestamp |
O valor de Datetime do registo não processado é analisado como uma data/hora RFC 3339 e atribuído a este campo UDM. |
EdgeColoCode |
additional.fields.key |
A chave está definida estaticamente como "EdgeColoCode". |
EdgeColoCode |
additional.fields.value.string_value |
O valor de EdgeColoCode do registo não processado é diretamente atribuído a este campo da UDM. |
EdgeResponseStatus |
network.http.response_code |
O valor de EdgeResponseStatus do registo não processado é diretamente atribuído a este campo UDM e convertido num número inteiro. |
Kind |
metadata.product_event_type |
O valor de Kind do registo não processado é diretamente atribuído a este campo da UDM. |
Metadata.filter |
target.resource.attribute.labels.value |
O valor de Metadata.filter do registo não processado é atribuído ao campo value de uma etiqueta em target.resource.attribute.labels . O key desta etiqueta está definido estaticamente como "Filtro de metadados". |
Metadata.type |
target.resource.attribute.labels.value |
O valor de Metadata.type do registo não processado é atribuído ao campo value de uma etiqueta em target.resource.attribute.labels . O key desta etiqueta está definido estaticamente como "Tipo de metadados". O valor deste campo é derivado com base na presença e nos valores de ClientIP , ClientRequestHost e app_protocol . Consulte o código do analisador para ver a lógica específica. Definido estaticamente como "Cloudflare". Definido estaticamente como "Agregador de registos do Cloudflare". Definido estaticamente como "CLOUDFLARE_WAF". |
RayID |
metadata.product_log_id |
O valor de RayID do registo não processado é diretamente atribuído a este campo da UDM. |
RuleID |
security_result.rule_id |
O valor de RuleID do registo não processado é diretamente atribuído a este campo da UDM. |
Source |
security_result.rule_name |
O valor de Source do registo não processado é diretamente atribuído a este campo da UDM. |
timestamp |
metadata.event_timestamp , events.timestamp |
O valor de timestamp do registo não processado é diretamente atribuído a estes campos da UDM. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.