A lo largo del tiempo se ha visto que muchos de los ataques que sufren los usuarios e incluso las infecciones por malware, ocurren en combinación con otras técnicas para aumentar la efectividad de las mismas. DNS spoofing es un método para alterar las direcciones de los servidores DNS que utiliza la potencial víctima y de esta forma poder tener control sobre las consultas que se realizan.
Los servidores DNS permiten la resolución de nombres en direcciones IP. De esta forma no es necesario para el ser humano recordar las direcciones IP de cada sitio que desea visitar. Aprovechando esta dependencia que existe con los servidores de nombres de dominio, muchos de los atacantes se benefician de este nodo, dentro de la ruta de comunicación, cuando se consulta un sitio web. En otras palabras, alteran las direcciones IP de los servidores DNS de la víctima para que apunten a servidores maliciosos. Esta actividad maliciosa es conocida bajo el nombre de DNS Spoofing.
En la siguiente imagen puede visualizarse cómo es el ciclo cuando se realiza una consulta a un servidor DNS:
Por otro lado, en caso de que exista DNS spoofing, el ciclo es el siguiente:
¿Cómo es posible alterar las direcciones de los servidores DNS?
Exiten diferentes formas de modificar las direcciones IP de los DNS. En el caso del usuario hogareño, muchos de ellos poseen un router en sus casas, ya sea para conectar más de una computadora a Internet o para tener la posibilidad de utilizar WiFi. Sin embargo, existe la posibilidad de que estos dispositivos estén mal configurados. Uno de los aspectos más comunes es habilitar la opción de gestionar el router remotamente, es decir, se expone a través de una IP pública. En la siguiente captura puede visualizarse un ejemplo de un panel de administración:
Esta configuración en conjunción con el hecho de que muchas veces se deja las contraseñas por defecto del propio dispositivo, permiten a un atacante, eventualmente, ingresar a la configuración del mismo. De esta forma es posible alterar las direcciones DNS que utiliza ese router para realizar las consultas de resolución de nombres.
En el otro extremo, el ciberdelincuente puede establecer un servidor DNS malicioso. Las consultas de la víctima pasarán por este servidor y será posible redireccionarlo a cualquier sitio malicioso.
¿Qué tipos de ataque se pueden realizar con DNS Spoofing?
Es posible realizar diferentes tipos de ataques a través del uso de servidores DNS maliciosos. Uno de los ataques que puede tener más impacto es el de montar sitios falsos que sean réplica de aquellos que el ciberdelincuente desee obtener información sensible por parte de la potencial víctima. De esta forma cuando el usuario intente acceder a ese sitio, será redireccionado al sitio espejo y el atacante obtendrá las credenciales. Este tipo de ataques incluso darán resultado sobre aquellos sitios que cifran la conexión, es decir que utilizan el protocolo HTTPS. En otras palabras, como el usuario atacado accede a un sitio malicioso, el cifrado es inexistente y por la tanto se posibilita el robo de las credenciales.
Otro ataque posible es la explotación de alguna vulnerabilidad. El atacante incorpora en el servidor malicioso algún tipo de exploit para que cuando el usuario víctima acceda al supuesto sitio legítimo, sea vulnerado. Uno de los exploits que se utilizan es, por ejemplo, el applet en Java (CVE-2011-3544). En pocas palabras, cuando el usuario accede, una solicitud de ejecución de Java será requerida. Debido a que la víctima está accediendo a un supuesto sitio de confianza, en muchos casos aceptará la solicitud. Esta vulnerabilidad permite la ejecución de código, comprometiendo en muchos casos el sistema. En la siguiente imagen puede observarse una notificación de seguridad de Java debido a que la firma digital de la aplicación no puede comprobarse:
¿Cómo es posible protegerse?
Hay que aclarar que existen otro tipo de ataques que involucran a servidores DNS además de DNS Spoofing. Sin embargo, en esta oportunidad es necesario aclarar algunos consejos para que el usuario no se vea afectado por estos ataques. En primera instancia es muy importante deshabilitar la opción de gestión remota de los routers. En caso de que se requiera de la mencionada funcionalidad, asegurarse de establecer una contraseña fuerte. Es muy importante mantener el sistema operativo actualizado, es decir, instalar los últimos parches disponibles. Por ejemplo, en el caso de Java, es importante actualizar los navegadores así como también la propia versión de Java. Tanto las actualizaciones del propio sistema operativo como el de las aplicaciones permiten reducir el nivel de éxito en la explotación de los diferentes servicios. Otro punto para tener en cuenta es la verificación de las conexiones a sitios que utilizan cifrado. Es importante prestar atención al protocolo ya que, por ejemplo, si un sitio utiliza HTTPS y cuando se accede utiliza HTTP, el usuario podría estar accediendo a un sitio falso réplica del original.
Finalmente contar una solución de seguridad con capacidad de detección proactiva permite estar protegido contra amenazas que quizá puedan alojarse en el sistema de la víctima utilizando alguno de los métodos mencionados.
Fernando Catoira
Analista de Seguridad