Você cola uma mensagem de erro em um formulário de suporte, clica em Enviar e recebe uma página em branco: "403 Forbidden", com "Microsoft-Azure-Application-Gateway/v2" logo abaixo. Em outro lugar, um script de monitoramento de preços que rodava sem problemas havia um mês passa a receber páginas de "Request blocked" em vez dos dados dos produtos. Em nenhum dos casos quem decidiu foi o código do próprio site. Foi um firewall de aplicação web posicionado na frente dele.
Este post explica onde fica um WAF, o que ele lê e como as regras dele decidem. Também compara o WAF com um firewall de rede e com um proxy reverso, lista as páginas de bloqueio mais comuns e termina com uma seção para quem vê seus monitores ou scrapers esbarrarem em um.
O que é um WAF?
Um firewall de aplicação web é uma camada de segurança para o HTTP, o protocolo que navegadores e aplicativos usam para conversar com sites. O OWASP, o projeto aberto de segurança, define o WAF como um firewall de aplicação para aplicações HTTP que aplica um conjunto de regras a uma conversa HTTP.
"Aplicação" é a palavra-chave. Um firewall de rede decide por endereços e portas, por isso não consegue diferenciar um login normal de um formulário de login recheado de comandos de banco de dados: os dois chegam pela porta 443. Um WAF abre a requisição, lê o conteúdo e compara com regras escritas para ataques web.
Um WAF protege o site, não o visitante: ele funciona como um proxy reverso (reverse proxy), que fica no lugar do servidor e recebe cada requisição primeiro.
Onde fica um WAF?
Um WAF sempre fica entre a internet e o servidor web. Há quatro lugares comuns para ele:
- Na borda de uma CDN. Cloudflare, Akamai e Imperva operam redes de servidores na frente dos sites dos clientes; o domínio aponta para o provedor, então os visitantes chegam primeiro ao WAF dele.
- Em um balanceador de carga na nuvem. O AWS WAF se conecta ao CloudFront, ao Application Load Balancer e ao API Gateway; o Azure roda o seu WAF no Application Gateway e no Front Door.
- Em um appliance como o F5 BIG-IP, na frente dos servidores da própria empresa.
- Dentro do servidor web. O ModSecurity, um motor de WAF de código aberto para Apache, IIS e Nginx que hoje é mantido pelo OWASP, é o módulo clássico; muitas empresas de hospedagem o ativam para todos os clientes.
Para ler uma requisição, o WAF precisa dela em texto puro. Ele guarda o certificado do site, encerra a conexão HTTPS do navegador e abre outra, separada, até o servidor de origem. O navegador continua mostrando o cadeado, porque para ele o WAF é o site.
Como funciona um WAF?
Uma requisição passa por um WAF em seis etapas:
- A conexão termina no WAF, que descriptografa o HTTPS e recebe a requisição completa.
- A requisição é desmontada e decodificada, para que um ataque não se esconda atrás de
%27no lugar de um apóstrofo. - As regras personalizadas do dono rodam primeiro: liberar a faixa de IPs do escritório, bloquear um país, manter
/adminprivado. - Regras de ataque e contadores de taxa dão a pontuação. Regras de injeção de SQL, cross-site scripting e violações de protocolo somam pontos; os contadores acompanham as requisições por IP ou por sessão.
- Um veredito é aplicado: encaminhar ao servidor, bloquear com uma página de erro, mostrar um desafio (challenge) ou só registrar.
- O evento é registrado com um ID, como o Ray ID da Cloudflare ou o número de referência da Akamai. Esse ID liga a reclamação de um visitante à regra que disparou.
O que um WAF inspeciona?
Um firewall de rede só consegue agir sobre a última linha desta tabela; o resto só aparece na camada de aplicação.
| Parte da requisição | O que o WAF procura | Exemplo de correspondência |
|---|---|---|
| Caminho e URL | Caminhos sensíveis ou inesperados | /wp-admin vindo do exterior, travessia de diretórios com ../ |
| Query string, campos de formulário | Código onde deveria haver dados | Comandos de banco de dados em uma caixa de busca |
| Cabeçalhos e cookies | Valores ausentes, estranhos ou adulterados | Sem o cabeçalho User-Agent |
| Corpo (formulário, JSON, XML) | Cargas de ataque, uploads grandes demais | Um campo JSON com um comando de shell |
| Taxa | Requisições demais por IP ou sessão | Centenas de tentativas de login por minuto |
| IP de origem e país | Listas de reputação, regras geográficas | Um endereço que aparece em um feed de ameaças |
Quais regras um WAF usa?
Assinaturas reconhecem técnicas de ataque conhecidas, como trechos de SQL em um campo de formulário ou tags <script> em um comentário. São precisas contra ataques conhecidos e cegas para os novos. A coleção aberta mais conhecida é o OWASP Core Rule Set (CRS): regras genéricas contra ataques para o ModSecurity e motores compatíveis como o Coraza. O WAF do Azure é baseado nele, e a Cloudflare oferece a sua própria implementação.
Regras gerenciadas (managed rules) são escritas e atualizadas pelo fornecedor do WAF: quando uma falha grave em um software popular se torna pública, uma nova regra passa a cobrir todos os clientes. Regras personalizadas são as do próprio dono, como bloquear um caminho ou liberar o IP de um parceiro.
Limite de taxa (rate limiting) conta as requisições por IP, sessão ou chave em uma janela de tempo. A página de rate limiting da Cloudflare retorna 429 Too Many Requests em vez de 403.
Gerenciamento de bots, em geral um complemento pago, separa os clientes em pessoas, bots verificados (como os rastreadores dos mecanismos de busca) e todo o resto. A Cloudflare expressa isso como uma pontuação de bot de 1 (automatizado) a 99 (humano).
Patch virtual (virtual patching) é definido no guia de virtual patching do OWASP como uma camada que bloqueia tentativas de explorar uma vulnerabilidade conhecida sem alterar o código vulnerável. Ele ganha tempo; não fecha a brecha.
Como a pontuação de anomalias decide?
O CRS não bloqueia na primeira correspondência. Cada regra que corresponde soma pontos conforme a gravidade: 5 para crítico, 4 para erro, 3 para aviso, 2 para informativo. Quando o total chega ao limite de entrada, que a documentação do CRS recomenda definir em 5, a requisição é negada. Uma correspondência crítica basta; um único aviso não basta, mas um aviso mais um informativo, sim.
O CRS também tem quatro níveis de paranoia (paranoia levels). Cada nível acima de 1 acrescenta regras mais rígidas, que pegam mais ataques e também mais visitantes legítimos.
WAF, firewall de rede e proxy reverso: diferenças
Os três podem rodar no mesmo equipamento. Proxy ou firewall: qual é a diferença? explica a diferença básica entre filtrar e repassar tráfego; aqui você vê onde o WAF se encaixa.
| Firewall de rede | WAF | Proxy reverso | |
|---|---|---|---|
| Camada | Rede, transporte | Aplicação (HTTP) | Aplicação (HTTP) |
| Lê | IPs, portas, estado da conexão | URL, cabeçalhos, corpo, taxa | Host e caminho, para rotear |
| Função principal | Permitir ou descartar conexões | Barrar ataques e abusos | Distribuir carga, fazer cache, terminar TLS |
| Exemplo | Firewall do roteador do escritório | ModSecurity com CRS | Nginx na frente dos servidores de aplicação |
Um WAF é um proxy reverso com regras de segurança; sem elas, um proxy reverso repassa um ataque com a mesma fidelidade que uma requisição normal. A proteção contra DDoS para inundações de rede é uma camada separada.
Como é a página de bloqueio de um WAF?
A página padrão costuma revelar qual produto barrou você.
| Produto | O que a página diz | ID para enviar ao site |
|---|---|---|
| Cloudflare | "Sorry, you have been blocked" ou Error 1020 | Ray ID |
| Akamai | "Access Denied. You don't have permission to access …" | Reference # |
| Imperva | "Request unsuccessful. Incapsula incident ID" | Incident ID |
| AWS WAF via CloudFront | "The request could not be satisfied. Request blocked." | Horário e URL |
| Azure Application Gateway | "403 Forbidden", "Microsoft-Azure-Application-Gateway/v2" | Horário e URL |
| F5 BIG-IP | "The requested URL was rejected" | Support ID |
A maioria retorna 403 Forbidden: o servidor entendeu a requisição e se recusa a atendê-la. Para diferenciar o 403 de um WAF de um 403 causado por uma verificação de login ou por permissões de arquivo, veja o guia do erro 403 Forbidden.
Como visitante, você não pode mudar a regra, mas pode remover os gatilhos mais comuns:
- Desligue a VPN ou a extensão de proxy e recarregue; endereços de VPN compartilhados costumam ter má reputação.
- Teste uma janela anônima, que começa sem cookies antigos e com a maioria das extensões desligada.
- Se o bloqueio veio depois de um formulário, confira o que você digitou: código ou texto parecido com SQL pode corresponder a uma regra de ataque.
- Ainda bloqueado? Envie ao site o ID, o horário e o que você estava fazendo. Só quem opera o site consegue ver qual regra disparou.
Por que um WAF bloqueia visitantes reais?
Um falso positivo é uma requisição legítima que uma regra trata como ataque. As origens mais comuns:
- Conteúdo que parece código: um fórum de desenvolvedores, um formulário de suporte com logs colados, um editor que salva HTML.
- Endereços compartilhados: uma rede de escritório ou móvel pode colocar milhares de pessoas atrás de poucos IPs, e um limite de taxa pensado para uma pessoa dispara para todas.
- Listas de reputação: saídas de VPN e servidores em nuvem são compartilhados, e alguns dos seus usuários se comportam mal.
- Configurações rígidas: um nível de paranoia mais alto também pega mais clientes.
Os donos de sites podem corrigir isso sem desligar a proteção:
- Comece no modo só de registro. A visão geral do WAF do Azure recomenda rodar um WAF novo no modo de detecção por um curto período antes de passar ao modo de prevenção; no AWS WAF, a ação Count (apenas conta) cumpre a mesma função.
- Encontre a regra buscando no log do WAF o Ray ID, o número de referência ou o horário do bloqueio.
- Escreva uma exclusão estreita: isente um campo de uma regra em vez de desativar o conjunto de regras inteiro.
- Teste de fora. Regras geográficas e listas de reputação tratam de forma diferente os visitantes do exterior. Os Proxies residenciais no país-alvo mostram o seu site do jeito que um usuário doméstico de lá o vê.
Por que os WAFs bloqueiam scrapers e ferramentas de monitoramento?
Um monitor de preços, um verificador de uptime ou um rastreador de pesquisa encontra o WAF antes de encontrar o site, e várias regras miram o tráfego automatizado:
- Regras de protocolo. O WAF do Azure protege contra requisições sem o cabeçalho
Host,User-AgentouAccepte tem regras para rastreadores e scanners. Por isso, um cliente HTTP cru pode ser barrado logo no início. - Grupos de regras de bots. O grupo de regras Bot Control da AWS rotula bibliotecas HTTP, frameworks de scraping, serviços de monitoramento e navegadores automatizados, e bloqueia os que não consegue verificar. Bots verificados, como os rastreadores dos grandes mecanismos de busca, passam.
- Sinais de rede e de taxa. Data centers muito usados por bots ficam sinalizados, e um rastreador que busca uma página a cada 200 milissegundos parece um ataque, seja qual for a intenção.
Como funciona a detecção de bots: a lógica anti-bot cobre o lado da detecção camada por camada. Um bloqueio é a resposta do site, e a reação legítima trabalha com ela:
- Use a API oficial, o feed de dados ou o programa de parceiros, se houver.
- Respeite o robots.txt e os termos de uso.
- Identifique o seu cliente com honestidade: um
User-Agentreal com um endereço de contato. - Vá mais devagar e espere mais quando vir
429ou403. - Peça para entrar em uma lista de permitidos (allow-list). Muitos operadores liberam um monitor bem-comportado se você informar um contato e um endereço IP fixo; os Proxies ISP oferecem um endereço dedicado que não muda.
Não rotacione endereços IP para passar por um bloqueio nem use ferramentas que falsificam a impressão digital do navegador. Isso ignora a decisão do site, e é exatamente o comportamento que essas regras foram ajustadas para encontrar.
Quem usa um WAF?
- Lojas online e páginas de pagamento. O requisito 6.4.2 do PCI DSS 4.0, o padrão de segurança do setor de cartões, exige uma solução automatizada na frente das aplicações web públicas que detecte e previna ataques web. O resumo de mudanças do PCI DSS tratou isso como boa prática até 31 de março de 2025; desde então é obrigatório.
- Páginas de login, onde os limites de taxa freiam o credential stuffing: testar senhas vazadas em muitas contas.
- APIs, que enfrentam os mesmos riscos de injeção que os formulários web.
- Sites em WordPress ou outro software popular, onde uma única falha em um plugin expõe milhares de sites de uma vez.
Erros comuns
- Usar o WAF em vez de corrigir o código. Um patch virtual cobre só o tráfego que o WAF vê.
- Deixar o servidor de origem acessível diretamente. Se ele responde a requisições enviadas direto ao seu endereço IP, os atacantes pulam o WAF.
- Bloquear desde o primeiro dia sem um período só de registro.
- Desativar um conjunto de regras inteiro para corrigir um único falso positivo.
- Recarregar uma página de bloqueio várias vezes como visitante, o que alimenta o contador de taxa.
Guia de decisão
| Sua situação | O que fazer |
|---|---|
| Você vê uma página de bloqueio com um ID | Envie o ID, o horário e a URL ao site |
| Você tem um site pequeno em hospedagem compartilhada | Pergunte se a hospedagem roda ModSecurity com o CRS, ou use o WAF de uma CDN |
| Você aceita pagamentos com cartão on-line | O PCI DSS 6.4.2 exige um WAF ou uma solução equivalente |
| Você vai adicionar um WAF a um site no ar | Rode primeiro no modo de detecção ou de contagem (Count) |
| Clientes reais estão sendo bloqueados | Encontre o ID da regra e escreva uma exclusão estreita |
| Seu monitor ou rastreador recebe erros 403 | Vá mais devagar, identifique-se e peça para entrar em uma lista de permitidos |
| Você precisa ver o seu site como os visitantes do exterior | Teste por meio de um IP residencial naquele país |
Perguntas frequentes
WAF é a mesma coisa que firewall?
É um tipo de firewall. Um firewall de rede permite ou descarta conexões por endereço e porta; um WAF lê o conteúdo das requisições HTTP. A maioria dos sites precisa dos dois, porque cada um enxerga o que o outro não consegue.
A Cloudflare é um WAF?
A Cloudflare é uma rede de servidores proxy reversos na frente de sites. O WAF dela, com regras personalizadas, limite de taxa e conjuntos de regras gerenciadas, é um dos serviços dessa rede, ao lado do cache e da proteção contra DDoS.
Um WAF consegue parar ataques DDoS?
Em parte. Ele consegue absorver enxurradas de requisições HTTP com limites de taxa e desafios. Inundações que lotam a própria conexão de rede exigem uma proteção contra DDoS dedicada.
Existe WAF gratuito ou de código aberto?
Sim. O ModSecurity com o OWASP Core Rule Set é a dupla de código aberto mais conhecida, e o Coraza é um motor mais novo que roda as mesmas regras. Algumas CDNs incluem um conjunto básico de regras gerenciadas nos planos gratuitos.
Por que um WAF me bloqueia quando uso VPN?
Servidores de VPN são compartilhados por muitas pessoas, então os endereços deles vão parar em listas de reputação, e alguns sites bloqueiam países inteiros ou redes de nuvem. Se a página abre assim que você desconecta a VPN, a regra era sobre o endereço, não sobre você.
Um WAF consegue ler o tráfego HTTPS?
Sim, ele precisa. Ele guarda o certificado do site, descriptografa e inspeciona a requisição e depois a repassa ao servidor, normalmente por uma nova conexão criptografada. Entre o seu navegador e o WAF, o tráfego continua criptografado.
Em resumo
Um firewall de aplicação web é um proxy reverso com regras de segurança que lê cada requisição HTTP antes do site. Ele julga as requisições por assinaturas, pontuações de anomalia, regras personalizadas, limites de taxa e sinais de bots, e as suas páginas de bloqueio trazem um ID que só o operador do site consegue rastrear. Os visitantes devem remover os gatilhos óbvios e falar com o site; os donos devem registrar primeiro, bloquear depois e criar exclusões estreitas. Para um endereço fixo em uma lista de permitidos, ou IPs locais para testar as suas próprias regras a partir do exterior, conheça os nossos proxies.




