La suplantación de DNS , también conocido como envenenamiento de caché DNS , es una forma de seguridad informática piratería informática en la que corrupta Domain Name System se introduce datos en la resolución de DNS 's caché , haciendo que el servidor de nombres para devolver un registro de resultados incorrectos, por ejemplo, una dirección IP . Esto da como resultado que el tráfico se desvíe a la computadora del atacante (o cualquier otra computadora).
Descripción general del sistema de nombres de dominio
Un servidor del Sistema de nombres de dominio traduce un nombre de dominio legible por humanos (como example.com
) en una dirección IP numérica que se utiliza para enrutar las comunicaciones entre los nodos . Normalmente, si el servidor no conoce una traducción solicitada, preguntará a otro servidor y el proceso continúa de forma recursiva . Para aumentar el rendimiento, un servidor suele recordar (almacenar en caché) estas traducciones durante un cierto período de tiempo. Esto significa que si recibe otra solicitud para la misma traducción, puede responder sin necesidad de preguntar a ningún otro servidor, hasta que expire la caché.
Cuando un servidor DNS ha recibido una traducción falsa y la almacena en caché para optimizar el rendimiento, se considera envenenado y proporciona los datos falsos a los clientes. Si un servidor DNS está envenenado, puede devolver una dirección IP incorrecta, desviando el tráfico a otra computadora (a menudo la de un atacante). [1]
Ataques de envenenamiento de caché
Normalmente, una computadora en red utiliza un servidor DNS proporcionado por un proveedor de servicios de Internet (ISP) o la organización del usuario de la computadora. Los servidores DNS se utilizan en la red de una organización para mejorar el rendimiento de la respuesta de resolución al almacenar en caché los resultados de la consulta obtenidos previamente. Los ataques de envenenamiento en un solo servidor DNS pueden afectar a los usuarios atendidos directamente por el servidor comprometido o aquellos atendidos indirectamente por sus servidores descendentes, si corresponde. [2]
Para realizar un ataque de envenenamiento de caché , el atacante aprovecha las fallas en el software DNS. Un servidor debe validar correctamente las respuestas de DNS para asegurarse de que provienen de una fuente autorizada (por ejemplo, utilizando DNSSEC ); de lo contrario, el servidor podría terminar almacenando en caché las entradas incorrectas localmente y entregárselas a otros usuarios que realicen la misma solicitud.
Este ataque se puede utilizar para redirigir a los usuarios de un sitio web a otro sitio que elija el atacante. Por ejemplo, un atacante falsifica las entradas DNS de la dirección IP para un sitio web de destino en un servidor DNS determinado y las reemplaza con la dirección IP de un servidor bajo su control. Luego, el atacante crea archivos en el servidor bajo su control con nombres que coinciden con los del servidor de destino. Estos archivos suelen contener contenido malintencionado , como gusanos o virus informáticos . Un usuario cuya computadora ha hecho referencia al servidor DNS envenenado es engañado para que acepte contenido proveniente de un servidor no auténtico y, sin saberlo, descarga el contenido malicioso. Esta técnica también se puede utilizar para ataques de phishing , en los que se crea una versión falsa de un sitio web genuino para recopilar datos personales, como datos bancarios y de tarjetas de crédito / débito.
Variantes
En las siguientes variantes, las entradas para el servidor ns.target .example serían envenenadas y redirigidas al servidor de nombres del atacante en la dirección IP wxyz . Estos ataques suponen que el servidor de nombres de target.example es ns.target.example . [ cita requerida ]
Para lograr los ataques, el atacante debe obligar al servidor DNS objetivo a realizar una solicitud de un dominio controlado por uno de los servidores de nombres del atacante. [ cita requerida ]
Redirigir el servidor de nombres del dominio de destino
La primera variante del envenenamiento de la caché de DNS implica redirigir el servidor de nombres del dominio del atacante al servidor de nombres del dominio de destino y luego asignar a ese servidor de nombres una dirección IP especificada por el atacante.
Solicitud del servidor DNS: para qué sirven los registros de direcciones subdomain.attacker.example ?
subdomain.attacker.example. EN UN
Respuesta del atacante:
Respuesta:(ninguna respuesta)Sección de autoridad:atacante.ejemplo. 3600 IN NS ns.objetivo.ejemplo.Sección adicional:ns.target.example. EN UN wxyz
Un servidor vulnerable almacenaría en caché el registro A adicional (dirección IP) para ns.target.example , lo que permite al atacante resolver consultas a todo el target.example dominio.
Redirigir el registro NS a otro dominio de destino
La segunda variante del envenenamiento de la caché de DNS implica redirigir el servidor de nombres de otro dominio no relacionado con la solicitud original a una dirección IP especificada por el atacante. [ cita requerida ]
Solicitud del servidor DNS: para qué sirven los registros de direcciones subdomain.attacker.example ?
subdomain.attacker.example. EN UN
Respuesta del atacante:
Respuesta:(ninguna respuesta)Sección de autoridad:target.ejemplo 3600 IN NS ns.atacante.ejemplo.Sección adicional:ns.attacker.example. EN UN wxyz
Un servidor vulnerable almacenaría en caché la información de autoridad no relacionada para registro NS de target.example (entrada del servidor de nombres), que permite al atacante resolver consultas a todo el target.example dominio.
Prevención y mitigación
Muchos ataques de envenenamiento de caché contra servidores DNS pueden evitarse confiando menos en la información que les pasan otros servidores DNS e ignorando cualquier registro DNS devuelto que no sea directamente relevante para la consulta. Por ejemplo, las versiones de BIND 9.5.0-P1 [3] y superiores realizan estas comprobaciones. [4] La aleatorización del puerto de origen para las solicitudes de DNS, combinada con el uso de números aleatorios criptográficamente seguros para seleccionar tanto el puerto de origen como el nonce criptográfico de 16 bits , puede reducir en gran medida la probabilidad de ataques de carrera de DNS exitosos.
Sin embargo, cuando los enrutadores, firewalls, proxies y otros dispositivos de puerta de enlace realizan la traducción de direcciones de red (NAT), o más específicamente, la traducción de direcciones de puertos (PAT), pueden reescribir los puertos de origen para rastrear el estado de la conexión. Al modificar los puertos de origen, los dispositivos PAT pueden eliminar la aleatoriedad del puerto de origen implementada por los servidores de nombres y los solucionadores de stub. [ cita requerida ] [5]
El DNS seguro ( DNSSEC ) utiliza firmas digitales criptográficas firmadas con un certificado de clave pública confiable para determinar la autenticidad de los datos. DNSSEC puede contrarrestar los ataques de envenenamiento de caché. En 2010, DNSSEC se implementó en los servidores de la zona raíz de Internet, [6] pero también debe implementarse en todos los servidores de dominio de nivel superior . La preparación DNSSEC de estos se muestra en la lista de dominios de nivel superior de Internet . A partir de 2020, todos los TLD originales admiten DNSSEC, al igual que los TLD de código de país de la mayoría de los países grandes, pero muchos TLD de código de país todavía no lo hacen.
Este tipo de ataque se puede mitigar en la capa de transporte o en la capa de aplicación realizando una validación de un extremo a otro una vez que se establece la conexión. Un ejemplo común de esto es el uso de la seguridad de la capa de transporte y las firmas digitales . Por ejemplo, al usar HTTPS (la versión segura de HTTP ), los usuarios pueden verificar si el certificado digital del servidor es válido y pertenece al propietario esperado de un sitio web. De manera similar, el programa de inicio de sesión remoto de shell seguro verifica los certificados digitales en los puntos finales (si se conocen) antes de continuar con la sesión. Para las aplicaciones que descargan actualizaciones automáticamente, la aplicación puede incrustar una copia del certificado de firma localmente y validar la firma almacenada en la actualización de software con el certificado incrustado. [ cita requerida ]
Ver también
- Secuestro de DNS
- Revinculación de DNS
- Mausezahn
- Pharming
- Servidor de nombres raíz
- Dan Kaminsky
Referencias
- ^ Hijo, Sooel; Shmatikov, Vitaly. "Guía del autoestopista sobre el envenenamiento de la caché de DNS" (PDF) . Universidad de Cornell . Archivado (PDF) desde el original el 14 de agosto de 2017 . Consultado el 3 de abril de 2017 .
- ^ Tormentas, Andrew (2006). "No confíe en la metodología de distribución de software de su proveedor". Seguridad de los sistemas de información . 14 (6): 38–43. doi : 10.1201 / 1086.1065898X / 45782.14.6.20060101 / 91858.8 . S2CID 15167573 : a través de ProQuest Central.
- ^ "Matriz de seguridad BIND" . Enlace ISC . Archivado desde el original el 11 de noviembre de 2011 . Consultado el 11 de mayo de 2011 .
- ^ "ISC Bind Security" . Enlace ISC . Archivado desde el original el 11 de noviembre de 2011 . Consultado el 11 de mayo de 2011 .
- ^ Querido, Christopher (2019). "La información personal como un vector de ataque: por qué la privacidad debe ser una dimensión operativa de la seguridad nacional de EE. UU. †" . Revista de leyes y políticas de seguridad nacional . 10 : 351–403: a través de ProQuest.
- ^ "Raíz DNSSEC" . ICANN / Verisign. pag. 1. Archivado desde el original el 10 de septiembre de 2017 . Consultado el 5 de enero de 2012 .