Un Ataque Blast-Radius Que Explota Una Falla Crítica De Radius Podría Comprometer Su Red

La vulnerabilidad Blast-RADIUS representa una falla crítica en el protocolo RADIUS (Remote Authentication Dial-In User Service), un componente fundamental en la seguridad de redes durante más de tres décadas. Descubierta recientemente, esta vulnerabilidad permite a los atacantes eludir los mecanismos de autenticación y obtener acceso no autorizado a las redes, lo que puede llevar a ataques de hombre en el medio (MitM).

¿Qué es RADIUS?

RADIUS es un protocolo de red que proporciona gestión centralizada de autenticación, autorización y contabilidad (AAA) para los usuarios que se conectan y utilizan un servicio de red. Es ampliamente utilizado en varias aplicaciones, incluyendo proveedores de servicios de Internet, redes corporativas y redes inalámbricas.

La Vulnerabilidad: CVE-2024-3596

Identificada como CVE-2024-3596, esta vulnerabilidad explota una falla inherente en el Autenticador de Respuesta MD5 del protocolo RADIUS. Esta falla de diseño permite a los atacantes realizar un ataque de colisión MD5, manipulando las comprobaciones de integridad y falsificando mensajes de autenticación.

Cómo Funciona el Ataque Blast-RADIUS

El ataque Blast-RADIUS explota una falla crítica en el protocolo RADIUS, utilizado ampliamente para la autenticación de redes desde 1991. Esta vulnerabilidad permite a los atacantes realizar un ataque de hombre en el medio (MitM) y obtener acceso no autorizado al falsificar respuestas de autenticación. Aquí hay una explicación detallada de cómo funciona este ataque:

Componentes Clave de RADIUS
  1. Servidor de Acceso a la Red (NAS): Actúa como cliente que verifica las credenciales de un usuario final enviando solicitudes RADIUS a un servidor central.
  2. Servidor RADIUS: Responde al NAS con mensajes de aceptación o rechazo de acceso según la verificación de las credenciales del usuario.
  3. Secreto Compartido: Un secreto fijo conocido solo por el NAS y el servidor RADIUS.
  4. Autenticador de Solicitud: Un valor aleatorio de 16 bytes incluido en los paquetes de solicitud.
  5. Autenticador de Respuesta: Un valor hash MD5 utilizado para proteger la integridad de las respuestas del servidor.
Mecánica del Ataque
  1. Intercepción del Adversario: El atacante se posiciona entre el cliente RADIUS (NAS) y el servidor RADIUS, interceptando y modificando la comunicación.
  2. Creación de un Atributo Proxy-State Malicioso: El atacante inyecta un atributo Proxy-State malicioso en una solicitud de acceso legítima del cliente, diseñado para ser reflejado por el servidor en su respuesta.
  3. Ataque de Colisión MD5: El ataque explota la vulnerabilidad del algoritmo hash MD5 a colisiones de prefijo elegido. Aquí hay un desglose paso a paso:
    • Colisión de Prefijo Elegido: Dado dos prefijos distintos P1 y P2, el atacante calcula bloques de jerigonza G1 y G2 de manera que:MD5(P1∣∣G1)=MD5(P2∣∣G2)MD5(P1||G1) = MD5(P2||G2)MD5(P1∣∣G1)=MD5(P2∣∣G2)Esto significa que el atacante puede crear dos mensajes diferentes que resultan en el mismo hash MD5.
    • Colisión de Acceso-Rechazo y Acceso-Aceptación: El atacante predice el formato de la respuesta de rechazo de acceso del servidor y crea una respuesta de aceptación de acceso falsa. Usando la técnica de colisión MD5, el atacante asegura que ambas respuestas tengan el mismo valor de hash MD5.
  4. Falsificación del Autenticador de Respuesta: El servidor calcula el Autenticador de Respuesta usando la fórmula:MD5(Code∣∣ID∣∣Length∣∣RequestAuthenticator∣∣PacketAttributes∣∣SharedSecret)MD5(Code || ID || Length || Request Authenticator || Packet Attributes || Shared Secret)MD5(Code∣∣ID∣∣Length∣∣RequestAuthenticator∣∣PacketAttributes∣∣SharedSecret)Al incluir el atributo Proxy-State malicioso, el atacante asegura que el Autenticador de Respuesta para la falsa aceptación de acceso coincida con la respuesta de rechazo de acceso legítima.
  5. Reemplazo de Paquetes: El atacante intercepta la respuesta de rechazo de acceso del servidor y la reemplaza con la respuesta falsa de aceptación de acceso, manteniendo intacto el Autenticador de Respuesta.
  6. Acceso No Autorizado: El NAS recibe la respuesta falsa de aceptación de acceso y concede al atacante acceso a los recursos de la red, creyendo que el servidor los ha autenticado.

La vulnerabilidad Blast-RADIUS tiene implicaciones graves para la seguridad de las redes, ya que permite a los atacantes obtener acceso no autorizado a una amplia variedad de dispositivos y servicios de red. Esto puede resultar en la interceptación de comunicaciones, la inyección de datos falsos y la penetración adicional en la infraestructura de la red.

¿Es Práctico el Ataque Blast-RADIUS?

La practicidad del ataque Blast-RADIUS es un tema complejo. Aquí hay un desglose detallado:

Factibilidad del Concepto de Prueba

  • Tiempo de Ejecución: En los ataques de prueba de concepto, tomó entre 3 y 6 minutos calcular la colisión de hash MD5 de prefijo elegido necesaria para el ataque. Esta duración es mayor que los tiempos de espera típicos de 30 a 60 segundos utilizados en la práctica para la autenticación RADIUS.
  • Paralelización: El algoritmo de colisión utilizado en el ataque puede paralelizarse, lo que significa que con los recursos adecuados, el tiempo de ataque puede reducirse significativamente. La optimización de hardware y el uso de GPU modernas o hardware especializado como FPGAs (Field Programmable Gate Arrays) o ASICs (Application-Specific Integrated Circuits) pueden acelerar el proceso.
  • Disponibilidad de Recursos: Los tiempos de ejecución reportados se basaron en optimizaciones de un código base de 15 años que se ejecuta en CPUs que datan de siete a diez años. Un atacante con suficientes recursos podría lograr tiempos mucho más rápidos utilizando recursos de cómputo más avanzados y potentes.

Costo Computacional

  • Recursos en la Nube: Implementar el ataque en recursos en la nube como Amazon EC2 podría reducir drásticamente el tiempo de cálculo. Por ejemplo, utilizar una instancia c7a.48xlarge con 192 vCPUs o una instancia g6.48xlarge con 192 vCPUs y 8 GPU NVIDIA L4 podría aumentar la velocidad del ataque, con un costo estimado de alrededor de $50 por hora para superar la capacidad de cómputo utilizada en la prueba de concepto.

Restricciones Prácticas

  • Tiempos de Espera: Los tiempos de espera típicos de 30 a 60 segundos para las respuestas RADIUS presentan un desafío, ya que los tiempos de la prueba de concepto excedieron estos límites. Sin embargo, con recursos optimizados, esta barrera podría superarse.
  • Acceso a la Red: El atacante necesita estar en una posición que le permita actuar como un hombre en el medio en la red entre el cliente RADIUS y el servidor. Esto requiere un acceso significativo a la red, lo que puede no ser siempre práctico o alcanzable sin comprometer otras partes de la red primero.

Quiénes se ven afectados por estas vulnerabilidades?

La vulnerabilidad Blast-RADIUS afecta a casi todas las implementaciones de RADIUS (Remote Authentication Dial-In User Service) que utilizan métodos de autenticación no-EAP (Extensible Authentication Protocol) sobre UDP (User Datagram Protocol). Esto incluye:

  • Redes Empresariales: RADIUS es comúnmente utilizado para autenticar el acceso a switches y otras infraestructuras de red.
  • Acceso VPN: Las redes privadas virtuales a menudo usan RADIUS para la autenticación.
  • Proveedores de Servicios de Internet (ISP): Para servicios de DSL (Línea de Abonado Digital) y FTTH (Fibra hasta el Hogar).
  • Autenticación Wi-Fi: Utilizado en 802.1X y varios escenarios de autenticación inalámbrica.
  • Redes Celulares: Roaming celular 2G y 3G, autenticación DNN (Data Network Name) en 5G.
  • Descarga de Wi-Fi Móvil: Autenticación utilizando tarjetas SIM.
  • Acceso a Infraestructura Crítica: Incluyendo sistemas de control industrial.
  • Eduroam y OpenRoaming: Consorcios Wi-Fi para redes educativas y públicas.

Los usuarios finales no pueden protegerse directamente contra esta vulnerabilidad; la responsabilidad recae en los administradores del sistema y operadores de redes.

¿Puedo detectar si este ataque se realizó en mi red?

Sí, es posible detectar este ataque, pero requiere registros específicos y análisis:

  1. Registros de Log: Necesitas archivos de log detallados de Access-Rejects en el servidor RADIUS y Access-Accepts en el cliente RADIUS.
  2. Atributos Proxy-State Sospechosos: Busca paquetes Access-Accept con atributos Proxy-State que contengan bytes aleatorios en los logs del cliente. Esto podría indicar un ataque, ya que los clientes finales no deberían recibir paquetes con atributos Proxy-State.
  3. Comparación de Logs: Encuentra el paquete de respuesta Access-Reject correspondiente en los logs del servidor RADIUS. Verifica que la respuesta del servidor difiera de la respuesta recibida por el cliente y que ambos contengan valores de Autenticador de Respuesta válidos para el ID de solicitud y el Autenticador de Solicitud.
  4. Verificación de Hash MD5: Si ambos paquetes producen el mismo hash MD5 en el Autenticador de Respuesta, indica que la vulnerabilidad fue explotada.

¿Cómo podemos mitigar este ataque en nuestro sistema?

Para mitigar el ataque Blast-RADIUS, sigue estas contramedidas recomendadas:

Mitigación a Corto Plazo

  • Atributos Message-Authenticator: Asegúrate de que los clientes y servidores siempre envíen y requieran atributos Message-Authenticator para todas las solicitudes y respuestas. Para las respuestas Access-Accept o Access-Reject, incluye el Message-Authenticator como el primer atributo.

Mitigación a Largo Plazo

  • Canales Encriptados: Usa RADIUS dentro de un canal encriptado y autenticado que ofrezca garantías de seguridad criptográfica modernas. El IETF (Internet Engineering Task Force) está trabajando en la estandarización de RADIUS sobre (D)TLS (Datagram Transport Layer Security).

Pasos Adicionales

  • Aplicar Parches: Consulta con los proveedores de RADIUS para obtener parches que implementen estas mitigaciones y aplícalos.
  • Cambios de Configuración: Configura tanto los clientes como los servidores para que requieran atributos Message-Authenticator en todas las comunicaciones.
  • Transición a Protocolos Modernos: Planea migrar a usar RADIUS sobre (D)TLS o mecanismos de transporte seguros similares a medida que se estandaricen y sean compatibles.

Para una guía más detallada, consulta el libro blanco redactado por Alan DeKok de FreeRADIUS y la sección de mitigación en Blast-RADIUS.