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

07 - Protocolo DNS

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione 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.