Recolha registos do WAF da Cloudflare

Compatível com:

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

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda aos contentores

  3. Clique em Criar.

  4. 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).
  5. Clique em Criar.

Conceda autorizações de contentor ao utilizador do IAM da Cloudflare

  1. No Google Cloud, aceda a Armazenamento > Navegador > Recipiente > Autorizações.
  2. 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

  1. Inicie sessão no Cloudflare.
  2. Aceda a Analytics e registos > Logpush.
  3. Selecione Criar uma tarefa Logpush.
  4. Em Selecionar um destino, escolha Google Cloud Armazenamento.
  5. 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
  6. Clique em Continuar.
  1. Selecione o conjunto de dados Segurança (WAF) para enviar para o armazenamento.
  2. 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.
  3. Clique em Enviar.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos da WAF da Cloudflare).
  5. Selecione Google Cloud Storage V2 como Tipo de origem.
  6. Selecione Cloudflare WAF como o Tipo de registo.
  7. Clique em Obter conta de serviço.
  8. Clicar em Seguinte.
  9. 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.
  10. Clicar em Seguinte.

  11. 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.