Un grupo de investigadores de varias universidades estadounidenses y de las empresas Cloudflare y Microsoft ha desarrollado una nueva técnica de ataque al protocolo RADIUS utilizado por operadores de telecomunicaciones, servicios en la nube y proveedores de VPN para autenticación, autorización y contabilidad de usuarios. El ataque, cuyo nombre en código es Blast-RADIUS, permite falsificar una respuesta del servidor RADIUS durante la autenticación y organizar una conexión de suscriptor sin conocer la contraseña de acceso.
Para explotar la vulnerabilidad (CVE-2024-3596), un atacante debe poder interceptar el tráfico de tránsito y llevar a cabo un ataque MITM completo que le permita leer, interceptar, bloquear y modificar paquetes UDP de tránsito entrantes y salientes enviados por acceso. apunta a solicitar la autenticación del cliente (Acceso-Solicitud) y es devuelto por el servidor RADIUS confirmando o rechazando la operación. Una vez interceptada la solicitud de autenticación, el atacante puede enviar una respuesta ficticia, indicando en esta respuesta un tipo de resultado diferente (por ejemplo, Acceso-Aceptar en lugar de Acceso-Rechazar). Un atacante también podría interceptar la respuesta Access-Challenge utilizada para la autenticación de dos factores y reemplazarla con una respuesta Access-Accept para evitar el paso de verificación adicional.

El ataque se basa en que el protocolo RADIUS utiliza UDP como transporte y verifica la integridad de los mensajes transmitidos mediante el algoritmo MD5. Para verificar los mensajes transmitidos entre... servidor Cuando se realiza la autenticación entre el punto de acceso y el servidor RADIUS, se utiliza una clave secreta conocida por ambos, pero desconocida para el atacante. En respuesta a la solicitud de autenticación, el servidor RADIUS genera un hash MD5 que el servidor de acceso utiliza para verificar que el mensaje fue enviado por un servidor autorizado. El hash MD5 incluye el valor aleatorio enviado en la solicitud, el identificador de la solicitud, los atributos devueltos y la clave secreta.
Un atacante en un ataque MITM puede interceptar el identificador y el valor aleatorio enviado en la solicitud, y también puede predecir el código de operación, el tamaño y los atributos. La tarea se reduce a generar un hash de verificación correcto que correspondería al resultado modificado de la operación y se verificaría mediante hash utilizando una clave secreta. El algoritmo MD5 no es resistente a la selección de colisiones, lo que permite a un atacante, manipulando un relleno irrelevante, seleccionar una combinación de datos con los parámetros requeridos, cuyo hash MD5 coincidirá con el hash MD5 de la respuesta original, y enviar una respuesta ficticia con un código de autenticación exitoso (Acceso-Aceptar) en lugar de un mensaje de error.

Dado que la autenticación y la verificación de integridad no se aplican al procesar paquetes de solicitud de acceso, durante el ataque la solicitud original de servidor Para obtener acceso, un atacante puede insertar un atributo adicional "Proxy-State", que el servidor RADIUS reflejará en su respuesta. El contenido de "Proxy-State" se selecciona teniendo en cuenta las colisiones, de modo que el valor hash de verificación MD5 en las respuestas real y falsificada sea idéntico. Durante el experimento, encontrar una colisión MD5 para ejecutar el ataque tardó entre 3 y 6 minutos, un tiempo superior al típico de 30 a 60 segundos. Sin embargo, el tiempo de búsqueda de colisiones se puede reducir utilizando hardware más potente, GPU y paralelizando las operaciones.
Como principal medida de protección contra la vulnerabilidad, se propone utilizar el protocolo EAP (Protocolo de autenticación extensible, RFC 3579), que utiliza el atributo Message-Authenticator para una verificación adicional de mensajes. Para protegerse contra ataques, también puede utilizar extensiones de protocolo (RadSec), que permiten la transmisión de mensajes RADIUS a través de canales cifrados basados en TLS o DTLS. Además, puedes reducir los valores de tiempo de espera de respuesta al mínimo y bloquear respuestas con el atributo Proxy-State. La transmisión de mensajes RADIUS a través de TCP dificulta el ataque, pero no evita que ocurra.
El código para llevar a cabo el ataque aún no se ha publicado públicamente, pero el proyecto hashclash ha recibido cambios que mejoran la selección de colisiones en MD5, teniendo en cuenta las características específicas del ataque. El servidor FreeRADIUS RADIUS solucionó el problema en las versiones 3.0.27 y 3.2.5 haciendo que el atributo Message-Authenticator sea obligatorio y agregando una configuración para limitar el procesamiento de paquetes con el atributo Proxy-State.
Fuente: opennet.ru
