Ataques de DNS: spoofing, cache poisoning e tunneling
O DNS é a “agenda de contatos” da internet — traduz nomes em IPs. Por ser um protocolo antigo sem autenticação nativa, é alvo constante de abuso. Entender os vetores de ataque é fundamental para defendê-lo.
DNS Spoofing
O atacante forja uma resposta DNS antes que a legítima chegue ao cliente:
Cliente pergunta: qual o IP de banco.example.com?
Atacante responde primeiro: 203.0.113.99 (IP malicioso)
Cliente acessa site falso sem perceber
Funciona quando o ID da transação DNS é previsível (16 bits — 65536 possibilidades).
Cache Poisoning
Variação mais poderosa: o atacante envenena o cache de um resolver DNS, afetando todos os clientes que o usam:
Atacante envia milhares de respostas falsas ao resolver
Tenta acertar o ID correto da transação (ataque de Kaminsky, 2008)
Resolver armazena o registro falso → todos os clientes recebem IP errado
Defesa: DNSSEC assina criptograficamente os registros DNS. Resolver valida a assinatura antes de aceitar a resposta.
DNS Tunneling — exfiltração de dados
Dados são codificados em consultas DNS para burlar firewalls que bloqueiam outras portas mas permitem DNS:
# Dado exfiltrado codificado como subdomínio
dados-secretos-em-base32.atacante.com → resolve para qualquer IP
O servidor do atacante captura a consulta e extrai os dados
Ferramentas legítimas como iodine e dnscat2 são usadas em pentests autorizados para testar se o DNS está sendo monitorado.
Indicadores de tunneling:
- Subdomínios muito longos (>50 caracteres)
- Alto volume de consultas para um único domínio
- Registros TXT ou NULL com payloads grandes
DNS Hijacking
Atacante compromete o servidor DNS autoritativo ou o roteador doméstico e altera registros:
example.com A → deveria apontar para 198.51.100.10
Após hijacking → aponta para 203.0.113.50 (phishing)
Monitorar consultas DNS suspeitas
# Capturar consultas DNS com tshark
tshark -i eth0 -f "port 53" -Y "dns.flags.response == 0" \
-T fields -e dns.qry.name
# Saída suspeita — subdomínios longos gerados por malware (DGA):
a3f9x1k2m.malware.io
b7h2q9w4n.malware.io
DNSSEC — como funciona
Zona example.com assina registros com chave privada
Resolver recebe resposta + assinatura RRSIG
Resolver valida com chave pública publicada no DNS (DNSKEY)
Resposta forjada → assinatura inválida → descartada
# Verificar se um domínio usa DNSSEC
dig +dnssec example.com
dig DS example.com @8.8.8.8
DNS over HTTPS (DoH) e DNS over TLS (DoT)
Criptografam a consulta DNS, impedindo interceptação e modificação em trânsito:
DNS padrão → UDP/53 → visível e modificável na rede
DoH → HTTPS/443 → criptografado, parece tráfego web normal
DoT → TCP/853 → criptografado, porta dedicada
Defesa completa: DNSSEC (integridade dos dados) + DoH/DoT (privacidade em trânsito).