Según un reciente análisis, se ha descubierto que el código malicioso se infiltró en la popular biblioteca de código abierto XZ Utils, utilizada ampliamente en las principales distribuciones de Linux. Este código malicioso, identificado como CVE-2024-3094 con una gravedad CVSS de 10.0, ha sido identificado como una puerta trasera que permite la ejecución remota de código, como reveló un análisis reciente.
El sorprendente compromiso de la cadena de suministro fue destacado la semana pasada cuando Andrés Freund, ingeniero de Microsoft y desarrollador de PostgreSQL, advirtió sobre la presencia de esta puerta trasera en la utilidad de compresión de datos. Esta puerta trasera ofrece a los atacantes remotos la capacidad de eludir la autenticación de shell segura y obtener acceso completo a sistemas afectados.
XZ Utils es una herramienta de línea de comandos ampliamente utilizada para comprimir y descomprimir datos en sistemas Linux y otros sistemas operativos similares a Unix.
Se cree que el código malicioso fue introducido deliberadamente por uno de los mantenedores del proyecto, conocido como Jia Tan (también identificado como Jia Cheong Tan o JiaT75), en lo que parece haber sido un ataque meticuloso que se extendió durante varios años. La cuenta de usuario de GitHub asociada se creó en 2021, y hasta el momento la identidad de los actores involucrados sigue siendo desconocida.
Según un informe de Akamai, el actor de amenazas comenzó a contribuir al proyecto XZ hace casi dos años, ganando gradualmente credibilidad hasta que se le asignaron responsabilidades de mantenimiento. Este proceso implicó un acto de ingeniería social inteligente, donde se utilizaron cuentas de sockpuppet como Jigar Kumar y Dennis Ens para enviar solicitudes de funciones e informar sobre diversos problemas en el software. El objetivo era presionar al mantenedor original, Lasse Collin del Proyecto Tukaani, para que agregara un nuevo co-mantenedor al repositorio.
Así es como Jia Tan entró en escena, introduciendo una serie de cambios en XZ Utils en 2023. Estos cambios culminaron en el lanzamiento de la versión 5.6.0 en febrero de 2024, que lamentablemente también albergaba una puerta trasera sofisticada.
En un intercambio de correos electrónicos en junio de 2022, Collin sugirió que Jia Tan podría desempeñar un papel más importante en el proyecto en el futuro. Según sus palabras, Jia Tan ya estaba contribuyendo significativamente fuera de la lista y prácticamente se había convertido en un co-mantenedor. Aunque no se habían realizado muchos cambios visibles en el repositorio de git, Collin señaló que las cosas estaban avanzando gradualmente en términos de mantenimiento para XZ Utils.
La puerta trasera afecta a los tarballs de las versiones XZ Utils 5.6.0 y 5.6.1, siendo esta última una versión mejorada del mismo implante. Desde entonces, Collin ha reconocido la violación del proyecto, afirmando que ambos archivos comprimidos fueron creados y firmados por Jia Tan, quien tenía acceso solo al repositorio GitHub ahora deshabilitado.
Según la empresa de seguridad de firmware Binarly, esta operación parece ser una empresa altamente compleja patrocinada por el Estado, con un nivel impresionante de sofisticación y una planificación a largo plazo. Es evidente que un marco de implantación tan elaborado y profesionalmente diseñado no se desarrolló para ser utilizado en una sola ocasión.
Un análisis más detallado de la puerta trasera, realizado por el criptógrafo de código abierto Filippo Valsorda, ha revelado que las versiones afectadas permiten a atacantes remotos específicos enviar cargas útiles arbitrarias a través de un certificado SSH. Estas cargas se ejecutarían de manera que eludieran los protocolos de autenticación, permitiendo así que los atacantes tomen efectivamente el control sobre la máquina objetivo.
Según Akamai, la puerta trasera parece haber sido agregada al demonio SSH en la máquina vulnerable, lo que habilita a un atacante remoto para ejecutar código arbitrario. Esto implica que cualquier máquina con el paquete vulnerable que exponga SSH a Internet podría ser potencialmente vulnerable.
En términos simples, esta puerta trasera permite a un atacante remoto, con una clave privada predeterminada, secuestrar el demonio SSH para ejecutar comandos maliciosos.
El descubrimiento accidental por parte de Freund es considerado uno de los ataques a la cadena de suministro más significativos hasta la fecha. Si el paquete se hubiera integrado en versiones estables de distribuciones de Linux, habría representado un grave desastre de seguridad.
JFrog destacó los niveles extremos de dedicación del atacante, que trabajó durante más de dos años para establecerse como un mantenedor legítimo. Este actor incluso se ofreció para trabajar en varios proyectos de código abierto y comprometió código en múltiples proyectos para evitar la detección.
Al igual que en el caso de Apache Log4j, este incidente subraya la dependencia del software de código abierto y de proyectos gestionados por voluntarios, así como las consecuencias que podrían surgir en caso de sufrir un compromiso o una vulnerabilidad importante.
ReversingLabs señaló que la solución más importante es que las organizaciones adopten herramientas y procesos que les permitan identificar signos de manipulación y características maliciosas tanto en el código abierto como en el código comercial utilizado en su propio proceso de desarrollo.
Fuente: The hacker news https://thehackernews.com/