Jordi Pérez Colomé / El País de Madrid
“Encontré accidentalmente un problema de seguridad mientras hacía pruebas de rendimiento de cambios”, escribió el ingeniero Andrés Freund en la red social Mastodon. Ese hallazgo casual impidió que progresara una de las operaciones más largas y sofisticadas para obtener acceso ilegítimo a millones de dispositivos de todo el mundo.
El mensaje llevaba a un enlace donde Freund explicaba cómo había encontrado “un puñado de síntomas raros” al actualizar un programa. Le llamó la atención que usaba más capacidad de su procesador y que, sobre todo, tardaba medio segundo más en acceder. Ese medio segundo levantó sus sospechas y le permitió descubrir el trabajo oscuro durante más de dos años de lo que presuntamente era una agencia de inteligencia estatal.
“Es muy poco probable que haya sido obra de aficionados. No había recompensas inmediatas”, dice Lukasz Olejnik, investigador y consultor independiente en ciberseguridad y autor del libro Philosophy of Cibersecurity [sin traducción al español]. “El tiempo dedicado a esta operación de engaño, la sofisticación del sistema de puerta trasera y su código, todo indica hacia una organización o agencia que puede permitirse un proyecto así. Es mucho más probable que se haya hecho pagando sueldos”.
El ataque era de los llamados de la cadena de suministro, que afectan al software que sostiene los programas más conocidos y habituales. En este caso, el objetivo era una herramienta de compresión usada en Linux, un sistema operativo gratis y de código abierto. Esa herramienta se usa en millones de máquinas. El objetivo del ataque es similar a crear una puerta trasera con una llave especial, que solo tenían ellos, para acceder a cualquier edificio del mundo que tuviera esa entrada.
Este sistema se mantiene gracias a desarrolladores voluntarios que dedican horas a mantener y actualizar distintos programas. Este se llamaba XZ Utils. Hace algo más de dos años el atacante empezó a colaborar con el programador que estaba al cargo de actualizar este software. El encargado de actualizar y responder por correo a peticiones de retoques de otros desarrolladores estaba sobrepasado. Y así, una parte del ataque consistía en pura ingeniería social: convencerlo de que dejara parte de sus tareas a la persona detrás de una cuenta de alguien que se hacía llamar Jia Tan.
Si el atacante lograba la confianza del encargado de ese código podría, con el tiempo, colocar su código malicioso. Si no hubiera sido detectado, este software habría sido desplegado en millones de servidores y dado un acceso privilegiado. No está claro si la intención era usarlo para entrar en una o varias máquinas específicas o un ataque más masivo.
A pesar de que el código y el método requieren de extraordinarias habilidades informáticas, el control de estos programas depende a menudo de desarrolladores estresados y con sus problemas. En un hilo de mensajes, el encargado admite no llegar a todo: “No he perdido el interés, pero mi capacidad de implicarme se ha visto bastante limitada, en su mayoría debido a problemas de salud mental a largo plazo, pero también por algunas otras razones. Recientemente, he colaborado fuera de lista con Jia Tan en XZ Utils y, quizás, él tendrá un papel más importante en el futuro, veremos. También es importante tener en cuenta que este es un proyecto de afición sin remuneración”, escribe el encargado, cuyas únicas nuevas explicaciones han sido que de momento no responderá a periodistas “porque primero” necesita “entender la situación lo suficientemente a fondo”.
“Hay un montón de gente quemada en el software, tanto en el de código abierto como en el comercial. En este caso puede ser útil, pero no un factor decisivo”, dice Olejnik. “Es una prueba contundente de que incluso el software de nicho u oscuro, semihuérfano, puede ser un asunto de seguridad nacional e internacional. Es un coste oculto del software. Por otro lado, nadie puede culpar al mantenedor de XZ, no hay una amplia elección de desarrolladores para este tipo de software”, añade.
Es probable que otras cuentas falsas presionaran al encargado para que cediera antes su labor a Jia Tan. El caso revela a la vez un éxito y un agujero de la comunidad que mantiene buena parte del código de toda nuestra infraestructura digital. El agujero es que encontrar el eslabón débil es relativamente fácil. El éxito es que el código está disponible y accesible para que alguien como Andres Freund pueda detectar la trampa y hacerse famoso.
Un golpe de suerte
El propio Freund cree que esta vez tuvieron suerte: “No es que crea que no hice nada nuevo. Lo hice. Lo que quiero decir es que tuvimos una cantidad irracional de suerte y no podemos solo confiar en algo así de ahora en adelante”, escribió en Mastodon. El ataque es especial por la combinación de factores, pero los bloques de software de código libre sobre los que se basa internet han sido atacados en otras ocasiones, también por presuntas agencias de inteligencia. Es probable de hecho que haya otros casos similares en marcha o planteamiento. Con código cerrado también ha habido casos extremadamente célebres.
Una cuenta célebre de X (antes Twitter) dedicada al código malicioso ha hecho un meme viral de agradecimiento a Freund. “La puerta trasera de xz la pilló un ingeniero de software de Microsoft. Se dio cuenta de una latencia de 500 milisegundos y pensó que había algo raro. Este tipo es el gorila de espalda plateada de los frikis. El puto amo de internet.”
Tiene aún más sentido este otro meme que muestra cómo, en este caso, el software esencial del mundo era “mantenido sospechosamente por un actor pagado por el Estado en horas de oficina”. El dibujo original en que se basa ese meme es obra del dibujante Randall Munroe y en la leyenda pone algo parecido a lo que ocurre en la realidad: “Un proyecto que una persona cualquiera de Nebraska lleva manteniendo desde 2003, sin que nadie se lo agradezca”.