Entender los ataques DNS: cómo identificar y corregir vulnerabilidades
Nihad Hassan
26 de octubre de 2022
0 minutos de lecturaEl Sistema de Nombres de Dominio (DNS) traduce los nombres de dominio en direcciones IP. Cada dispositivo y sitio web tiene una dirección IP que otros dispositivos, sitios web y servicios en línea usan para comunicarse con él. Las direcciones IP son cadenas de números que suelen tener el formato 000.000.000.000. Sin embargo, usamos nombres de dominio porque a las personas les cuesta recordar estos números. Cuando queremos visitar Google, simplemente escribimos el nombre de dominio en la barra de direcciones del navegador y el servicio DNS traduce el nombre de dominio que escribió el usuario, “google.com”, en la dirección IP correspondiente que usa una computadora.
El DNS es un componente fundamental de la infraestructura de Internet, ya que toda comunicación debe comenzar con la resolución de un nombre DNS. Si el DNS deja de estar disponible, los programas de Internet dejan de funcionar.
Los ataques DNS son ataques que tienen como objetivo la estabilidad y la seguridad de la infraestructura DNS. Suelen buscar que el DNS deje de estar disponible o interceptar y alterar las respuestas que proporciona, para dirigir a usuarios desprevenidos a sitios web maliciosos. La infraestructura DNS contiene dos componentes —servidores DNS autoritativos y recursivos— y ambos pueden ser objeto de ataques.
A continuación, exploraremos los ataques más comunes contra el DNS y revisaremos estrategias de mitigación para prevenirlos.
Guía rápida sobre los ataques DNS
Hay varios tipos de ataques DNS. Cada uno funciona de manera diferente, tiene efectos particulares y requiere contramedidas específicas.
Suplantación
La suplantación de DNS ocurre cuando los actores de amenazas alteran los registros legítimos del servidor DNS para redirigir a los usuarios a sitios web fraudulentos en lugar de llevarlos a su destino previsto.
Cuando los usuarios desprevenidos llegan al sitio web fraudulento, este les pide que ingresen información confidencial, como datos de inicio de sesión o de tarjetas de crédito. Los actores de amenazas usan esta técnica para robar los datos confidenciales de las víctimas o instalar malware —como ransomware o keyloggers— en sus dispositivos.
Los atacantes ejecutan ataques de suplantación de DNS de dos maneras:
Interceptan las comunicaciones entre el dispositivo objetivo y el servidor DNS, y redirigen las solicitudes de los usuarios a un sitio web malicioso.
Atacan directamente el servidor DNS legítimo y lo obligan a devolver direcciones IP maliciosas.
Para contrarrestar este ataque, debemos:
Actualizar y aplicar parches al software del servidor DNS con regularidad.
Verificar que el sitio web muestre el símbolo de conexión segura (candado), que aparece junto a la barra de direcciones del navegador. Si no aparece el candado, es posible que los actores de amenazas hayan clonado el sitio web con fines maliciosos.
Habilitar las Extensiones de Seguridad del Sistema de Nombres de Dominio (DNSSEC) en el dominio. Estas extensiones agregan una capa de seguridad al adjuntar una firma de certificado digital a la información DNS.
Envenenamiento de caché
En este ataque, el actor de amenazas inyecta información DNS falsa en la caché DNS para obligarla a devolver información incorrecta y dirigir a los usuarios a sitios web maliciosos. Por ejemplo, cuando un usuario solicita visitar google.com, el servidor DNS envenenado devuelve la dirección IP de otro sitio web que podría contener un exploit kit o una página de phishing.
En ciberseguridad, el envenenamiento de caché DNS y la suplantación de DNS suelen usarse como sinónimos. Sin embargo, se diferencian por su función y el orden en que ocurren. En el envenenamiento de DNS, los actores de amenazas reemplazan los registros DNS para redirigir a usuarios desprevenidos a destinos maliciosos. Luego, la suplantación de DNS usa una caché envenenada para redirigirlos al sitio web malicioso.
Para prevenir un ataque de envenenamiento de DNS, debemos:
Usar DNSSEC, que utiliza criptografía de clave pública. Esto garantiza que solo un servidor de nombres DNS legítimo responda a una solicitud con la información DNS correcta.
Impedir que los servidores DNS locales respondan consultas DNS de Internet, a menos que nuestro servidor de nombres DNS esté registrado en ICANN.
DoS/DDoS/inundación
La inundación de DNS es un ataque en el que actores maliciosos intentan saturar los servidores DNS con solicitudes DNS falsas para impedir que atiendan solicitudes legítimas. Hay dos tipos de ataques de inundación de DNS: inundación por denegación de servicio (DoS) e inundación por denegación de servicio distribuida (DDoS).
Ataque de inundación DoS
En un ataque de inundación DoS, el atacante usa una computadora para inundar un servidor DNS remoto con tráfico falso. Esta técnica ya no es efectiva porque los servidores DNS modernos tienen especificaciones técnicas avanzadas que un solo dispositivo no puede interrumpir.
Ataque de inundación DDoS de DNS
La inundación DDoS de DNS es el mecanismo de ataque más efectivo: los atacantes usan muchos dispositivos para apuntar a un servidor DNS. Esto consume los recursos de memoria y CPU del servidor objetivo y, finalmente, lo deja fuera de servicio.
En ciberseguridad, un bot puede ser cualquier dispositivo informático, por ejemplo, una laptop, una estación de trabajo o un dispositivo de Internet de las cosas (IoT), infectado con malware y bajo el control de un actor de amenazas. Al conjunto de estos bots se le llama botnet.
Los atacantes suelen usar redes de botnets con miles o millones de dispositivos comprometidos que ejecutan scripts maliciosos. El atacante coordina el ataque y ordena a todos los dispositivos enviar tráfico al mismo tiempo a un solo servidor, lo que provoca una denegación de servicio.
Las inundaciones de DNS se consideran relativamente recientes y se hicieron ampliamente posibles por el aumento de dispositivos IoT en todo el mundo. Muchos de estos dispositivos tienen configuraciones de seguridad deficientes, lo que los convierte en blancos fáciles para los hackers.
Para prevenir ataques de inundación DDoS y DoS, debemos:
Usar un servicio de mitigación de DDoS para impedir que atacantes externos saturen nuestros servidores DNS con solicitudes falsas.
Usar un servidor dedicado como servidor de nombres autoritativo y otro como resolutor DNS. Así, un componente puede seguir funcionando si el otro falla.
Usar un servidor DNS dedicado. Las organizaciones pequeñas y medianas suelen usar un solo servidor para varios fines, como alojar aplicaciones y ejecutar el servicio DNS. Sin embargo, si el atacante obtiene acceso a una aplicación alojada en el servidor, puede comprometer y alterar la configuración DNS.
NXDomain
Al igual que un ataque de inundación DNS, el ataque NXDomain satura el servidor DNS objetivo con numerosas solicitudes de registros no válidos (nombres de dominio inexistentes). Para ejecutar este ataque, los atacantes usan un servidor proxy DNS que envía automáticamente una gran cantidad de solicitudes DNS al servidor DNS autoritativo objetivo. El servidor autoritativo consume recursos (llena la caché del servidor) al resolver estas solicitudes no válidas, lo que hace que responda lentamente a las solicitudes legítimas y, finalmente, deje de responder por completo.
Para prevenir el ataque de inundación DNS NXD, debemos:
Realizar auditorías DNS con regularidad.
Agregar a una lista de bloqueo los nombres de dominio y servidores sospechosos.
Agregar temporalmente a una lista de bloqueo la dirección IP de un cliente si envía demasiadas solicitudes NXDomain.
Aumentar el tiempo de vida (TTL) de los registros DNS actuales para que permanezcan más tiempo en las cachés DNS externas. Estos registros no necesitan actualizarse con regularidad.
Ataques de amplificación
Este es otro ataque DDoS que busca impedir que el servidor DNS objetivo atienda consultas DNS legítimas. En este ataque, los actores de amenazas aprovechan servidores DNS abiertos para enviar múltiples respuestas al servidor objetivo.
Los actores de amenazas inician este ataque enviando numerosas solicitudes DNS al servidor DNS abierto y usando como dirección de origen la dirección IP del objetivo. El servidor DNS abierto devuelve la respuesta al solicitante (en este ejemplo, a la dirección IP suplantada del objetivo). El envío de muchas respuestas DNS termina por bloquear el servidor objetivo al consumir el ancho de banda de su red e impedir que responda a solicitudes legítimas.
Los atacantes suelen aprovechar botnets, en especial en dispositivos IoT, para generar solicitudes DNS suplantadas que saturan los servidores objetivo o la red de la organización con respuestas DNS.
Para prevenir este ataque, debemos:
Exigir la verificación de las direcciones IP de origen en todos los dispositivos de red.
Impedir que los servidores de nombres DNS autoritativos funcionen como servidores recursivos.
Configurar la limitación de la tasa de respuestas (RRL) en todos los servidores DNS.
Configurar los resolutores DNS abiertos para que solo respondan a consultas de fuentes confiables.
Secuestro
En este ataque, los actores de amenazas manipulan las respuestas a las consultas DNS para dirigir a usuarios desprevenidos a sitios web fraudulentos o maliciosos. Esto ocurre de las siguientes maneras:
Instalar malware, como un caballo de Troya, en la computadora de la víctima para resolver incorrectamente las consultas DNS y llevar al usuario desprevenido a sitios maliciosos.
Comprometer el router objetivo y cambiar su configuración DNS. Esto afecta a todos los usuarios conectados al router.
Interceptar las comunicaciones entre el servidor DNS legítimo y el dispositivo del usuario —como en un ataque de intermediario— y manipular las respuestas DNS para llevar al usuario desprevenido a sitios maliciosos.
Atacar directamente el servidor DNS y cambiar su configuración DNS para dirigir a usuarios desprevenidos a distintas URL.
Aunque este ataque es malicioso, algunos proveedores de servicios de Internet (ISP) usan esta técnica para dirigir a los usuarios a otros sitios web. Por ejemplo, algunos ISP la usan para mostrar anuncios basados en el historial de navegación de los usuarios.
Rebinding
En este ataque, el actor de amenazas infecta el router objetivo con malware para controlarlo de forma remota. El ataque comienza al ejecutar código JavaScript malicioso en el navegador de un usuario para infectar el router. Muchas personas no protegen su router con una contraseña compleja o simplemente lo resguardan con las credenciales predeterminadas de fábrica. Esto las deja vulnerables a los ataques de rebinding.
Un buen primer paso para protegerse de los ataques de rebinding es proteger el router con una contraseña segura. También debemos:
Cambiar el nombre de usuario y la contraseña predeterminados del router por otros difíciles de adivinar.
Mantener actualizados el servidor DNS, todos los sistemas operativos de los clientes y las aplicaciones instaladas.
Tunelización
Este ataque DNS dirige el tráfico de usuarios desprevenidos al servidor del atacante. Es común entre los operadores de ransomware, que lo usan para facilitar la comunicación con el centro de comando y control (C&C) y extraer datos del dispositivo objetivo.
La tunelización DNS evade la detección de herramientas de seguridad como los firewalls. Los actores de amenazas envían datos robados de la red objetivo en fragmentos pequeños y los transmiten como una serie de consultas y respuestas DNS para evitar que los detecten.
Un ataque de tunelización DNS funciona de la siguiente manera:
El atacante tiene un servidor al que apunta un nombre de dominio. Ese servidor ejecuta malware de tunelización.
El atacante infecta una computadora con malware. La computadora infectada puede estar detrás del firewall de una empresa, pero puede usar el resolutor DNS.
Entonces, el resolutor DNS puede comunicarse con el servidor C&C remoto del atacante.
De esta manera, cada dispositivo infectado y el servidor remoto del atacante crean un canal encubierto que puede usarse para extraer datos del dispositivo de la víctima o para enviar más malware, como ransomware, al dispositivo objetivo.
Para prevenir este ataque, debemos:
Usar soluciones de seguridad avanzadas, incluidos firewalls de última generación en los perímetros de la red y soluciones de detección y respuesta de red (NDR), para monitorear todas las interacciones en nuestro entorno de TI. Así podemos detectar a los operadores de APT y ransomware, y detener las comunicaciones con los servidores de los atacantes.
Configurar todos los dispositivos de la red de una organización para que envíen sus consultas DNS a un servidor DNS interno que bloquee los nombres de dominio sospechosos.
Dominio fantasma
En este ataque, el actor de amenazas configura numerosos nombres de dominio fantasma y solicita al servidor DNS objetivo que los resuelva. Estos dominios (por lo general, una gran cantidad de subdominios) responden muy lentamente o no responden. Al cabo de un tiempo, el servidor DNS objetivo consume su caché mientras espera las respuestas del dominio del atacante y, finalmente, deja de responder.
Para prevenir este ataque, debemos:
Aumentar la cantidad de servidores DNS recursivos.
Limitar la cantidad de solicitudes DNS recursivas sucesivas en cada servidor DNS.
Conclusión
El servicio DNS es un componente fundamental de la infraestructura de Internet. Se encarga de traducir los nombres de dominio de los usuarios a direcciones IP que otros servidores puedan entender. Sin embargo, no se diseñó pensando en la seguridad. Con el uso generalizado de Internet y el aumento de los ciberataques, los ciberdelincuentes se han interesado cada vez más en los ataques DNS.
Cualquier ataque contra el servicio DNS impide que todos los programas de Internet funcionen correctamente. Los ciberdelincuentes lo saben y han desarrollado muchas formas de atacar los servicios DNS con fines maliciosos.
Existen varias técnicas para atacar el servicio DNS, que podemos agrupar en dos categorías principales:
Ataques cuyo objetivo es dejar el servicio DNS fuera de servicio
Ataques cuyo objetivo es manipular los registros DNS para dirigir a usuarios desprevenidos a destinos maliciosos
Como demuestra este artículo, cada tipo de ataque DNS requiere distintas medidas para mitigarlo. Sin embargo, en general, las claves para prevenir los ataques DNS incluyen mantener actualizado el software del servidor DNS, usar un servidor DNS dedicado para proporcionar el servicio, aumentar la cantidad de servidores DNS recursivos y buscar vulnerabilidades para mitigar los ataques DDoS.
Empieza con los retos de Capture the Flag
Aprende a resolver retos de Capture the Flag viendo nuestro taller virtual de nivel básico a pedido.



