Cyber Security Academy · Lección

Spoofing de DNS y envenenamiento de caché

Falsifique respuestas DNS.

Lección 2 de 413 pasos

Spoofing de DNS y envenenamiento de caché es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.

Falsificación de respuestas DNS

La suplantación de DNS consiste en proporcionar una respuesta DNS falsificada para que la víctima resuelva un nombre en una IP controlada por el atacante. El envenenamiento de caché es una forma específica en la que el resolvedor recursivo acepta y almacena la respuesta falsificada, infectando a todos los clientes que lo utilizan.

El objetivo suele ser redirigir el tráfico: enviar a los usuarios a páginas de phishing, descargas de malware o proxies de intermediario.

La condición de carrera

Cuando un resolvedor envía una consulta, un atacante intenta inyectar una respuesta falsificada antes de que responda el servidor autoritativo legítimo. Si la falsificación llega primero y coincide con los campos esperados, gana la carrera y se almacena en caché.

Por eso la latencia, el orden de los paquetes y el puerto de salida del resolvedor son tan importantes tanto en el ataque como en la defensa.

Campos que el atacante debe adivinar

Para que se acepte una respuesta UDP falsificada, el atacante debe hacer coincidir:

  • La IP de origen (el servidor autoritativo).
  • El puerto de destino (el puerto de salida del resolvedor).
  • El nombre y tipo de consulta.
  • El ID de transacción (TXID) de 16 bits.

Sin protecciones, el único secreto real es el TXID, lo que ofrece aproximadamente una probabilidad de 1 entre 65.536 por paquete.

El ataque de Kaminsky

La revelación de Dan Kaminsky en 2008 demostró que el envenenamiento era mucho más fácil de lo que se pensaba. En lugar de una carrera por registro, el atacante consulta muchos subdominios inexistentes (aaa.bank.com, aab.bank.com...) y envía respuestas falsificadas que contienen un registro NS o glue malicioso para todo el dominio.

Cada intento es una carrera nueva y una consulta fallida no sufre ninguna penalización de caché, por lo que el atacante puede seguir intentándolo hasta acertar y envenenar toda la zona.

for sub in $(seq 1 10000); do
  dig $sub.bank.com @victim-resolver &
done
# Attacker floods forged NS answers in parallel

Aleatorización del puerto de origen

La principal mitigación posterior a Kaminsky fue la aleatorización del puerto de origen. En lugar de utilizar un puerto de salida fijo, el resolvedor elige un puerto efímero aleatorio para cada consulta.

Ahora el atacante debe adivinar tanto el TXID (16 bits) como el puerto de origen (aproximadamente 16 bits), lo que amplía el espacio de búsqueda hasta aproximadamente 2^32. Esto hace impracticable el envenenamiento ciego fuera de ruta, aunque no imposible en implementaciones con una entropía débil.

Atacantes en ruta y fuera de ruta

Un atacante fuera de ruta no puede ver la consulta y debe adivinar a ciegas el TXID y el puerto. Un atacante en ruta (Wi-Fi malicioso, router comprometido, ISP) puede leer directamente la consulta y crear fácilmente una respuesta coincidente.

La suplantación en ruta neutraliza por completo la aleatorización de puertos, por lo que el transporte cifrado y la validación de DNSSEC son necesarios para ofrecer garantías sólidas, no solo entropía.

DHCP malicioso y secuestro del resolvedor

Los atacantes no siempre falsifican paquetes. Un servidor DHCP malicioso puede proporcionar a los clientes la dirección de un resolvedor DNS malicioso, de modo que el atacante responda a todas las consultas. Del mismo modo, el malware puede modificar /etc/resolv.conf o la configuración del router.

Amenazas históricas como el malware DNSChanger redirigieron silenciosamente el DNS de las víctimas a servidores fraudulentos durante años. Compruebe qué resolvedores utiliza realmente su flota.

cat /etc/resolv.conf
# nameserver should match your trusted internal resolver

Comprobación de bailiwick

Los resolvedores aplican reglas de bailiwick: una respuesta solo puede proporcionar registros para nombres que estén dentro de la zona para la que es autoritativa. Una respuesta para bank.com no puede introducir subrepticiamente un registro para unrelated.com.

Esto limita las inyecciones al estilo Kaminsky al dominio consultado e impide que una respuesta envenenada contamine zonas no relacionadas. Verifique que su resolvedor aplique un filtrado estricto de bailiwick.

Detección del envenenamiento

Señales de un envenenamiento en curso o ya completado:

  • Un aumento repentino de consultas para subdominios aleatorios e inexistentes.
  • Respuestas DNS duplicadas o fuera de orden para el mismo TXID.
  • IP resueltas que de repente apuntan a ASN o ubicaciones geográficas inesperados.
  • Discrepancias entre las respuestas del resolvedor y una consulta de verificación confiable realizada por otra vía.

Defensas por capas

Ningún control individual es suficiente. Combine:

  • Aleatorización del puerto de origen y del TXID para aumentar el costo de los ataques fuera de ruta.
  • Validación de DNSSEC para que las respuestas falsificadas fallen las comprobaciones de firma.
  • DoT/DoH para impedir que los atacantes en ruta vean o manipulen las consultas.
  • Codificación 0x20 (uso aleatorio de mayúsculas y minúsculas en los nombres de consulta) para añadir entropía.
  • Supervisión de inundaciones de NXDOMAIN y anomalías en las respuestas.

La realidad operativa

En la práctica, el envenenamiento ciego de caché fuera de ruta es poco frecuente hoy en día en resolvedores actualizados, pero reaparece mediante canales laterales (por ejemplo, la fragmentación UDP y los ataques de inferencia de puertos basados en ICMP, como SAD DNS). Mantenga los resolvedores actualizados y prefiera aquellos con validación y transporte cifrado.

Recuerde: el compromiso de DNS con mayor impacto no suele ser una ingeniosa carrera de envenenamiento, sino una cuenta de registrador robada. Proteja ambos frentes.

Comprobación rápida

Compruebe cuánto domina la técnica de Kaminsky.

Resumen

La suplantación de DNS falsifica respuestas; el envenenamiento de caché las mantiene en un resolutor. La aceptación depende de que coincidan la IP de origen, el puerto, el nombre de la consulta y el TXID. La aleatorización del puerto de origen y las comprobaciones de bailiwick elevaron la dificultad para los atacantes fuera de ruta, pero los atacantes en ruta y los canales laterales siguen siendo una amenaza.

La defensa en profundidad (entropía, validación DNSSEC, transporte cifrado y monitorización) es esencial. A continuación veremos cómo los atacantes abusan del DNS para transferir datos: mediante túneles y exfiltración.

Gratis para empezar

Aprende Cyber Security Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
76
Lecciones
303

Preguntas frecuentes

¿La lección «Spoofing de DNS y envenenamiento de caché» es gratis?

Sí — el texto completo de «Spoofing de DNS y envenenamiento de caché» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Spoofing de DNS y envenenamiento de caché»?

Falsifique respuestas DNS. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cyber Security Academy?

No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Spoofing de DNS y envenenamiento de caché»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?

Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cómo funciona DNS y cuáles son sus riesgos
  2. Spoofing de DNS y envenenamiento de caché
  3. Túneles DNS y exfiltración
  4. DNSSEC y filtrado DNS
← Volver a Cyber Security Academy