Domain IP Lookup

O mesmo domínio, duas respostas diferentes

Primeira requisição

resolve para um IP público

Validação

passa: parece seguro

O TTL expira

segundos depois

Segunda requisição

resolve para 127.0.0.1

Segurança

O que é DNS rebinding e por que você deveria se importar?

3 min de leitura

A maioria das verificações de segurança que envolvem um domínio presume que o endereço IP dele é estável o bastante para ser validado uma vez e depois considerado confiável. O DNS rebinding explora exatamente essa suposição. Um atacante controla o DNS de um domínio e o configura para resolver, a princípio, para um endereço IP público normal, passando por qualquer validação que o sistema-alvo faça, e depois muda a resposta para um endereço interno (como 127.0.0.1 ou uma faixa interna 10.x.x.x) em uma requisição posterior, quando a verificação já foi aprovada.

Por que isso é mais do que um truque teórico

Um TTL muito curto torna o ataque viável: o atacante define o registro para expirar em poucos segundos, de modo que uma verificação de validação e a requisição real que vem logo depois podem ver duas respostas diferentes, com milissegundos de diferença, sem que o sistema da vítima perceba que o chão mudou sob seus pés. Qualquer sistema que resolva um domínio uma única vez e reutilize esse IP em várias operações, ou, pior, que o resolva uma vez para a validação e deixe outra parte resolvê-lo de novo para a requisição real, está potencialmente exposto.

A única defesa confiável

Validar a string do nome de host não basta, e validar um IP uma única vez também não. A única defesa robusta é verificar o endereço realmente resolvido contra uma lista de bloqueio de faixas privadas e internas no ponto em que a conexão é de fato feita, todas as vezes, e não apenas na validação inicial. Isso fecha a janela de tempo da qual o rebinding depende, porque deixa de existir um intervalo entre “verificado” e “usado” em que a resposta possa mudar.

  • Bloqueie as faixas privadas (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), de loopback (127.0.0.0/8), link-local (169.254.0.0/16) e os endpoints de metadados de nuvem, tanto em IPv4 quanto em IPv6.
  • Verifique de novo a cada uso, e não apenas uma vez, na validação da entrada.
  • Trate um endereço IPv6 mapeado de IPv4 (como ::ffff:127.0.0.1) como equivalente ao endereço IPv4 embutido nele: as tentativas de rebinding às vezes usam exatamente essa codificação para escapar de uma verificação ingênua feita apenas para IPv6.
AbordagemFecha a janela do rebinding?
Validar a string do nome de host uma vezNão: ela não diz nada sobre para onde o nome resolve
Resolver uma vez e reutilizar o IP em requisições posterioresNão: o registro pode mudar antes da reutilização
Resolver e verificar a lista de bloqueio a cada usoSim: não resta nenhuma janela para a resposta mudar

Onde isso já importou na prática

O DNS rebinding não é uma preocupação acadêmica de nicho: ele já foi usado repetidas vezes contra roteadores domésticos, hubs de casa inteligente e outros dispositivos que expõem uma interface administrativa local sem autenticação, partindo do princípio de que só o tráfego local confiável poderia alcançá-la. Uma página web maliciosa, aberta em uma aba comum de navegador na mesma rede, pode usar o rebinding para fazer o próprio navegador da vítima, que o roteador já considera confiável só por estar na rede local, enviar requisições diretamente a essa interface administrativa em nome do atacante. O navegador acha que está falando o tempo todo com o domínio público original; só a resposta de DNS por baixo é que mudou.

Uma variante mais sutil: rebinding com várias respostas

Uma versão mais sofisticada dispensa por completo a espera pela expiração de um TTL. Uma única resposta de DNS pode, legitimamente, conter mais de um registro A, e alguns clientes simplesmente os tentam em ordem ou até alternam entre eles, em rodízio, ao longo de requisições diferentes. Um atacante pode retornar, na mesma resposta, tanto um endereço público legítimo quanto um interno, contando que o cliente acabe tentando a segunda entrada: sem espera, sem janela de tempo, apenas explorando o fato de que o DNS nunca foi projetado para garantir que todos os endereços de uma resposta com várias entradas sejam igualmente confiáveis. É um bom lembrete de que “verificar o primeiro endereço retornado” nunca é suficiente; todo endereço de uma resposta exige o mesmo escrutínio.

Precisa conferir os endereços DNS públicos de um domínio? Use a ferramenta Domain IP Lookup.

Leitura relacionada

Os registros que você encontrará em quase toda zona

AHostname para um endereço IPv4
AAAAHostname para um endereço IPv6
CNAMEHostname para outro hostname
MXDomínio para seus servidores de e-mail, por prioridade
TXTDomínio para texto livre: SPF, DKIM, verificação
NSDomínio para os servidores de nomes que respondem por ele
Segurança

O que é um registro CAA? Quem pode emitir certificados

Saiba como os registros DNS CAA indicam os emissores de certificados permitidos para um domínio e como evitar erros comuns de configuração.

4 min de leitura

Uma consulta DNS recursiva, um salto de cada vez

Navegador

quer example.com

Resolvedor

seu provedor / 1.1.1.1

Raiz + TLD

quem opera o .com?

Autoritativo

a resposta real

Cada salto desta cadeia é em si uma consulta DNS, depois armazenada em cache

Segurança

DNSSEC explicado: como as respostas DNS são autenticadas

Entenda o que fazem as assinaturas DNSSEC e os registros DS e DNSKEY, como a validação funciona e como uma configuração errada pode causar respostas SERVFAIL.

4 min de leitura

Toda faixa IPv4 tem um equivalente IPv6

Loopback127.0.0.0/8 no IPv4 e ::1 no IPv6
Privado10.0.0.0/8 etc. no IPv4 e fc00::/7 no IPv6
Link-local169.254.0.0/16 no IPv4 e fe80::/10 no IPv6
Segurança

Considerações de segurança do IPv6 que você não deve ignorar

Do ponto de vista da segurança, o IPv6 não é só “IPv4 com mais endereços”: algumas de suas diferenças mudam de fato o modelo de ameaças.

3 min de leitura