Pular para o conteúdo principal

WAF

Toda rota pública passa por um WAF (Web Application Firewall) na borda, antes do gateway, baseado em NGINX com o OWASP Core Rule Set (CRS). Ele bloqueia ataques web comuns, como injeção de SQL e cross-site scripting.

Política padrão​

Todo domínio sem política própria usa a política global padrão: CRS ativo, limites de tamanho de requisição e bloqueio de paths administrativos e internos da plataforma. Ela é mantida pela administração da plataforma e vale para todos os planos.

Política do seu domínio​

Organizações nos planos Pro, Business e Enterprise podem customizar a política de cada domínio na aba WAF do domínio. No Starter, a aba mostra a política padrão e os eventos, sem edição.

A política é montada só com opções de um catálogo seguro; não é possível escrever diretivas NGINX:

OpçãoValores
ModoDetectionOnly ou Blocking
Paranoia level do CRS1 a 4 (padrão 1)
Limiar de anomalia1 a 100 (padrão 5, o do CRS)
Rate limit no WAFRequisições por minuto por IP de origem, até o teto do plano (opcional; o gateway continua limitando)
Tamanho máximo do corpoEm MB (padrão 10), até o teto do plano
Tamanho de header1 a 64 KB (padrão 8)
Timeouts de leitura do corpo e da resposta1 a 300 segundos (padrão 60)
Listas de IP/CIDRPermitir ou bloquear origens, até 100 entradas por lista
WebSocket e gRPCLigado ou desligado

Campos fora do catálogo ou valores fora dos limites são recusados. Só Owner e Admin alteram políticas e exceções; Developer e Viewer apenas leem.

Comece detectando, depois bloqueie​

Toda política customizada começa em DetectionOnly: o WAF registra o que bloquearia, sem bloquear. Analise os eventos, crie as exceções necessárias e passe para Blocking de forma explícita, no domínio inteiro ou por prefixo de rota. A mudança fica na auditoria.

Exceções​

Uma exceção desliga uma regra específica do CRS (pelo id) em um prefixo de path. Ela exige justificativa e data de expiração de no máximo 90 dias, e registra o autor. Exceções vencidas deixam de valer sozinhas.

Como uma mudança chega à borda​

Cada alteração gera uma revisão imutável e numerada. Antes de distribuir, a plataforma valida a sintaxe e roda testes de regras (uma requisição maliciosa de referência precisa ser detectada e uma benigna precisa passar). A revisão vai primeiro para uma parte das réplicas (canário); se a taxa de erro ou de bloqueio passar do limite, a plataforma volta automaticamente para a revisão anterior.

Eventos​

A aba WAF do domínio lista os eventos recentes com regra, ação (detected ou blocked), IP de origem, método, path e horário, com filtros por ação, regra e período.

  • Dados sensíveis removidos: antes de gravar, a plataforma apaga valores de Authorization, cookies, tokens em query string, campos de senha e padrões de dados pessoais (e-mail, CPF, cartão), mantendo só o nome do campo.
  • IP confiável: o IP de origem vem apenas dos proxies da plataforma; um X-Forwarded-For enviado pelo cliente é ignorado.
  • Alertas: se os bloqueios de um domínio passarem do limiar em uma janela de 5 minutos, Owner e Admin são avisados.
  • Retenção: os eventos ficam guardados por 30 dias no Starter e no Pro, 90 dias no Business e 180 dias no Enterprise.

Página de bloqueio e código de referência​

Quando a borda bloqueia uma requisição (WAF, lista de IPs, corpo acima do limite ou rate limit), o visitante recebe uma resposta padronizada: no navegador, uma página em português ou inglês (pelo idioma do navegador); para APIs, um application/problem+json. As duas trazem um código de referência, que também vai no cabeçalho X-Atlas-Ref. A página não diz o motivo do bloqueio; peça o código ao visitante e procure-o na lista de Eventos (campo Referência) para ver a regra e a requisição. Respostas da sua própria aplicação (um 403 dela, por exemplo) nunca são substituídas.

WAF da organização​

Em Organização › WAF, Owner e Admin mantêm uma política única para todos os domínios da organização (planos com waf.orgPolicy). Um domínio sem política própria herda os valores da organização, e a página mostra de onde vem cada campo ("herdado de"). O domínio só refina para o lado mais restritivo:

  • Escalares (paranoia, limiar, corpo, cabeçalhos, timeouts, rate limit, preset e perfis de aplicação): o domínio, se tiver política, senão a organização, senão a política global.
  • Regras de IP: deny da organização valem em todos os domínios; allow libera o endereço do geo-blocking, mas nunca fura um deny nem a allow list exclusiva de um domínio. CIDRs que bloqueariam a própria plataforma são recusados.
  • Exceções do CRS: as da organização valem em todos os domínios; uma exceção pode se restringir a um parâmetro, cookie ou cabeçalho (alvo), em vez de desligar a regra no caminho inteiro. Exceções avisam 7 dias e 1 dia antes de vencer e podem ser renovadas por até 90 dias.
  • Proteções: presets (Basic, Recommended, Strict), perfis de aplicação (WordPress, Drupal, Nextcloud e outros), rate limit por caminho (com o atalho "Proteger login") e cabeçalhos de segurança (HSTS, nosniff, X-Frame-Options, Referrer-Policy, remoção de X-Powered-By).

Bloqueio por país​

A regra geo (organização ou domínio, planos com waf.geoBlocking) bloqueia uma lista de países e continentes (DenyListed) ou libera só os listados (AllowOnlyListed, em que país desconhecido é sempre negado). Toda regra nasce em Report: nada é bloqueado e as requisições que seriam bloqueadas aparecem como detected (regra 100011) em Requisições e nas Métricas. Passe para Enforce quando o relatório estiver limpo. O bloqueio acontece na borda, antes do WAF e da sua aplicação, e o país vem do IP detectado pela borda, nunca de um X-Forwarded-For enviado pelo cliente. A base de geolocalização é a DB-IP Lite, atualizada todo mês e trocada só pela revisão validada e pelo canário de sempre. IP Geolocation by DB-IP.

Requisições e métricas​

  • Requisições: as requisições recentes dos seus domínios (até 7 dias), com país, ASN, IP, path (sem query string), status, ação e motivo. Cole aqui o código de referência de uma página de bloqueio para achar a requisição e criar a exceção com o formulário preenchido.
  • Métricas do WAF: série por ação (permitidas, detectadas, bloqueadas) e rankings de países, ASNs, IPs, regras, domínios e paths, pelo período que o seu plano guarda (waf.analyticsRetentionDays: 7 dias no Starter, 30 no Pro, 90 no Business e 180 no Enterprise). Contagens marcadas como "estimado" vêm de amostragem.
  • Pronto para bloquear: agrupa as detecções dos últimos 7 dias por regra, caminho e alvo e sugere exceção (muitos IPs em dias diferentes), provável ataque ou revisão. O veredito é só informativo; a mudança para Blocking continua sendo sua.
  • Recomendações: a plataforma cruza o tráfego com um catálogo de caminhos sensíveis (login, upload, admin) e sugere proteções, como um rate limit em POST /wp-login.php. Nada é aplicado sem você; dá para aplicar ou dispensar por até 90 dias.

Fora do escopo atual​

Proteção contra DDoS volumétrico, WAF para tráfego que não é HTTP e regras escritas livremente pelo cliente.