A pesar de ser algo esencial para el correcto funcionamiento de Internet tal y como lo conocemos actualmente, los servidores DNS suelen pasar desapercibidos para la mayoría de los usuarios. Al menos así es hasta que ocurre algún tipo de ataque o incidente que afecta a su correcto funcionamiento y comprueban en primera persona cómo los servicios que utilizan todos los días comienzan a fallar, algo que pudimos ver no hace mucho cuando la botnet Mirai atacó a la empresa DynDNS.
Lo cierto es que hay más de un tipo de ataque que podría afectar a estos servidores; en este artículo veremos las diferencias entre ellos.
¿Qué es un servidor DNS?
El sistema de nombres de dominio (o DNS por sus siglas en inglés) es lo que nos permite resolver el nombre de una página web por su dirección IP. De esta forma, los usuarios no debemos acordarnos de la secuencia de números que conforman una IP (o números y letras en IPV6) y podemos acceder, por ejemplo, a una web como "www.facebook.com" escribiéndola tal cual en nuestro navegador, en lugar de escribir "31.13.92.36".
De resolver cuál es este nombre entendible para los usuarios en una dirección IP se encargan los servidores DNS, basándose en una base de datos distribuida y jerárquica que almacena a qué dirección IP corresponde cada nombre de dominio, entre otras funciones. De esta forma, es más fácil acordarse de las direcciones web, además de que la dirección IP puede cambiar por varias razones.
Conocedores de la importancia de estos servidores, no es de extrañar que muchos ataques intenten aprovechar vulnerabilidades en ellos o en la forma en la que los usuarios los utilizan.
DNS Spoofing vs. DNS Cache Poisoning
Muchas veces interpretados como si fueran el mismo tipo de ataque, la realidad es que, técnicamente, existen diferencias entre estos dos. En líneas generales, podríamos decir que el de DNS Cache Poisoning es una de las múltiples formas de conseguir un DNS Spoofing, refiriéndose este último a la amplia variedad de ataques existentes que buscan suplantar la información que se almacena en los servidores DNS.
DNS Spoofing refiere a la amplia variedad de ataques que buscan suplantar la información almacenada en los servidores DNS
El DNS Spoofing representaría la finalidad última del ataque (conseguir modificar los registros que se almacenan en el servidor DNS por los que decida el atacante) y para la cual se emplean diferentes mecanismos. Entre ellos, encontramos el DNS Cache Poisoning, pero también ataques Man-In-The-Middle, uso de estaciones base falsas o incluso comprometer la seguridad de un servidor DNS.
También es posible que veamos cómo se hace referencia al DNS Spoofing cuando hablamos de ataques orientados al usuario. Un ejemplo de esto sería la suplantación de la dirección de los servidores DNS configurados en nuestro sistema operativo o router. Lo normal es que se introduzca la dirección de los DNS de nuestro proveedor de Internet u otros como los de Google, tal y como vemos a continuación:
En lo que respecta al DNS Cache Poisoning, se refiere a la situación en la que muchos usuarios finales utilizan la misma cache donde se almacenan los registros que relacionan cada dirección IP con un dominio. En el caso de que un atacante consiguiera manipular una entrada DNS en ese registro, los proveedores de Internet que utilizan esa cache lo tomarían como auténtico, por mucho que haya sido manipulado para dirigir a una web fraudulenta.
En este caso, estaríamos ante una cache DNS envenenada que no redirige correctamente a las direcciones IP legítimas cuando resuelve un nombre de dominio. Obviamente, envenenar este tipo de cache no resulta tan sencillo como hacerlo con la cache existente en un sistema o router, pero técnicamente es posible y hay precedentes.
una cache DNS envenenada no redirige correctamente a las IP legítimas cuando resuelve un nombre de dominio
Uno de los principales problemas de los ataques de DNS Cache Poisoning es que se pueden propagar entre varios servidores DNS, afectando con el tiempo también a los routers domésticos e incluso a la cache DNS existente en el sistema del usuario, ya que recibirían esta información incorrecta y actualizarían su cache local con ella.
Para realizar este tipo de ataque se necesita disponer de un servidor web y de un servidor DNS, configurando su propio DNS autoritativo y un dominio trampa. A partir de ahí, el atacante debe primero conseguir que la víctima acceda con su propio DNS al enlace con el dominio trampa, para así empezar a recolectar los identificadores de transacción hasta que sea capaz de predecir cual será el siguiente.
Llegado a este punto, el DNS de la víctima es obligado a realizar una petición al DNS autoritativo del atacante que puede estar apuntando a un dominio que suplanta una entidad bancaria. Al haber averiguado cuál va a ser el nuevo identificador de transacción, el atacante puede enviar paquetes para intentar suplantar las conexiones legítimas que el usuario recibe al intentar conectarse a su banco.
Debido a que el atacante puede predecir el identificador de transacción correcto, el DNS de la víctima almacena la entrada suplantada en su cache y la da por válida. Desde este momento, cualquier intento de acceso a la web de su banco por parte de la víctima será redirigido a la web controlada por el atacante.
¿Y que hay del DNS hijacking?
El malware también puede ser utilizado para afectar a las correctas resoluciones de nombres de dominio y conseguir que las víctimas se conecten a un servidor controlado por los delincuentes. Hay ejemplos de malware como Win32/DNSChanger que modifican los DNS establecidos por el usuario o nuestro proveedor de Internet, y podemos ver su funcionamiento en la siguiente imagen:
Esto le permite al atacante realizar una amplia variedad de ataques que van desde el phishing, utilizando webs fraudulentas a las que la víctima se conecta pensando que son reales y a las que ha accedido introduciendo en su navegador la dirección correcta, hasta el uso de exploits para aprovecharse de vulnerabilidades cuando el usuario navega por lo que cree que son páginas de confianza pero que han sido generadas por el atacante para poder infectarle.
Sin embargo, el ejemplo más claro es el que nos ofrecen las redes de ordenadores zombis o botnets. Muchas de ellas modifican los servidores DNS que tienen configurados sus víctimas para que apunten a otros controlados por los atacantes; de esta forma, además de las acciones maliciosas que acabamos de describir, los delincuentes pueden enviar comandos a los bots, actualizar la versión del malware o incluso eliminarse del sistema si lo creen necesario.
Conclusión
Como acabamos de comprobar, existen numerosos ataques que pueden afectar a la correcta resolución de un dominio y ocasionar que los usuarios caigan en una trampa preparada por un delincuente sin darse cuenta, pensando que están accediendo a un dominio legítimo. Para evitar este tipo de amenazas, se recomienda utilizar una buena solución de seguridad, de ser posible que incorpore la posibilidad de revisar la seguridad de nuestro router.
Hablando de nuestro router, nunca está de más revisar si su seguridad es la adecuada. Siempre es aconsejable asegurarnos de que está debidamente actualizado y configurado de forma que nadie puede acceder a él sin autorización, evitando la utilización de contraseñas débiles o tener activados servicios que permiten conectarse al router remotamente.