Coletar registros do WAF do Cloudflare
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
- Faça login no console do Google Cloud .
Acesse a página Buckets do Cloud Storage.
Clique em Criar.
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).
Clique em Criar.
Conceder permissões de bucket ao usuário do IAM do Cloudflare
- Em Google Cloud, acesse Storage > Navegador > Bucket > Permissões.
- 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
- Faça login no Cloudflare.
- Acesse Análise e registros > Logpush.
- Selecione Criar um job Logpush.
- Em Selecionar um destino, escolha Google Cloud Storage.
- 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.
- Clique em Continuar.
- Selecione o conjunto de dados Segurança (WAF) para enviar ao armazenamento.
- 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.
- 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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Registros do WAF do Cloudflare).
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione WAF do Cloudflare como o Tipo de registro.
- Clique em Receber conta de serviço.
- Clique em Próxima.
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.
Clique em Próxima.
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.