Pular para conteúdo
Copy
View as Markdown Suggest changes
Add Docs MCP
Setup guide

Trabalhando com Logs do Nó de Filtro

Um nó de filtro armazena os seguintes arquivos de log no diretório /var/log/wallarm:

  • brute-detect.log: o log da recuperação dos contadores relacionados ao ataque de força bruta no cluster do nó de filtro.

  • export-attacks.log: o log da exportação dos dados dos ataques do módulo pós-analítico para a nuvem Wallarm.

  • export-environment.log: o log da coleta das versões do pacote Wallarm instalado e do upload desses dados para a nuvem Wallarm a serem exibidos nos detalhes do nó de filtragem no console Wallarm. Esses processos são executados uma vez por hora.

  • syncnode.log: o log da sincronização do nó de filtro com a nuvem Wallarm (isso inclui a busca dos arquivos LOM e proton.db da nuvem).

  • tarantool.log: o log das operações do módulo pós-analítico.

  • sync-ip-lists.log (nomeado como sync-blacklist.log nas versões anteriores do nó): o log da sincronização do nó de filtragem com os endereços IP adicionados às listas IP como objetos únicos ou sub-redes.

  • sync-ip-lists-source.log (nomeado como sync-mmdb.log nas versões anteriores do nó): o log da sincronização do nó de filtragem com os endereços IP registrados em países, regiões e data centers a partir das listas IP.

  • appstructure.log (somente nos contêineres Docker): o log da atividade do módulo Descoberta de API.

  • registernode_loop.log (somente nos contêineres Docker): o log da atividade do script de início que executa o script register-node enquanto ele é executado com sucesso.

  • weak-jwt-detect.log: o log da detecção da vulnerabilidade JWT.

Configurando o Log Extendido para o Nó de Filtro Baseado em NGINX

NGINX escreve logs das solicitações processadas (logs de acesso) em um arquivo de log separado, usando o formato de log combined predefinido por padrão.

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $request_id $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent" ';

Você pode definir e usar um formato de log personalizado incluindo uma ou várias variáveis do nó de filtro (além de outras variáveis do NGINX, se necessário). O arquivo de log NGINX permitirá diagnósticos de nó de filtro muito mais rápidos.

Variáveis do Nó de Filtro

Você pode usar as seguintes variáveis do nó de filtro ao definir o formato de log do NGINX:

Nome Tipo Valor
request_id String Identificador de solicitação
Tem a seguinte forma de valor: a79199bcea606040cc79f913325401fb
wallarm_request_cpu_time Flutuante Tempo em segundos que a CPU da máquina com o nó de filtragem passou processando a solicitação.
wallarm_request_mono_time Flutuante Tempo em segundos que a CPU passou processando a solicitação + tempo na fila. Por exemplo, se a solicitação estava na fila por 3 segundos e processada pela CPU por 1 segundo, então:
  • "wallarm_request_cpu_time":1
  • "wallarm_request_mono_time":4
wallarm_serialized_size Inteiro Tamanho da solicitação serializada em bytes
wallarm_is_input_valid Inteiro Validade da solicitação
0: solicitação é válida. A solicitação foi verificada pelo nó de filtro e corresponde às regras LOM.
1: solicitação é inválida. A solicitação foi verificada pelo nó de filtro e não corresponde às regras LOM.
wallarm_attack_type_list String Tipos de ataques detectados na solicitação com a biblioteca libproton. Os tipos são apresentados em formato de texto:
  • xss
  • sqli
  • rce
  • xxe
  • ptrav
  • crlf
  • redir
  • nosqli
  • infoleak
  • overlimit_res
  • data_bomb
  • vpatch
  • ldapi
  • scanner
  • mass_assignment
  • ssrf
  • ssi
  • mail_injection
  • ssti
  • invalid_xml
Se vários tipos de ataques forem detectados em uma solicitação, eles serão listados com o símbolo |. Por exemplo: se ataques XSS e SQLi forem detectados, o valor da variável é xss|sqli.
wallarm_attack_type Inteiro Tipos de ataques detectados na solicitação com a biblioteca libproton. Os tipos são apresentados em formato de string de bit:
  • 0x00000000: sem ataque: "0"
  • 0x00000002: xss: "2"
  • 0x00000004: sqli: "4"
  • 0x00000008: rce: "8"
  • 0x00000010: xxe: "16"
  • 0x00000020: ptrav: "32"
  • 0x00000040: crlf: "64"
  • 0x00000080: redir: "128"
  • 0x00000100: nosqli: "256"
  • 0x00000200: infoleak: "512"
  • 0x20000000: overlimit_res: "536870912"
  • 0x40000000: data_bomb: "1073741824"
  • 0x80000000: vpatch: "2147483648"
  • 0x00002000: ldapi: "8192"
  • 0x4000: scanner: "16384"
  • 0x20000: mass_assignment: "131072"
  • 0x80000: ssrf: "524288"
  • 0x02000000: ssi: "33554432"
  • 0x04000000: mail_injection: "67108864"
  • 0x08000000: ssti: "134217728"
  • 0x10000000: invalid_xml: "268435456"
Se vários tipos de ataques forem detectados em uma solicitação, os valores são resumidos. Por exemplo: se ataques XSS e SQLi forem detectados, o valor da variável é 6.

Exemplo de Configuração

Vamos supor que você precise especificar o formato de log estendido chamado wallarm_combined que inclui as seguintes variáveis:

  • todas as variáveis usadas no formato combined

  • todas as variáveis do nó de filtro

Para fazer isso, execute as seguintes ações:

  1. As linhas abaixo descrevem o formato de log desejado. Adicione-as ao bloco http do arquivo de configuração do NGINX.

    log_format wallarm_combined '$remote_addr - $remote_user [$time_local] '
                                '"$request" $request_id $status $body_bytes_sent '
                                '"$http_referer" "$http_user_agent" '
                                '$wallarm_request_cpu_time $wallarm_request_mono_time $wallarm_serialized_size $wallarm_is_input_valid $wallarm_attack_type $wallarm_attack_type_list';
    
  2. Ative o formato de log estendido adicionando a seguinte diretiva ao mesmo bloco como na primeira etapa:

    access_log /var/log/nginx/access.log wallarm_combined;

    Os logs de solicitações processadas serão escritos no formato wallarm_combined no arquivo /var/log/nginx/access.log.

    Logging Condicional

    Com a diretiva listada acima, todas as solicitações processadas serão registradas em um arquivo de log, inclusive aquelas que não estão relacionadas a um ataque.

    Você pode configurar o log condicional para gravar logs apenas para as solicitações que fazem parte de um ataque (o valor da variável wallarm_attack_type não é zero para essas solicitações). Para fazer isso, adicione uma condição à diretiva mencionada: access_log /var/log/nginx/access.log wallarm_combined if=$wallarm_attack_type;

    Isso pode ser útil se você quiser reduzir o tamanho de um arquivo de log, ou se você integrar um nó de filtro com uma das soluções SIEM.

  3. Reinicie o NGINX executando um dos seguintes comandos, dependendo do sistema operacional que você está usando:

    sudo systemctl restart nginx
    
    sudo service nginx restart
    
    sudo systemctl restart nginx
    
    sudo systemctl restart nginx
    
    sudo systemctl restart nginx
    

Informação detalhada

Para ver informações detalhadas sobre a configuração de logs no NGINX, prossiga para este link.