Entenda os ataques DNS: como identificar e corrigir vulnerabilidades
Nihad Hassan
26 de outubro de 2022
0 minutos de leituraO Sistema de Nomes de Domínio (DNS) traduz nomes de domínio em endereços IP. Cada dispositivo e site tem um endereço IP usado por outros dispositivos, sites e serviços online para se comunicar com ele. Os endereços IP são sequências de números, geralmente no formato 000.000.000.000. Como é difícil memorizar esses números, usamos nomes de domínio. Para acessar o Google, basta digitar o nome de domínio na barra de endereços do navegador. O serviço DNS traduz o nome digitado pelo usuário, “google.com”, no endereço IP correspondente, usado pelo computador.
O DNS é um componente fundamental da infraestrutura da internet, pois toda comunicação começa com a resolução de um nome DNS. Se o DNS ficar indisponível, os programas que dependem da internet deixarão de funcionar.
Ataques DNS são ataques que têm como alvo a estabilidade e a segurança da infraestrutura DNS. Em geral, eles tentam tornar o DNS indisponível ou interceptar e alterar as respostas fornecidas pelo DNS, direcionando usuários desavisados a sites maliciosos. A infraestrutura DNS tem dois componentes — servidores DNS autoritativos e recursivos — e ambos podem ser atacados.
A seguir, vamos explorar os ataques DNS mais comuns e conhecer estratégias de mitigação para se proteger.
Guia rápido sobre ataques DNS
Existem vários tipos de ataques DNS. Cada um funciona de maneira diferente, causa impactos específicos e exige contramedidas próprias.
Falsificação
A falsificação de DNS ocorre quando agentes de ameaças alteram registros legítimos do servidor DNS para direcionar usuários a sites fraudulentos, em vez do destino desejado.
Ao chegar ao site fraudulento, o usuário desavisado é solicitado a informar dados confidenciais, como credenciais de acesso ou dados do cartão de crédito. Os agentes de ameaças usam essa técnica para roubar informações confidenciais da vítima ou instalar malware — como ransomware ou keyloggers — no dispositivo dela.
Os invasores executam ataques de falsificação de DNS de duas formas:
Interceptando a comunicação entre o dispositivo-alvo e o servidor DNS e redirecionando as solicitações dos usuários para um site malicioso
Atacando diretamente o servidor DNS legítimo e forçando-o a retornar endereços IP maliciosos
Para se proteger desse ataque, devemos:
Atualizar e aplicar patches ao software do servidor DNS regularmente.
Verificar se o site exibe o símbolo de conexão segura (cadeado), que aparece ao lado da barra de endereços do navegador. A ausência do cadeado pode indicar que agentes de ameaças clonaram o site para fins maliciosos.
Ativar as Extensões de Segurança do Sistema de Nomes de Domínio (DNSSEC) no domínio. Essas extensões adicionam uma camada de segurança ao incluir uma assinatura de certificado digital nas informações DNS.
Envenenamento de cache
Nesse ataque, o agente de ameaças injeta informações DNS falsas no cache para forçá-lo a retornar dados incorretos e direcionar usuários a sites maliciosos. Por exemplo, quando alguém tenta acessar google.com, o servidor DNS envenenado retorna o endereço IP de outro site, que pode conter um kit de exploração ou uma página de phishing.
Na cibersegurança, envenenamento de cache DNS e falsificação de DNS são termos muitas vezes usados como sinônimos. No entanto, eles diferem em função e sequência. No envenenamento de DNS, agentes de ameaças substituem os registros DNS para redirecionar usuários desavisados a destinos maliciosos. Em seguida, a falsificação de DNS usa um cache envenenado para direcionar esses usuários ao site malicioso.
Para evitar um ataque de envenenamento de DNS, devemos:
Usar DNSSEC, que emprega criptografia de chave pública. Assim, somente um servidor de nomes DNS legítimo pode responder a uma solicitação com as informações corretas.
Impedir que servidores DNS locais respondam a consultas DNS originadas na internet — a menos que nosso servidor de nomes DNS esteja registrado na ICANN.
DoS/DDoS/inundação
Um ataque de inundação DNS ocorre quando agentes maliciosos tentam sobrecarregar servidores DNS com solicitações falsas, impedindo que atendam a solicitações legítimas. Há dois tipos de ataques de inundação DNS: negação de serviço (DoS) e negação de serviço distribuída (DDoS).
Ataque de inundação DoS
Em um ataque de inundação DoS, o invasor usa um computador para inundar um servidor DNS remoto com tráfego falso. Essa técnica já não é eficaz, pois os servidores DNS modernos têm especificações técnicas avançadas, que um único dispositivo não consegue comprometer.
Ataque de inundação DNS DDoS
A inundação DNS DDoS é o mecanismo de ataque mais eficaz, no qual os invasores usam muitos dispositivos para atingir um servidor DNS. Isso consome a memória e os recursos de CPU do servidor-alvo, até deixá-lo offline.
Em cibersegurança, um bot pode ser qualquer dispositivo computacional — por exemplo, um laptop, uma estação de trabalho ou um dispositivo da Internet das Coisas (IoT) — infectado por malware e controlado por um agente de ameaças. Um conjunto desses bots é chamado de botnet.
Os invasores costumam usar redes de botnets com milhares ou milhões de dispositivos comprometidos que executam scripts maliciosos. O invasor coordena o ataque e instrui todos os dispositivos a enviar tráfego simultaneamente para um servidor, provocando uma condição de DoS.
Os ataques de inundação DNS são considerados relativamente recentes e se tornaram amplamente viáveis com o aumento do número de dispositivos IoT no mundo. Muitos têm configurações de segurança deficientes, o que facilita o controle por hackers.
Para evitar ataques de inundação DDoS e DoS, devemos:
Usar um serviço de mitigação de DDoS para impedir que invasores externos sobrecarreguem nossos servidores DNS com solicitações falsas.
Usar um servidor dedicado como servidor de nomes autoritativo e outro como resolvedor DNS. Assim, um componente continua funcionando se o outro falhar.
Usar um servidor DNS dedicado. Organizações pequenas e médias costumam usar um único servidor para várias finalidades, como hospedar aplicações e executar o serviço DNS. Porém, se o invasor acessar uma aplicação hospedada nesse servidor, poderá comprometer e alterar as configurações DNS.
NXDomain
Assim como um ataque de inundação DNS, o ataque NXDomain sobrecarrega o servidor DNS-alvo com solicitações de registros inválidos (nomes de domínio inexistentes). Para executar o ataque, os invasores usam um servidor proxy DNS que envia automaticamente um grande volume de solicitações DNS ao servidor DNS autoritativo visado. Ao resolver essas solicitações inválidas, o servidor autoritativo consome recursos (e ocupa o cache do servidor), fica lento para responder a solicitações legítimas e, por fim, para de responder.
Para evitar ataques de inundação DNS NXDomain, devemos:
Realizar auditorias DNS regularmente.
Adicionar nomes de domínio e servidores suspeitos a uma lista de bloqueio.
Bloquear temporariamente o endereço IP de um cliente que enviar solicitações NXDomain em excesso.
Aumentar o Time to Live (TTL) dos registros DNS atuais para que permaneçam por mais tempo em caches DNS externos. Esses registros não precisam ser atualizados com frequência.
Ataques de amplificação
Esse é outro tipo de ataque DDoS que busca impedir que o servidor DNS-alvo atenda a consultas DNS legítimas. Nele, agentes de ameaças exploram servidores DNS abertos para enviar várias respostas ao servidor-alvo.
Os agentes de ameaças iniciam o ataque enviando inúmeras solicitações DNS ao servidor DNS aberto, usando o endereço IP do alvo como endereço de origem. O servidor DNS aberto envia a resposta ao solicitante (neste exemplo, ao endereço IP falsificado do alvo). O envio de muitas respostas DNS acaba derrubando o servidor-alvo, consumindo sua largura de banda e impedindo que responda a solicitações legítimas.
Os invasores costumam usar botnets, especialmente em dispositivos IoT, para gerar solicitações DNS falsificadas e sobrecarregar os servidores-alvo ou a rede da organização com respostas DNS.
Para evitar esse ataque, devemos:
Exigir a verificação do IP de origem em todos os dispositivos de rede.
Impedir que servidores de nomes DNS autoritativos também funcionem como servidores recursivos.
Ativar configurações de limitação da taxa de respostas (RRL) em todos os servidores DNS.
Configurar resolvedores DNS abertos para responder somente a consultas de fontes confiáveis.
Sequestro
Nesse ataque, agentes de ameaças manipulam as respostas a consultas DNS para direcionar usuários desavisados a sites fraudulentos ou maliciosos. O ataque pode ocorrer por meio de:
Instalação de malware, como um cavalo de Troia, no computador da vítima para resolver incorretamente consultas DNS e direcionar o usuário desavisado a sites maliciosos
Comprometimento do roteador-alvo e alteração das configurações DNS, afetando todos os usuários conectados ao roteador
Interceptação da comunicação entre o servidor DNS legítimo e o dispositivo do usuário — como em um ataque man-in-the-middle — e manipulação das respostas DNS para direcionar o usuário desavisado a sites maliciosos
Ataque direto ao servidor DNS e alteração das configurações DNS para direcionar usuários desavisados a URLs diferentes
Embora seja maliciosa, essa técnica é usada por alguns provedores de serviços de internet (ISPs) para direcionar usuários a outros sites. Por exemplo, alguns ISPs a usam para exibir anúncios com base no histórico de navegação do usuário.
Rebinding
Nesse ataque, o agente de ameaças infecta o roteador-alvo com malware para controlá-lo remotamente. O ataque começa com a execução de código JavaScript malicioso no navegador do usuário, que infecta o roteador. Muitas pessoas não protegem o roteador com uma senha complexa — ou usam as credenciais padrão de fábrica. Isso as deixa vulneráveis a ataques de rebinding.
Uma boa primeira medida para se proteger contra ataques de rebinding é proteger o roteador com uma senha forte. Também devemos:
Trocar o nome de usuário e a senha padrão do roteador por credenciais difíceis de adivinhar.
Manter o servidor DNS, todos os sistemas operacionais dos clientes e as aplicações instaladas sempre atualizados.
Tunelamento
Esse ataque DNS direciona o tráfego de usuários desavisados para o servidor do invasor. É uma técnica comum entre operadores de ransomware para facilitar a comunicação com o Centro de Comando e Controle (C&C) e exfiltrar dados do dispositivo-alvo.
O tunelamento DNS evita a detecção por ferramentas de segurança, como firewalls. Agentes de ameaças enviam dados roubados da rede-alvo em pequenos blocos, transmitindo-os como uma série de consultas e respostas DNS para evitar a detecção.
Um ataque de tunelamento DNS funciona da seguinte maneira:
O invasor tem um servidor associado a um nome de domínio. Esse servidor executa malware de tunelamento.
O invasor infecta um computador com malware. O computador infectado pode estar atrás do firewall da empresa, mas ainda consegue usar o resolvedor DNS.
Assim, o resolvedor DNS pode se comunicar com o servidor remoto de comando e controle (C&C) do invasor.
Com isso, cada dispositivo infectado e o servidor remoto do invasor criam um canal oculto, que pode ser usado para exfiltrar dados do dispositivo da vítima ou enviar mais malware — como ransomware — para o dispositivo-alvo.
Para evitar esse ataque, devemos:
Usar soluções de segurança avançadas, incluindo firewalls de próxima geração no perímetro da rede e detecção e resposta de rede (NDR), para monitorar todas as interações no ambiente de TI. Isso permite detectar operadores de APT e ransomware e interromper a comunicação com os servidores dos invasores.
Configurar todos os dispositivos da rede de uma organização para enviar as consultas DNS a um servidor DNS interno que bloqueie nomes de domínio suspeitos.
Domínio fantasma
Nesse ataque, o agente de ameaças cria vários nomes de domínio fantasma e solicita que o servidor DNS-alvo os resolva. Esses domínios — geralmente um grande número de subdomínios — respondem muito lentamente ou não respondem. Depois de algum tempo, enquanto aguarda as respostas dos domínios do invasor, o servidor DNS-alvo esgota o cache e acaba deixando de responder.
Para evitar esse ataque, devemos:
Aumentar o número de servidores DNS recursivos.
Limitar o número de solicitações DNS recursivas consecutivas em cada servidor DNS.
Conclusão
O serviço DNS é um componente essencial da infraestrutura da internet. Ele traduz os nomes de domínio usados pelos usuários em endereços IP que outros servidores conseguem entender. No entanto, ele não foi projetado para oferecer segurança. Com a popularização da internet e o aumento dos ataques cibernéticos, os criminosos passaram a se interessar cada vez mais por ataques ao DNS.
Qualquer ataque ao serviço DNS impede que os programas da internet funcionem corretamente. Os criminosos sabem disso e desenvolveram diversas maneiras de atacar serviços DNS com objetivos maliciosos.
Existem várias técnicas para atacar o serviço DNS, que podemos agrupar em duas categorias principais:
Ataques que têm como objetivo indisponibilizar o serviço DNS
Ataques que têm como objetivo manipular os registros DNS para direcionar usuários desavisados a destinos maliciosos
Como este artigo demonstrou, cada tipo de ataque ao DNS exige um conjunto diferente de medidas para ser mitigado. De modo geral, as principais medidas para evitar ataques ao DNS incluem manter o software do servidor DNC atualizado, usar um servidor DNS dedicado para fornecer o serviço DNS, aumentar o número de servidores DNS recursivos e verificar se há vulnerabilidades para mitigar ataques DDoS.
Comece a jogar Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.



