Pular para o conteúdo principal

Regras personalizadas

As regras personalizadas deixam você decidir sobre o tráfego com o seu conhecimento da aplicação, sem depender das regras genéricas do conjunto OWASP. Não há script, expressão nem expressão regular: cada regra é uma condição escolhida em lista e uma ação.

Regras personalizadas​

Uma regra tem três partes:

ParteO que define
CondiçãoO que a requisição precisa ter para casar
AçãoO que o WAF faz quando a condição casa
PrioridadeA ordem de avaliação entre as suas regras

Uma mesma regra pode combinar mais de uma condição. A regra só casa quando todas as condições valem ao mesmo tempo.

Condições​

CondiçãoComo funcionaExemplo
IPCompara o endereço do cliente com um endereço203.0.113.10
CIDRCompara o endereço do cliente com uma faixa, IPv4 ou IPv6203.0.113.0/24
COUNTRYCompara o país do cliente; aceita vários paísesBR, US
URL_PATHCompara o caminho, exato ou por prefixo/admin como prefixo
HTTP_METHODCompara o método da requisiçãoPOST
HTTP_HEADERCompara um cabeçalho, por igualdade, conteúdo ou prefixoX-Api-Version contém 2.
USER_AGENTCompara o agente do cliente, por igualdade, conteúdo ou prefixocurl como conteúdo

O país vem da base DB-IP Lite, atualizada mensalmente. A atribuição exigida é: IP geolocation by DB-IP, licença CC BY 4.0. A geolocalização é uma aproximação — não use país como controle de acesso único para dado sensível.

Alguns cabeçalhos não podem ser usados como condição, porque o WAF precisa deles para rotear e entregar a requisição: Authorization, Cookie, Host e a família X-Forwarded-*. Para tratar dado de autorização ou sessão, use o conjunto OWASP e uma exceção pontual, e não uma regra personalizada.

Ações​

AçãoCódigo devolvidoO que acontece
BLOCK403A requisição é recusada e registrada como evento
ALLOW—A avaliação das regras personalizadas seguintes para naquela requisição
MONITOR—A requisição passa e o caso é registrado como evento
RATE_LIMIT429A requisição entra no limite de taxa definido na regra

ALLOW é o ponto que mais confunde: ele interrompe somente as regras personalizadas seguintes. A inspeção do conjunto OWASP e a limitação de taxa continuam valendo para aquela requisição.

RATE_LIMIT na regra serve para limitar um caminho específico, além do limite geral do domínio. O excesso recebe 429 e aparece nos eventos. Veja Limitação de taxa.

Ordem de avaliação​

controles da plataforma → limitação de taxa → regras personalizadas (por prioridade) → conjunto OWASP
  1. Controles da plataforma — a linha de base da NNumbers, igual para todos.
  2. Limitação de taxa — o limite do domínio e os limites por caminho.
  3. Regras personalizadas — na ordem de prioridade: número menor é avaliado antes.
  4. Conjunto OWASP — a avaliação de anomalia que decide o bloqueio em prevenção.

Se duas regras suas casarem com a mesma requisição, a de menor número decide. Por isso, deixe as regras de liberação com número baixo quando elas precisam vencer as de bloqueio.

Exemplos​

ObjetivoCondiçãoAçãoPrioridade
Bloquear acesso a painel administrativo fora do BrasilURL_PATH prefixo /admin e COUNTRY diferente de BRBLOCK10
Liberar um parceiro que usa integração antiga em /api/legacyIP igual ao endereço do parceiro e URL_PATH prefixo /api/legacyALLOW20
Observar tentativas de PUT na API antes de bloquearHTTP_METHOD PUT e URL_PATH prefixo /apiMONITOR30
Limitar download em massaURL_PATH prefixo /exportRATE_LIMIT40
Bloquear agentes de varredura conhecidosUSER_AGENT contém masscanBLOCK50
Ação errada não se corrige no conjunto OWASP

Se um ALLOW está deixando passar algo que deveria ser bloqueado, o ajuste é na prioridade ou na condição da regra — não no nível de paranoia.

Próximos passos​