A defesa contra DDoS é defesa em profundidade: nenhum controle único para cada ataque, então você empilha camadas que cada uma absorve, filtra ou bloqueia uma classe diferente de tráfego. A ordem importa — empurre o máximo de trabalho possível para a borda, longe da sua origem.
As camadas, de fora para dentro
- CDN / centros de limpeza (Cloudflare, Akamai, AWS Shield) — a camada mais externa. Com anycast, o mesmo IP é anunciado de muitos pontos de presença, então uma inundação volumétrica é espalhada pela capacidade global em vez de um único data center. Os centros de limpeza absorvem a inundação e encaminham apenas o tráfego limpo.
- WAF (Web Application Firewall) — inspeciona requisições HTTP e bloqueia padrões maliciosos: assinaturas ruins, agentes de usuário suspeitos, IPs conhecidos como ruins, e floods de Layer 7 que imitam requisições reais.
- Rate limiting — limita requisições por IP, chave de API ou usuário em uma janela de tempo, retornando
429 Too Many Requests. Para clientes abusivos sem prejudicar os normais. - Blackhole upstream / ISP (null-route) — o último recurso para volume bruto. O provedor descarta todo o tráfego para o IP alvo (remotely-triggered blackhole, RTBH), sacrificando aquele IP para proteger o resto.
- Autoscaling + overprovisioning — capacidade extra de origem para absorver o que passa, ganhando tempo enquanto outras camadas entram em ação.
Como funcionam juntas
O modelo mental é absorver -> filtrar -> bloquear:
Internet flood
-> CDN + anycast : ABSORB volume across global PoPs
-> scrubbing : drop obvious junk (L3/L4 floods)
-> WAF : FILTER malicious HTTP (L7)
-> rate limiting : throttle abusive clients (429)
-> origin (autoscaled) : serve the clean remainder
-> ISP null-route : last resort if origin IP is overwhelmed
Aataques volumétricos morrem na camada de CDN/limpeza; ataques em camada de aplicação que parecem tráfego real são filtrados pela WAF e rate limiter.
Por que isso importa
Depender de uma camada falha previsavelmente: um WAF não pode parar uma inundação de 1 Tbps (o pipe satura primeiro), e um CDN sozinho vai felizmente passar uma inundação HTTP inteligente para a sua origem. Empilhar significa que cada classe de ataque encontra um controle projetado para isso, e a origem só vê tráfego que as camadas externas não conseguem lidar sozinhas.
