Blog de Akamai | Inyección de Spring Cloud Function SpEL (CVE-2022-22963) explotada libremente
Descripción general
El 24 de marzo de 2022, Pivotal creó un parche para una vulnerabilidad de inyección de código crítica en el servidor (inyección de Spring Expression Language) en Spring Cloud Function, cuyos efectos podrían poner en riesgo el sistema. Spring es el popular marco de Java de código abierto. Esta vulnerabilidad, junto con otra vulnerabilidad de ejecución remota de código (RCE) descubierta (Spring Core o "Spring4Shell") se mitigan con los conjuntos de reglas del motor de seguridad adaptable de Akamai (ASE) Kona Site Defender (KSD). Esta publicación se centra en las vulnerabilidades de Spring Cloud, pero puede leer acerca de la vulnerabilidad de Spring Core aquí.
La función Spring Cloud es una tecnología que permite desvincular la lógica empresarial de cualquier tiempo de ejecución específico. Spring Expression Language (SpEL) es un potente lenguaje de expresiones que se utiliza en toda la cartera de Spring, y que permite consultar y manipular un gráfico orientado a objetos durante el tiempo de ejecución. En el pasado, se informó de múltiples vulnerabilidades y exposiciones comunes (CVE) de ejecución remota de código en relación con la inyección de SpEL cuando la aplicación evaluó expresiones de código de entrada de usuario no confiables de una manera insegura (véase la Figura 1).
Unos días después, el 26 de marzo, el usuario de GitHub "cckuailong" publicó un ataque de prueba de concepto que muestra una explotación satisfactoria de esta vulnerabilidad (véase la Figura 2).
Menos de un día más tarde, Akamai comenzó a observar intentos de explotación en Internet.
Al igual que con Log4j, muchos (aunque no todos) de los intentos actuales son análisis de "ping back". Esto quiere decir que los atacantes ordenan a la aplicación enviar una baliza en caso de que la explotación sea satisfactoria.
Hemos observado miles de direcciones IP de todo el mundo enviar carga de ataque, si bien la mayoría son redes privadas virtuales (VPN) y proxies web alojados en nubes públicas.
La vulnerabilidad
A partir del parche, se puede ver que se podría recibir una expresión de SpEL desde el encabezado HTTP "spring.cloud.function.routing-expression" para facilitar el enrutamiento de aplicaciones.
El código no incluía una verificación de si la expresión objeto de evaluación se podía recibir por medio de un encabezado. Para solucionar el problema, se añadió un headerEvalContext independiente, que consiste en un SimpleEvaluationContext .
Mitigación con motor de seguridad adaptable KSD
El motor de seguridad adaptable (ASE) de Akamai cuenta con amplias reglas integradas para detectar inyecciones de comandos, ya que el objetivo de muchos de estos ataques es ejecutar comandos a nivel del SO. El ASE pudo detectar este día cero con reglas de inyección de comandos existentes:
Además, los conjuntos de reglas de Kona Site Defender también mitigan estos ataques:
3000041 - Inyección de plantillas del lado del servidor
3000156 - Detección de inyección de CMD (funciones PHP de alto riesgo)
Resumen
Aunque las funciones de Spring Cloud no están tan extendidas como la biblioteca Log4j , la facilidad de explotación de esta vulnerabilidad atraerá a muchos cibercriminales. Anticipamos que esto dará lugar a que muchos de esos cibercriminales lancen campañas de criptominería, DDoS y ransomware como vía para traspasar las defensas de las organizaciones en los próximos años. Sin embargo, los clientes de Akamai están protegidos con el motor de seguridad adaptable de Akamai y los conjuntos de reglas de Kona Site Defender.
El equipo de investigación de amenazas de Akamai continúa supervisando el aprovechamiento de esta vulnerabilidad e informará de las novedades a medida que surjan nuevas variantes o si observamos a nuevos grupos de cibercriminales agregar esta vulnerabilidad a su arsenal.