Un actor de amenazas pasó silenciosamente los últimos dos años integrándose en el equipo central de mantenedores de XZ Utils, un compresor de datos de línea de comandos de software gratuito ampliamente utilizado en sistemas Linux. El atacante logró lentamente integrar una puerta trasera en el software que fue diseñada para interferir con SSHD y permitir la ejecución remota de código a través de un certificado de inicio de sesión SSH. La puerta trasera fue descubierta unos días antes de ser lanzada en varios sistemas Linux en todo el mundo. Se sospecha que el actor de la amenaza es un desarrollador con el nombre de Jian Tan o que lo utiliza. Varios expertos en seguridad creen que este ataque a la cadena de suministro podría estar patrocinado por el estado. ¿Qué es XZ Utils y qué es la puerta trasera XZ? XZ Utils y su biblioteca subyacente liblzma es una herramienta de software gratuita que implementa XZ y LZMA, que son dos algoritmos de compresión/descompresión ampliamente utilizados en sistemas basados en Unix, incluidos los sistemas Linux. Muchas operaciones en esos sistemas utilizan XZ Utils para comprimir y descomprimir datos. La puerta trasera CVE-2024-3094 que se encuentra en XZ Utils se implementó para interferir con la autenticación en SSHD, el software del servidor OpenSSH que maneja conexiones SSH. La puerta trasera permitió a un atacante ejecutar código remoto a través de un certificado de inicio de sesión SSH. Solo las versiones 5.6.0 y 5.6.1 de XZ Utils se ven afectadas. Cómo se implementó cautelosamente la puerta trasera XZ durante más de años El 29 de marzo de 2024, el ingeniero de software de Microsoft, Andrés Freund, informó el descubrimiento de la puerta trasera. Lo encontró cuando se interesó en el comportamiento extraño de una instalación sid de Debian, como los inicios de sesión SSH que consumen mucha CPU y errores de Valgrind, y decidió analizar los síntomas en profundidad. Freund explicó que el descubrimiento de la puerta trasera en XZ fue cuestión de suerte, ya que «realmente requirió muchas coincidencias». Sin embargo, parece que la implementación de la puerta trasera ha sido un proceso muy silencioso que duró unos dos años. En 2021, un desarrollador llamado Jian Tan, nombre de usuario JiaT75, apareció de la nada para comenzar a trabajar en el código de XZ Utils, lo cual no es inusual porque los desarrolladores de software libre a menudo trabajan juntos para actualizar el código. Tan contribuyó con frecuencia al proyecto XZ desde finales de 2021, generando poco a poco confianza en la comunidad. En mayo de 2022, un usuario desconocido que utilizaba el nombre falso de Dennis Ens se quejó en la lista de correo de XZ de que la actualización del software no era satisfactoria. Otro usuario desconocido, Jigar Kumar, entró en la discusión dos veces para presionar al desarrollador principal de XZ Utils, Lasse Collin, para que agregara un mantenedor al proyecto. «El progreso no se producirá hasta que haya un nuevo responsable», escribió Jigar Kumar. “¿Por qué esperar hasta la 5.4.0 para cambiar de mantenedor? ¿Por qué retrasar lo que necesita su repositorio? Mientras tanto, Collin expresó que “Jia Tan me ha ayudado a salir de la lista de XZ Utils y podría tener un papel más importante en el futuro, al menos con XZ Utils. Está claro que mis recursos son demasiado limitados (de ahí la gran cantidad de correos electrónicos que esperan respuesta), por lo que algo tiene que cambiar a largo plazo”. (Collin escribió Jia en su mensaje, mientras que otros mensajes hacen referencia a Jian. Para aumentar la confusión, el apodo de Jian es JiaT75). En los meses siguientes, Tan se involucró cada vez más en XZ Utils y se convirtió en co-mantenedor del proyecto. En febrero de 2024, Tan emitió confirmaciones para las versiones 5.6.0 y 5.6.1 de XZ Utils, las cuales contenían la puerta trasera. También es interesante señalar que en julio de 2023, Tan solicitó desactivar ifunc (función indirecta de GNU) en oss-fuzz, una herramienta pública creada para detectar vulnerabilidades de software. Esa operación probablemente se realizó para permitir que la puerta trasera en XZ pasara desapercibida una vez que se lanzara, ya que la puerta trasera hace uso de esa función para lograr sus objetivos. Finalmente, el atacante se ha puesto en contacto con varios responsables de diferentes distribuciones de Linux para incluir las versiones con puerta trasera de XZ Utils en sus propias distribuciones. Richard WM Jones de RedHat escribió sobre esto en un foro: “Muy molesto: el aparente autor de la puerta trasera estuvo en comunicación conmigo durante varias semanas tratando de agregar xz 5.6.x a Fedora 40 y 41 debido a sus ‘excelentes características nuevas’. ‘. Incluso trabajamos con él para solucionar el problema de valgrind (que ahora resulta que fue causado por la puerta trasera que había agregado). Anoche tuvimos que correr para solucionar el problema después de una ruptura involuntaria del embargo. Ha sido parte del proyecto xz durante 2 años, agregando todo tipo de archivos binarios de prueba y, para ser honesto, con este nivel de sofisticación, sospecharía de versiones aún más antiguas de xz hasta que se demuestre lo contrario”. Tan también intentó incluirlo en Ubuntu. Cobertura de seguridad de lectura obligada Puerta trasera XZ: un ataque altamente técnico Además de la ingeniería social altamente elaborada tratada anteriormente en este artículo, la puerta trasera en sí es muy compleja. El investigador senior de amenazas de Microsoft, Thomas Roccia, diseñó y publicó una infografía para mostrar toda la operación que condujo a CVE-2024-3094 (Figura A). Figura A Toda la operación CVE-2024-3094. Imagen: Thomas Roccia La puerta trasera se compone de varias partes que se han incluido en múltiples confirmaciones en XZ Utils GitHub, descritas en profundidad por Freund. Gynvael Coldwind, director general de HexArcana Cybersecurity GmbH, una empresa de ciberseguridad que ofrece servicios de consultoría y cursos, escribió en un análisis detallado de la puerta trasera que “alguien se esforzó mucho para que esto tuviera un aspecto bastante inocente y estuviera decentemente oculto. Desde archivos de prueba binarios utilizados para almacenar carga útil hasta tallado de archivos, cifrados de sustitución y una variante RC4 implementada en AWK, todo hecho con herramientas de línea de comandos estándar. Y todo esto en 3 etapas de ejecución, y con un sistema de ‘extensión’ para preparar las cosas para el futuro y no tener que cambiar los archivos binarios de prueba nuevamente”. DESCARGAR: Glosario rápido de código abierto de TechRepublic Premium Martin Zugec, director de soluciones técnicas de Bitdefender, dijo en un comunicado proporcionado a TechRepublic que “esto parece ser un ataque plurianual meticulosamente planificado, posiblemente respaldado por un actor estatal. Teniendo en cuenta los enormes esfuerzos invertidos y la baja prevalencia de sistemas vulnerables que estamos viendo, los actores de amenazas responsables deben estar extremadamente descontentos en este momento porque su nueva arma fue descubierta antes de que pudiera desplegarse ampliamente”. ¿Qué sistemas operativos se ven afectados por la puerta trasera XZ? Gracias al descubrimiento de Freund, el ataque fue detenido antes de extenderse a mayor escala. La empresa de ciberseguridad Tenable expuso los siguientes sistemas operativos que se sabe que están afectados por la puerta trasera XZ: Fedora Rawhide. Fedora 40 Beta. Fedora 41. Pruebas de Debian, distribuciones inestables y experimentales versiones 5.5.1alpha-01 a 5.6.1-1. openSUSE Tumbleweed. openSUSE MicroOS. KaliLinux. Arco Linux. En una publicación de blog, Red Hat informó que ninguna versión de Red Hat Enterprise Linux se ve afectada por CVE-2024-3094. Debian indicó que ninguna versión estable de la distribución se vio afectada y Ubuntu publicó que ninguna versión publicada de Ubuntu se vio afectada. El administrador de paquetes homebrew de MacOS revirtió XZ de 5.6.x a 5.4.6, una versión más antigua pero segura. Bo Anderson, mantenedor y miembro del comité directivo técnico de Homebrew, declaró que Homebrew no “… cree que las compilaciones de Homebrew hayan sido comprometidas (la puerta trasera solo se aplica a las compilaciones deb y rpm) pero 5.6.x está siendo tratado como si ya no fuera confiable y como precaución están forzando rebajas a 5.4.6”. Cómo mitigar y protegerse de esta amenaza de puerta trasera de XZ. Es posible que más sistemas se vean afectados, especialmente aquellos en los que los desarrolladores compilaron las versiones vulnerables de XZ. La empresa de seguridad Binarly ofrece una herramienta de detección en línea que podría usarse para probar sistemas y ver si están afectados por la puerta trasera XZ. La versión de XZ debe comprobarse cuidadosamente, ya que las versiones 5.6.0 y 5.6.1 contienen la puerta trasera. Se recomienda volver a una versión segura anterior conocida de XZ Utils, como 5.4. Los ataques a la cadena de suministro de software están aumentando Como se informó anteriormente en TechRepublic, los actores de amenazas utilizan cada vez más los ataques a la cadena de suministro de software. Sin embargo, los ataques habituales a la cadena de suministro de software consisten principalmente en lograr comprometer una cuenta clave en el proceso de desarrollo de software y utilizar la cuenta para enviar contenido malicioso a software legítimo, que a menudo se detecta con bastante rapidez. En el caso de XZ Utils, es muy diferente porque el actor de la amenaza logró cuidadosamente ganarse la confianza de los desarrolladores legítimos y convertirse en uno de los mantenedores de la herramienta, lo que le permitió introducir lentamente diferentes partes vulnerables del código en el software sin que nadie se diera cuenta. Los ataques a la cadena de suministro de software no son las únicas amenazas crecientes; También están aumentando otros ataques a la cadena de suministro basados en productos de TI. Por lo tanto, las empresas deben asegurarse de que se tenga en cuenta a terceros en el seguimiento de la superficie de ataque. Divulgación: trabajo para Trend Micro, pero las opiniones expresadas en este artículo son mías.