Iniciante Redes

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).