En 2008, el investigador Dan Kaminsky reveló una de las amenazas de seguridad en Internet más graves de la historia: una debilidad en el sistema de nombres de dominio que hizo posible que los atacantes enviaran a los usuarios en masa a sitios impostores en lugar de a los reales que pertenecen a Google, Bank of America. , o cualquier otra persona. Con la coordinación de toda la industria, miles de proveedores de DNS de todo el mundo instalaron una solución que evitó este escenario apocalíptico.
Ahora, el ataque de envenenamiento de caché de DNS de Kaminsky está de vuelta. Los investigadores presentaron el miércoles una nueva técnica que una vez más puede hacer que los solucionadores de DNS devuelvan direcciones IP falsificadas maliciosamente en lugar del sitio que corresponde legítimamente a un nombre de dominio.
“Este es un avance bastante grande que es similar al ataque de Kaminsky para algunos resolutores, dependiendo de cómo [they’re] en realidad se ejecutan”, dijo Nick Sullivan, jefe de investigación de Cloudflare, una red de entrega de contenido que opera el servicio DNS 1.1.1.1. “Este es uno de los ataques de envenenamiento de caché de DNS más efectivos que hemos visto desde el ataque de Kaminsky. Es algo que, si ejecuta un sistema de resolución de DNS, debería tomarlo en serio”.
cartilla de DNS
Cuando las personas envían correos electrónicos, navegan por un sitio web o hacen casi cualquier otra cosa en Internet, sus dispositivos necesitan una forma de traducir un nombre de dominio a los servidores de direcciones IP numéricas que se utilizan para ubicar otros servidores. El primer lugar donde buscará un dispositivo es un solucionador de DNS, que es un servidor o grupo de servidores que normalmente pertenecen al ISP, corporación o gran organización a la que está conectado el usuario.
En el caso de que otro usuario del ISP u organización haya interactuado recientemente con el mismo dominio, el resolutor ya tendrá la dirección IP correspondiente almacenada en caché y devolverá el resultado. De lo contrario, el resolutor consultará al servidor autorizado dedicado para ese dominio en particular. El servidor autorizado luego devolverá una respuesta, que el resolutor proporcionará al usuario y almacenará temporalmente en su caché para cualquier otro usuario que pueda necesitarla en el futuro cercano.
Todo el proceso no está autenticado, lo que significa que el servidor autorizado no utiliza contraseñas u otras credenciales para demostrar que, de hecho, tiene autoridad. Las búsquedas de DNS también se realizan mediante paquetes UDP, que se envían en una sola dirección. El resultado es que los paquetes UDP suelen ser triviales para falsificar, lo que significa que alguien puede hacer que el tráfico UDP parezca provenir de un lugar distinto al que realmente se originó.
Envenenamiento de caché de DNS: un resumen
Cuando los arquitectos de Internet diseñaron por primera vez el DNS, reconocieron que era posible que alguien se hiciera pasar por un servidor autorizado y usara el DNS para devolver resultados maliciosos a los resolutores. Para protegerse contra esta posibilidad, los arquitectos diseñaron números de transacción de búsqueda. Los resolutores adjuntaron estos números de 16 bits a cada solicitud enviada a un servidor autorizado. El resolutor solo aceptaría una respuesta si contenía la misma ID.
Kaminsky se dio cuenta de que solo había 65 536 identificaciones de transacciones posibles. Un atacante podría explotar esta limitación inundando un sistema de resolución de DNS con una IP maliciosa para un dominio con ligeras variaciones, por ejemplo, 1.google.com, 2.google.com, etc., e incluyendo una ID de transacción diferente para cada dominio. respuesta. Eventualmente, un atacante reproduciría el número correcto y la IP maliciosa se enviaría a todos los usuarios que confiaron en el resolutor. El ataque se denominó envenenamiento de caché de DNS porque contaminó el almacén de búsquedas del resolutor.
El ecosistema DNS solucionó el problema al aumentar exponencialmente la cantidad de entropía requerida para que se aceptara una respuesta. Mientras que antes, las búsquedas y las respuestas viajaban solo por el puerto 53, el nuevo sistema aleatorizó las solicitudes de búsqueda de número de puerto utilizadas. Para que un sistema de resolución de DNS aceptara la dirección IP, la respuesta también tenía que incluir ese mismo número de puerto. Combinada con un número de transacción, la entropía se midió en miles de millones, lo que hace que sea matemáticamente inviable que los atacantes aterricen en la combinación correcta.
Redux de envenenamiento de caché
El miércoles, investigadores de la Universidad de Tsinghua y la Universidad de California, Riverside, presentaron una técnica que, una vez más, hace factible el envenenamiento de caché. Su método explota un canal lateral que identifica el número de puerto utilizado en una solicitud de búsqueda. Una vez que los atacantes saben el número, una vez más tienen una gran posibilidad de adivinar con éxito la identificación de la transacción.
El canal lateral en este caso es el límite de velocidad para ICMP, la abreviatura de Protocolo de mensajes de control de Internet. Para conservar el ancho de banda y los recursos informáticos, los servidores responderán solo a un número determinado de solicitudes de otros servidores. Después de eso, los servidores no darán ninguna respuesta. Hasta hace poco, Linux siempre establecía este límite en 1000 por segundo.
Para explotar este canal lateral, la nueva técnica de suplantación de identidad inunda un sistema de resolución de DNS con una gran cantidad de respuestas falsificadas para que parezcan provenir del servidor de nombres del dominio que quieren suplantar. Cada respuesta se envía a través de un puerto diferente.
Cuando un atacante envía una respuesta a través del puerto incorrecto, el servidor enviará una respuesta de que no se puede acceder al puerto, lo que agota el límite de velocidad global en uno. Cuando el atacante envía una solicitud a través del puerto correcto, el servidor no dará ninguna respuesta, lo que no cambia el contador de límite de velocidad. Si el atacante sondea 1000 puertos diferentes con respuestas falsificadas en un segundo y todos ellos están cerrados, el límite de velocidad completo se agotará por completo. Si, por el contrario, uno de los 1000 puertos está abierto, el límite se drenará a 999.
Posteriormente, el atacante puede usar su propia dirección IP no falsificada para medir el límite de velocidad restante. Y si el servidor responde con un mensaje ICMP, el atacante sabe que uno de los 1000 puertos probados previamente debe estar abierto y puede reducir aún más el número de puerto exacto.
“¿Como sabemos?”
“Estamos tratando de inferir indirectamente que el resolutor ha enviado un mensaje ICMP inalcanzable al servidor autorizado”, me dijo el profesor de UC Riverside, Zhiyun Qian. “¿Como sabemos? Debido a que el resolutor puede enviar solo una cantidad fija de dichos mensajes ICMP en un segundo, lo que significa que el atacante también puede intentar solicitar tales paquetes ICMP para sí mismo”.
El artículo de los investigadores, Ataque de envenenamiento de caché de DNS recargado: revoluciones con canales laterales, proporciona una descripción mucho más detallada y técnica del ataque. Llaman al ataque SAD DNS abreviatura de Side channel AttackeD DNS.
Los investigadores proporcionaron sus hallazgos de forma privada a los proveedores de DNS y desarrolladores de software. En respuesta, los desarrolladores del kernel de Linux introdujeron un cambio que hace que el límite de velocidad fluctúe aleatoriamente entre 500 y 2000 por segundo. El profesor Qian dijo que la corrección impide que funcione la nueva técnica. Cloudflare introdujo una solución propia. En ciertos casos, su servicio DNS recurrirá a TCP, que es mucho más difícil de falsificar.
La investigación se presentó en la Conferencia ACM 2023 sobre Seguridad Informática y de las Comunicaciones, que se lleva a cabo este año por video debido a la pandemia de COVID-19. Los investigadores brindan información adicional aquí y hay un comunicado de prensa de UC Riverside aquí.