Vulnerabilidad FakerJS

Que ocurrió con Colors.js y Faker.js dos de las librerías NPM más populares del mundo. ¿Desaparecieron? 😮

· 4 min de lectura
Vulnerabilidad FakerJS

FakerJS es una librería de JavaScript que tiene más de 27mil descargas semanales y es usada en múltiples proyectos de código.

Marak Squires, habría corrompido a propósito las dos bibliotecas de código abierto en GitHub a modo de protesta. Lo que quiso el desarrollador con esto, según lo que se conoce hasta ahora, ha sido 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".

¿Qué está pasando?

Colors.js y Faker.js son dos de las librerías NPM más populares. Dos proyectos de código abierto de ‘Node Package Manager’, gestor de paquetes de NodeJS, un popular entorno de JavaScript. Pese a la gran reputación de estas librerías abiertas, de la noche a la mañana miles de proyectos han dejado de funcionar al depender de estas librerías.

La causa fue que el creador de FakerJS, de forma intencionada y a modo de protesta, agregó un commit que añadía cinco línea de código. Una actualización bajo el nombre de «Agregar nuevo módulo de la bandera estadounidense».

Tres líneas para un ‘console.logs’ donde se mostraba una cadena con el mensaje de ‘LIBERTY, LIBERTY, LIBERTY’ y un archivo Léeme donde enlazaba a información sobre el proyecto ‘Qué le pasó a Aaron Swartz’.  

Agregó a su código un comentario con la pregunta “¿Qué le pasó a Aaron Swartz?”, entre otras cosas.

Aaron Swartz fue un activista de Internet, enjuiciado por el gobierno norteamericano, la motivación estaría pues en una reivindicación de la figura de Swartz, fundador de Reddit y de la especificación RSS que decidió suicidarse en 2013.

Ahora Marak tiene una versión de los hechos y la plataforma otra bien diferente. Y otras voces se han planteado si los usuarios de GitHub son usados como empleados por la plataforma y se ha reabierto la discusión sobre software, propiedad y código abierto.

El mismo Marak Squires dice que no quiere apoyar más tiempo plataformas como esta con su trabajo hecho de forma gratuita. Hay que recordar que GitHub es propiedad de Microsoft.

En noviembre de 2020, Marak advirtió a través de una publicación de GitHub, y archivada en web.archive.org, que ya no apoyaría a las grandes corporaciones con su "trabajo gratuito" y que las entidades comerciales deberían considerar la posibilidad de compensar al desarrollador con un salario anual de "seis cifras".

"Ya no voy a apoyar a las empresas de Fortune 500 (ni a otras de menor tamaño) con mi trabajo gratuito. No hay mucho más que decir", era lo que había advertido el desarrollador hace más de un año.

COLORS.js

En el caso de colors.js, sí parece que ya se ha actualizado a una versión que continúa funcionando. Colors.js tiene unos 22,4 millones de descargas semanales, mientras que faker.js tiene 2,5 millones.

Afortunadamente para los miles de desarrolladores que trabajan con la popular librería de Marak Squire, parece que la última actualización corrige el «bug». Para faker.js, la solución pasa por volver a una versión anterior a la actualización, la 5.5.3.«Por favor, sepa que estamos trabajando en este momento para solucionar la situación y tendremos una resolución en breve», describía Squire, seguramente de manera sarcástica.

Polémica

Como respuesta, GitHub tomó acción y suspendió la cuenta del autor y devolvió los repositorios a una versión estable antes de que se realicen los cambios dañinos.

Esta es una acción que está permitida dentro de las políticas y condiciones que GitHub tiene para sus usuarios, afectaría al desarrollador de acceder a sus "cientos" de proyectos.

Esto ha llevado a otra disputa en redes sociales que básicamente a consistido en formular la pregunta de  ¿trata la plataforma a sus usuarios, que dan su trabajo gratis para otros, como si fueran empleados?

Es decir, un desarrollador puede compartir sus creaciones, pero parece que no puede fácilmente modificarlas ni eliminarlas sin sufrir repercusiones por ello.

Este incidente trae a discusión un tema de vital importancia y es la fragilidad que puede tener el ecosistema open source. Si bien, por años nos hemos beneficiado de proyectos open source como Angular y React, que tienen a empresas gigantescas como Google y Facebook detrás, hay otras iniciativas que dependen exclusivamente del patrocinio voluntario. Proyectos como VueJS, Django, Webpack, FastAPI entre otros, dependen de patrocinios para mantenerse con vida.

Esta misma fragilidad en las dependencias que es usada para construir nuestros sistemas también puede ser un problema de seguridad, como fue el caso del incidente con event-stream en el año 2018, cuando fue infectada con código malicioso. El ataque fue diseñado para afectar solamente a un proyecto en particular: Copay, una billetera electrónica de BitCoins.

Fuente

Plataforma de cursos gratis sobre programación

Artículos Relacionados

Métodos de Arrays en JavaScript
· 6 min de lectura
RxJS y Angular: Por qué y cómo usar.
· 5 min de lectura
Angular Scully
· 5 min de lectura
Microservicios ¿Cuál es su importancia?
· 5 min de lectura
Microfrontend
· 6 min de lectura