Pasar al contenido principal

Envenenamiento del DNS

El envenenamiento de DNS (también conocido como envenenamiento de caché de DNS) es una técnica utilizada en ciberataques que consiste en introducir información falsa en la caché de un servidor DNS para que sus consultas devuelvan una respuesta fraudulenta, consiguiendo de esta forma dirigir a los usuarios a un sitio web controlado por el atacante.

Para entender bien cómo funciona esta técnica, primero hay que conocer qué son y cómo funcionan los servidores DNS y su caché.

Los servidores DNS son los sistemas que se utilizan en Internet para traducir los nombres de dominio a direcciones IP. En otras palabras, cuando accedemos a una página web, estos sistemas son los que ayudan a traducir nombres de dominio (como https://www.euskadi.eus/), legibles y más fácilmente memorizables por humanos, en direcciones IP legibles por máquinas (como 195.53.88.257).

El sistema DNS funciona de forma jerárquica. Para realizar su función, un servidor DNS necesita comunicarse con otros servidores que participan en el proceso de resolución de DNS. Imaginemos un caso típico, en el que un cliente hace una petición al servidor DNS para traducir una URL. De forma muy simplificada, el servidor DNS se comunicará con otros servidores, preguntando si alguno conoce la dirección URL hasta obtener alguna respuesta. Imaginemos que a continuación recibe una petición para resolver el mismo dominio. En vez de tener que volver a comunicarse con los otros servidores, el servidor podría responder de forma mucho más rápida y eficiente si guarda las respuestas a las consultas durante un periodo de tiempo determinado. Estas respuestas que se guardan de forma temporal se almacenan en la memoria caché.

En un ataque de envenenamiento DNS, los atacantes se hacen pasar por servidores de nombres DNS y tratan de falsificar las repuestas que devolverá el servidor DNS con la caché “envenenada”. Sobre las razones por las que es posible ese envenenamiento de la caché, entre otras cuestiones se debe a la utilización de conexiones UDP en lugar de TCP y a la no verificación de la información recibida.

Pese a estas vulnerabilidades, actualmente los ataques de envenenamiento de DNS no son sencillos. Los atacantes solo disponen de un pequeño espacio de tiempo para enviar la respuesta falsa antes de que llegue la respuesta real, y tienen que considerar variables como qué consulta se realizará, en qué puerto estará escuchando el servidor o a qué servidor irá la consulta.

Frente a estas vulnerabilidades, existen especificaciones como DNSSEC, que emplea conexiones TCP y criptografía de clave pública para verificar los datos recibidos y su origen, haciendo su funcionamiento más seguro y ayudando de esta forma a prevenir el envenenamiento de DNS. De todas formas, aunque las especificaciones de DNSSEC se publicaron en 2005, su todavía no está tan extendido como debería, por lo que hay servidores DNS que siguen siendo vulnerables a este tipo de ataques.