En 1786 el filósofo escocés Thomas Reid publicó sus "Ensayos sobre los poderes activos de la mente humana". En él apareció por primera vez la frase: "una cadena es tan fuerte como su eslabón más débil". Y estos días el mundo de la ciberseguridad, que entiende muy bien su sentido, se ha visto sacudido por un eslabón especialmente débil. Uno que podría haber puesto en jaque a millones de ordenadores y servidores durante los dos últimos años.
Xz Utils. Así se llama el componente Open Source que se ha convertido en protagonista del panorama de ciberseguridad en los últimos días. Un desarrollador llamado Andres Freund descubrió código malicioso en versiones beta de distribuciones Linux como Red Hat o Debian muy populares en servidores, aunque al parecer dichas versiones no se usan en entornos de producción (es decir, aquellas a los que accedemos los usuarios). Tanto la una como la otra publicaron comunicados alertando del peligro. Como indican en Ars Technica, Will Dormann, de la firma de seguridad Analygence, asegura que gracias a eso el problema "no está afectando a nedia en el mundo real, pero solo porque se descubrió pronto debido a la dejadez de los malos actores. Si no se hubiera descubierto, habría sido catastrófico para el mundo".
Puerta trasera. Como explicaba el desarrollador Sam James, la vulnerabilidad se comporta como una puerta trasera que mostró ciertas señaes por primera vez en una actualización del pasado 23 de febrero que añadió código ofuscado. En una nueva actualización al día siguiente el script de instalación era malicioso y se inyectaba a sí mismo en funciones usadas en sshd, el binario que permite utilizar la conocida herramienta ssh de conexión segura (con ese componente ya no) a máquinas remotas. Los cambios fueron publicaods por JiaT75, uno de los dos desarrolladores del proyecto xz Utils, que llevaba años contribuyendo al desarrollo. Su primer 'commit' al proyecto data de noviembre de 2021, de hecho.
¿Quién es JiaT75? Eso ha hecho que aparezcan preocupantes teorías sobre la identidad real de JiaT75, y se especula con la posibilidad de que no sea un hacker aislado, sino un grupo de hackers apoyados por algún gobierno que durante mucho tiempo han ido construyendo un perfil que aparentemente era el de un desarrollador Open Source que ayudaba en este proyecto de forma desinteresada y beneficiosa, y que tras lograr convertirse en mantenedor del proyecto usó ese control para crear una versión maliciosa con la que infiltrarse luego en millones de sistemas de forma sencilla gracias a la puerta trasera creada en xz.

La soledad del programador Open Source. Todo empezó con una situación muy común entre los proyectos Open Source. Aunque la filosofía del software libre y el código abierto transmite que todo el mundo puede colaborar en los proyectos para mejorarlos, la realidad es que a menudo muchos de ellos están gestionados y mantenidos por una sola persona. Es la soledad del programador Open Source. Ese fue el caso de XZ para Java, la versión en este lenguaje de estas herramientas de compresión muy extendidas en sistemas Linux, en los que es un componente habitual. El repositorio está ahora deshabilitado.
¿Hay alguien ahí? En mayo de 2022 alguien preguntaba en un foro si alguien seguía a cargo del proyecto. Contestaba al respecto Lasse Collin, que en ese momento era el responsable, y confesaba que "sí, al menos por definición, como si alguien informa de un fallo que será corregido". Luego continuaba explicando que "el desarrollo de nuevas características desde luego no es muy activo", y de repente, en ese mensaje, Collin hablaba de una persona que últimamente se había implicado en el desarrollo y le había ofrecido ayuda. Un tal Jia Tan, del que decía que "podría tener un mayor protagonismo en el futuro, al menos con las XZ Utils".
Jia toma el control. Un tercer actor en esa discusión, llamado "Jigar Kumar", no para de presionar a Collins, instándole a ceder el testigo. No se sabe si el Kumar era un cómplice de este esfuerzo por lograr que Jia Tan consiguiese el control de ese paquete, pero el resultado acabó siendo precisamente ese. Collins además confesó tener problemas mentales y le recordó a todos que "es bueno tener en mente que este es un proyecto por el que no cobro y que hago por afición". Como decimos, Jia acabó tomando control del proyecto y recientemente introdujo esos cambios maliciosos que afortunadamente fueron detectados antes de amenazar millones de sistemas.
500 milisegundos. Lo sorprendente es también cómo se detectó la vulnerabilidad. Andres Freund, ingeniero y desarrollador de Microsoft que trbaaja en la versión de PostgreSQL para su empresa, estaba intentando detectar qué pasaba con un sistema con Debian en el que estaba trabajando con SSH. Por alguna razón el proceso SSH estaba consumiendo demasiados recursos. Notó que la conexión con ssh tardaba 500 milisegundos más en realizarse de lo que lo debería hacerlo, y tras analizar el problema descubrió que el problema estaba en las últimas actualizaciones que se habían hecho en el paquete xz Utils. Acabó publicando sus conclusiones y aquello permitió que los responsables de Red Hat o Debian comprobasen lo peligroso que habría sido incluir dicho componente en las versiones de producción de sus distribuciones.
El Open Source es prodigioso, pero también puede ser terrible. Sucesos como este demuestran las luces y sombras del Open Source. Por un lado, estos desarrollos ofrecen su código fuente y cualquiera puede contribuir. Incluidos, por supuesto, actores maliciosos que acaben aprovechándolos para infiltrarse en todo tipo de sistemas o intentarlo, como hemos visto. Eso es terrible, pero justamente la propia filosofía Open Source tiene su contrapunto: esos proyectos, incluyan código malicioso o no, siguen estando disponibles para que cualquiera los analice, y eso fue precisamente lo que permitió que la vulnerabilidad fuera descubierta. En este caso, eso sí, hubo suerte y sobre todo fue crucial el descubrimiento de Freund, que casi por casualidad se dedicó a analizar qué estaba pasando.
Imagen | Datarhys con Midjourney
En Xataka | El Open Source arrasa y vive una época dorada, pero también hay algo de postureo
Ver 18 comentarios
18 comentarios
Joaquín Vacas Verísimo
Una vulnerabilidad en un software cerrado te la habrías comido con patatas.
Por no hablar software si tiene más de lo que el desarrollador de X tecnología privativa considera "vida útil".
Vamos, firmwares no OpenSource que hacen que millones de máquinas estén afectadas sin solución por su UEFI? Y sin actualizaciones.
Venga, va.
Alexis
Sin ánimo de ofender, el corrector está para algo 😵💫
eltoloco
Hay que ser muy torpe para criticar al open source por esto. Precisamente es un ejemplo de que gracias a que el código es público se ha podido encontrar la puerta trasera y eliminarla.
Esto mismo en software privativo es imposible de encontrar, te lo comes con patatas, con el beneplácito de la NSA, del FBI, de Microsoft, de Apple, de Google y de todas las demás. Cuando se descubra un exploit en Windows que está presente desde hace 10, 15 y 20 años, acordaros de esto. No es un bug, es una feature.
Usuario desactivado
Con codigo privado nunca lo sabriamos.
Dicho esto, cambiar el icono del usuario y la carpeta de fondos de pantalla en xfce en Xubuntu o Linux Mint para un usuario no root es imposible. Un problema que fue publicado en varios foros desde 2019 y todavia no lo solucionan.
Nozomi
Para la gente que intenta defender al software privativo con lo de las puertas cerradas diciendo que esas empresas "no podrían poner en riesgo su negocio" les recuerdo que el gobierno también puede forzar a estas mismas empresas a incluir esas puertas traseras y debido a la forma en la que funciona el mundo corporativo esos secretos serán mucho más fáciles de ocultar. Creo que eso es lo que ya pasa con los hipervisores como el PSP de AMD y el IME de Intel en los CPUs de consumo, si no recuerdo mal hasta había una ley que forzaba a los fabricantes a integrar eso en EEUU.
Con los proyectos de software libre, especialmente con los comunitarios y/o mantenidos por una sola persona esto es mucho más difícil ya que cualquier movimiento irregular levantaría las sospechas de cualquiera, además de ser mucho más arriesgado porque si un estado llega a hacer eso, de ser descubiertos a la tormenta que se expondrán no será poca cosa, y eso involucrará también a que tengan a las organizaciones de derechos humanos detrás de ellos.
Algo que no les va a convenir especialmente por la potencial pérdida de reputación y apoyo popular que eso implicaría, vamos que los gobiernos tienen bastante más que perder que ganar al hacer esto, y a muestra un botón.
reiizumi
El OpenSource al fin y al cabo sigue estos puntos:
- El código es libre, así que cualquiera puede analizarlo. Esto sirve para encontrar agujeros y explotarlos, o crear un fix/petición.
- Por la anterior, se considera más seguro que el código cerrado.
- Lo mantiene la comunidad, y casi nunca ven un duro.
- Si es una pieza fundamental para tu empresa, "quizás" deberías ocupar tiempo de tu gente para ayudar a esa comunidad.
- Lo anterior se ve inaceptable para la mayoría de empresas. ¿Dar tiempo gratis? ¿y qué más? Aunque esa gente "trabaja" gratis ...
- Sin el OpenSource, la informática que entendemos a día de hoy, no existiría. ¿Crear aplicaciones en días o semanas? sería imposible.
Conca
Un poco cantoso el copy-paste. Al menos podrías repasar un poco mejor el texto. O indicar de donde sacas la info...
www.catonetworks. com/blog/xz-backdoor-rce-cve-2024-3094-is-the-biggest-supply-chain-attack-since-log4j/