El autor de XZ publico nuevas versiones correctivas y un informe sobre el caso del backdoor
Hace poco más de 2 meses, compartimos aquí en el blog la nota del caso del backdoor en la utilidad XZ, en esa misma publicación también compartí mi opinión en la cual mencionaba, y aún mencionaré, de que este caso será algo de lo que se va a hablar durante un largo tiempo, ya que «es uno de los mejores ejemplos de ingeniería social aplicada».
También en su momento compartimos algunas publicaciones adicionales, donde se realizó la recopilación de las diversas acciones que fueron tomadas en el caso, asi como también el cómo fue posible la situación y pasara desapercibida durante mucho tiempo.
Y ahora, el autor y mantenedor original del proyecto xz, Lasse Collin, dio a conocer la publicación de las nuevas versiones correctivas de XZ Utils 5.2.13, 5.4.7 y 5.6.2. Estas versiones eliminan las puertas traseras de los componentes y otros cambios sospechosos previamente aceptados por Jia Tan.
Junto a la publicación de las versiones correctivas, Lasse Collin también compartió un informe de revisión en el repositorio de Git, incluyendo los cambios realizados desde diciembre de 2022 tiempo en el que Jia Tan estuvo como mantenedor del proyecto. En el informe se detallan los cambios que se han analizado a nivel de confirmaciones individuales y se menciona que aunque las confirmaciones en el repositorio no estaban firmadas digitalmente, no se encontraron signos de manipulación por parte de los confirmadores. En total, se eliminaron del repositorio ocho confirmaciones maliciosas.
Y aunque había algunos cambios de los cuales se sospechaba de la introduccion de cambios maliciosos desde el 2023, pero podemos notar que en el informe se detalla que los primeros cambios implementados para la introduccion del backdoor datan desde inicios de este 2024, en donde Jia Tan ya tenía más actividad relacionada con la introduccion del backdoor en XZ.
Estos archivos comprimidos fueron creados y firmados por Jia Tan. Estos han sido revisados y no contienen contenido malicioso.
NOTA
Las etiquetas v5.2.11y v5.4.2el repositorio de Git fueron firmados por Jia Tan, pero los archivos tar fueron creados y firmados por mí.
Con las siguientes excepciones, los archivos en el repositorio de Git coinciden con los archivos tar:los archivos .po se actualizan como parte de make mydist(o make dist)
ChangeLog es un archivo generado en los archivos tar.
Cada versión está disponible en más de un formato de compresión. El descomprimido .tar es el mismo para todos los formatos de compresión de cada versión.
Las listas de archivos en los archivos comprimidos son buenas. Por ejemplo, el mismo archivo no aparece más de una vez.
Los archivos PDF son difíciles de reproducir ya que contienen una marca de tiempo y también dependen de la versión de las herramientas que se utilizan. Sin embargo, los archivos PDF parecen normales y sus tamaños de archivo también son normales (solo difieren en unos pocos bytes).
En el informe, también se menciona que el código CRC CLMUL, que genera falsos positivos al verificar con MSAN (sanitizador de memoria) y problemas con OSS Fuzz, aún no se ha eliminado de la base del código. Aunque se planea reelaborar este código en el futuro, por ahora se ha decidido no tocarlo para evitar regresiones en ramas antiguas. No se identificaron cambios sospechosos en confirmaciones antiguas agregadas antes de los cambios asociados con la puerta trasera. Además, se verificaron por separado la localización de archivos po, metadatos en archivos tar y archivos con versiones y traducciones.
Además de ello, también se menciona que los cambios incluyen la inclusión de correcciones de errores atrasados y la eliminación del soporte para el mecanismo IFUNC proporcionado en Glibc para llamadas de funciones indirectas, que se utilizaba para organizar la interceptación de funciones en la puerta trasera. Es importante destacar que el uso de IFUNC solo complica el código y la ganancia de rendimiento es insignificante. Como medida de precaución, también se eliminaron del paquete fuente el logotipo de XZ, las versiones PDF de las páginas de manual y dos pruebas para las arquitecturas x86 y SPARC, que procesaban archivos objeto como entrada.
En cuanto a las mejoras que se implementaron, se encuentra por ejemplo en el decodificador xzdec que se agregó soporte para la versión ABI 4 del mecanismo de aislamiento de aplicaciones Landlock. Además, se añadió la opción «–enable-doxygen» a los scripts de compilación de Autotools y el parámetro ENABLE_DOXYGEN al script Cmake para generar e instalar la documentación para la API liblzma usando Doxygen. La documentación previamente generada también se ha eliminado del paquete para reducir el tamaño y la complejidad.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles de la publicación en el siguiente enlace.