Los atacantes pueden envenenar un caché de DNS engañando a los solucionadores de DNS con información falsa de almacenamiento de caché, con el resultado de que el solucionador envíe la dirección IP equivocada a los clientes, y los usuarios intenten navegar a un sitio web que se dirigirá al sitio equivocado.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar enlace del artículo
El envenenamiento de caché de DNS consiste en introducir información falsa en una caché DNS, para que las consultas de DNS devuelvan una respuesta incorrecta y se dirija a los usuarios a sitios web equivocados. El envenenamiento de caché DNS también se conoce como "falsificación de DNS". Las direcciones IP son los "números de teléfono" de Internet y habilitan el tráfico para llegar hasta los lugares adecuados. Los cachés de resolución DNS son el directorio de los números telefónicos y cuando almacenan información errónea, el tráfico se dirige a sitios equivocados, hasta que se corrige la información almacenada de caché.(Se debe tener en cuenta que esto no desconecta realmente a los sitios web de sus direcciones IP reales).
Como generalmente los solucionadores de DNS no tienen manera de verificar los datos en sus cachés, la información DNS incorrecta permanecerá en la caché hasta que caduque el time to live (TTL) o hasta que se elimine manualmente. Hay varias vulnerabilidades que posibilitan el envenenamiento de DNS, pero el problema principal es que el DNS se creó para un Internet mucho más pequeño y se basaba en un principio de confianza (de forma parecida al BGP). Un protocolo DNS más seguro, llamado DNSSEC, tiene como objetivo resolver algunos de estos problemas, pero su uso todavía no está generalizado.
Los solucionadores de DNS proporcionan a los clientes la dirección IP asociada con un nombre de dominio. En otras palabras, toman direcciones de sitios web legibles por humanos como "cloudflare.com" y las traducen a direcciones IP legibles por máquinas. Cuando un usuario intenta navegar a un sitio web, su sistema operativo envía una solicitud a un solucionador de DNS. El solucionador de DNS responde con la dirección IP y el navegador web toma la dirección e inicia la carga del sitio web.
El solucionador de DNS guardará las respuestas a las consultas de la dirección IP durante un periodo de tiempo determinado. De esta forma, el solucionador puede responder mucho más rápido a consultas futuras, sin necesidad de comunicarse con los numerosos servidores que participan en el proceso típico de resolución de DNS. Los solucionadores de DNS guardan respuestas en su caché durante tanto tiempo como el time to live (TTL) asociado con esa dirección IP les permita hacerlo.
Respuesta de DNS no almacenada en caché:
Respuesta de DNS almacenada en caché:
Los atacantes puede envenenar cachés de DNS haciéndose pasar por servidores de nombres DNS, haciendo una solicitud a un solucionador DNS y a continuación falsificando la respuestas cuando el solucionador de DNS consulta a un servidor de nombres. Esto es posible porque los servidores DNS usan UDP en lugar de TCP y porque actualmente no hay verificación de la información DNS.
Proceso de envenenamiento de caché DNS:
Caché de DNS envenenada:
En lugar de usar TCP, que necesita que las dos partes que se comunican lleven a cabo un "protocolo de enlace" para iniciar la comunicación, las solicitudes y respuestas de DNS utilizan UDP o el User Datagram Protocol. Con UDP, no hay garantía de que una conexión esté abierta o de que el destinatario esté listo para recibir. Por esta razón, UDP es vulnerable a las falsificaciones – un atacante puede enviar un mensaje mediante UDP y hacer que parezca una respuesta de un servidor legítimo mediante la falsificación de datos de encabezado.
Si un solucionador DNS recibe una respuesta falsificada, acepta y almacena en caché los datos de forma acrítica, ya que no es posible verificar si la información es precisa y viene de una fuente legítima. El DNS se creó en la primera etapa de Internet, cuando solo universidades y centros de investigación tenían acceso al mismo. No existía razón para prever que alguien intentara difundir información falsa de DNS.
Pese a estos graves puntos de vulnerabilidad en el proceso de almacenamiento caché de DNS, los ataques de envenenamiento de DNS no son sencillos. Como el solucionador de DNS hace realmente la consulta al servidor de nombres autoritativos, los atacantes solo disponen de unas milésimas de segundo para enviar la respuesta falsa, antes de que llegue la respuesta real desde el servidor de nombres autoritativos.
Los atacantes también tienen que saber o adivinar una serie de factores para poder realizar ataques de suplantación de DNS:
Los atacantes también podrían obtener el acceso al solucionador de DNS de otra forma. Si un tercero malicioso opera, hackea o accede físicamente a un solucionador de DNS, pueden alterar más fácilmente los datos almacenados en caché.
*En la gestión de redes, un puerto es un puerto virtual de recepción de comunicación. Los ordenadores tienen múltiples puertos, cada uno con su propio número y para que los equipos se comuniquen entre ellos, ciertos puertos se tendrán que designar para determinados tipos de comunicación. Por ejemplo, las comunicaciones de HTTP siempre van al puerto 80 y las de HTTPS al 443.
Varios gobiernos han envenenado intencionadamente cachés de DNS dentro de sus países para denegar el acceso a determinados sitios web o recursos web.
DNSSEC son las iniciales de Domain Name System Security Extensions, y es una forma de verificar la integridad de los datos de DNS y su origen. DNS se diseñó originalmente si este tipo de verificación, por ello es posible el envenenamiento de DNS.
Al igual que TLS/SSL, DNSSEC utiliza criptografía de clave pública (una forma de firmar información digitalmente) para verificar y autenticar datos. Las extensiones de DNSSEC se publicaron en 2005, pero el DNSSEC todavía no está muy extendido, por lo que el DNS sigue siendo vulnerable a los ataques.