Como evitar ataques no servidor DNS
DNS é a sigla para Domain Name System. Trata-se de um protocolo que basicamente tem como função traduzir nomes para endereços IPs de forma que se torne mais fácil para os usuários. É o sistema utilizado por praticamente todos os sistemas que estão conectados na Internet. Mas o foco deste artigo não é passar detalhes sobre o funcionamento dele, mas sim como podemos proteger os nossos sistemas de DNS contra alguns dos ataques mais comuns, incluindo o temido ataque DDoS que tem atingido milhares de empresas e sistemas ao redor do mundo.
Muitas vulnerabilidades existem no sistema DNS, mas isso acontece devido aos erros de configuração que acabam fornecendo informações valiosíssimas para os atacantes.
Mas antes de aprender como proteger o seu servidor, é necessário você aprender como ocorrem os ataques e por onde eles acontecem. Confira abaixo a lista dos principais ataques que são realizados hoje em dia.
Cache poisoning: O ataque de cache poisoning também é conhecido como DNS spoofing e acontece quando o atacante consegue inserir dados no cache do DNS e com isso alterar os dados legítimos do website para direcionar o usuário para um site falso.
DNS amplification: Esse ataque é conhecido por ser do tipo DDoS (Distributed Denial of Service). Nele o atacante explora uma vulnerabilidade no DNS, de onde envia queries para os servidores DNS com o IP forjado (IP da vítima). Com isso os servidores respondem diretamente para a vítima. Essas requisições, em larga escala, podem facilmente derrubar servidores.
DNS amplification: Esse ataque é conhecido por ser do tipo DDoS (Distributed Denial of Service). Nele o atacante explora uma vulnerabilidade no DNS, de onde envia queries para os servidores DNS com o IP forjado (IP da vítima). Com isso os servidores respondem diretamente para a vítima. Essas requisições, em larga escala, podem facilmente derrubar servidores.
Query redirection: Este ataque acontece quando uma consulta DNS é interceptada e alterada durante o caminho do servidor DNS.
Zone enumeration: Neste tipo de ataque é possível levantar informações e a arquitetura do alvo. Com isso o atacante consegue encontrar servidores adicionais e até mesmo direcionar e planejar melhor o ataque.
Flood attacks: Este tipo de ataque também é bem conhecido por ser um ataque DDoS, a ideia é enviar milhões de requisições ao servidor alvo solicitando conexões. Em um determinado momento o servidor não irá conseguir processar todas as conexões, o que irá resultar em falha ou o bloqueio de novas conexões. Este ataque tanto pode acontecer utilizando o protocolo UDP como o TCP através de requisições falsas utilizando SYN-ACKs.
Fast flux: Este tipo de ataque consegue mudar a localização de qualquer DNS, web site, serviço e-mail ou algum outro serviço específico um conjunto diferente de servidores ou computadores com o objetivo de atrasar e/ou dificultar a detecção. Esse ataque é muito utilizado por botnets para esconder ataques de phishing ou malware, pois muitos hosts atuam como proxy.
Mudança de registro: Neste caso o atacante consegue ter acesso a sua conta, aquele que você registrou o domínio, com isso ele irá conseguir mudar os dados e as informações de DNS.
Cyber squatting: Neste ataque o objetivo pode ser lucrar em cima de uma empresa que detém uma marca ou conseguir tráfego se aproveitando de erros de digitação e domínios (também conhecido como typosquatting), com isso os atacantes registram domínios com TLDs diferentes, variações ou erros de tipografia.
Tunneling: Neste ataque o DNS é utilizado para esconder a comunicação e realizar um bypass no firewall. Esta técnica é muito utilizada para fazer o vazamento de dados internos da rede além de ser utilizado como canal de comunicação entre o atacante e a máquina comprometida.
DNS hijacking: Este ataque consiste em alterar os endereços dos servidores DNS legítimos por servidores falsos e com isso redirecionar o cliente para sites maliciosos. Este ataque é muito utilizado por malwares em computadores ou em caso de redes domésticas diretamente nos roteadores.
Random sub-domain: Neste caso o atacante envia um número enorme de consultas ao DNS simultaneamente com pedidos de vários subdomínios inexistentes que são gerados aleatoriamente.
Phantom domain: Neste ataque o DNS é inundado de requisições para resolver domínios “fantasmas” que foram configurados para fazerem parte do ataque, pois estes domínios não respondem as solicitações, isso faz com que o servidor fique aguardando a resposta e consequentemente consumindo recursos até ficar indisponível.
NX domain attack: O atacante faz um flood de queries DNS no servidor para que ele resolve milhares de domínios inexistentes (NX Domain), o DNS irá tentar resolver esses domínios realizando diversas consultas e com isso não conseguirá localiza-los armazenando as informações em cache. Quando o cache fica cheio os usuários começarão a sentir impacto na resolução de nomes e consequentemente um consumo maior de recursos de máquina.
Como proteger seu DNS
A proteção do sistema de DNS consiste em um conjunto de ações que precisam ser realizadas conforme a necessidade e a possibilidade de cada empresa. Abaixo listamos as principais ações que você pode tomar para prevenir os ataques descritos anteriormente.
Mantenha os sistemas atualizados: É muito importante que todos os softwares e sistemas operacionais que vão prover o serviço de DNS esteja atualizado e com os todas as correções de segurança aplicadas.
Gerenciamento da conta do domínio: Se você utiliza alguma empresa para gerenciar as configurações do seu domínio (como o Registro.br) é aconselhado você seguir alguns passos para aumentar a segurança da sua conta, dentre elas a habilitação do Token (Two Factor Authentication) e gerar códigos de segurança. Algumas empresas ainda permitem que você trave as alterações de DNS e mesmo bloqueie o acesso ao painel administrativo para determinados IPs.
Habilite o DNSSEC: O DNSSEC adiciona uma camada de segurança ao protocolo DNS, reduzindo o risco de manipulação de dados e informações, pois garante autenticidade e integridade ao sistema DNS. Essa proteção acontece através da verificação da assinatura dos registros que é feita utilizando chaves públicas.
Desabilite informações adicionais: Para evitar que o serviço retorne a versão do software que está sendo utilizado, o servidor deve refusar consultas que procuram saber a sua versão.
Habilite o TSIG: Com o TSIG (Transaction SIGnature) a proteção na transação é habilitada através da geração e verificação do hash-based message authentication codes (HMAC).
Utilize ACL: Alguns softwares de DNS permite utilizar ACL (Access Control List) para bloquear ou limitar o acesso por IP, se possível utilize essa configuração.
Infraestrutura: Separar as funcionalidades entre recursive servers e authoritative servers evita que o atacante externo comprometa o recursive server. Além disso é aconselhável bloquear a saída de DNS no firewall permitindo que apenas o recursive server se conecte externamente.
Monitore o tráfego DNS utilizando sistemas IDS e IPS. Alguns firewall já possuem a capacidade de detectar algumas anomalias quando é realizado o DNS Tunneling.
Utilize números randômicos no Transaction Identifier: O DNS usa IDs de transação (TxID) para rastrear consultas e respostas. Esse ID de transação é um campo de 16 bits que é inserido no cabeçalho de uma mensagem DNS.
A proteção do sistema DNS como um todo, seja para evitar problemas de evasão de dados como também se proteger contra ataques externos como DDoS, depende de um conjunto de soluções e práticas que você precisa avaliar quais se adequam a sua organização no momento. Você pode começar verificando as configurações padrões que o seu firewall e roteador oferecem e em seguida evoluir para outras soluções como o WAF.
Referências:
0 comentários: