Envenenamento de cache DNS

O envenenamento de cache DNS é a injeção de endereços IP de um site falso no cache de um servidor DNS local, com o objetivo de pharming.

Categoria de Tecnologia

Postado em 21 maio 2022

Atualizado em 21 maio 2022

Palavras-chave: network,cache,dns,poisoning,server,pharming,phishing

Visualizações: 1616



O servidor DNS tem um papel fundamental para tornar a interface da internet mais amigável ao usuário.

O DNS traduz os sites que digitamos na barra de endereço do nosso navegador, retornando um endereço IP, que em seguida tornará possível o acesso ao site.

Ao todo, temos apenas cerca de 13 servidores DNS espalhados pelo mundo todo. Por isso, fazer solicitações para esses servidores toda vez que queremos acessar um site não é uma idéia muito boa. Por isso muitas máquinas utilizam o cache.

O cache tem como objetivo armazenar dados temporariamente, evitando que servidores como o DNS recebam múltiplas solicitações de sites que já foram solicitados. Em outras palavras, se um usuário solicita acesso à um site que ele já solicitou no passado, provavelmente o endereço IP desse site estará armazenado no cache. Uma vez que a informação necessária para o acesso já está armazenada, podemos obter esses dados do cache, sem a necessidade de solicitar ao servidor DNS.

O cache aumenta a disponibilidade de servidores, pois esse atua como um servidor substituto temporário. Porém, caso um endereço IP atribuído ao site no cache esteja errado, isso causará grandes problemas.

Injetar informações falsas no cache de algum servidor propositalmente, é chamado de envenenamento de cache DNS.

O que é o envenenamento de cache DNS?

Em inglês, “DNS cache poisoning” é usado para expressar o ato de injetar informações falsas no cache de um servidor DNS.

Com isso, o agressor consegue redirecionar a vítima para um site malicioso sem mesmo a vítima perceber.

Para realizar esse ato é necessário saber o endereço IP do servidor DNS local da vitima, que na maioria dos casos pode ser o roteador.

Uma vez que o agressor consegue obter esse endereço IP, o ataque pode ser efetuado em algumas etapas.

1. Usuário acessa o site

O usuário abri o navegador e digita na barra de endereço o site www.dicionariotec.com.

O navegador solicita o endereço IP para o servidor DNS local para poder acessar o site.

Um exemplo de servidor DNS local pode ser o nosso roteador.

Navegador
Roteador

2. Servidor DNS local solicita endereço IP para o servidor DNS externo

Caso o servidor DNS local não saiba o endereço IP do site digitado, ele irá solicitar para outro servidor DNS, provavelmente um servidor DNS localizado na rede ISP (Internet service provider).

ISP
Internet
DNS
...
Roteador

3. Antes do servidor DNS responder, o agressor irá interferir

O roteador irá mandar uma solicitação para o servidor DNS externo, e esperará por uma resposta.

Antes dessa resposta contendo o endereço IP ser retornada, o agressor irá interferir com endereços IP falsos.

ISP
1
3
2
DNS
Roteador
Agressor
  1. O roteador irá solicitar ao servidor DNS externo o endereço IP.
  2. Antes da resposta chegar o agressor vai interferir com dados falsas.
  3. O servidor DNS irá responder as solicitações, porém será ignorado.

Uma vez que o endereço IP falso chega até o nosso roteador, esse endereço IP será armazenado temporariamente no cache.

O roteador irá retornar ao nosso navegador o endereço IP obtido na internet.

Roteador
Usuário

Com isso, o usuário acessa um site falso com um endereço legítimo e um endereço IP errado.

dns cache poisoning

O tempo de vida de um cache (TTL) pode variar, mas geralmente dura 1 dia. Após um dia passar, o nosso roteador irá solicitar ao servidor DNS externo novamente o endereço IP desse site. Caso não haja mais interferência do agressor, há uma alta probabilidade dos dados falsos serem substituídos pelos dados legítimos no cache, voltando a ter o acesso ao site legítimo.

Porém, durante o tempo de vida desse cache falso o usuário pode ser vítima de pharming.

O que é pharming?

Pharming é o ato de redirecionar a vítima para um site falso com um endereço de site legítimo.

Diferente do phishing que pode ser identificado com mais facilidade, o pharming pode ser muito difícil de ser identificado por não apresentar muitas características de um site falso.

O agressor pode clonar um site com formulários para obter os dados sensíveis ou instalar malwares sem o consentimento da vítima com truques como drive-by download.

Um jeito de prevenir esse tipo de ataque é usar uma internet privada como o VPN (virtual private network).

Conclusão

O envenenamento de cache DNS é a injeção de dados falsos no cache de um servidor DNS local, com o objetivo de pharming. O agressor troca endereços IP de sites verdadeiros com endereços IP de sites falsos.

Esse tipo de técnica maliciosa é difícil prevenir, pois o endereço do site é de fato legítimo.

Projetos práticos

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Criando um sistema de mini garagem automatizada integrada com um sistema de monitoramento independente

Desenvolvimento de um sistema de monitoramento que exibi todos os eventos que acontecem na garagem automatizada, como abertura de portões ou ocupação de vagas.

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Usando dados fornecidos pelo TSE para simular o gráfico das eleições presidenciais de 2022

Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Veja também

Nunca se sabe quando tem alguém nos espionando no nosso computador

Um computador conectado à internet está exposto a diversos perigos. O spyware é um deles e é esse malware responsável por roubar contas de redes sociais.

Afinal, para que servem os cookies que sempre são solicitados quando entramos em uma página?

A política de privacidade é obrigatória para qualquer site que utiliza dados pessoais do usuário. Porém, quais dados são esses especificamente?

DNS Domain Name System (Sistema de Nomes de Domínio)

Protocolo utilizado para buscar endereços IPs vinculados com um URL solicitado através de um navegador ou aplicativo de email.

Pacote de dados

Unidades contendo informação de um arquivo que é enviado de um nó para o outro através da internet. Quando juntadas formam um arquivo.

Tipos de serviços de servidor

Práticas como hospedagem de sites ou negócios online necessitam de servidores conectados à internet para permitir o acesso externo ao conteúdo.

Protocolo

Protocolo é um conjunto de regras a serem seguidas para tornar possível a comunicação entre dois dispositivos ou computadores.