Protegendo o serviço de resolução de nomes ( DNS )

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
dns_rec_vuln
Figura 2 – Nmap usando o script dns-recursion
dns_rec_nmap
Figure 3 – Nmap usando o script dns-cache-snoop
dns_cachesnoop_nmap
Figure 4 – Consulta recursiva sem sucesso utilizando o comando host
dns_rec_naovuln
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

Sucuri Security

Author: alexos