XZ Utils: internet esquiva una catástrofe
El hallazgo casual de un agujero malicioso en una aplicación de Linux pone en alerta a la comunidad mundial del código abierto
BarcelonaHace pocos días salió a relucir un grave defecto de ciberseguridad en el producto emblemático del software libre, el sistema operativo Linux. Una puerta trasera (backdoor, en inglés) maliciosa en el programa XZ Utils –que sirve para realizar operaciones de compresión y descompresión de datos– ha puesto en alerta varias distribuciones del sistema operativo Linux, empezando por Debian, provocando interrogantes sobre la seguridad del software libre en general .
La puerta trasera maliciosa, descubierta en las versiones 5.6.0 y 5.6.1 de XZ Utils, fue encontrada por Andres Freund, un programador que trabaja en Microsoft, mientras realizaba labores de mantenimiento rutinario en el software PostgreSQL. Freund observó un incremento anómalo del uso del procesador por parte de la aplicación SSH de acceso y gestión remota de los sistemas y comunicó el viernes 29 de marzo la incidencia en la lista de correo OSSL sobre seguridad del software abierto, en que una investigación más detallada reveló la presencia de la puerta trasera, que no estaba en los módulos propios de la aplicación SSH sino en el mencionado XZ Utils.
Los registros indican que este agujero indirecto fue introducido a través de cambios en el código en las versiones archivadas de XZ Utils, con el fin de debilitar la autenticación SSH. La vulnerabilidad resultante podría permitir a un atacante acceder sin autorización al sistema. Cabe decir que en algunos casos la puerta trasera no funcionó como se pretendía, como en el caso de la distribución Fedora 40, en la que se presentaron incompatibilidades que impidieron la correcta inyección. Sin embargo, aunque todavía no se ha detectado ningún caso de explotación en entornos de producción, las versiones preliminares de otras distribuciones como la propia Fedora Rawhide y Debian ya contenían el malware. En cualquier caso, ya lo han retirado de los repositorios públicos.
Efectos potencialmente catastróficos
Los aspectos técnicos del potencial ciberataque ahora neutralizado pueden parecer muy lejanos a la mayoría de los lectores, porque afectan al sistema operativo Linux, de presencia poco más que marginal en los ordenadores personales –sólo se utiliza en un 2% de los equipos–. Sin embargo, Linux es probablemente el software de código abierto más importante del mundo. Es omnipresente en las infraestructuras digitales que mantienen en funcionamiento nuestra sociedad: el 96% del primer millón de sitios web más visitados, los 500 supercomputadores más potentes y los servidores de la mayoría de bolsas de valores, hospitales, administraciones públicas y grandes multinacionales funcionan con Linux. Sólo un dato: la aplicación OpenSSH de acceso remoto, la más popular de las vulnerables a la manipulación de XZ Utils, aparece actualmente instalada en más de 20 millones de direcciones IP. Un agujero que permita a terceros manipular por esta vía los sistemas mencionados y acceder a su contenido puede ser catastrófico.
Como era de esperar, inmediatamente se ha especulado con el origen del intento de abrir una brecha digital de esta magnitud. El análisis forense de los registros, siempre muy detallados precisamente por tratarse de código abierto, indican que las modificaciones maliciosas del código de XZ Utils fueron introducidas por el usuario JiaT75, uno de los programadores que había asumido en los últimos tiempo el mantenimiento del software en sustitución del desarrollador original, Lasse Collin. De hecho, uno de los aspectos que más llama la atención es que el tal JiaT75 hacía casi tres años que hacía contribuciones al código de XZ Utils y ahora ya debió de considerar terminada la tarea maliciosa y quería recoger sus frutos. En las últimas semanas se dirigió a las comunidades y empresas responsables de diversas distribuciones de Linux para pedirles acelerar la adopción de la versión más reciente de XZ Utils, la que contiene la puerta trasera.
JiaT75, que supuestamente responde al nombre de Jia Tan, pretende orientar las sospechas hacia Oriente. De hecho, la mayoría de sus aportaciones al código de XZ Utils llevan marcas horarias que responden al calendario y horario chinos. Pero estas marcas horarias se pueden manipular, y algunos programadores, minoristas hasta el extremo, han rastreado exhaustivamente la cronología de las aportaciones de JiaT75 y han llegado a la conclusión de que en algunos momentos ha olvidado enmascarar que trabajaba desde algún sitio del huso horario que abarca zonas de la antigua Unión Soviética y de Oriente Medio.
Sea cual sea la identidad real de JiaT75 y quien esté detrás, el incidente con XZ Utils ha planteado interrogantes sobre la seguridad del desarrollo de software de código abierto, basado mayoritariamente en la confianza. Hasta ahora los inevitables errores de programación se atribuían siempre a errores sin mala intención y se rectificaban en términos de compañerismo y buena voluntad. Pero ahora varias voces reclaman ya revisar más detenidamente las aportaciones al código abierto. Se encuentran ahora bajo sospecha los módulos más populares que –como ha ocurrido en el caso de XZ Utils entre Lasse Collin y JiaT75– después de haber estado mucho tiempo a cargo de un único programador, generalmente su creador, hayan pasado a manos de alguien que se haya mostrado especialmente –sospechosamente– bien dispuesto a asumir un trabajo generalmente discreto y poco reconocido.
Muchos observadores hemos recordado la viñeta en la tira cómica XKCD de Randall Munroe en la que se puede leer "toda la infraestructura digital moderna" soportada precariamente por un frágil "proyecto que un desconocido de Nebraska mantiene desde 2003 sin reconocimiento alguno". Más allá del buen humor, en algunos círculos empieza a cuestionarse que las infraestructuras cruciales dependan de voluntarios no remunerados.