Se ha visto como tendencia creciente este año que desarrolladores sabotean deliberadamente sus propias bibliotecas de software como medio de protesta, convirtiendo el software en "protestware". O así es como se ha bautizado esta práctica.
Un desarrollador puede, por el motivo que sea, cambiar de opinión y hacer lo que quiera con su código fuente abierto. Y así pasar de tener un software a disposición de otras personas, a cambiarlo, modificarlo o eliminarlo por ejemplo, lo que puede resultar en que otros proyectos que usaban este software se ven modificados o dañados.
Por ejemplo, hace unas semanas, el desarrollador de la biblioteca de Python atomicwrites, Markus Unterwaditzer, eliminó temporalmente su código del popular registro de código PyPI (Python Package Index, que es el repositorio de software oficial para aplicaciones de terceros en el lenguaje de programación Python)) después de que el sitio dijera que exigiría la autenticación de dos factores a los mantenedores de ciertos proyectos.
We’ve begun rolling out a 2FA requirement: soon, maintainers of critical projects must have 2FA enabled to publish, update, or modify them.
— Python Package Index (@pypi) July 8, 2022
To ensure that these maintainers can use strong 2FA methods, we're also distributing 4000 hardware security keys!https://t.co/gcCNWSqBcU
El proyecto atomicwrites de Unterwaditzer se ajustaba a los criterios puestos y la cuenta de esta biblioteca de Python fue inscrita en la autenticación de dos factores. Unterwaditzer describió en un post que esto era "un movimiento molesto y con derecho para garantizar el cumplimiento de SOC2 para un puñado de empresas (a expensas de mi tiempo libre)" que dependen de su código.
Markus Unterwaditzer decidió eliminar su código del registro tras recibir un correo electrónico de PyPI en el que se le notificaba que su proyecto ahora requería una autenticación de dos factores. Tras borrarlo, volvió a subir el código para ser un proyecto nuevo que ya no necesita esta forma de autenticación en dos pasos. El proyecto atomicwrites de Unterwaditzer se descarga más de 6 millones de veces en un mes.
"hi, we've solved supply chain security by enforcing security policies on your free labor" -- wtf?? pic.twitter.com/oLmxgLmjyr
— Markus Unterwaditzer (@untitaker) July 8, 2022
Otras historias de protestware
A comienzos de este año también hubo un caso muy sonado. Un desarrollador de código abierto, Marak Squires o Marak en Twitter, denunciaba que la plataforma GitHub había cerrado sus cuentas y proyectos (cientos, según él), después de cambiar dos bibliotecas creadas por él mismo a una versión diferente. Las bibliotecas cambiadas eran utilizadas por muchas personas y se llaman 'colors' y 'faker'.
En principio parecía que las bibliotecas en npm (el sistema de gestión de paquetes por defecto para Node.js, que se ha convertido en el centro del intercambio de código JavaScript y también propiedad de Microsoft), habían sido comprometidas.
Pero luego resultó que el desarrollador de estas dos bibliotecas, Marak Squires, había introducido un "commit maligno". Resultó que el desarrollador de estas bibliotecas quiso, de forma intencionada, afectar a los miles de proyectos que dependen de 'colors' y de 'faker'. Lo que quiso el desarrollador con esto fue protestar contra las megacorporaciones y los consumidores comerciales de proyectos de código abierto que confían y usan ampliamente el software libre y comunitario pero que, según el desarrollador, luego "no devuelven nada a la comunidad".
Algunos compararon este hecho con otro incidente 2016 que rompió brevemente gran parte de Internet después de que el desarrollador del proyecto borrara su código ampliamente utilizado en señal de protesta. El desarrollador Azer Koçulu tuvo un problema de marca con la aplicación de mensajería Kik porque su paquete npm se llamaba "kik". Después de que npm se pusiera del lado de Kik en la disputa, Koçulu retiró todo su código -273 módulos en total, incluida la popularísima biblioteca Left-Pad- del registro npm.
En ese momento, el popular paquete de left-pad había acumulado más de 15 millones de descargas, y aún hoy la biblioteca sigue siendo descargada millones de veces por semana. Por ello, en marzo de 2016, desarrolladores de todo el mundo tuvieron problemas, ya que sus proyectos se rompieron porque el componente left-pad del que dependían sus aplicaciones ya no se podía encontrar.
Otro caso de este año data de la pasada primavera: en marzo de 2022, semanas después de que las tropas rusas entraran en territorio ucraniano, el popular proyecto npm node-ipc -descargado más de un millón de veces a la semana- comenzó a borrar las máquinas de presuntos desarrolladores rusos y bielorrusos. El desarrollador del proyecto, Brandon Nozaki Miller, supuestamente saboteó el código para corromper los ordenadores en los que estaba instalado.
Ver 2 comentarios