Menu Close

Vulnerabilidad crítica en Linux: desafíos para la seguridad de código abierto

El pingüino Tux es la mascota de Linux, un sistema operativo que nació en 1991. Wikimedia Commons

Hace apenas un mes saltaba la noticia de la aparición de una vulnerabilidad crítica en sistemas Linux que ponía en riesgo la seguridad de millones de ordenadores en Internet.

Nos referimos a un sistema operativo de código abierto (open source), lo que quiere decir que su código fuente está disponible de manera pública. Esto permite que cualquier persona pueda estudiar su código, modificarlo e, incluso, distribuirlo. Normalmente, nos acostumbramos a trabajar sobre una distribución (como Debian, Ubuntu, Fedora, Red Hat…), que es una especie de “adaptación” de Linux. Todas las adaptaciones comparten la misma base: el núcleo o kernel de Linux.

Linuxmag / Wikimedia Commons
Linus Torvalds, principal autor del kernel de Linux. CC BY

A diferencia de los sistemas operativos propietarios como Windows o macOS, donde el código fuente es un secreto guardado por las empresas que los desarrollan, Linux se basa en la colaboración y la transparencia. Esta característica fundamental ha sido tanto su mayor fortaleza como su mayor desafío en términos de seguridad.

La transparencia del código abierto permite una auditoría constante por parte de una amplia comunidad de desarrolladores, lo que garantiza su calidad y la detección rápida de posibles vulnerabilidades.

Sin embargo, esta misma transparencia también puede ser aprovechada por usuarios malintencionados para intentar insertar código malicioso, como ha sucedido recientemente con el kernel de Linux.

Descubierta una puerta trasera

El kernel de Linux, software que constituye la parte fundamental de cualquier sistema operativo, actúa como intermediario entre el hardware y el software, garantizando estabilidad, seguridad y eficiencia. Sus componentes, como el administrador de memoria y el gestor de procesos, optimizan el uso de recursos y la ejecución de aplicaciones.

Uno de estos componentes es XZ Utils (anteriormente conocido como LZMA Utils), una colección de utilidades de compresión y descompresión de datos diseñadas para sistemas Linux, que utilizan el algoritmo de compresión XZ/LZMA.

Un desarrollador de Microsoft, Andrés Freund, notó que los inicios de sesión eran más lentos de lo habitual: 500 ms más lentos. Estos fallos le hicieron sospechar y seguir buscando hasta encontrar el error.

El código malicioso se encontraba en versiones beta de distribuciones Linux muy populares, como Red Hat o Debian. Aparentemente, estas versiones no se estarían utilizando en entornos de producción reales. Tras este hallazgo, tanto Red Hat como Debian emitieron comunicados de alerta sobre el peligro potencial.

El pasado 23 de febrero, se introdujo código ofuscado en el repositorio de XZ Utils, que se comportaba como una puerta trasera (secuencia especial del código de programación mediante la cual se pueden evitar los sistemas de seguridad del algoritmo para acceder al sistema).

Comunicado de Andres Freund en la red social Mastodon, el 29 de marzo de 2024, informando de su descubrimiento.

Al día siguiente, en una actualización, el script de instalación se volvía malicioso al insertarse en funciones utilizadas del servicio de conexión remota SSH o Secure Shell, un protocolo cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada..

El desarrollador JiaT75 fue responsable de estos cambios. Tras haber colaborado altruistamente con el proyecto XZ Utils durante varios años, aprovechó la confianza generada en la comunidad open source para realizar estas acciones sin levantar sospechas.

Infiltrado con malas intenciones

Si investigamos un poco sobre este usuario, podemos ver que comenzó con su perfil de GitHub el 26 de enero del 2021. Participó con otros proyectos durante más de un año antes de empezar a colaborar en el repositorio de XZ Utils. No fue hasta mayo del 2022 cuando se pueden apreciar sus primeras aportaciones.

La identidad real de JiaT75 ha suscitado preocupantes teorías, incluida la posibilidad de que no sea un cracker aislado, sino parte de un grupo respaldado por algún gobierno.

Este grupo habría construido cuidadosamente un perfil como desarrollador de código abierto hasta convertirse en mantenedor del proyecto XZ Utils, solo para utilizar su posición para infiltrarse en millones de máquinas a través de la puerta trasera.

En cualquier caso, aunque no hay pruebas concluyentes que respalden esta hipótesis, la complejidad y la meticulosidad del ataque sugieren la participación de actores con recursos y conocimientos significativos en el ámbito de la ciberseguridad, el desarrollo de software y los proyectos open source. El cóctel perfecto para lograr su cometido.

Una comunidad que colabora frente a las amenazas

La infiltración de un desarrollador y la inserción gradual de código a lo largo del tiempo ha sorprendido a todos y ha dejado al descubierto una realidad preocupante: es la primera vez que se introduce código malicioso en Linux de esta manera.

Esta novedad plantea distintas preguntas sobre la seguridad del ecosistema de código abierto y la forma en que se abordan los riesgos emergentes.

Mapa conceptual del software libre. VARGUX / Wikimedia Commons, CC BY

¿Cómo se pueden prevenir estos ataques en el futuro? La respuesta requiere una evaluación detallada de los procesos de desarrollo. Se necesitan medidas más rigurosas de supervisión y validación del código para detectar vulnerabilidades antes de que afecten a los usuarios finales.

Este incidente nos recuerda los desafíos constantes que enfrenta la seguridad de la información en la era digital. El movimiento del software libre ha transformado nuestra forma de utilizar la tecnología, en la que destaca la colaboración global y una actitud proactiva para proteger nuestras infraestructuras digitales de amenazas cada vez más sofisticadas.

Want to write?

Write an article and join a growing community of more than 184,600 academics and researchers from 4,975 institutions.

Register now