Apache Struts es un potente marco de aplicaciones web de código abierto que utilizan empresas y organizaciones de todo el mundo, siendo uno de los principales objetivos de los hackers debido a su popularidad. Cuando se anuncia una vulnerabilidad crítica de ejecución remota de código (RCE), los equipos de seguridad y TI deben tomar medidas inmediatas para proteger sus sistemas.
En diciembre de 2023 se publica el CVE-2023-50164 la cuál es una vulnerabilidad crítica en el framework de aplicaciones web Apache Struts 2, que afecta a varias versiones de este popular software. Esta vulnerabilidad se encuentra en la lógica de carga de archivos del framework, lo que permite a un atacante realizar un recorrido de ruta no autorizado. La explotación de este fallo puede resultar en la carga de un archivo malicioso, habilitando la ejecución remota de código (RCE) en el servidor afectado. La gravedad de esta vulnerabilidad se ve acentuada por la popularidad y uso extenso de Apache Struts en aplicaciones empresariales a nivel mundial, aumentando significativamente el riesgo de ataques cibernéticos en sectores clave como finanzas, salud y servicios gubernamentales.
El 11 de diciembre, se publicaron los primeros exploits de prueba de concepto (PoC) y se hicieron ampliamente disponibles. Los intentos de explotación siguieron poco después, el 12 de diciembre de 2023.
Una vez que el atacante logra ejecutar código de manera remota, puede realizar una serie de acciones malintencionadas, que incluyen, pero no se limitan a, robo de datos confidenciales, implantación de malware adicional, interrupción de servicios y potencialmente el uso del servidor comprometido como plataforma para lanzar ataques adicionales. En algunos casos, los atacantes pueden buscar mantener un acceso encubierto al sistema para actividades futuras, como espionaje o exfiltración de datos a largo plazo.
Método de explotación de CVE-2023-50164
Para explotar esta vulnerabilidad, un atacante primero identifica un punto final de carga de archivos en una aplicación web que utiliza una versión vulnerable de Struts. Posteriormente, prepara un archivo malicioso, normalmente un JSP o un shell web, y crea una solicitud especial para cargar este archivo en el servidor. La solicitud está diseñada para manipular la ruta del archivo, permitiendo su colocación en un directorio donde pueda ser ejecutado.
Los clientes que utilizan el Motor de Seguridad Adaptativa de Akamai en modo automático y tienen el grupo «Ataque a la Plataforma Web» en modo Denegar están protegidos automáticamente contra estos ataques. Los clientes que utilizan Adaptive Security Engine en modo manual deben validar que tienen el grupo «Web Platform Attack» o la siguiente regla individual en modo Deny.
Proceso de Ataque:
- Reconocimiento por parte del atacante e identificación de un sitio web o aplicación web vulnerable.
- Preparación de un archivo malicioso, usualmente un archivo JSP o web shell.
- El atacante crea una solicitud especial para cargar el archivo, manipulando datos como el nombre y la ruta del archivo.
- Inclusión de comandos del sistema en la solicitud de carga para explotar la vulnerabilidad de recorrido de ruta.
- Envío de la solicitud de carga al servidor que ejecuta las versiones vulnerables de Apache Struts.
- El atacante accede al archivo malicioso cargado para desencadenar la ejecución del código malicioso.
- Una vez ejecutado el código, el atacante puede realizar acciones adicionales en el servidor.
- Dependiendo de las intenciones del atacante, podrían mantener acceso encubierto para explotaciones futuras.
Puntuación del sistema de puntuación de predicción de exploits (EPSS) para CVE-2023-50164
En base al Exploit Prediction Scoring System (EPSS), el cuál es un esfuerzo basado en datos para estimar la probabilidad de que una vulnerabilidad de software sea explotada, se han obtenido los siguientes datos para este CVE:
- Probabilidad de actividad de explotación en los próximos 30 días: 9.80%
- Percentil, la proporción de vulnerabilidades que reciben una puntuación igual o inferior: ~ 94 %.
(El modelo EPSS produce una puntuación de probabilidad entre 0 y 100%, cuanto mayor sea la puntuación, mayor será la probabilidad de que se explote una vulnerabilidad.)
Mitigación y recomendaciones
Steven Seeley de la entidad Source Incite ha sido acreditado con el descubrimiento y el informe de la falla, que afecta a las siguientes versiones del software:
- Struts 2.3.37 (EOL)
- Struts 2.5.0 – Struts 2.5.32, y
- Struts 6.0.0 – Struts 6.3.0
Los parches para el error están disponibles en las versiones 2.5.33 y 6.3.0.2 o superiores.
En base a esto, la mitigación más efectiva contra CVE-2023-50164 en Apache Struts 2 es actualizar inmediatamente a las versiones parcheadas, específicamente Struts 2.5.33, 6.3.0.2 o superiores, para corregir la vulnerabilidad crítica en la lógica de carga de archivos. Esta actualización es crucial para prevenir el recorrido de ruta no autorizado y la carga de archivos maliciosos.
Además de la actualización, es esencial realizar una auditoría de seguridad exhaustiva para detectar posibles compromisos previos y reforzar las medidas de seguridad, como limitar permisos de archivos y fortalecer firewalls y políticas de autenticación. Estas acciones combinadas proporcionan una defensa robusta contra la explotación de esta vulnerabilidad y mejoran la seguridad general del sistema.
Algunas recomendaciones adicionales:
- Implementación de un firewall de aplicaciones web (WAF) para detectar y bloquear intentos de explotación.
- Configuración de seguridad rigurosa en servidores web, incluyendo restricciones en la carga de archivos y permisos de directorios.
Referencia: