El envenenamiento de caché DNS (DNS spoofing) es un ataque que introduce registros falsos en la caché de un resolutor DNS para que devuelva direcciones IP falsas a todos los usuarios que dependen de él.
Cómo funciona el envenenamiento de caché DNS
Los resolutores recursivos guardan en caché las respuestas autoritativas para agilizar el sistema de nombres de dominio. El DNS clásico funciona sobre UDP y acepta una respuesta si coincide con el nombre, el puerto de origen y un identificador de transacción de 16 bits. Si un atacante los adivina y responde antes que el servidor real, el registro falso se guarda hasta que caduca su TTL.
- Ataque de Kaminsky (2008): Dan Kaminsky demostró que, consultando subdominios aleatorios inexistentes, el atacante podía repetir la carrera sin fin y envenenar todo un dominio en segundos. La corrección coordinada fue aleatorizar el puerto de origen.
- SAD DNS (2020): unos investigadores usaron un canal lateral en la limitación de tasa de ICMP para deducir el puerto aleatorizado y reactivaron el envenenamiento fuera de ruta.
- Los atacantes en la ruta, en posición de intermediario, pueden falsificar las respuestas directamente.
Por qué es importante
Un solo resolutor envenenado en un proveedor o una empresa redirige a todos sus usuarios a la vez: a sitios de phishing, descargas de malware o servidores que interceptan el correo. A diferencia del secuestro de DNS, no se cambia ninguna configuración ni registro, y las víctimas ven el dominio correcto en la barra de direcciones. La verificación de certificados HTTPS detecta muchas redirecciones, pero no protege las conexiones sin cifrar ni a quien ignora las advertencias.
Cómo prevenirlo
- Firmar las zonas y activar la validación con DNSSEC (RFC 4033–4035), que hace detectables los registros falsificados.
- Actualizar el resolutor y garantizar la aleatorización del puerto de origen y del identificador.
- No operar resolutores abiertos; limitar la recursión a los propios clientes.
- Usar DNS cifrado (DoH o DoT) hacia resolutores de confianza e imponer HTTPS.





