O que é um ataque de inundação DNS?
Uma inundação DNS é um ataque de negação de serviço que envia um volume anormal de consultas para servidores autoritativos ou resolvedores recursivos. O objetivo é consumir CPU, memória, largura de banda ou capacidade de processamento, impedindo consultas legítimas e tornando os nomes de domínio difíceis ou impossíveis de resolver. A amplificação DNS é uma técnica relacionada, mas distinta, que usa respostas maiores para multiplicar o tráfego contra a vítima.
Impacto dos ataques de inundação do DNS
Quando os servidores DNS estão sobrecarregados:
Normal operation:
User → DNS query → DNS server → Response → Website loads
During DNS flood:
User → DNS query → DNS server (overwhelmed, no response)
→ Website doesn't load (even though web server is fine)
Efeitos:
- Os sites tornam-se inalcançáveis (mesmo que os servidores web estejam operacionais)
- Falha na entrega de e-mail (falha na procura de registros MX)
- APIs e serviços que dependem do DNS ficam indisponíveis
- Danos colaterais à infraestrutura DNS compartilhada
Tipos de ataques de inundação DNS
Inundação direta de consultas DNS
O atacante envia consultas DNS legítimas em alto volume:
Botnet → Millions of DNS queries → Target DNS server
Query examples:
example.com A
www.example.com A
random1.example.com A
random2.example.com A
...millions more...
Características:
- Consultas de DNS válidas (difícil de filtrar)
- Muitas vezes para subdomínios aleatórios (cache bypass)
- Usa botnets para ataque distribuído
Ataque de Amplificação DNS
Explora resolvedores recursivos para ampliar o tráfego de ataque:
1. Attacker sends small query to open resolver
2. Spoofs source IP as victim's IP
3. Resolver sends large response to victim
4. Attacker amplifies bandwidth 28-54x
Exemplo:
Attacker sends: 60-byte query for TXT record (ANY query)
Resolver sends: 3000-byte response to victim
Amplification: 50x
Inundação de NXDOMAIN
Consultas para domínios inexistentes para contornar o cache:
Query: random-12345.example.com (doesn't exist)
Server must check authoritative zone every time
Cannot be cached (NXDOMAIN responses often have low TTL)
Consumes more server resources than cached responses
Ataque de Domínio Fantasma
Consultas legítimas domínios que não respondem:
Attacker: Queries resolver for slow/non-responsive domains
Resolver: Waits for timeout, consumes resources
Result: Resolver resource exhaustion
Ataque aleatório de subdomínio
Consultas subdomínios aleatórios para evitar visitas ao cache:
Query: abc123random.example.com
Query: xyz789random.example.com
Query: def456random.example.com
Each is unique → cache miss → authoritative query
Overwhelms authoritative nameservers
Ataque de Vetores e Técnicas
Ataques conduzidos por botnets
Compromised devices:
- IoT devices (cameras, routers)
- Infected computers
- Hacked servers
Distributed attack:
10,000 bots × 100 queries/sec = 1 million queries/sec
Ataques de reflexão
Attacker spoofs victim's IP
Sends queries to many open resolvers
Resolvers respond to victim with large answers
Victim receives amplified traffic
Inundações na camada de aplicação
Legitimate-looking queries
Difficult to distinguish from real traffic
May target specific resource-intensive query types
Detectando ataques de inundação de DNS
Volume de consultas incomum
Normal baseline: 10,000 queries/second
During attack: 500,000+ queries/second
Monitor :
# Check query rate (BIND)
rndc status | grep "queries resulted"
# Analyze query logs
tail -f /var/log/named/queries.log | wc -l
Alta taxa de NXDOMAIN
Normal: 5-10% NXDOMAIN responses
Attack: 50-90% NXDOMAIN responses (random subdomain flood)
Distribuição dos IP de origem
Legitimate: Diverse source IPs, geographic spread
Attack: Concentrated sources, unusual geographic patterns
Padrões de consulta
Legitimate: Repetitive queries (common domains cached)
Attack: Unique queries (random strings, no cache benefit)
Degradação do tempo de resposta
Normal: < 50ms response time
Under attack: > 1000ms or timeouts
Mitigar os ataques de enchentes de DNS
Defesas de Nível de Infraestrutura
#### DNS Anycast
Distribuir tráfego através de várias localizações geográficas:
Single IP address (e.g., 1.2.3.4) announced from multiple locations
Attack traffic automatically routed to nearest server
Load distributed across global network
Harder to overwhelm all locations simultaneously
Benefícios:
- Distribuição automática de carga
- Resistência geográfica
- Absorção de tráfego de ataque
#### Infraestrutura DNS superdimensionada
Capacity: 10x normal peak traffic
Reserves: Handle sudden spikes
Auto-scaling: Add capacity during attacks
#### Limitação de taxa
# BIND rate limiting (response-rate limiting)
rate-limit {
responses-per-second 10;
window 5;
slip 2;
};
Limita as respostas da mesma fonte para evitar ataques de amplificação.
#### Filtragem de consultas
# Block ANY queries (common in amplification)
# Block excessively long queries
# Block known-malicious patterns
BIND Exemplo:
# Block ANY queries
match-query {
type ANY;
action drop;
};
Defesas de Nível do Provedor de DNS
#### DNSSEC
Embora não impeça diretamente as inundações, DNSSEC:
- Evita envenenamento por cache durante ataques
- Mantém a integridade sob condições de ataque
#### Configuração de mestre oculto
Master server (hidden): 10.0.0.1 (not publicly known)
Slave servers (public): ns1.example.com, ns2.example.com
Attackers target slaves
Master remains operational
Can quickly update slaves if needed
#### Firewall DNS e IDS
Analyze queries in real-time
Block suspicious patterns
Whitelist known-good clients
Blacklist attack sources
Proteção de Nível de Aplicação
#### Limitação da taxa de resposta (RRL)
Limit identical responses to same client
Prevents amplification attacks
Slip mode: Occasionally allow queries through (to not break legitimate recursive resolvers)
Configuração BIND:
options {
rate-limit {
responses-per-second 5;
referrals-per-second 5;
nodata-per-second 5;
nxdomains-per-second 5;
errors-per-second 5;
window 5;
};
};
#### Otimização do cache
Increase cache size to absorb repeated queries
Longer TTLs where appropriate (trade-off with agility)
Prefetch popular records
#### Filtragem de consultas
# Drop queries for non-existent zones
# Block queries from known-bad sources
# Rate-limit per-source queries
Defesas de Nível de Rede
#### Blackholing BGP
Route attack traffic to null0
Sacrifice availability to preserve infrastructure
Last resort when attack overwhelms capacity
#### Filtragem no ISP de trânsito
Coordinate with ISP to filter attack traffic
Source IP validation (prevent spoofing)
Traffic scrubbing centers
#### Serviços de mitigação de DDoS
Cloudflare, Akamai, AWS Shield
Absorb attack traffic before reaching your servers
Global capacity to withstand large attacks
Melhores práticas para a resiliência DNS
Usar vários provedores de DNS
Primary provider: Cloudflare
Secondary provider: AWS Route 53
If one is attacked/down, other continues serving
Different infrastructure reduces single point of failure
Implementar DNSSEC
Protects against DNS spoofing/cache poisoning
Maintains integrity during attacks
Build trust even under attack conditions
Monitorizar o desempenho do DNS
Real-time query rates
Response times
NXDOMAIN percentages
Geographic distribution of queries
Error rates
Ferramentas: Grafana + Prometeu, Datadog, AWS CloudWatch
Testar a capacidade regularmente
Load testing: Can infrastructure handle 10x traffic?
Failover testing: Do secondary providers activate correctly?
Attack simulation: Test mitigation strategies
Desativar a recursão nos servidores autoritativos
# BIND
recursion no;
Os servidores de nomes autorizados não devem agir como resolvedores recursivos.
Restringir transferências de zona
# BIND
allow-transfer { 10.0.0.2; 10.0.0.3; }; # Only specific slaves
Evite que os atacantes despejem toda a zona.
Manter o software atualizado
Regularly update DNS server software
Patch known vulnerabilities
Subscribe to security advisories
Respondendo ao ataque de inundação DNS ativo
Acções Imediatas
1. Verificar ataque está ocorrendo
# Check query rate
rndc status
# Check load
top
2. Limitação da taxa
# BIND: Enable RRL if not already active
rndc addzone rate-limit
3. Contact DDoS mitigação provedor
- Ativar serviços de limpeza
- Redirecionar o tráfego através da rede de atenuação
4. Analisar padrões de ataque
# Top query types
grep "query" /var/log/named/queries.log | awk '{print $6}' | sort | uniq -c | sort -rn | head -20
# Top queried domains
grep "query" /var/log/named/queries.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
5. Bloquear fontes de ataque óbvias
# Identify top source IPs
grep "query" /var/log/named/queries.log | awk '{print $5}' | cut -d# -f1 | sort | uniq -c | sort -rn | head -50
# Block at firewall
iptables -A INPUT -s ATTACKER_IP -j DROP
Acções a médio prazo
1. Infra-estrutura de escala
- Adicionar mais capacidade de servidor de nomes
- Distribuir através de anycast se já não
2. Implementar filtragem adicional
- Bloquear padrões de pesquisa específicos para atacar
- Lista branca de boas fontes conhecidas
3. Coordenar com os fornecedores
- ISP/fornecedor de alojamento
- Prestador de DNS
- Serviço de mitigação do DDoS
4. Ataque de documentos
- Capturas de pacotes
- Registos
- Gráficos de tráfego
- Para análise e fins jurídicos pós-incidentes
Análise Pós-Ataque
1. Revisão da eficácia das mitigação
2. Identificar as deficiências da infra-estrutura
3. Atualizar procedimentos de resposta a incidentes
4. Considere melhorias a longo prazo** (DNS multifornecedor, maior capacidade)
Jurídico e Relatórios
Comunicar às autoridades
- FBI IC3: ic3.gov
- Unidades locais de crimes cibernéticos
- Departamentos de abuso de ISP
Recolher evidências
# Packet captures
tcpdump -i eth0 -w dns-attack.pcap port 53
# Full query logs
tar -czf attack-logs-$(date +%Y%m%d).tar.gz /var/log/named/
# Traffic graphs/screenshots
# System resource usage
Os ataques de inundação DNS são uma séria ameaça para os serviços on-line, mas com estratégias de infraestrutura, monitoramento e mitigação adequadas, seu impacto pode ser minimizado.