Se há uma coisa que os filmes de Hollywood nos ensinam, é que os hackers são espertos e têm vários truques para contornar a nossa segurança. No mundo real, uma questão de segurança muitas vezes se resume mais à oportunidade do que à habilidade desenvolvida. Um ataque de “envenenamento de DNS” se encaixa nessa descrição e, de fato, você precisa ter as habilidades para evitar que seu domínio seja falsificado.
O conceito é simples: os visitantes vêem o que parece ser o seu site, mas é fraudulento e prejudicial, enquanto este site falso parece semelhante. Como tal, você precisa empregar várias técnicas para garantir que os usuários estejam seguros, e o seu site permanece livre de ataques.
Neste artigo, vamos mergulhar no conceito de envenenamento de DNS e spoofing (falsificação) de domínio. Também vamos falar sobre alguns dos conceitos que o rodeiam para ajudá-lo a entender porque a sua eventual resposta é a melhor abordagem.
Uma cartilha sobre o Sistema de Nomes de Domínio (DNS – Domain Name System)
Antes de entrarmos nas especificações do envenenamento de DNS, vamos conversar sobre o Domain Name System. Enquanto a navegação em um site aparece uma tarefa simples, muita coisa está acontecendo sob o capô do servidor.
Há muitos elementos envolvidos para te levar de ‘A’ a ‘B’:
- Endereço IP. É uma sequência de números que representa o seu verdadeiro endereço web. Considere-os as coordenadas da sua casa. Por exemplo, 127.0.0.1:8080 é um endereço “localhost” padrão (ou seja, o seu computador).
- Nome de domínio. Se o endereço IP representa coordenadas, o nome de domínio é o seu endereço tal como aparece no envelope. Claro, “kinsta.com” é um dos milhões de exemplos.
- Um pedido DNS. É um excelente exemplo de uma tarefa de front-end de alto nível com um processo complexo de baixo nível. Por enquanto, considere um pedido para ser o seu browser a perguntar a um servidor dedicado qual é o endereço para um conjunto de coordenadas.
- Um servidor DNS. Isto é diferente do servidor do seu site na medida em que são quatro servidores em um. A sua função é processar pedidos DNS. Falaremos sobre isto com um pouco mais de detalhe Falaremos sobre isto com um pouco mais de detalhe nas próximas seções..
- Servidor recursivo. Você também verá estes servidores chamados “servidores de resolução de nomes”. Faz parte do processo de pesquisa DNS e é responsável por consultar servidores para o nome do domínio relacionado com um endereço IP.
No geral, um DNS torna simples a pesquisa de um nome de domínio para o usuário final. É uma parte central da web, e como tal, tem muitas partes móveis.
A seguir vamos analisar o próprio processo de pesquisa, embora você já possa ver como o DNS tem um trabalho vital a cumprir.
O processo de uma consulta DNS
Tenha paciência conosco enquanto oferecemos o que parece ser uma analogia abstrata.
Atividades que levam as pessoas a lugares remotos, como o alpinismo ou a viagem de barco, compartilham um perigo específico: se perder e não ser encontrado a tempo. A maneira tradicional de localizar pessoas perdidas tem sido usar coordenadas. Elas são explícitas e oferecem uma precisão precisa.
No entanto, este processo tem inconvenientes. Primeiro, você precisa saber como calcular suas coordenadas para qualquer lugar – complicado se em uma parte remota do mundo. Segundo, você tem que articular essas coordenadas para a equipe de resgate. Um número errado, e as consequências são terríveis.
O aplicativo what3words toma o complexo processo de cálculo e transmissão de coordenadas e o transforma em um resumo de três palavras de sua localização geral. Por exemplo, veja a sede da Automattic:
As coordenadas do local são 37.744159, -122.421555. A menos que você seja um navegador experiente, no entanto, não é provável que você saiba disso. Mesmo que soubesse, colocar isto nas mãos de alguém que o possa ajudar é uma proposta elegante.
Em poucas palavras, what3words pegua um conjunto abstrato de coordenadas e as traduza em três palavras memoráveis. No caso dos escritórios da Automattic, é decent.transfers.sleeps:
O site what3words, mostrando os escritórios da Automattic.Isto coloca o posicionamento global complexo nas mãos de quase qualquer pessoa com acesso ao aplicativo. Já salvou muitas vidas de civis.
Isto se associa a uma pesquisa DNS porque o processo é semelhante. No caso da what3words, o socorrista pede ao aplicativo as coordenadas de uma sequência de palavras. O pedido é enviado através de servidores para procurar as coordenadas e retornar ao usuário final quando elas forem encontradas.
A Uma pesquisa de DNS tem um fluxo semelhante:
- O seu navegador solicita o endereço IP para um nome de domínio.
- Seu sistema operacional (SO) pede ao servidor recursivo para encontrar o nome do domínio e inicia uma execução através de sua coleção de servidores.
- Quando encontra o nome do domínio, ele é devolvido ao navegador.
Uma das desvantagens da what3words é como uma sequência de palavras não é tão precisa quanto um conjunto de coordenadas. Isto significa que você pode identificar uma localização geral rapidamente, mas pode gastar mais tempo para encontrar a pessoa presa.
Uma pesquisa DNS também tem inconvenientes, e atacantes maliciosos podem explorá-los. Antes de olharmos para isto, porém, vamos fazer um breve desvio para falar sobre o cache e como isto pode acelerar uma pesquisa.
Cache DNS
Tal como o cache da web, o cache de DNS pode ajudá-lo a lembrar-se de consultas regulares ao servidor. Isto tornará o processo de obtenção de um endereço IP mais rápido para cada nova visita.
Em resumo, o cache está localizado dentro do sistema do servidor DNS e corta a viagem extra para o servidor recursivo. Isto significa que um navegador pode ir pesquisar um endereço IP diretamente do servidor DNS e completar o pedido GET em um tempo mais rápido.
Você encontrará cache de DNS em todo o seu sistema. Por exemplo, o seu computador terá um cache de DNS, assim como o seu router e o seu fornecedor de serviços de Internet (ISP). Você frequentemente não percebe o quanto sua experiência de navegação depende do cache de DNS – até você ser vítima de envenenamento de DNS.
O que é envenenamento de DNS
Agora que você entende o conceito de uma pesquisa DNS e todo o processo de obtenção de um endereço IP, podemos ver como ele pode ser explorado.
Você verá frequentemente o envenenamento de DNS referido como spoofing (falsificação) também porque ter um site “similar” fraudulento é parte do ataque.
Vamos falar mais detalhadamente sobre todos esses aspectos, mas saiba que o envenenamento ou falsificação do DNS é um ataque prejudicial que pode causar problemas mentais, monetários e de recursos para os usuários e para a Internet.
Primeiro, vamos entrar no processo de envenenamento por cache.
Como funciona a falsificação de DNS e envenenamento do cache de DNS
Dado que todo o processo de falsificação é complexo, os atacantes têm criado muitas formas diferentes de alcançar o seu objectivo:
- Máquina na Mídia. Aqui é onde um atacante fica entre o navegador e o servidor DNS, envenena ambos e redireciona um usuário para um site fraudulento em seu próprio servidor.
- Sequestro de servidores. Se um atacante entrar no servidor DNS, ele pode reconfigurá-lo para enviar todos os pedidos para o seu próprio site.
- Envenenamento através de spam. Ao contrário de um sequestro de servidor, esta abordagem envenena o lado do cliente (ou seja, o navegador). O acesso é muitas vezes concedido através de links de spam, e-mails e anúncios fraudulentos.
- “Ataques de aniversário.” Este é um ataque criptográfico complexo que leva mais algumas explicações.
Um ataque de aniversário é baseado no “problema do aniversário“. Este é um cenário de probabilidade que diz (em poucas palavras) que se houver 23 pessoas numa sala, há 50% de hipóteses de duas partilharem o mesmo aniversário. Se houver mais pessoas na sala, as chances aumentam.
Isso se traduz em envenenamento de DNS com base no identificador que conecta a solicitação de pesquisa DNS à resposta GET. Se o atacante enviar um certo número de solicitações e respostas aleatórias, há uma alta probabilidade de uma correspondência resultando em uma tentativa bem sucedida de envenenamento. De cerca de 450 pedidos, a probabilidade é de cerca de 75%, e a 700 pedidos, um atacante tem quase a garantia de quebrar o servidor.
Em resumo, os ataques ao servidor DNS acontecem na maioria dos casos porque isso dá a um usuário malicioso maior flexibilidade para manipular o seu site e os dados do usuário. Também não há verificação de dados DNS porque as solicitações e respostas não usam o Protocolo de Controle de Transmissão (TCP – Transmission Control Protocol).
O ponto fraco na string é o cache DNS, pois este funciona como um repositório para entradas DNS. Se um atacante pode injetar entradas forjadas no cache, todo usuário que acessar o cache vai se encontrar em um site fraudulento até que o cache expire.
Os atacantes frequentemente procuram por alguns sinais, pontos fracos e pontos de dados para o alvo. Eles trabalham para localizar consultas DNS que ainda não foram armazenadas em cache porque o servidor recursivo terá que realizar a consulta em algum momento. Por extensão, um atacante também irá procurar o servidor de nomes para o qual a consulta será feita. Uma vez que eles tenham isso, a porta que o resolvedor usa e o número de identificação do pedido são vitais.
Embora não seja necessário cumprir todos estes requisitos – afinal de contas, um atacante pode aceder aos servidores através de inúmeros métodos – ao riscar estas caixas facilita o seu trabalho.
Exemplos do mundo real de envenenamento de DNS
Ao longo dos anos, tem havido alguns exemplos de envenenamento de DNS. Em alguns casos, é um acto intencional. Por exemplo, a China opera um firewall em grande escala (o chamado “Great Firewall of China”) para controlar as informações que os usuários de internet recebem.
Em poucas palavras, eles envenenam seus próprios servidores, redirecionando os visitantes para sites não autorizados pelo Estado, como Twitter e Facebook. Em um caso, as restrições chinesas chegaram até a entrar no ecossistema do mundo ocidental.
Um erro de rede de um ISP sueco serviu informações de DNS raiz a partir de servidores chineses. Isso significou que os usuários no Chile e nos EUA foram redirecionados para outros lugares ao acessar alguns sites de mídia social.
Em outro exemplo, os hackers de Bangladesh que protestam contra os maus-tratos na Malásia envenenaram muitos domínios relacionados à Microsoft, Google, YouTube e outros sites de alto perfil. Este parece ter sido um caso de sequestro de servidor e não um problema do lado do cliente ou spam.
Mesmo o WikiLeaks não é imune a ataques de envenenamento de DNS. Um possível sequestro de servidor há alguns anos fez com que os visitantes do site fossem redirecionados para uma página dedicada aos hackers.
O envenenamento de DNS não tem de ser um processo complicado. Os chamados “hackers éticos” – ou seja, aqueles que procuram expor falhas de segurança em vez de infligir danos – têm métodos simples para testar spoofing em seus próprios computadores.
No entanto, além de ser redireccionado, pode não parecer haver quaisquer efeitos a longo prazo do envenenamento de DNS na superfície. Na verdade, há – e falaremos sobre eles a seguir.
Porque é que o envenenamento de DNS e a falsificação são tão prejudiciais
Há três objetivos principais de um atacante que espera realizar envenenamento de DNS em um servidor:
- Para espalhar malware.
- Reencaminhá-lo para outro site que de alguma forma o irá beneficiar.
- Roubar informação, seja de si ou de outra entidade.
É claro que não é demais entender por que o envenenamento ou falsificação do DNS é um problema para ISPs, operadores de servidores e usuários finais.
Como notamos, a falsificação é um enorme problema para os ISPs, tanto que existem ferramentas como o CAIDA Spoofer disponíveis para ajudar.
Há alguns anos atrás, as estatísticas mostraram que havia cerca de 30.000 ataques por dia. Este número certamente terá aumentado desde que o relatório foi publicado. Além disso, como foi o caso do exemplo da seção anterior, a entrega de sites falsificados através de uma rede traz à tona questões de confiança dos usuários, juntamente com preocupações com privacidade.
Independentemente de quem você é, há alguns riscos envolvidos quando você é vítima de envenenamento e falsificação:
- Tal como com a Grande Firewall da China, você pode estar sujeito a censura. Isto significa que as informações que você recebe não serão precisas, o que tem um efeito de arrastamento em muitas arenas sociais e políticas.
- O roubo de dados é uma grande preocupação, e é um empreendimento lucrativo para aqueles que querem obter informações bancárias de usuários e outros dados sensíveis.
- Você pode ser suscetível a diferentes tipos de malware e outros vírus Trojan no seu sistema. Por exemplo, um atacante pode injetar um keylogger ou outras formas de spyware no seu sistema através de um site falsificado.
Existem também outros efeitos relacionados com o envenenamento do DNS. Por exemplo, você pode não ser capaz de aplicar nenhuma atualização de segurança ao seu sistema enquanto o processo de recuperação estiver em pleno andamento. Isto deixa o seu computador vulnerável por mais tempo.
Além disso, considere o custo e a complexidade deste processo de limpeza, pois ele afetará a todos ao longo da string. Preços mais altos para todos os serviços conectados é apenas um dos pontos negativos.
O esforço de eliminar o envenenamento de DNS é imenso. Dado que a falsificação afeta tanto as configurações do lado do cliente como do lado do servidor, livrá-lo de um não significa que tenha desaparecido de todos.
Como prevenir o envenenamento de DNS
Existem duas áreas afetadas pelo envenenamento de DNS – o lado do cliente e o lado do servidor. Vamos dar uma olhada no que você pode fazer para evitar este ataque prejudicial em ambos os lados da moeda.
Vamos começar com o que a internet como um todo está fazendo no lado do servidor.
Como a internet tenta prevenir envenenamento de DNS e a falsificação do lado do servidor
Embora tenhamos falado muito sobre o DNS ao longo deste artigo, não notamos o quão antiquada é a tecnologia. Em resumo, o DNS não é o mais adequado para uma experiência de navegação moderna na web devido a alguns fatores. Para começar, ele não está criptografado, e sem algumas considerações de validação vitais, que impediriam que muitos ataques de envenenamento do DNS continuassem.
Uma forma rápida de evitar que os ataques se tornem mais fortes é através de uma estratégia simples de logging. Isto realiza uma comparação direta entre o pedido e a resposta para ver se eles correspondem.
No entanto, a resposta a longo prazo (de acordo com os especialistas) é através da utilização de Domain Name System Security Extensions (DNSSEC). Esta é uma tecnologia concebida para combater o envenenamento do DNS e, em termos simples, põe em prática diferentes níveis de verificação.
Indo mais fundo, o DNSSEC usa “criptografia de chave pública” como verificação. Esta é uma forma de assinar os dados como verdadeiros e confiáveis. Ele é armazenado junto com suas outras informações DNS, e o servidor recursivo usa-o para verificar se nenhuma das informações que recebe foi alterada.
Em comparação com outros protocolos e tecnologias da internet, o DNSSEC é um bebê relativo – mas é maduro o suficiente para ser implementado no nível raiz da internet, embora ainda não seja mainstream. DNS Público do Google é um serviço que suporta o DNSSEC por completo, com mais surgindo o tempo todo.
Mesmo assim, ainda há alguns inconvenientes com o DNSSEC que vale a pena notar:
- O protocolo não codifica respostas. Isto significa que os atacantes ainda podem ‘escutar’ o tráfego, embora os ataques tenham de ser mais sofisticados para contornar o DNSSEC.
- Como o DNSSEC usa registros extras para reunir dados DNS, há outra vulnerabilidade chamada “enumeração de zonas”. Isto usa um registo para “andar por” e recolher todos os registos DNS dentro de uma “zona” específica. Algumas versões deste registo encriptam os dados, mas outras ainda não o fazem.
- O DNSSEC é um protocolo complexo, e como também é novo, às vezes pode ser mal configurado. É claro que isto pode corroer os benefícios de usá-lo e apresentar mais problemas no final da linha.
Mesmo assim, o DNSSEC é o futuro no lado do servidor, pelo menos. Quanto a você como usuário final, há também algumas medidas preventivas que você pode tomar.
Como você pode prevenir o envenenamento de DNS no lado do cliente
Há mais maneiras de prevenir o envenenamento do DNS no lado do cliente, embora nenhuma por si só seja tão robusta quanto o DNSSEC do lado do servidor implementado por um especialista. Ainda assim, há algumas caixas simples que você pode verificar como proprietário de um site:
- Use criptografia de ponta a ponta para quaisquer pedidos e respostas. Os Certificados Secure Sockets Layers (SSL) fazem um bom trabalho aqui.
- Empregar ferramentas de detecção de falsificação. Estas varreduras recebem pacotes de dados antes de enviá-los para fora. Isto mitiga quaisquer transferências de dados maliciosas.
- Aumentar os valores de Time-To-Live (TTL) para o seu cache DNS irá ajudar a eliminar entradas maliciosas antes que elas possam chegar aos utilizadores finais.
- Você deve ter uma boa estratégia de DNS, DHCP, e IPAM (DDI) em vigor. Isso consiste na sua estratégia de DNS, Protocolo de Configuração Dinâmica do Host e Gerenciamento de Endereços IP. É um processo complexo, porém necessário, tratado por administradores de sistemas e especialistas em segurança de servidores.
Como usuário final, há mais algumas coisas que você pode fazer para ajudar a prevenir o envenenamento e falsificações:
- Use uma Rede Privada Virtual (VPN – Virtual Private Network), pois seus dados serão criptografados de ponta a ponta. Você também terá o uso de servidores DNS privados, novamente com criptografia de ponta a ponta.
- Tome precauções simples, tais como não clicar em links não reconhecidos e realizar verificações de segurança regulares.
- A descarga regular do seu cache DNS também elimina dados maliciosos do seu sistema. É algo que leva segundos e é simples de realizar.
Embora você não possa livrar-se do envenenamento de DNS no total, você pode evitar que o pior aconteça. Como um usuário final, você não tem muito controle sobre como o servidor lida com os ataques. Da mesma forma, sysadmins não conseguem controlar o que acontece no navegador. Como tal, é um esforço de equipa para impedir que este mais prejudicial dos ataques afete toda a string.
Resumo
Os ataques pela Internet são comuns. O envenenamento de DNS é um ataque comum que pode afetar milhões de usuários se não for controlado. Isso ocorre porque o protocolo DNS é antigo e inadequado para a navegação moderna na Web – embora tecnologias mais novas estejam no horizonte.
Em resumo, o envenenamento de DNS redireciona um usuário final para uma versão fraudulenta de um site existente. É uma forma de roubar dados e infectar sistemas com malware. Não há nenhuma maneira infalível de preveni-lo completamente, mas você pode contê-lo através de algumas medidas simples.
Você já foi vítima de envenenamento de DNS ou falsificação, e se foi, qual foi a causa? Por favor compartilhe a sua experiência connosco na seção de comentários abaixo!
Deixe um comentário