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

06 - Fundamentos

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

Fundamentos do Protocolo DNS

1. Definição e Contexto

O DNS (Domain Name System) é o sistema distribuído e hierárquico de resolução de nomes da Internet. Sua função é traduzir nomes amigáveis a humanos (ex.: www.exemplo.com.br) em endereços numéricos usados pela rede (IPv4/IPv6). Sem DNS, a Internet moderna seria inutilizável — usuários teriam que memorizar bilhões de endereços IP. O DNS foi definido originalmente em 1983 (RFC 882 e 883), sendo substituído em 1987 pelas RFCs 1034 (conceitos) e 1035 (implementação), que continuam vigentes. É um dos protocolos mais antigos ainda em uso e também um dos mais atacados.

Características Fundamentais

  • Modelo: Cliente-servidor distribuído e hierárquico.
  • Porta: 53/UDP (consultas) e 53/TCP (transferência de zona e respostas > 512 bytes).
  • Caching: Obrigatório em todos os níveis (resolvedor, SO, aplicação).
  • TTL: Controla tempo de vida da informação em cache (segundos).
  • Escalabilidade: ~360 milhões de domínios registados, trilhões de consultas/dia.

2. Arquitetura Hierárquica

O DNS é organizado como uma árvore invertida com a raiz no topo. Cada nó é um domínio.

                  . (root)
                  │
        ┌─────────┼─────────┐
       com       br        fr
        │         │
      exemplo  exemplo    exemple
        │         │
       www      www

Componentes da Hierarquia

Nível Exemplo Função
Root . Início da árvore (13 clusters A-M)
TLD .com, .br, .fr Top-Level Domains
SLD exemplo.com.br Second-Level Domains (registráveis)
Subdomínio www.exemplo.com.br Host ou subdomínio
FQDN www.exemplo.com.br. Ponto final indica raiz absoluta

3. Tipos de Servidores DNS

Tipo Função Exemplos
Authoritative Possui a zona autoritativamente BIND, NSD, PowerDNS
Recursive Resolver Busca respostas para clientes Unbound, dnsmasq, 8.8.8.8
Caching-only Apenas cacheia respostas dnsmasq
Forwarder Repassa consultas a outro resolvedor BIND forward mode

4. Tipos de Registros DNS (Resource Records)

Registro RFC Função Exemplo
A 1035 Nome → IPv4 exemplo.com. IN A 203.0.113.10
AAAA 3596 Nome → IPv6 exemplo.com. IN AAAA 2001:db8::1
NS 1035 Servidor de nome autoritativo exemplo.com. IN NS ns1.exemplo.com.
CNAME 1035 Apelido (alias) www IN CNAME exemplo.com.
MX 1035 Servidor de e-mail exemplo.com. IN MX 10 mail.exemplo.com.
TXT 1035 Texto livre (SPF, DKIM, etc.) exemplo.com. IN TXT "v=spf1 -all"
PTR 1035 IP → Nome (reverso) 10.113.0.203.in-addr.arpa. IN PTR exemplo.com.
SOA 1035 Start of Authority Define servidor primário, contato, serial
SRV 2782 Localização de serviço _sip._tcp.exemplo.com. IN SRV 10 60 5060 sip.exemplo.com.
DS 4034 Delegation Signer (DNSSEC) Hash da chave KSK do filho
DNSKEY 4034 Chave pública DNSSEC KSK ou ZSK
CAA 6844 Autoridade de emissão de certificados Restringe quais CAs podem emitir
HTTPS 9460 Service binding (SVCB) Aponta para endpoint alternativo

5. Processo de Resolução (Forward Lookup)

Quando um usuário digita www.exemplo.com.br no navegador:

  1. Cache local do browser: Verifica cache interno (Chrome mantém por ~60s).
  2. SO resolver: Sistema operacional consulta resolver configurado (ex.: 8.8.8.8 ou do ISP).
  3. Cache do resolver: Se resolver tem resposta em cache, devolve em ~1ms.
  4. Root server: Se não tem cache, pergunta à raiz: "Quem é autoritativo para .br?"
  5. TLD .br: Resolvedor pergunta ao .br: "Quem é autoritativo para exemplo.com.br?"
  6. Authoritative final: Resolvedor pergunta: "Qual o IP de www.exemplo.com.br?"
  7. Resposta: A 203.0.113.10 com TTL 3600s.
  8. Cache: Resolver e SO cacheiam pelo TTL; cliente recebe resposta final.

Exemplo de Trace

dig +trace www.exemplo.com.br

# Passo 1: consulta root servers
# Passo 2: referral para .br
# Passo 3: referral para exemplo.com.br
# Passo 4: resposta A final

6. UDP vs TCP

Por padrão, consultas DNS usam UDP na porta 53 (rápido, sem handshake). TCP é usado quando:

  • Resposta excede 512 bytes (resposta DNSSEC tipicamente).
  • Transferência de zona (AXFR/IXFR).
  • UDP truncado (flag TC=1 na resposta; cliente refaz em TCP).

7. Caching e TTL

O caching é o que torna o DNS viável em escala global. Sem cache, cada consulta percorreria toda a hierarquia, e os root servers colapsariam sob carga.

Anatomia do TTL

Componente Valor típico Efeito
SOA Minimum TTL 86400s (1 dia) TTL default para registros sem TTL
Registro A 300-3600s Estabilidade vs agilidade de migração
NXDOMAIN (negative) 60-300s Domínios inexistentes cacheiam pouco
Resolver default 30s-3600s Pode ser sobrescrito, mas respeitado

Decisão de TTL por Cenário

  • Site estável: 3600s (1h) — baixa carga na raiz e TLD.
  • Migração iminente: 300s (5 min) — permite propagar IP novo em minutos.
  • Anti-DDoS (CDN failover): 30-60s — failover rápido entre datacenters.
  • Geo-DNS: 60-120s — responde conforme origem do cliente.

8. Resolução Reversa (IP → Nome)

A resolução reversa converte IP em nome de domínio. Usa o domínio especial in-addr.arpa (IPv4) e ip6.arpa (IPv6), com registros PTR.

Exemplo

Para o IP 203.0.113.10, a consulta é 10.113.0.203.in-addr.arpa. IN PTR. O IPv4 é invertido byte a byte. Resolução reversa é usada por:

  • Servidores SMTP (anti-spam, verificação HELO).
  • Logs de firewall/web (tradução de IP para nome legível).
  • Serviços de autenticação (rlogin, NFS, sshd com UseDNS yes).

9. DNSSEC — Cadeia de Confiança

DNSSEC (RFC 4033-4035) adiciona assinaturas criptográficas aos registros, permitindo ao cliente validar autenticidade da resposta. Sem DNSSEC, DNS é vulnerável a cache poisoning (ataque Kaminsky, 2008).

Tipos de Chave

  • KSK (Key Signing Key): Assina a ZSK, publicada como DNSKEY.
  • ZSK (Zone Signing Key): Assina registros individuais (RRSIG).
  • DS (Delegation Signer): Hash da KSK, publicado na zona pai.

Cadeia de Confiança

Root KSK (Trust Anchor configurado no resolvedor)
  └─ DS para .com (assinado pela Root)
      └─ DS para exemplo.com (assinado pela .com)
          └─ RRSIG do registro A (assinado por ZSK do exemplo.com)

Se qualquer passo falhar na validação, a resposta é marcada como SERVFAIL (DNSSEC validation failure).

10. Ferramentas de Diagnóstico

dig www.exemplo.com.br                          # consulta A
dig +short www.exemplo.com.br                    # apenas resposta
dig @8.8.8.8 www.exemplo.com.br                  # servidor específico
dig +trace www.exemplo.com.br                    # trace completo
dig +dnssec www.exemplo.com.br                   # validar DNSSEC
delv www.exemplo.com.br                          # cadeia de confiança
nslookup www.exemplo.com.br                      # legado
host www.exemplo.com.br                          # legado alternativo
dig -x 203.0.113.10                             # reverso

11. Vulnerabilidades e Mitigações

Ataque Descrição Mitigação
Cache Poisoning Injeção de resposta falsa no cache DNSSEC, 0x20 encoding, source port random
Kaminsky (2008) Envenenamento massivo em segundos DNSSEC obrigatório
Amplificação DDoS UDP 53 aberto, resposta 60x maior que query RRL (RFC 7873), fechar recursão aberta
Subdomain Takeover CNAME aponta para serviço descomissionado Auditoria de CNAMEs órfãos
Typosquatting Domínio com erro de digitação DTXT monitoring, defensive registration
Homograph Attack аpple.com (cirílico) vs apple.com Browser exibe Punycode

12. Resumo Técnico

Atributo Valor
Porta 53 (UDP e TCP)
RFCs principais 1034, 1035, 2181, 4033-4035
Estrutura Árvore hierárquica invertida
Caching Multi-nível (SO, resolver, autoritativo)
DNSSEC RFC 4033-4035 (cadeia root → TLD → SLD)
IDN RFC 5890 (Punycode via RFC 3492)

13. Conclusão

O DNS é o sistema de nomes que tornou a Internet usável por humanos. Sua arquitetura hierárquica e distribuída, combinada com caching agressivo e o protocolo leve UDP, permite escalar a trilhões de consultas diárias com latência de milissegundos. A evolução para DNSSEC resolveu as principais vulnerabilidades de integridade, mas novos desafios surgiram com o DNS-over-HTTPS (DoH, RFC 8484) e DNS-over-TLS (DoT, RFC 7858), que cifram consultas mas dificultam a visibilidade corporativa. Para administradores e analistas de segurança, dominar DNS é pré-requisito para qualquer tarefa de infraestrutura, desde configurar domínios próprios até investigar vazamentos de dados via DNS tunneling.