Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

03 - Servidor Recursivo (Caching)

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Servidor Recursivo (Recursive Resolver / Caching DNS)

O Servidor Recursivo (Recursive Resolver) é o motor de busca e o intermediário inteligente do sistema de nomes global. Diferente do servidor autoritativo, que detém a resposta final de um domínio, o servidor recursivo é o "trabalhador" que recebe a pergunta do cliente (navegador, sistema operacional, aplicação) e percorre toda a árvore hierárquica do DNS (Raiz → TLD → Autoritativo) até encontrar o IP solicitado. Sua eficiência baseada em Caching é o que torna a navegação na Internet suportável e veloz para bilhões de usuários simultaneamente, reduzindo latência de segundos para milissegundos.


1. O Processo de Recursão: A Jornada da Consulta

Quando uma consulta DNS é enviada a um servidor recursivo, ele inicia um dos algoritmos de busca distribuída mais robustos da computação, completando tipicamente em 3 saltos após o cache local estar morno.

Etapas da Recursão

  1. Check de Cache: O servidor verifica primeiro seu cache em memória RAM. Se a resposta estiver lá e o TTL não tiver expirado, entrega imediatamente (latência < 1ms).
  2. Consulta à Raiz (.): Se não estiver em cache, pergunta a um dos 13 root servers lógicos (a.root-servers.net até m.root-servers.net). A raiz responde com uma referência aos servidores TLD do gTLD correspondente (ex: .com).
  3. Consulta ao TLD: O servidor TLD (.com) responde com a lista de servidores autoritativos para o domínio específico (ex: ns1.empresa.com).
  4. Consulta ao Autoritativo: O recursivo pergunta finalmente ao autoritativo e obtém o IP (registro A ou AAAA).
  5. Resposta Final: O recursivo retorna o IP ao usuário que fez a consulta e guarda a resposta em seu próprio cache pelo tempo definido no TTL do registro.

Diagrama de Fluxo

[Cliente] → [Resolver Recursivo]
                 ↓ (cache miss)
             [Root Server .]
                 ↓ (refere TLD .com)
             [TLD .com Server]
                 ↓ (refere autoritativo)
             [ns1.empresa.com]
                 ↓ (resposta A)
             [Cache + Cliente]

2. A Magia do Caching e a Latência de Rede

O servidor recursivo é um dos maiores economizadores de tráfego de rede do mundo, processando bilhões de consultas por dia.

Evitando Repetição

Se mil pessoas em uma cidade acessam o facebook.com, o servidor recursivo do provedor (ISP) local faz a busca completa apenas uma vez. Para os 999 usuários seguintes, a resposta é entregue instantaneamente a partir da memória RAM (Cache), em milissegundos. Estima-se que 95-99% das consultas DNS são servidas pelo cache, evitando tráfego desnecessário para os servidores autoritativos.

Time to Live (TTL)

O servidor recursivo respeita rigorosamente o TTL definido pelo dono do domínio. Se o TTL é de 3600 segundos, o recursivo não perguntará nada à Internet sobre aquele host pela próxima hora. Após o TTL expirar, a entrada é descartada do cache e a próxima consulta refaz o caminho completo.

Tabela: TTL por Cenário

Cenário TTL Recomendado Justificativa
Servidor estável (corp) 86400s (24h) Reduz carga nos autoritativos
Migração planejada 300s (5min) Permite propagação rápida
CDN com failover 30-60s Rápida resposta a outages
Registro MX 3600s Estabilidade de e-mail
Registro DKIM/SPF 3600s Estabilidade de e-mail
A recém-publicado 60s Permite rollback rápido

Negative Caching

O recursivo também armazena respostas negativas (NXDOMAIN, NODATA) por um tempo especificado no campo SOA MINIMUM TTL, evitando consultas repetidas a domínios inexistentes.


3. Perspectiva de Cyber Security: O Resolver como Alvo e Arma

Para um analista de Cyber Security, os servidores recursivos são pontos críticos de falha e de manipulação de tráfego em escala global.

Envenenamento de Cache (DNS Cache Poisoning)

Ocorre quando um atacante consegue enviar uma resposta DNS falsa para o servidor recursivo antes que a resposta legítima do autoritativo chegue. O ataque Kaminsky (2008) demonstrou uma variante devastadora que explorava a previsibilidade de Transaction IDs e Source Ports:

  • Efeito: O servidor recursivo armazena o IP malicioso no cache e passa a redirecionar todos os seus usuários para um site de phishing de forma invisível por até 24h (ou até o TTL expirar).
  • Defesa: O uso de Source Port Randomization (RFC 5452) e a validação de DNSSEC (onde o recursivo verifica a assinatura digital RRSIG da resposta) são as principais defesas contra este ataque.

O Perigo dos Open Resolvers (Servidores Abertos)

Configurar um servidor recursivo para responder a qualquer IP da Internet transforma-o em um Open Resolver, listado em databases como openresolver.com:

  • Amplificação DNS (DDoS): Atacantes usam estes servidores para realizar ataques de DDoS. Eles enviam uma pequena consulta forjando o IP da vítima (UDP spoofing). O servidor DNS responde com um pacote enorme para a vítima, amplificando o poder do ataque em 50-100x. Em 2013, o ataque Spamhaus usou amplificação DNS e atingiu 300 Gbps.
  • Mitigação: Administradores devem restringir o acesso recursivo apenas aos seus próprios blocos de IP internos via ACLs:
    bash # BIND named.conf allow-recursion { 192.168.0.0/16; 10.0.0.0/8; }; allow-query-cache { 192.168.0.0/16; 10.0.0.0/8; };

DNS Tunneling (Exfiltração via DNS)

Atacantes encapsulam dados em consultas DNS para burlar firewalls que permitem tráfego DNS outbound. Ferramentas como iodine, dns2tcp e dnscat2 codificam dados binários em subdomínios. Mitigação: inspeção de tamanho de consulta DNS, bloqueio de TLDs suspeitos e análise de padrões em SIEMs.


4. Resolvers Públicos Modernos e Privacidade

Empresas como Google, Cloudflare, Quad9 e OpenDNS operam servidores recursivos massivos que utilizam Anycast (RFC 4786) para estar fisicamente próximos de todos os usuários do mundo, com centenas de instâncias globais.

Tabela: Resolvers Públicos Populares

Provedor IPv4 IPv6 DoH DoT Política Privacidade
Google 8.8.8.8 / 8.8.4.4 2001:4860:4860::8888 Sim Sim Logs temporários
Cloudflare 1.1.1.1 / 1.0.0.1 2606:4700:4700::1111 Sim Sim Nunca logs
Quad9 9.9.9.9 2620:fe::fe Sim Sim Bloqueia malware
OpenDNS 208.67.222.222 - Sim - Filtragem opcional
Verisign 64.6.64.6 2620:74:1b::1 Não Não Sem filtros
AdGuard 94.140.14.14 - Sim Sim Bloqueia anúncios

Evolução de Privacidade: DoH e DoT

A adoção de protocolos criptográficos protege a consulta do usuário contra a interceptação por curiosos e ISPs:

  • DoT (DNS over TLS, RFC 7858): Consultas DNS tradicionais encapsuladas em TLS na porta 853. Implementado em Android 9+ nativamente.
  • DoH (DNS over HTTPS, RFC 8484): Consultas DNS encapsuladas em HTTPS na porta 443. Implementado em Firefox, Chrome, Edge e iOS 14+.
  • DNSCrypt: Protocolo predecessor, não padronizado IETF, mas ainda usado por algumas ferramentas.

5. Implementações de Resolvers

Software Tipo Licença Destaque
BIND Recursivo + Auth ISC Mais usado historicamente
Unbound Recursivo BSD Otimizado para caching, valida DNSSEC
Knot Resolver Recursivo GPLv3 Alto desempenho, CZ.NIC
PowerDNS Recursor Recursivo GPLv2 Integrado com PowerDNS Auth
dnsmasq Recursivo leve GPLv2 Home routers, pequenas redes
systemd-resolved Recursivo local LGPLv2 Padrão em Ubuntu/Debian moderno
Microsoft DNS Recursivo + Auth Comercial Integrado ao Active Directory

Exemplo: Configuração Unbound com DNSSEC

# /etc/unbound/unbound.conf
server:
  interface: 0.0.0.0
  port: 53
  access-control: 192.168.0.0/16 allow
  access-control: 10.0.0.0/8 allow
  auto-trust-anchor-file: "/var/lib/unbound/root.key"  # DNSSEC
  harden-dnssec-stripped: yes
  qname-minimisation: yes    # privacidade RFC 7816
  prefetch: yes
  msg-cache-size: 256m
  rrset-cache-size: 512m
  num-threads: 4
forward-zone:
  name: "."
  forward-addr: 1.1.1.1@53
  forward-addr: 8.8.8.8@53

6. Diagnóstico e Auditoria de Servidores Recursivos

Validar a performance e a segurança do resolver é indispensável para uma rede corporativa saudável:

# Testando a velocidade de resposta de um servidor recursivo
dig @8.8.8.8 www.google.com
# Identificando cache quente (QUERY TIME próximo a 0ms)
dig @1.1.1.1 www.facebook.com
# Validando DNSSEC (flag AD = Authenticated Data)
dig @1.1.1.1 dnssec.works +dnssec
# Testando DoT (DNS over TLS)
kdig -d @1.1.1.1 +tls example.com
# Testando DoH (DNS over HTTPS)
curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=example.com&type=A'
# Detectando Open Resolver (vulnerabilidade)
nmap -sU -p 53 --script dns-recursion alvo.com
# Monitorando queries em BIND
rndc status && rndc dumpdb -all

Análise de DNSSEC Validation: Servidores recursivos configurados com segurança devem possuir a flag AD (Authenticated Data) na resposta ao lidar com domínios assinados digitalmente. Sem a flag AD, o recursivo não está validando a integridade criptográfica da resposta, ficando vulnerável a ataques de envenenamento mesmo com Source Port Randomization.


7. Resumo Técnico

Atributo Valor
RFC de referência 1034, 1035, 2181, 5452 (Source Port Randomization), 4033-4035 (DNSSEC), 4786 (Anycast)
Porta UDP/TCP 53
Cache Em RAM, com TTL por registro
Negative Cache SOA MINIMUM TTL
DNSSEC Validado com chain-of-trust a partir da raiz
DoT Porta 853 (RFC 7858)
DoH Porta 443 (RFC 8484)
Implementações BIND, Unbound, Knot, PowerDNS, dnsmasq

8. Conclusão: O Farol da Navegação

O Servidor Recursivo é o silencioso guia que permite a bilhões de pessoas navegarem sem nunca precisarem ver um endereço IP. Sua inteligência na gestão de cache e sua capacidade de processar árvores hierárquicas complexas em milissegundos são milagres da engenharia de redes. Compreender o fluxo de recursão completo, implementar controles de acesso rigorosos (ACLs anti-Open-Resolver), validar respostas via DNSSEC (flag AD), configurar QNAME minimisation para privacidade, e migrar para protocolos modernos (DoH/DoT) são competências essenciais para garantir que a porta de entrada da sua rede para a Internet seja veloz, privada e, acima de tudo, fidedigna em ambientes corporativos e ISPs modernos.