Coletar registros do WAF do Cloudflare

Compatível com:

Esse analisador extrai campos dos registros JSON do firewall de aplicativos da Web (WAF) do Cloudflare, transforma e mapeia para o modelo de dados unificado (UDM). Ele processa várias ações do Cloudflare, enriquecendo os dados com metadados e informações de rede antes de estruturar a saída no formato UDM.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

  • Instância do Google SecOps.
  • Acesso privilegiado ao Google Cloud.
  • Plano Enterprise do Cloudflare.
  • Acesso privilegiado ao Cloudflare.

Criar um Google Cloud bucket do Storage

  1. Faça login no console do Google Cloud .
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

  4. Configure o bucket:

    • Nome: insira um nome exclusivo que atenda aos requisitos de nome de bucket (por exemplo, cloudflare-waf).
    • Escolha onde armazenar seus dados: selecione um local.
    • Escolha uma classe de armazenamento para seus dados: selecione uma classe de armazenamento padrão para o bucket ou escolha Classe automática para gerenciamento automático da classe de armazenamento.
    • Escolha como controlar o acesso a objetos: selecione não para aplicar a prevenção de acesso público e escolha um modelo de controle de acesso para os objetos do bucket.
    • Classe de armazenamento: escolha com base nas suas necessidades (por exemplo, Padrão).
  5. Clique em Criar.

Conceder permissões de bucket ao usuário do IAM do Cloudflare

  1. Em Google Cloud, acesse Storage > Navegador > Bucket > Permissões.
  2. Adicione a conta logpush@cloudflare-data.iam.gserviceaccount.com com permissão de administrador de objetos do Storage.

Criar um job de Logpush para registros do WAF usando a interface do Cloudflare

  1. Faça login no Cloudflare.
  2. Acesse Análise e registros > Logpush.
  3. Selecione Criar um job Logpush.
  4. Em Selecionar um destino, escolha Google Cloud Storage.
  5. Insira os seguintes detalhes de destino:
    • Bucket: Google Cloud Nome do bucket de armazenamento
    • Caminho: local do bucket no contêiner de armazenamento
    • Selecione Organizar registros em subpastas diárias.
  6. Clique em Continuar.
  1. Selecione o conjunto de dados Segurança (WAF) para enviar ao armazenamento.
  2. Configure o job logpush:
    • Digite o Nome do job.
    • Em "Se os registros corresponderem", selecione os eventos que você quer incluir e/ou remover dos registros. Consulte Filtros para mais informações. Nem todos os conjuntos de dados têm essa opção disponível.
    • Nos campos Enviar o seguinte, você pode enviar todos os registros para o destino de armazenamento ou escolher seletivamente quais registros quer enviar.
  3. Clique em Enviar.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em "Configurações do SIEM" > "Feeds".

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Registros do WAF do Cloudflare).
  5. Selecione Google Cloud Storage como o Tipo de origem.
  6. Selecione WAF do Cloudflare como o Tipo de registro.
  7. Clique em Receber conta de serviço.
  8. Clique em Próxima.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do GCS: o URL do Cloud Storage.
    • O URI é um: selecione Diretório que inclui subdiretórios.
    • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
  10. Clique em Próxima.

  11. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • URI do GCS: o URL do Cloud Storage.
  • O URI é um: selecione Diretório que inclui subdiretórios.
  • Opções de exclusão de origem: selecione a opção de exclusão de acordo com sua preferência.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
Action security_result.action_details O valor de Action do registro bruto é atribuído diretamente a esse campo do UDM.
Action security_result.action O valor desse campo é derivado do campo Action no registro bruto. Se Action for "allow", o campo UDM será definido como ALLOW. Se Action for "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved" ou "managedchallengeinteractivesolved", o campo UDM será definido como ALLOW_WITH_MODIFICATION. Se Action for "drop", "block" ou "connectionclose", o campo UDM será definido como BLOCK. Se Action for "challengefailed" ou "jschallengefailed", o campo UDM será definido como FAIL. Caso contrário, será definido como UNKNOWN_ACTION.
ClientASN network.asn O valor de ClientASN do registro bruto é atribuído diretamente a esse campo da UDM depois de ser convertido em uma string.
ClientASNDescription additional.fields.key A chave é definida estaticamente como "ClientASNDescription".
ClientASNDescription additional.fields.value.string_value O valor de ClientASNDescription do registro bruto é atribuído diretamente a esse campo do UDM.
ClientCountry principal.location.country_or_region O valor de ClientCountry do registro bruto é atribuído diretamente a esse campo do UDM.
ClientIP principal.ip O valor de ClientIP do registro bruto é atribuído diretamente a esse campo do UDM.
ClientRefererHost intermediary.hostname O valor de ClientRefererHost do registro bruto é atribuído diretamente a esse campo do UDM.
ClientRefererPath network.http.referral_url O valor de ClientRefererPath do registro bruto é atribuído diretamente a esse campo do UDM.
ClientRequestHost target.hostname O valor de ClientRequestHost do registro bruto é atribuído diretamente a esse campo do UDM.
ClientRequestMethod network.http.method O valor de ClientRequestMethod do registro bruto é atribuído diretamente a esse campo do UDM.
ClientRequestPath target.file.full_path O valor de ClientRequestPath do registro bruto é atribuído diretamente a esse campo do UDM.
ClientRequestProtocol network.application_protocol A parte do protocolo de ClientRequestProtocol (por exemplo, "HTTP" de "HTTP/1.1") é extraído usando grok, convertido para letras maiúsculas e atribuído a esse campo da UDM.
ClientRequestUserAgent network.http.user_agent O valor de ClientRequestUserAgent do registro bruto é atribuído diretamente a esse campo do UDM.
Datetime metadata.event_timestamp O valor de Datetime do registro bruto é analisado como um carimbo de data/hora RFC 3339 e atribuído a esse campo da UDM.
EdgeColoCode additional.fields.key A chave é definida estaticamente como "EdgeColoCode".
EdgeColoCode additional.fields.value.string_value O valor de EdgeColoCode do registro bruto é atribuído diretamente a esse campo do UDM.
EdgeResponseStatus network.http.response_code O valor de EdgeResponseStatus do registro bruto é atribuído diretamente a esse campo da UDM e convertido em um número inteiro.
Kind metadata.product_event_type O valor de Kind do registro bruto é atribuído diretamente a esse campo do UDM.
Metadata.filter target.resource.attribute.labels.value O valor de Metadata.filter do registro bruto é atribuído ao campo value de um rótulo em target.resource.attribute.labels. O key desse marcador é definido estaticamente como "Filtro de metadados".
Metadata.type target.resource.attribute.labels.value O valor de Metadata.type do registro bruto é atribuído ao campo value de um rótulo em target.resource.attribute.labels. O key desse marcador é definido estaticamente como "Tipo de metadados". O valor desse campo é derivado com base na presença e nos valores de ClientIP, ClientRequestHost e app_protocol. Consulte o código do analisador para conferir a lógica específica. Definido estaticamente como "Cloudflare". Definido estaticamente como "Agregador de registros do Cloudflare". Definido estaticamente como "CLOUDFLARE_WAF".
RayID metadata.product_log_id O valor de RayID do registro bruto é atribuído diretamente a esse campo do UDM.
RuleID security_result.rule_id O valor de RuleID do registro bruto é atribuído diretamente a esse campo do UDM.
Source security_result.rule_name O valor de Source do registro bruto é atribuído diretamente a esse campo do UDM.
timestamp metadata.event_timestamp, events.timestamp O valor de timestamp do registro bruto é atribuído diretamente a esses campos da UDM.

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