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ção | Valores |
|---|---|
| Modo | DetectionOnly ou Blocking |
| Paranoia level do CRS | 1 a 4 (padrão 1) |
| Limiar de anomalia | 1 a 100 (padrão 5, o do CRS) |
| Rate limit no WAF | Requisições por minuto por IP de origem, até o teto do plano (opcional; o gateway continua limitando) |
| Tamanho máximo do corpo | Em MB (padrão 10), até o teto do plano |
| Tamanho de header | 1 a 64 KB (padrão 8) |
| Timeouts de leitura do corpo e da resposta | 1 a 300 segundos (padrão 60) |
| Listas de IP/CIDR | Permitir ou bloquear origens, até 100 entradas por lista |
| WebSocket e gRPC | Ligado 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-Forenviado pelo cliente é ignorado. - Alertas: se os bloqueios de um domínio passarem do limiar em uma janela de 5 minutos,
OwnereAdminsã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:
denyda organização valem em todos os domínios;allowlibera o endereço do geo-blocking, mas nunca fura umdenynem 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 deX-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
Blockingcontinua 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.