07 - Protocolo DNS
video: https://youtu.be/... no frontmatter da nota.Protocolo DNS (Domain Name System)
O DNS (Domain Name System) é o serviço de infraestrutura mais crítico e onipresente da Internet. Padronizado pelas RFC 1034 e RFC 1035 (1987), e evoluído através de centenas de novas especificações, o DNS é o sistema que permite a tradução de nomes de domínio humanamente compreensíveis em endereços IP (IPv4 e IPv6) que as máquinas utilizam para roteamento. Em um sentido mais amplo, o DNS é a base de dados distribuída que sustenta a confiança e a usabilidade de quase todos os serviços da camada de aplicação do modelo OSI.
1. A Essência do Protocolo e sua Necessidade Técnica
A Internet moderna seria impraticável sem o DNS. Imagine a complexidade de memorizar o IP de cada site, servidor de e-mail ou serviço de API que utilizamos diariamente.
- Função Primária: eliminar a necessidade humana de lidar com endereços numéricos binários.
- Acordo Geográfico: o DNS oferece uma camada de abstração que permite que um serviço mude de servidor (e consequentemente de IP) sem que o usuário final perceba qualquer alteração na forma de acesso.
- Indirection Layer: funciona como uma camada de indireção, permitindo balanceamento de carga (Round-Robin DNS, GeoDNS) e tolerância a falhas via múltiplos registros A/AAAA.
Histórico
Antes do DNS (anos 1980), a Internet usava o arquivo HOSTS.TXT mantido pela SRI-NIC, distribuído via FTP para todos os hosts. Com o crescimento exponencial, o arquivo se tornou insustentável — tanto em tamanho quanto em consistência. Paul Mockapetris projetou o DNS para resolver isso, criando um sistema distribuído, hierárquico e com cache.
2. Arquitetura de Serviço em Camadas
O ecossistema DNS não é um monolito, mas uma orquestra de diferentes componentes:
| Componente | Função | Exemplos |
|---|---|---|
| Resolver (Stub) | Biblioteca do SO que inicia a consulta | glibc resolver, systemd-resolved |
| Servidor Recursivo | Busca a resposta na Internet e a armazena em cache | 8.8.8.8 (Google), 1.1.1.1 (Cloudflare) |
| Servidor Autoritativo | Detém a "verdade" sobre os registros de um domínio | NS1, Route53, BIND |
| Hierarquia (Root/TLD/SLD) | Orienta o recursivo sobre onde encontrar a autoridade correta | Raiz (.), .com, .br, .org |
A Hierarquia em Detalhe
A árvore DNS começa na raiz (.), representada por 13 clusters de servidores raiz nomeados de a.root-servers.net até m.root-servers.net. Embora seja divulgado que existem apenas 13 endereços IP raiz, na realidade existem mais de 1.700 instâncias físicas distribuídas globalmente via anycast. Abaixo da raiz estão os TLDs (Top-Level Domains): genéricos (.com, .org, .net), de código de país (.br, .us, .jp) e novos gTLDs (.dev, .app, .xyz).
3. O Protocolo de Transporte: Flexibilidade e Resiliência
O DNS é um dos raros protocolos que utiliza tanto o UDP quanto o TCP na porta 53, dependendo da natureza da transação:
| Transporte | Quando é Usado | Justificativa |
|---|---|---|
| UDP | Consultas normais (≤ 512 bytes) | Latência mínima (1 RTT) |
| TCP | Respostas > 512 bytes | Suporte a EDNS0 |
| TCP | Transferência de Zona (AXFR/IXFR) | Garantia de integridade |
| TCP | Consultas DNSSEC com assinaturas grandes | RRSIG pode exceder UDP |
EDNS0 (Extension Mechanisms for DNS)
Definido na RFC 6891, o EDNS0 permite que o cliente anuncie capacidade de receber respostas maiores (até 4096 bytes típicos) via UDP, reduzindo a necessidade de fallback para TCP. É também a base para o DNS Cookies (RFC 7873) e para o DNSSEC.
4. Perspectiva de Cyber Security: O DNS sob Ataque
Para um analista de Cyber Security, o DNS é tanto uma infraestrutura a ser protegida quanto uma fonte inesgotável de informações de inteligência.
Ameaças à Infraestrutura
- Cache Poisoning (Kaminsky, 2008): injeção de dados falsos em servidores recursivos para redirecionar usuários a sites maliciosos. Solução moderna: randomização do TXID (Transaction ID) e DNSSEC.
- Amplificação DNS (DDoS Reflection): uso de servidores recursivos abertos (open resolvers) para desferir ataques de DDoS massivos. O atacante envia consultas pequenas via UDP com IP de origem spoofado; o servidor responde com pacotes 50-100× maiores. Mitigação: BCP 38 (ingress filtering) e desabilitar recursão aberta.
- DNS Hijacking: sequestro de autoridade no nível do registrador (ataque à conta da Route53/GoDaddy). Casos famosos: Twitter (2009), Epik (2021).
- DNS Tunneling: uso do protocolo DNS para exfiltrar dados (consultas TXT codificadas em base64). Detectável via análise estatística de comprimento e entropia de queries.
- NXDOMAIN Flood: envio massivo de consultas por nomes inexistentes, saturando o cache recursivo e causando NXDOMAIN Rate Limiting (RL).
Defesas Modernas
- DNSSEC (RFC 4033-4035): adiciona assinaturas digitais criptográficas (RRSIG) aos registros, garantindo autenticidade e integridade das respostas. Cadeia de confiança da raiz até o SLD via registros DS.
- DoH (DNS over HTTPS, RFC 8484): cifra as consultas DNS dentro de HTTP/2, protegendo contra inspectação no último salto. Adotado por Firefox e Chrome.
- DoT (DNS over TLS, RFC 7858): cifra as consultas via TLS na porta 853, solução preferida para infraestrutura corporativa.
- DNSCrypt: protocolo alternativo pré-DoH, ainda usado por alguns provedores públicos.
5. Auditoria Técnica e Ferramentas Práticas
Dominar o diagnóstico do protocolo DNS é um pré-requisito para qualquer administrador de sistemas ou engenheiro de redes.
# Rastreamento de hierarquia (percorrendo a raiz ate o host)
dig +trace www.cyber-universo.com
# Consultando registros de correio (MX) e verificando prioridades
host -t mx google.com
# Verificando a presenca de politicas de seguranca (SPF/DKIM) via TXT
nslookup -type=txt microsoft.com
# Validando assinaturas DNSSEC
dig +dnssec www.dnssec-tools.org
# Testando DoT (DNS over TLS)
kdig -d @1.1.1.1 +tls www.cloudflare.com
# Medindo tempo de resposta para escolher o melhor resolver
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
echo -n "$dns: "; dig @$dns www.google.com +stats | grep "Query time"
done
Análise de TTL (Time to Live)
A compreensão de como o tempo de cache afeta a propagação de mudanças e a carga do servidor é vital para a manutenção da disponibilidade dos serviços online:
| TTL | Uso Típico | Impacto |
|---|---|---|
| 60-300s | Migrações, failover dinâmico | Maior carga no autoritativo |
| 3600s | Sites em produção padrão | Equilíbrio entre cache e agilidade |
| 86400s | Registros estáveis (MX, NS) | Mínima carga, máxima velocidade |
6. Estrutura de uma Mensagem DNS
Uma mensagem DNS tem formato binário compacto, com 12 bytes de cabeçalho seguidos de 4 seções:
| Seção | Descrição |
|---|---|
| Header | ID (2 bytes), flags (QR, Opcode, AA, TC, RD, RA, RCode) |
| Question | Consulta do cliente (QNAME, QTYPE, QCLASS) |
| Answer | Registros de resposta (RR) |
| Authority | Registros NS que indicam autoridade |
| Additional | Registros extras (glue records, EDNS0 OPT) |
Os tipos de registros mais comuns (QTYPE) incluem A (1), NS (2), CNAME (5), SOA (6), PTR (12), MX (15), TXT (16), AAAA (28), SRV (33), DS (43), RRSIG (46), DNSKEY (48), CAA (257).
7. O Futuro do DNS: Além da Resolução de Nomes
Hoje, o DNS é usado para muito mais do que converter nomes em IPs. Ele serve como repositório de:
- Políticas de E-mail (SPF/DMARC/DKIM): registros TXT padronizados que validam remetentes.
- Chaves Criptográficas (TLSA/DANE, RFC 6698): permitem validar certificados TLS via DNS, reduzindo dependência de CAs.
- Descoberta de Serviços (SRV, RFC 2782): usado por Active Directory, SIP, XMPP, Mastodon.
- Autorização de Certificados (CAA, RFC 8659): define quais CAs têm permissão de emitir certificados para o domínio.
- Blocking & Filtering: respostas sintéticas em 0.0.0.0 para bloquear domínios maliciosos (Pi-hole, AdGuard).
- SVCB/HTTPS (RFC 9460): novo registro que permite descobrir HTTP/3, ECH (Encrypted Client Hello) e aliases de backend.
8. Resumo Técnico
| Atributo | Valor |
|---|---|
| RFC original | 1034, 1035 (1987) |
| Porta padrão | 53/UDP, 53/TCP |
| Porta DoT | 853/TCP |
| Porta DoH | 443/TCP (HTTP/2) |
| Tamanho máximo UDP (sem EDNS0) | 512 bytes |
| Tamanho máximo UDP (com EDNS0) | 4096 bytes típico |
| Servidores raiz | 13 clusters lógicos (a-m) |
| Algoritmo DNSSEC padrão | ECDSAP256SHA256 (algoritmo 13) |
9. Conclusão
O DNS é o lubrificante que permite o funcionamento suave da rede global. Sua arquitetura distribuída, hierárquica, resiliente e escalável é um dos maiores triunfos da engenharia da Internet. Dominar seus fundamentos (hierarquia, cache, TTL), entender seus protocolos de transporte (UDP, TCP, DoT, DoH) e proteger seus servidores contra manipulações (DNSSEC, BCP 38) são competências essenciais para garantir que a infraestrutura seja fidedigna, rápida e inabalável na era da guerra cibernética constante.