El 29 de marzo del 2024 el desarrollador Andrés Freud queriendo optimizar su conexión SSH a un servidor se dio cuenta que tardaba más de lo que debía, por lo que decidió buscar el motivo de este aumento en el tiempo de respuesta, eventualmente dio con 8, un programa de código abierto que tiene como propósito comprimir datos de tal manera que usen menos espacio en almacenamiento. Este programa popular en servidores estaba inyectando un código para ejecutarse como administrador creando así una puerta trasera que pudiera usarse para acceder a datos privados.
¿WINDOWS O MAC OS? ¡LINUX!
La única forma de entender el nivel de amenaza que representa una vulnerabilidad en Linux es entender el rol que tiene este sistema operativo en la infraestructura global. Si bien estamos familiarizados con sistemas operativos como Windows o macOS, que encontramos a diario en nuestros dispositivos y lugares de trabajo, el verdadero motor del mundo informático es Linux. Este sistema operativo actúa como la columna vertebral de la infraestructura computacional, los servicios, los programas que utilizamos y las empresas que los desarrollan. De hecho, la mayoría de los servidores que sustentan estas operaciones funcionan con Linux. La importancia de Linux se vuelve aún más evidente cuando consideramos la magnitud de la información confidencial que se almacena en estos servidores: datos personales, información bancaria, fotos, contraseñas y más. Una vulnerabilidad en Linux podría poner en riesgo toda esta información, lo que subraya la necesidad de priorizar la seguridad en este sistema operativo.
¿CÓDIGO ABIERTO? ¿ABIERTO A QUÉ?
Aunque compres un programa, tengas una suscripción a un servicio o crees una cuenta en una red social, no es posible ver el código que hace funcionar estos productos y servicios, al mismo tiempo es imposible ver que está haciendo el código, qué información está registrando, ¿Está enviando información navegación web u otro tipo de información? Es imposible de saber. En el caso del código abierto, también conocido como “software libre” es completamente público, y este se puede revisar línea por línea y saber qué hace el software y como lo hace.
SI LO QUIERES BIEN HECHO HAZLO TÚ
Si bien completar un proyecto de código abierto es un logro en sí mismo, su verdadero potencial reside en la naturaleza colaborativa de esta comunidad. Plataformas como GitHub permiten compartir el código, no solo para su revisión y detección de errores, sino también para que otros puedan realizar mejoras, modificaciones o incluso utilizarlo como base para nuevas ideas.
¿Te encuentras con un bug molesto? ¡Tú puedes ser la solución! Descarga el código, identifica el problema, realiza las modificaciones necesarias, sube el código actualizado y envía una solicitud para que se integre al programa original. De esta manera, no solo resuelves el problema para ti, sino también para todos los usuarios futuros.
El código abierto promueve una comunidad donde el apoyo mutuo, sin esperar nada a cambio, es el valor central. Cada contribución, sin importar su tamaño, contribuye a la evolución y mejora del software.
NO TODOS TENEMOS EL TIEMPO
Crear un programa desde cero es una tarea titánica. Requiere una gran cantidad de tiempo, recursos y conocimientos especializados. No todos los proyectos cuentan con la capacidad para embarcarse en un desarrollo de estas características. Afortunadamente, el software libre surge como una alternativa que facilita enormemente este proceso.
¿Necesitas mejorar tu programa o tu programa debe ser compatible con un nuevo dispositivo electrónico? Existe una librería de software libre que te puede ayudar. El software libre se ha convertido en un pilar fundamental en el desarrollo de software, presente en multitud de programas y servicios que utilizamos a diario. De hecho, sistemas operativos como Windows, macOS y Linux se basan en gran medida en software libre.
LA BONDAD NO DURA PARA SIEMPRE
Si bien este ecosistema posee un gran potencial, su sostenibilidad depende del compromiso y el tiempo que dediquen las personas a mantener sus librerías y utilidades. Lamentablemente, el entusiasmo puede disminuir, las prioridades cambian y el tiempo es un recurso limitado. Esto puede ocasionar que el grupo de colaboradores se reduzca gradualmente, hasta llegar a un punto donde solo una persona, con una fuerte motivación, sostenga el proyecto sin recibir compensación alguna.
EL DÍA QUE EL SISTEMA FALLÓ
La utilidad XZ, diseñada para comprimir datos y optimizar el almacenamiento y la transferencia servidor-cliente, presentó un comportamiento inesperado durante las pruebas de optimización realizadas por Andrés Freud. Al consumir recursos de forma inusual, Freud descubrió la causa del problema:
Al ejecutar "sshd", la herramienta para conexiones remotas, se utilizaba la librería interna "liblzma". Al conectarse a un servidor remoto, se generaba un archivo camuflado como documento de prueba. Este archivo, en realidad, modificaba el código base de "liblzma", creando una puerta trasera en la conexión y otorgando acceso ilimitado al servidor remoto.
Esta grave vulnerabilidad, catalogada como crítica por CVE (una página web dedicada al monitoreo y categorización de vulnerabilidades en internet), ponía en riesgo la seguridad de los sistemas afectados.
¿CÓMO PASÓ?
Detrás de la fachada vibrante del desarrollo web, existe un mundo menos glamoroso pero esencial: la compresión de datos. XZ Utils, una biblioteca que cumple esta función, suele pasar desapercibida, considerada tan necesaria como aburrida. Esta característica la ha convertido en un proyecto solitario durante años, mantenido únicamente por Lasse Collin, quien ha dedicado su tiempo y esfuerzo sin remuneración ni reconocimiento alguno.
La realidad del desarrollo de software es que los proyectos, incluso los más importantes, pueden verse afectados por cambios en las prioridades o la motivación de sus creadores. Imaginemos ahora el peso que recae sobre una sola persona al ser responsable de una biblioteca fundamental para el funcionamiento de sistemas operativos a nivel global.
La historia de XZ Utils es un recordatorio de la importancia del trabajo silencioso que sustenta nuestra vida digital. Detrás de cada herramienta que utilizamos, hay personas dedicadas que invierten su tiempo y talento para que todo funcione sin problemas. Es crucial reconocer y valorar el trabajo de estos individuos, incluso aquellos que operan en áreas menos visibles del desarrollo web.
Este ataque quedo plasmado en una cadena de email usada para soporte de ZX utils, aquí podemos ver un resumen de estos mismos:
Primer paso
Un usuario llamado Dennis Ens pregunta si ZX Utils sigue siendo actualizado para que sea compatible con el lenguaje de programación JAVA.
A simple vista, la pregunta puede parecer inofensiva. Sin embargo, al analizar el tono y la forma en que se realizó la petición, surgen sospechas de que su objetivo real era sobrecargar al desarrollador y generarle estrés.
Tras un intercambio donde el desarrollador deja claro que, aunque quiere ayudar le es imposible debido a temas personales y de salud.
Segundo paso
El mismo usuario Dennis Ens empieza a mencionar a otro usuario JIA TAN, mismo que empieza a ayudar de manera legítima, dándole un segundo aire al proyecto.
Para este momento JIA TAN es un co-mantenedor honorario, mientras que el desarrollador original estaba siendo hostigado con constantes peticiones de soporte.
Tercer paso
Eventualmente, Lasse Collin se retira temporalmente del proyecto, dejando a JIA TAN como único desarrollador. Así dejando JIA TAN con supervisión casi nula, dando la oportunidad de agregar código malicioso en la librería.
JIA TAN
Es un usuario de la página github activo por años, considerando como alguien confiable. Hasta el momento no se sabe si JIA TAN es un agente solitario o un agente gubernamental. Por otro lado, el código malicioso que fue agregado está hecho de tal manera que solo el hacker puede hacerlo funcionar, limitando así el estudio forense necesario para aprender más sobre el objetivo, como se planteaba ejecutar o quien lo hizo.
CONCLUSIÓN
Esta situación pone en duda el nivel de seguridad que tienen los sistemas operativos y otros programas que usamos a diario y otros que se usan con el objetivo de cuidar nuestra información. También traerá un nuevo nivel de escrutinio a el software de código abierto, el problema será que el software de código abierto es una de las pocas herramientas que tenemos en contra de la constante erosión de la privacidad que el internet sufre actualmente.
Comments