Ataque por puerta trasera a XZ Utils

De Wikipedia, la enciclopedia libre
Ataque por puerta trasera a XZ Utils
Información general
Tipo de programa Puerta trasera
Vulnerabilidades CVE-2024-3094
Fecha de descubrimiento 29 de marzo de 2024
Fecha de parchado 29 de marzo de 2024
Descubridor Andres Freund
Software afectado xz, biblioteca liblzma
Enlaces

El 29 de marzo de 2024, el desarrollador de software Andres Freund informó que había encontrado una puerta trasera introducida maliciosamente en la utilidad para Linux xz, contenida en la biblioteca liblzma en sus versiones 5.6.0 y 5.6.1, publicadas en febrero de 2024.[1]

Pese a que xz normalmente está presente en la mayor parte de las distribuciones Linux, al momento en que se había descubierto la puerta trasera, esta todavía no se había desplegado de manera amplia a los entornos de producción, pero sí se transmitió a las versiones en desarrollo de algunas de las distribuciones más importantes.[2]

La puerta trasera brinda privilegios de ejecución de código remota a un atacante que posea una clave privada Ed448 concreta en los sistemas Linux afectados. Este problema ha recibido el número CVE-2024-3094 en la base de información Common Vulnerabilities and Exposures y se le ha otorgado una puntuación CVSS de 10.0, la más alta posible.[3][4][5]

Antecedentes[editar]

Andres Freund, empleado de Microsoft y desarrollador de PostgreSQL, informó de la puerta trasera tras investigar una regresión de desempeño que se producía en Debian Sid.[6]​ Freund se percató de que las conexiones efectuadas con SSH estaban generando una cantidad inesperadamente alta de ciclos de CPU y provocaban errores en Valgrind,[7]​ una herramienta de depuración de memoria operativa.[8]​ Freund informó de su descubrimiento a la lista de distribución de correo sobre seguridad del proyecto Openwall,[9]​ lo que llamó la atención de varios proveedores de software.[8]​ El o la atacante se esforzó en ofuscar el código,[10][11]​ dado que la puerta trasera se compone de varios componentes que actúan en conjunto.[12]

Una vez que la versión vulnerada se ha incorporado al sistema operativo, altera el comportamiento del servicio del servidor SSH de OpenSSH por medio de la biblioteca systemd, que permite a un atacante obtener privilegios administrativos.[12][8]​ De acuerdo al análisis de Red Hat, la puerta trasera puede «habilitar a un actor malicioso para superar la autenticación por sshd y obtener acceso no autorizado a la totalidad del sistema de forma remota».[13]

Una investigación posterior encontró que la campaña para insertar la puerta trasera en el proyecto XZ Utils fue una culminación de unos tres años de esfuerzo por parte de un usuario o usuaria con el nombre Jia Tan y el sobrenombre JiaT75 para que se le diera acceso a un puesto de confianza en el proyecto. Luego de un período de presión hacia el fundador y responsable principal del proyecto para que cediera control del mismo, mediante aparentes usuarios títere, Jia Tan obtuvo el puesto de comantenedor de XZ Utils y, así, pudo autorizar la versión 5.6.0, que introdujo la puerta trasera, y la versión 5.6.1, que corrigió un comportamiento anómalo que podía manifestarse durante las puestas a prueba del sistema operativo.[8]​ Algunas de las identidades títere son Jigar Kumar, krygorin4545 y misoeater91. Se sospecha que los nombres Jia Tan y Hans Jansen, supuesto autor de código (para las versiones 5.6.0 y 5.6.1) son seudónimos escogidos por quienes formaron parte de la campaña. Ninguna de estas personas han manifestado presencia pública alguna en la escena del desarrollo de software fuera de los años en que esta campaña tuvo lugar.[14][15]​ La puerta trasera fue notoria por su nivel de sofisticación y por el hecho de que el o la perpetradora llevó a cabo un grado alto de seguridad operacional durante un período prolongado mientras trabajaba en alcanzar una posición de confianza. El investigador Dave Aitel ha sugerido que ello se ajusta al modelo atribuible al APT29, un agente de amenaza persistente avanzada del que se cree que trabajaba a nombre del Servicio de Inteligencia Exterior ruso.[16]​ Thomas Claburn, periodista del Register que se especializa en las TI, sugirió que pudo haberse tratado de cualquier agente de Estado, o bien, de un agente independiente con una gran cantidad de recursos.[17]

Mecanismo[editar]

El código malicioso se ha encontrado en las versiones 5.6.0 y 5.6.1 del paquete de software XZ Utils. El exploit permanece inactivo a menos que se use un parche de terceros concreto para el servidor SSH. Cuando se dan las circunstancias correctas, esta interferencia puede hacer posible que un agente malicioso venza la autenticación de sshd y obtener acceso al sistema remotamente.[13]​ La vulnerabilidad se distribuyó a través de dos archivos comprimidos de prueba que contienen el código en forma binaria. Estos archivos están disponibles en el repositorio Git, pero permanecen inactivos salvo que se extraigan e inyecten en el programa.[5]​ El código hace uso del mecanismo IFUNC de glibc para sustituir una función existente en OpenSSH llamada RSA_public_decrypt con una versión maliciosa. OpenSSH normalmente no carga liblzma, pero un parche de terceros que comúnmente usaban varias distribuciones Linux hace que integre libsystemd, el cual a su vez carga lzma.[5]​ Una versión modificada de build-to-host.m4 se incluyó en el archivo TAR de la versión en GitHub, que extrae una secuencia de órdenes para inyectar la puerta trasera en liblzma. Este archivo m4 modificado no figuró nunca en el repositorio Git; solo estaba disponible en los TAR que el corresponsable emitió de forma separada al repositorio.[5]​ Esta secuencia parece realizar la inyección solamente si el proyecto se está compilando en un sistema Linux de arquitectura x86-64 con glibc y GCC a través de dpkg o rpm.[5]

Respuestas[editar]

Planes correctivos[editar]

La agencia federal estadounidense responsable de la ciberseguridad, la CISA, ha emitido una alerta de seguridad que recomienda que los dispositivos afectados retornen a una versión anterior del programa.[18]​ Diversos proveedores de software para Linux, entre ellos Red Hat, SUSE y Debian, han seguido la recomendación de la CISA y han revertido las actualizaciones de los paquetes afectados a versiones previas.[13][19][20]GitHub desactivó las replicaciones del repositorio de xz temporalmente.[21][22]

Canonical pospuso una semana el lanzamiento en beta de Ubuntu 24.04 LTS y sus «sabores» oficiales y eligió emprender una recompilación binaria completa de todos los paquetes de la distribución.[23]​ Pese a que la versión estable de Ubuntu nunca resultó afectada, las versiones originarias sí. Esta medida precautoria se tomó porque Canonical no pudo garantizar que no hubiese paquetes afectados para la fecha límite original para compilar el lanzamiento final.[24][25]

Debian y Ubuntu han comenzado a eliminar la funcionalidad que integraba libsystemd en el servidor OpenSSH para reducir la superficie de ataque del servicio.[26]

Respuesta generalizada[editar]

Imagen externa
La tira cómica xkcd n.º 2347 Dependency ha sido citada por varios comentaristas por por captar la difícil situación de un único voluntario no remunerado que mantiene un programa informático de crucial importancia y del que se depende en gran medida.[27][28]
Atención: este archivo está alojado en un sitio externo, fuera del control de la Fundación Wikimedia.

El informático Alex Stamos opinó que «podría haber sido la puerta trasera más esparcida y eficaz jamás plantada en algún producto de software», y destacó que, de no haberse detectado, habría «dado a sus creadores una llave maestra para cualquiera de los cientos de millones de computadores del mundo que ejecutan SSH».[29]​ Además, el incidente inició un debate sobre la viabilidad de que porciones cimentales de la ciberinfraestructura dependan de personas voluntarias no remuneradas.[30]

Referencias[editar]

  1. Corbet, Jonathan. «A backdoor in xz». LWN (en inglés). Archivado desde el original el 1 de abril de 2024. Consultado el 2 de abril de 2024. 
  2. «CVE-2024-3094». National Vulnerability Database (en inglés). NIST. Archivado desde el original el 2 de abril de 2024. Consultado el 2 de abril de 2024. 
  3. Gatlan, Sergiu. «Red Hat warns of backdoor in XZ tools used by most Linux distros». BleepingComputer (en inglés). Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  4. Akamai Security Intelligence Group (1 de abril de 2024). «XZ Utils Backdoor – Everything You Need to Know, and What You Can Do» (en inglés). Archivado desde el original el 2 de abril de 2024. Consultado el 2 de abril de 2024. 
  5. a b c d e James, Sam. «xz-utils backdoor situation (CVE-2024-3094)». GitHub (en inglés). Archivado desde el original el 2 de abril de 2024. Consultado el 2 de abril de 2024. 
  6. Zorz, Zeljka (29 de marzo de 2024). «Beware! Backdoor found in XZ utilities used by many Linux distros (CVE-2024-3094)». Help Net Security (en inglés). Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  7. «oss-security - backdoor in upstream xz/liblzma leading to ssh server compromise». www.openwall.com (en inglés). Archivado desde el original el 1 de abril de 2024. Consultado el 8 de abril de 2024. 
  8. a b c d Goodin, Dan (1 de abril de 2024). «What we know about the xz Utils backdoor that almost infected the world». Ars Technica (en inglés). Archivado desde el original el 1 de abril de 2024. Consultado el 1 de abril de 2024. 
  9. «oss-security - backdoor in upstream xz/liblzma leading to ssh server compromise». www.openwall.com (en inglés). Archivado desde el original el 1 de abril de 2024. Consultado el 3 de abril de 2024. 
  10. Larabel, Michael. «XZ Struck By Malicious Code That Could Allow Unauthorized Remote System Access». Phoronix (en inglés). Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  11. O'Donnell-Welch, Lindsey (29 de marzo de 2024). «Red Hat, CISA Warn of XZ Utils Backdoor». Decipher (en inglés). Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  12. a b Claburn, Thomas. «Malicious backdoor spotted in Linux compression library xz». The Register (en inglés). Archivado desde el original el 1 de abril de 2024. Consultado el 1 de abril de 2024. 
  13. a b c «Urgent security alert for Fedora 41 and Fedora Rawhide users» (en inglés). Red Hat. Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  14. «Watching xz unfold from afar» (en inglés). 31 March 2024. Archivado desde el original el 6 de abril de 2024. Consultado el 6 de abril de 2024. 
  15. «Timeline summary of the backdoor attack on XZ Utils» (en inglés). 3 de abril de 2024. Archivado desde el original el 10 de abril de 2024. Consultado el 7 de abril de 2024. 
  16. Greenberg, Andy. «The Mystery of 'Jia Tan,' the XZ Backdoor Mastermind». Wired (en inglés). Archivado desde el original el 3 de abril de 2024. Consultado el 3 de abril de 2024. 
  17. Claburn, Thomas. «Malicious xz backdoor reveals fragility of open source». The Register (en inglés). Archivado desde el original el 8 de abril de 2024. Consultado el 8 de abril de 2024. 
  18. «Reported Supply Chain Compromise Affecting XZ Utils Data Compression Library, CVE-2024-3094» (en inglés). CISA. 29 de marzo de 2024. Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  19. «SUSE addresses supply chain attack against xz compression library». SUSE Communities (en inglés). SUSE. Archivado desde el original el 29 de marzo de 2024. Consultado el 29 de marzo de 2024. 
  20. Salvatore, Bonaccorso (29 de marzo de 2024), «[SECURITY [DSA 5649-1] xz-utils security update]» (en en), archivado del original el 29 de marzo de 2024, https://web.archive.org/web/20240329171247/https://lists.debian.org/debian-security-announce/2024/msg00057.html, consultado el 29 de marzo de 2024. 
  21. Larabel, Michael (29 de marzo de 2024). «GitHub Disables The XZ Repository Following Today's Malicious Disclosure». Phoronix (en inglés). Archivado desde el original el 31 March 2024. Consultado el 31 March 2024. 
  22. «The Git repositories of XZ projects are available on GitHub again | Hacker News». news.ycombinator.com (en inglés). Archivado desde el original el 10 de abril de 2024. Consultado el 10 de abril de 2024. 
  23. «Noble Numbat Beta delayed (xz/liblzma security update)». Centro comunitario de Ubuntu (en inglés). 3 de abril de 2024. Archivado desde el original el 10 de abril de 2024. Consultado el 10 de abril de 2024. 
  24. Larabel, Michael. «Ubuntu 24.04 Beta Delayed Due To XZ Nightmare». www.phoronix.com (en inglés). Archivado desde el original el 10 de abril de 2024. Consultado el 10 de abril de 2024. 
  25. Sneddon, Joey (3 de abril de 2024). «Ubuntu 24.04 Beta Delayed Due to Security Issue». OMG! Ubuntu (en inglés). Archivado desde el original el 8 de abril de 2024. Consultado el 10 de abril de 2024. 
  26. «1:9.6p1-3ubuntu13 : openssh package : Ubuntu». Launchpad. 8 de abril de 2024. Consultado el 15 de abril de 2024. 
  27. Masnick, Mike (8 de abril de 2024). «The Story Behind The XZ Backdoor Is Way More Fascinating Than It Should Be». Techdirt. Consultado el 12 de abril de 2024. 
  28. Colomé, Jordi Pérez (10 de abril de 2024). «How half-a-second of suspicious activity led an engineer to prevent a massive cyberattack». EL PAÍS English. Consultado el 12 de abril de 2024 -us. 
  29. Roose, Kevin. «Did One Guy Just Stop a Huge Cyberattack?». The New York Times (en inglés). Archivado desde el original el 4 de abril de 2024. Consultado el 4 de abril de 2024. 
  30. Khalid, Amrita (2 de abril de 2024). «How one volunteer stopped a backdoor from exposing Linux systems worldwide». The Verge (en inglés). Archivado desde el original el 4 de abril de 2024. Consultado el 4 de abril de 2024. 

Enlaces externos[editar]