KeyTrap: cómo romper un servidor DNS con un único paquete

Hablamos del ataque KeyTrap DoS que puede deshabilitar servidores DNS con un solo paquete malicioso que explota una vulnerabilidad en DNSSEC.

Un grupo de investigadores que representan a un gran número de universidades e institutos alemanes ha descubierto una vulnerabilidad en DNSSEC, un conjunto de extensiones del protocolo DNS diseñadas para mejorar la seguridad y contrarrestar la suplantación de DNS.

Un ataque que denominaron KeyTrap que explota esa vulnerabilidad y que puede desactivar un servidor DNS al enviar un único paquete de datos malicioso.

Cómo funciona KeyTrap y por qué es peligroso

La vulnerabilidad DNSSEC se ha hecho pública recientemente, pero fue descubierta en diciembre de 2023 y registrada como CVE-2023-50387. Se le asignó una puntuación CVSS 3.1 de 7,5 y una clasificación de gravedad “Alta”. Aún no se ha publicado toda la información acerca de esta vulnerabilidad ni sobre el ataque asociado a ella.

Así es cómo funciona KeyTrap. El actor malicioso configura un servidor DNS que responde a la solicitud de los servidores DNS de almacenamiento de caché, es decir, aquellos que atiendan las solicitudes de los clientes directamente, con un paquete malicioso. Después, los atacantes hacen que un servidor de caché solicite un registro de DNS de su servidor malicioso. El registro enviado como respuesta está firmado maliciosamente y encriptado. La forma en la que se elabora la firma hace que el servidor DNS atacado que intenta verificarla se ejecute a plena capacidad de la CPU por un largo periodo de tiempo.

Según los investigadores, un solo paquete malicioso de este tipo puede congelar el servidor DNS durante un periodo que va desde los 170 segundos a las 16 horas, un tiempo que depende del software que lo ejecuta. El ataque KeyTrap puede, además de denegar acceso al contenido web a todos lo clientes que utilizan el servidor DNS objetivo, interrumpir varios servicios de su infraestructura como la protección contra el SPAM, la gestión de certificados digitales (PKI) y el enrutamiento seguro entre dominios (RPKI).

Los investigadores se refieren a KeyTrap como “el peor ataque a DNS jamás descubierto”. Es curioso que los fallos en la lógica de validación de firmas que hacen posible que KeyTrap funcione se descubrieran en una de las primeras versiones de la especificación DNSSEC, publicada en 1999. Es decir, esta vulnerabilidad está a punto de cumplir 25 años.

CVE-2023-50387 ha estado presente en la especificación DNSSEC desde 1999

El origen de KeyTrap se remonta a RCF-2035, la especificación DNSSEC publicada en 1999

Cómo defenderse de KeyTrap

Los investigadores han alertado a todos los desarrolladores de software de servidores DNS y a los principales proveedores públicos de DNS. Las actualizaciones y avisos para corregir CVE-2023-50387 están ahora disponibles para PowerDNS, NLnet Labs Unbound, y Internet Systems Consortium BIND9. Si eres administrador de un servidor DNS, es un buen momento para instalar las últimas actualizaciones.

Sin embargo, ten en cuenta que los problemas lógicos de DNSSEC que han hecho posible KeyTrap son fundamentales, por lo que no se pueden solucionar fácilmente. Los parches publicados por los de desarrolladores de software DNS solo pueden contribuir en cierta medida a resolver el problema ya que la vulnerabilidad es parte del estándar en lugar de una implementación específica. “Si lanzamos [KeyTrap] contra un solucionador parcheado, obtendremos el 100 % de uso de la CPU aunque es posible que sí que responda”, dice uno de los investigadores.

La explotación práctica del fallo sigue siendo una posibilidad, con el resultado potencial de fallos de resolución impredecibles. En caso de que esto ocurra, los administradores de redes corporativas harían bien en preparar con antelación una lista de servidores DNS de reserva para poder cambiar según sea necesario para mantener el funcionamiento normal de la red y permitir a los usuarios navegar por los recursos web que necesiten sin impedimentos.

Consejos