Falhas geradas por erros de configuração no DNS (servidor de resolução de nomes) são comuns, além disso, ataques direcionados contra esse serviço são dificeis de identificar podendo causar sérios problemas à infraestrutura, alguns exemplos de vulnerabilidades são DNS Server Recursive Query Cache Poisoning (CVE-2008-1447)e DNS Cache Snooping.
Elas permitem que um invasor identifique os domínios acessados dentro da organização ou execute ataques de evenenamento de cache por meio de consultas (queries) UDP recursivas, usando o serviço de DNS do host vulnerável para ataques de DoS contra outras redes, também conhecido como DNS Amplification.
Comandos como dig,nslookup e host ou ferramentas como Nmap,dnsrecon e o site dnsinspect podem ser utilizados para checar as configurações do serviço DNS.
Figura 1 – Consulta recursiva bem sucedida utilizando o comando host
Figura 2 – Nmap usando o script dns-recursion
Figure 3 – Nmap usando o script dns-cache-snoop
Figure 4 – Consulta recursiva sem sucesso utilizando o comando host
Defesa
O hardening necessário para defender-se contra tentativas de consulta recursiva é muito simples, basta adicionar ou modificar as linhas abaixo dentro da diretiva options no arquivo /etc/named/named.conf (RedHat e derivados) ou /etc/bind/named.conf.options (Debian e derivados).
Exemplo named.conf
options { ... additional-from-cache no; allow-query { none; }; recursion no; };
Exemplo named.conf.options
options { auth-nxdomain no; #RFC1035 additional-from-cache no; listen-on { 127.0.0.1; 192.168.0.1; }; allow-query { none; }; allow-recursion { none; }; version none; };
Além dessa solução recomendo o DNSSec para defender-se contra ataques de DNS Cache Poisoning. Criar regras no iptables e PF também pode ser utilizado para mitigar esse ataque.
Conclusão
Outras medidas importantes são restringir os hosts que podem fazer transferência de zonas e a implantação de um HIDS para auxiliar na identificação, alerta e interrupção de tentativas de ataques direcionados para o DNS e outros serviços.
Referências
RFC1034-Domain Names – Concepts and Facilities
RFC1035-Domain Names – Implementation and Specification
RFC4033-DNS Security Introduction and Requirements
RFC5936-DNS Zone Transfer Protocol (AXFR)
The Hitchhiker’s Guide to DNS Cache Poisoning
Understanding Kaminsky’s DNS Bug
Mitigating DNS Cache Poisoning Attacks with iptables
Mitigating DNS cache poisoning with PF
Comments are closed.