Cómo ayudamos a proteger a nuestros clientes frente a la vulnerabilidad de inyección de OGNL de Atlassian Confluence
Lo que debes saber:
- Según las informaciones que manejamos, el aprovechamiento de la reciente vulnerabilidad de Atlassian Confluence (CVE-2021-26084) circula libremente y sin control.
- Hemos publicado una nueva regla de WAF que impide el aprovechamiento de esta vulnerabilidad; recomendamos que los clientes de nuestro WAF de última generación (antes conocido como «Signal Sciences») la habiliten de forma inmediata (consulta a continuación)
- Atlassian ha publicado un parche que conviene aplicar de inmediato a cualquier instancia de servidor o centro de datos de Confluence.
El equipo de Security Research de Fastly ha diseñado y desplegado una regla con la que los clientes de nuestro WAF de última generación estarán protegidos frente a la reciente CVE-2021-26084. Esta es una vulnerabilidad de inyección de OGNL de Atlassian Confluence que permite que se ejecute código arbitrario en cualquier instancia de servidor o centro de datos de Confluence. El aprovechamiento de la vulnerabilidad es masivo a día de hoy y, según las previsiones, esta tendencia irá al alza. Así que, si eres cliente autogestionado de Confluence, te conviene prestar atención a esta alerta.
¿Qué consecuencias tiene?
Solo las instancias autogestionadas de Confluence están expuestas a la vulnerabilidad descrita; esta no afecta a las instancias alojadas en la nube («Confluence Cloud»). Un usuario que no tenga privilegios de administrador o que no esté autenticado podría obtener acceso íntegro a instancias autogestionadas de Confluence si se habilita la opción «Allow people to sign up to create their account», que permite registrarse para crear una cuenta propia.
Los atacantes no tienen por qué tener acceso local para aprovechar esta vulnerabilidad, con lo cual se convierte en una opción atractiva durante campañas de ataque. Al lograr el control remoto de una instancia de Confluence, los atacantes pueden imponer su voluntad al sistema, como migrar a otros servidores de producción en los que se les haga tratamiento a los datos de los clientes, instalar programas de minería de criptomonedas o implantar una puerta trasera que garantice accesos posteriores.
Análisis en profundidad
Este problema consiste en una vulnerabilidad de inyección de Object-Graph Navigation Language (OGNL). El OGNL es un lenguaje de expresiones que sirve para obtener y configurar propiedades de objetos de Java y, por tanto, permite crear o cambiar a propósito el código ejecutable (lo cual explica la mala fama de los ataques por inyección de OGNL, sobre todo en el ámbito de Apache Struts).
Aunque OGNL pretendía ofrecer funciones de formateo restringido para ejecutar formato condicional de texto a partir de una plantilla, lo que acabó facilitando en realidad fue la capacidad de ejecutar código arbitrario al dejar expuesto por error parte del tiempo de ejecución de Java para cargar código ejecutable.
El objetivo de todo ataque por inyección es inyectar código en interacciones previstas del usuario de forma que la aplicación las evalúe y ejecute sin contar con el contexto adecuado. En este caso, la vulnerabilidad se activaba a través de un ataque por inyección contra una plantilla en Velocity (motor de plantillas de Java desarrollado por la Apache Foundation). Los atacantes pueden incluir comandos (de Bash) de la línea de comandos en su estrategia para luego ejecutarlos en el sistema operativo.
El aprovechamiento implica eludir con inteligencia el método isSafeExpression
, que comprueba si las acciones invocadas dentro de cualquier expresión OGNL son maliciosas. Gracias al uso de caracteres Unicode, los atacantes pueden elaborar interacciones que eludan la validación; por ejemplo, en lugar de entradas como #{3*33}
, un atacante podría especificar la cadena \u0027%2b#{3*33}%2b\u0027
para obtener el resultado de 99. Para profundizar en esta vulnerabilidad, lee la entrada que la describe.
Cómo actuar hoy
Conviene resolver este problema de inmediato. El código de vulnerabilidad de prueba de concepto lleva publicado desde el 31 de agosto de 2021, y nuestro equipo de Security Research ha detectado que la vulnerabilidad se está aprovechando activamente.
Recomendamos encarecidamente que los clientes que utilizan nuestro WAF de última generación delante de sus instancias autogestionadas de Confluence habiliten esta regla lo antes posible y la configuren para que bloquee peticiones si se observa la señal. Los clientes pueden acceder a Site Rules → Templated Rules → y, a continuación, seleccionar «CVE» en «Category»; la regla figura en la lista de reglas CVE publicadas para los clientes.
Además, recomendamos que sigas todas las indicaciones que publique Atlassian para resolver la vulnerabilidad en las instancias de Confluence afectadas. Esta vulnerabilidad se está aprovechando de forma activa en todo el mundo y puede tener consecuencias graves si los atacantes la utilizan para ejecutar código de forma remota en servidores vulnerables.
Lecturas adicionales
Si quieres profundizar en los detalles técnicos de esta serie de ataques, consulta esta entrada de blog de CSO Online. También puedes consultar nuestra documentación, donde encontrarás pasos con los que habilitar reglas de plantilla.