🔥Adquiere tu membresía:  acceso a todos los cursos, videos eliminados, contenidos protegidos, manuales y más. >> Ver Más

Desarrollador corrompió intencionalmente bibliotecas ampliamente utilizadas y afectó miles de aplicaciones

Los usuarios de las populares bibliotecas de código abierto ‘colors’ y ‘faker’ quedaron atónitos después de ver sus aplicaciones, usar estas bibliotecas, imprimir datos incomprensibles y dañarse.

Algunos supusieron que las bibliotecas de NPM se habían visto comprometidas, pero resulta que hay mucho más en la historia.

El desarrollador de estas bibliotecas introdujo intencionalmente un ciclo infinito que bloqueó  miles de proyectos  que dependen de ‘faker’ y ‘colors’.

La biblioteca colors recibe más de 20 millones de descargas semanales solo en npm y cuenta con casi 19,000 proyectos que dependen de ella. Mientras que faker  recibe más de 2.8 millones de descargas semanales en npm y tiene más de 2500 dependientes.

¿Revolución del código abierto?

El desarrollador detrás de las populares bibliotecas NPM de código abierto ‘colors’ (también conocida como colors.js en GitHub) y ‘faker’ (también conocida como ‘faker.js’ en GitHub) actuó extrañamente. Él introdujo intencionalmente actualizaciones maliciosas que afectaron a miles de aplicaciones que dependen de estas bibliotecas. 

Ayer, los usuarios de proyectos populares de código abierto, como  el kit de desarrollo en la nube de Amazon (aws-cdk), quedaron atónitos al ver que sus aplicaciones imprimían mensajes incomprensibles en su consola.

Estos mensajes incluían el texto ‘LIBERTY LIBERTY LIBERTY’ seguido de una secuencia de caracteres no ASCII:

Los usuarios quedaron atónitos al ver datos basura impresos por proyectos ‘faker’ y ‘colors’ 

Inicialmente, los usuarios sospecharon que las bibliotecas ‘colors’ y ‘faker’ utilizadas por estos proyectos estaban comprometidas. Ellos pensaron que había ocurrido algo similar como lo que pasó con las bibliotecas coa, rc y ua-parser-js. Estas bibliotecas fueron secuestradas el año pasado por atacantes malintencionados.

Pero, de hecho, fue el desarrollador detrás de ‘colors’ y ‘faker’  que parece haber subido intencionalmente   el código responsable de los errores

El desarrollador, llamado Marak Squires, agregó un “new American flag module” a la biblioteca colors.js ayer en la versión  v1.4.44-liberty-2 que luego  envió a GitHub y npm.

El ciclo infinito introducido en el código se ejecuta indefinidamente. Este imprime la secuencia de caracteres no ASCII sin sentido en la consola para cualquier aplicación que use ‘colors’.

Actualización maliciosa de colors.js realizada por ‘Marak’ 

Del mismo modo, una versión saboteada ‘6.6.6’ de faker fue publicada en GitHub y MNP.

Burlas

“Nos ha llamado la atención que hay un error de zalgo en la versión de colors v1.4.44-liberty-2”, se burló el desarrollador.

“Debes saber que estamos trabajando en este momento para solucionar la situación y pronto tendremos una resolución”.

El texto Zalgo se refiere a ciertos caracteres que no son ASCII que aparecen con fallas.

La razón detrás de esta acción maliciosa por parte del desarrollador parece ser una represalia. Es una protesta contra las megacorporaciones y los consumidores comerciales de proyectos de código abierto que dependen en gran medida del software gratuito e impulsado por la comunidad. Sin embargo, según el desarrollador, no retribuyen a la comunidad.

En noviembre de 2020, Marak advirtió que ya no apoyaría a las grandes corporaciones con su “trabajo gratuito”. Asimismo, afirmó que las entidades comerciales deberían considerar bifurcar los proyectos o compensar al desarrollador con un salario anual de “seis cifras”.

“Respetuosamente, ya no voy a apoyar a Fortune 500 (y otras empresas de menor tamaño) con mi trabajo gratuito. No hay mucho más que decir”, escribió anteriormente el desarrollador .

“Deben tomar esto como una oportunidad para enviarme un contrato anual de seis cifras o bifurcar el proyecto y hacer que alguien más trabaje en él.

Hacktivismo

Curiosamente, a partir del domingo, notamos que el desarrollador también modificó la página README para el repositorio de GitHub de ‘faker’ para hacer referencia a  Aaron Swartz  al afirmar: “¿Qué pasó realmente con Aaron Swartz?”

Swartz fue un programador, empresario y reconocido hacktivista estadounidense que, tras una batalla legal,  se suicidó .

En un esfuerzo por hacer que la información sea de libre acceso para todos, el hacktivista descargó millones de artículos de revistas de la base de datos JSTOR presente en la red del campus del MIT. Swartz supuestamente rotó sus direcciones IP y MAC repetidamente para evadir los bloqueos tecnológicos establecidos por JSTOR y MIT.

En el proceso de hacer esto, Swartz pudo haber infringido la Ley de Abuso y Fraude Informático y enfrentó cargos criminales. Sus delitos podrían haberle generado penas de hasta treinta y cinco años de prisión.

Confusión y problemas

Las audaces acciones de Marak generaron muchos problemas y atrajeron respuestas mixtas.

Algunos miembros de la comunidad de software de código abierto han elogiado las acciones del desarrollador, mientras que otros están consternados por ello.

“Aparentemente, el autor de ‘colors.js’ está enojado por no recibir un pago… Así que decidió imprimir la bandera estadounidense cada vez que se carga su biblioteca… WTF”, tuiteó un usuario. 

Algunos lo llamaron  un ejemplo de “otro desarrollador de código abierto que se vuelve deshonesto”. Por su parte, el experto en seguridad,  VessOnSecurity, calificó la acción de ” irresponsable”, afirmando:

“Si tienes problemas con las empresas que utilizan tu código gratuito de forma gratuita, no publiques el código gratuito. Al sabotear tu propio material ampliamente utilizado, perjudicas no solo a las grandes empresas sino a cualquiera que lo use. Esto induce a las personas a no actualizar, porque las cosas podrían dañarse”.

Según informes, GitHub suspendió la cuenta del desarrollador. Y eso también ha causado reacciones mixtas:

“¿Eliminar tu propio código de [GitHub] es una violación de sus Términos de servicio? ¿WTF? Esto es un secuestro. Necesitamos comenzar a descentralizar el alojamiento del código fuente del software libre”, respondió  el ingeniero de software Sergio Gómez.

“Nunca sé qué pasará, pero estoy alojando todos mis proyectos en la instancia privada de GitLab solo porque me pueden pasar cosas como esta. Nunca confíes en ningún proveedor de servicios de Internet”, tuiteó otro.

“¿Marak se encontró con faker y colors construyendo cientos de proyectos, y esperabas que no pasara nada?” declaró un desarrollador llamado Piero.

Log4j

Ten en cuenta que el sorprendente movimiento de Marak sigue a la reciente  debacle de Log4j que incendió Internet .

La biblioteca de código abierto Log4j se usa ampliamente en una amplia gama de aplicaciones Java, incluidas las desarrolladas por corporaciones y entidades comerciales.

Pero, poco después de la explotación masiva de la vulnerabilidad de Log4shell, los mantenedores de la biblioteca de código abierto trabajaron sin compensación durante las vacaciones para parchear el proyecto, a medida que se descubrían más y más CVEs.

Surgieron preocupaciones sobre cómo las grandes empresas estaban acostumbradas a ” explotar ” el código abierto. Estas lo usan incesantemente pero sin devolver lo suficiente para apoyar a los voluntarios no remunerados que sostienen estos proyectos críticos al renunciar a su tiempo libre.

Algunos también criticaron a los internautas y a los cazarrecompensas de errores que acosaban a los mantenedores de Log4j que ya estaban “trabajando sin dormir en medidas de mitigación; correcciones, documentos, CVE, respuestas a consultas, etc.” 

“Las respuestas al autor de colors.js/faker.js que saboteó sus propios paquetes realmente son dignas de análisis. Estas revelan cuántos desarrolladores corporativos creen que tienen derecho moral al trabajo no remunerado de los desarrolladores de código abierto sin contribuir con nada a cambio”, escribió un usuario de Twitter.

El tiempo dirá cuál es el futuro del software de código abierto, con respecto al problema de la sostenibilidad del código abierto .

Mientras tanto, los usuarios de proyectos NPM ‘colors’ y ‘faker’ deben asegurarse de que no están usando una versión insegura. Cambiar a una versión anterior de colors (por ejemplo 1.4.0) y faker (por ejemplo 5.5.3) es una excelente solución.

Deja un comentario

Adquiere tu Membresía Anual Wiser

Adquiere tu Membresía Anual Wiser y adquiere grandes beneficios

Más información