Los héroes anónimos del código, un problema de fondo que revela la fragilidad del software moderno

Elígenos como tu fuente preferida en Google.
Muchos repositorios están mantenidos por un programador que puede enfrentarse a ataques, al desgaste psicológico o a una carga inasumible de trabajo para una sola persona.
Muchos de los servicios que se utilizan habitualmente están respaldados y mantenidos por un solo desarrollador o un pequeño grupo de personas desconocidas prácticamente, pero que diariamente defienden el proyecto con el que comenzaron.
Hay innumerables ejemplos de esto, lo que se relaciona directamente con lo que se conoce en la industria como el bus factor –el factor autobús, según la traducción literal al castellano–, que ilustra de la mejor forma posible lo que ocurre a nivel global en toda la industria.
Si un creador o mantenedor de un servicio usado por numerosos negocios deja de ofrecer soporte para este, toda la cadena podría caer; más aún, si hay un ciberataque sobre el mismo, las consecuencias podrían derivar en una cadena de vulnerabilidades para muchísimas máquinas.
Al mismo tiempo que esto representa la grandísima voluntad de muchos desarrolladores que, probablemente, no tengan ningún tipo de ingreso a cambio, también ilustra perfectamente cómo el software moderno es realmente frágil si el mismo decide dejar de mantenerlo.
Hay varios casos que pueden ejemplificar a la perfección esto mismo, como son faker.js, XZ Utils y otros servicios que sufrieron ciberataques o fallos ante los que no pudieron reaccionar, por no contar con un equipo adecuado en número para ofrecer una respuesta rápida, e incluso prevenir el problema.
Los riesgos más evidentes son una reacción en cadena en toda la industria, afectando a sectores críticos como la computación en la nube, las herramientas de desarrollo o, directamente, productos empresariales que mantienen una dependencia con este tipo de software.
Mantenedores agotados, enfadados o manipulados, las principales causas
Según las diferentes estimaciones, aproximadamente entre el 70% y el 90% de todo el software comercial actual está relacionado con programas de código abierto; es decir, que no es escriben desde cero.
Si una sola persona o un grupo de personas muy reducido son los que se dedican a mantener estos servicios open source, la principal consecuencia directa puede ser el burnout, un desgaste psicológico que pasa factura al desarrollador y, posteriormente, a todos los que dependen de él.
Aproximadamente la mitad de toda a infraestructura global depende de librerías de este tipo, mantenidas por un reducido número de personas que pueden enfermar, cansarse de llevar a cabo este trabajo o, directamente, no contar con el apoyo suficiente de la comunidad para dar abasto a todas las necesidades.
En este mundo tan vital para el sistema global ha habido casos que han acabado afectando a toda la industria. El primero de estos en 2016, con left-pad (npm), mantenido por una sola persona, Azer Koçulu, con una media de 1,4 millones de descargas semanales.
El autor decidió ese mismo año retirar su código de 11 líneas tras una disputa legal, lo que supuso la paralización a nivel mundial de compilaciones de software, afectando a actores de la cadena de suministros como Babel, React y otros proyectos corporativos.
Hubo miles de negocios que tuvieron que pararlo todo de forma inmediata y modificar sus políticas para prohibir la eliminación no programada de paquetes con dependencias activas para salvar sus compañías.
Tan solo 2 años más tarde ocurrió prácticamente lo mismo con event-stream (npm), mantenido por Dominic Tarr, con 2 millones de descargas semanales, aunque en este caso se cedió el proyecto a un desconocido conocido como right9ctrl, lo que derivó en la inyección de malware para el robo de bitcoin, al menos una cantidad de 200.000 dólares.
En este caso, la fatiga acumulada del mantenedor principal le llevó a confiar en un ciberdelincuente que aprovechó su repositorio para infectar diferentes máquinas y robar dinero a sus usuarios.
Y también sucedió lo mismo con otros como ua-parser-js y faker.js (npm), respectivamente en 2021 y 2022, ambos con decenas de millones de descargas semanales. En el primero, provocando el secuestro de credenciales e inyección de mineros de criptomonedas; en el segundo, mediante un sabotaje intencional del propio autor como protesta al introducir un bucle infinito en el código.
Más recientemente, en 2024, el caso más popular fue el de XZ Utils, un servicio prácticamente presente en todos los servidores que usan distribuciones de Linux, como Fedora, Debian y Arch.
Este último supuso una campaña de ingeniería social durante 2 años que se dedicó a obtener permisos desde un mantenedor que estaba completamente agotado para introducir una puerta trasera que permitiera ejecutar código de forma remota.
Es probablemente uno de los ataques más sofisticados y duraderos de ingeniería social de los últimos años. Un actor de amenaza conocido como Jia Tan se dedicó a controlar diferentes cuentas para hundir psicológicamente a Lasse Collin, el único mantenedor de este proyecto, con cargas de trabajo inasumibles y problemas psicológicos derivados de estas.
Tras conseguir los permisos de administración, la trampa ya estaba totalmente preparada y logró acceder de forma remota a los servidores Linux mediante OpenSSH. Curiosamente, el ataque lo descubrió el ingeniero Andre Freund al investigar una anomalía de latencia de tan solo 500 milisegundos en las conexiones SSH.
Más allá de estos casos, hay que tener en cuenta que la culpa no es exclusiva de estos mantenedores, sino de toda la comunidad, también de grandes negocios que aprovechan este tipo de software sin siquiera aportar una remuneración para que el proyecto siga adelante sin complicaciones financieras.
Adicionalmente, algunos negocios no tienen ningún tipo de plan por si fallan librerías importantes del mundo del código abierto que funcionan como eje vertebrador de todo el sistema: si una cae, puede provocar una reacción en cadena que acaba con toda la industria al mismo tiempo.
No obstante, también hay cuestiones como los conflictos políticos o las sanciones internacionales que acaban afectando a este tipo de proyectos, como ocurrió en 2024 entre los mantenedores del kernel de Linux, que tuvieron que enfrentarse a una pérdida repentina de programadores por cuestiones totalmente ajenas a fallos en el código.
En consecuencia, el software se convierte en una de las piezas más frágiles de toda la cadena y, con el paso de los años, se puede acumular lo que se conoce como deuda técnica, que no es más que la falta de mantenimiento al cabo del tiempo.
Aunque pueda parecer una cuestión baladí en el corto plazo, los errores continúan acumulándose y esto puede derivar en fallos críticos. Como ya has visto, también en el robo masivo de credenciales o de dinero a los usuarios y empresas que usan estos.
