Protegendo o serviço de resolução de nomes ( DNS )
Colaboração: Alexandro Silva
Data de Publicação: 17 de outubro de 2013
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.
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
- DNS Amplification Attacks
- CVE-2008-1447
- CVE-1999-0024
- Understanding Kaminsky's DNS Bug
- Mitigating DNS Cache Poisoning Attacks with iptables
- Mitigating DNS cache poisoning with PF
- UDP Randomize port selection Patch
- NMAP NSE - dns-cache-snoop
- NMAP NSE - dns-recursion
- DNSSec