Seguretat DNS
Principals Amenaces
Segons una enquesta d'IDC de 2021, el 87% de les organitzacions han patit atacs DNS, amb un cost mitjà d'aproximadament 950.000 dòlars per atac.
DNS Cache Poisoning (Enverinament de Cache):
Aquest atac intenta corrompre la cache DNS per redirigir els usuaris a llocs maliciosos. L'atacant injecta respostes DNS falses abans que arribi la resposta legítima.
DNS Amplification/DDoS:
L'atacant envia peticions DNS amb l'adreça IP de la víctima falsificada com a origen, causant que les respostes (molt més grans) es dirigeixin a la víctima.
DNS Tunneling:
Tècnica que codifica dades en consultes i respostes DNS per exfiltrar informació o establir canals de comandament i control evitant els firewalls.
DNS Hijacking:
L'atacant modifica els servidors DNS o el registrador de domini per desviar el trànsit.
DNSSEC (DNS Security Extensions)
DNSSEC afegeix signatures digitals als registres DNS per garantir-ne l'autenticitat i integritat.
Configuració de DNSSEC en BIND9:
# Generar claus per a la zona
cd /etc/bind/keys/
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE empresa.local
dnssec-keygen -a RSASHA256 -b 4096 -n ZONE -f KSK empresa.local
# Signar la zona
dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) \
-N INCREMENT -o empresa.local -t \
/etc/bind/zones/db.empresa.local
# Configurar BIND per usar la zona signada
zone "empresa.local" {
type master;
file "/etc/bind/zones/db.empresa.local.signed";
# ... resta de configuració
};
Les claus DNSSEC caduquen
Les signatures DNSSEC tenen una validesa limitada i les claus s'han de renovar periòdicament (key rollover). Si no es renoven a temps, les signatures caduquen i tota la zona esdevé irresoluble per als resolvers que validen DNSSEC. Cal automatitzar aquest procés (per exemple amb inline-signing i auto-dnssec maintain a BIND9).
Millors Pràctiques de Seguretat
Les millors pràctiques inclouen implementar limitació de taxa (rate limiting) per controlar el volum de trànsit DNS.
1. Restringir Consultes Recursives:
# Només permetre recursió des de xarxes de confiança
options {
recursion yes;
allow-recursion { xarxa-interna; };
};
2. Implementar Rate Limiting:
3. Amagar Versió de BIND:
4. Desactivar Transferències de Zona No Autoritzades:
options {
allow-transfer { none; };
};
# O només a servidors específics
zone "empresa.local" {
allow-transfer { 192.168.1.11; key transfer-key; };
};
5. Utilitzar TSIG per a Transferències Segures:
# Generar clau TSIG
dnssec-keygen -a HMAC-SHA256 -b 256 -n HOST transfer-key
# Configurar la clau
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-secret-key";
};
# Usar la clau per a transferències
server 192.168.1.11 {
keys { transfer-key; };
};
Monitorització i Detecció d'Amenaces
És essencial registrar i monitoritzar les consultes DNS per detectar anomalies.
Configuració de logging detallat:
logging {
channel security_log {
file "/var/log/bind/security.log" versions 3 size 10m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel query_log {
file "/var/log/bind/query.log" versions 3 size 50m;
severity info;
print-time yes;
};
category security { security_log; };
category queries { query_log; };
category query-errors { query_log; };
};
Eines per analitzar logs:
# Veure les consultes més freqüents
cat /var/log/bind/query.log | grep "query:" | \
awk '{print $8}' | sort | uniq -c | sort -rn | head -20
# Detectar possibles atacs DDoS
tail -f /var/log/bind/query.log | \
grep -E "denied|REFUSED|SERVFAIL"
# Analitzar patrons sospitosos
grep -E "ANY|AXFR" /var/log/bind/query.log