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 los operadores de telecomunicaciones, servicios en la nube y proveedores de VPN para la autenticación, autorización y contabilidad de usuarios. El ataque, que ha recibido el nombre en clave Blast-RADIUS, permite falsificar la respuesta del servidor RADIUS durante el proceso de autenticación y organizar la conexión de un suscriptor sin conocer la contraseña de acceso.
Para explotar la vulnerabilidad (CVE-2024-3596), el atacante debe tener la capacidad de interceptar el tráfico de tránsito y llevar a cabo un ataque MITM completo, lo que permite leer, interceptar, bloquear y modificar los paquetes UDP de tránsito entrantes y salientes enviados por los puntos de acceso para solicitar la autenticación de clientes (Access-Request) y devueltos por el servidor RADIUS con la confirmación o rechazo de la operación. Al interceptar la solicitud de autenticación, el atacante puede enviar una respuesta falsa, indicando en esta respuesta un tipo de resultado diferente (por ejemplo, Access-Accept en lugar de Access-Reject). El atacante también podría potencialmente interceptar la respuesta Access-Challenge, utilizada en la autenticación de dos factores, y reemplazarla por una respuesta Access-Accept para eludir el siguiente paso de verificación.

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 la verificación de los mensajes enviados entre el servidor el acceso y el servidor RADIUS, se aplica una clave secreta, conocida por el punto de acceso y el servidor RADIUS, pero desconocida para el atacante. En respuesta a la solicitud de autenticación, el servidor RADIUS genera un hash MD5, mediante el cual el servidor de acceso puede asegurarse de que el mensaje ha sido enviado por un servidor autorizado. El hash MD5 abarca 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 transmitidos en la solicitud, así como predecir el código de operación, el tamaño y los atributos. La tarea se reduce a formar un hash de verificación correcto que se corresponda con el resultado modificado de la operación y pase la verificación mediante hashing usando una clave secreta. El algoritmo MD5 no es resistente a la búsqueda de colisiones, lo que permite al atacante, manipulando el relleno irrelevante, encontrar una combinación de datos con los parámetros deseados, cuyo hash MD5 coincida con el hash MD5 de la respuesta original, y enviar una respuesta falsa con el código de éxito de autenticación (Access-Accept) en lugar del mensaje de error.

Dado que no se aplica autenticación ni verificación de integridad al procesar paquetes de solicitud de acceso (Access-Request), durante el ataque en la solicitud original de servidores acceso, el atacante puede insertar un atributo adicional "Proxy-State", que será reflejado por el servidor RADIUS en su respuesta. El contenido de "Proxy-State" se selecciona considerando la colisión de tal manera que el valor del hash MD5 de verificación en las respuestas reales y falsas sea idéntico. En el experimento, la búsqueda de colisiones en MD5 para llevar a cabo el ataque tomó de 3 a 6 minutos, que es más que el tiempo de espera típico de 30 a 60 segundos, pero el tiempo de búsqueda de colisiones puede reducirse utilizando hardware más potente, aprovechando GPU y paralelizando las operaciones.
Como medida principal para protegerse contra esta vulnerabilidad, se propone utilizar el protocolo EAP (Extensible Authentication Protocol, RFC 3579), en el cual se usa el atributo Message-Authenticator para la verificación adicional de mensajes. Para protegerse contra el ataque, también se pueden usar extensiones del protocolo (RadSec), que incluyen la transmisión de mensajes RADIUS a través de canales cifrados basados en TLS o DTLS. Además, se pueden reducir al mínimo los valores de tiempo de espera para recibir respuestas y bloquear respuestas con el atributo Proxy-State. La transmisión de mensajes RADIUS sobre TCP complica el ataque, pero no lo excluye.
El código para llevar a cabo el ataque aún no ha sido publicado abiertamente, pero se han hecho cambios al proyecto hashclash que mejoran la búsqueda de colisiones en MD5 teniendo en cuenta las particularidades del ataque. En el servidor RADIUS FreeRADIUS, el problema se ha solucionado en las versiones 3.0.27 y 3.2.5 mediante la habilitación obligatoria del atributo Message-Authenticator y la adición de una configuración para limitar el procesamiento de paquetes con el atributo Proxy-State.
Fuente: opennet.ru
