94

Creador corrompe repo con millones de usuarios: jaque al open-source

19647Puntos

hace 4 días

Curso de Backend con Node.js: API REST con Express.js
Curso de Backend con Node.js: API REST con Express.js

Curso de Backend con Node.js: API REST con Express.js

¡Aprende desarrollo backend con Node.js! Trabaja con rutas, servidores y middlewares de Express.js. Construye una API, manipula errores y haz validación de datos. Despliega tu aplicación a producción en Heroku. Conviértete en backend developer con Node.js junto a tu profesor Nicolas Molina.

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. El 5 de enero dejó de funcionar inesperadamente, lo que creó un efecto dominó en los proyectos que utilizaban esta librería. La causa fue que el creador de FakerJS, de forma intencionada y a modo de protesta, creó un commit llamado “endgame”, que hizo que la librería se averiara. 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, que se suicidó en el año 2013.

fakerJS

FakerJS no fue la única librería afectada, sino también otra llamada ColorJS (con millones de usuarios) creada por el mismo creador de FakerJS. En ella, añadió un ciclo infinito para corromper su funcionamiento y causar que genere caracteres extraños en los repositorios que la utilicen.

colorsJS

Como consecuencia, proyectos como Amazon Cloud Kit, NestJS, librerías de Azure y cientos de otros proyectos se vieron afectados y tuvieron que hacer reparaciones de emergencia.

¿Cuál fue la razón?

Se sabe poco de las verdaderas razones del creador de los repositorios, Marak Squires, para tomar estas medidas, pero el programador declaró abiertamente:

respetuosamente, ya no apoyaré a las empresas Fortune 500 con mi trabajo gratuito

screenshot

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. Marak respondió con el siguiente tweet:

tweet

Esta es una acción que está permitida dentro de las políticas y condiciones que GitHub tiene para sus usuarios.

tweet

Si embargo, GitHub cambió la descripción de este punto de una forma más elegante debido a la situación presentada.

La fragilidad del open source.

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 usamos 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.

Con una práctica de ingeniería social, un usuario se hizo pasar por contribuidor con buenas intenciones y aportó código útil dentro de la librería, pero internamente le inyectó código malicioso y, de repente, todos los proyectos que se apoyaban en ella se vieron afectados. Mucha presión cayó sobre el creador, dominictarr, quien aceptó una contribución externa y expresó que ya no seguiría manteniendo esa librería.

response

¿Entonces ya no uso dependencias?

Eso no es del todo posible, ya que la mayoría de nuestros sistemas funcionan sobre abstracciones y en una red de confianza, lo cual nos hace más ágiles y productivos. Sin embargo, es una clara muestra del efecto dominó que un error puede causar. El open source es un beneficio tanto para personas como para empresas, pero también necesita de apoyo. Es de interés de todos mantenerlo actualizado y seguro.

Una forma que tenemos como desarrolladores es contribuir con PRs, reportar issues, entre otras acciones, pero eso no es suficiente. Se necesita encontrar una manera de financiar el trabajo de los involucrados. GitHub recientemente creó un método para apoyar directamente a esos proyectos con el botón “Sponsor”. A esto se unen también plataformas como Open Collective, que tiene implementada una función para aportar a proyectos que consideramos valiosos y no queremos que se queden sin soporte algún día.

Me alegra mencionar que esto también despertó la conversación dentro del equipo de ingeniería de Platzi, donde estamos buscando la forma de apoyar a proyectos que nos ayudan a cumplir nuestra misión.

Dime en los comentarios ¿Te viste afectado por estas librerías? ¿Piensas que Github tomo las acciones correctas? ¿Qué opinas sobre la fragilidad del open source? 👇

Curso de Backend con Node.js: API REST con Express.js
Curso de Backend con Node.js: API REST con Express.js

Curso de Backend con Node.js: API REST con Express.js

¡Aprende desarrollo backend con Node.js! Trabaja con rutas, servidores y middlewares de Express.js. Construye una API, manipula errores y haz validación de datos. Despliega tu aplicación a producción en Heroku. Conviértete en backend developer con Node.js junto a tu profesor Nicolas Molina.
Nicolas
Nicolas
nicobytes

19647Puntos

hace 4 días

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
21

Este debate está fuerte en internet y una tendencia total. Agradable que lo menciones de forma imparcial, ya que en muchos sitios acusan a Marak, pero en mi opinión, pienso que en parte tiene razón, no apoyo las actuaciones que tomó, pero es una realidad que empresas de todo tipo y tamaño se aprovechan de su trabajo y mucho trabajo open source existente en internet y no aportan ni un “gracias”.
Es una situación que debería cambiar y bueno, esto no fue la mejor manera de hacerlo, pero seguro que marcará un hito.
En cuanto a determinar si GitHub actuó bien o mal, no voy a juzgar nada, solo puedo decir que en todas las plataformas los datos, la información y todo el contenido “privado” que alojamos en ellas, no es “muy nuestro” que digamos, es decir, podemos considerarlo nuestro, pero a final de cuentas son las plataformas las que deciden y tienen la ultima palabra de qué hacer o no, con ellos y en cierta medida con sus términos y condiciones estamos obligados a seguir las pautas que dicten, muchas veces son jueces morales, pero lamentablemente desde sus intereses y me parece no hay nada que hacer ante eso.

Hay que ver como resulta todo al final, por mi parte sin duda que este acontecimiento me llevará a ser más agradecido con el contenido open source. Buen post Nico 😉

6
17276Puntos
4 días

Las empresas no deben de aportar un gracias, la filosofía open source es hacer software libre: Libre de uso, libre de estudio, libre modificación y libre distribución. Existen otras licencias que se pueden usar si quieres que las empresas te agradezcan o te paguen.

Cualquier persona que ofrezca un servicio y use software de terceros, sea libre o no es responsable de revisar que cada versión a usar que use cumpla con sus estándares, con pruebas de seguridad, testing unitario, de integración, destructivo en al menos 2 entornos. Con todo y base de datos. Muchas licencias usadas en proyectos open source vienen con descargo de responsabilidad total.

¿Qué es lo peor que pudo haber pasado con las proyectos que usaban el proyecto FakerJs? Nada, si lo usabas podías publicar y modificar la versión, hacer revert a la última estable, etc.

La fragilidad del Open Source: Cualquiera que menciones no es exclusiva del Open Source, pues detrás del Open Source y de las empresas hay personas. Aún más si un proyecto Open Source acaba, puedes mantenerlo tú, si una empresa que te vendía software quiebra, ni modo toca buscar otra e integrar desde 0.

¿Entonces ya no uso dependencias? Seria como decir que voy a armar un robot rover, pero yo voy a diseñar los módulos electrónicos, yo voy a idear mis propios protocolos de comunicación, drivers e interfaces. Si quieres estancarte en el tiempo no uses dependencias.

9
4 días

Aaron no comparto tu opinión, usar una herramienta creada por un tercero que te facilita el trabajo, a lo mínimo debería tener como respuesta un “gracias”, normas de cortesía le llaman.

Y tomando en cuenta este caso, sí, toda la razón el open source se basa en hacer software libre, pero su fundamento es el trabajo colaborativo, lo que Marak lleva años protestando es que grandes empresas no son reciprocas en ese aspecto, solo hacen uso del software y ya.
Y no sé tu punto de vista, pero tomando en cuenta que son empresas de diversos tamaños y que tienen los recursos para colaborar ¿por qué no lo hacen? eso se ve como aprovechamiento y es a lo que va dirigido el reclamo.
Toda la razón respecto a que con hacer un revert se solucionaba todo, pero el meollo del asunto no es ese (está más que claro que Marak no quiso hacer daño, lo suyo era hacer un llamado de atención), sino protestar ante la situación.
Y por ultimo, el open source a contribuido mucho al desarrollo tecnológico, como dices: sino, tendríamos que construir prácticamente todo desde cero. Dada su importancia y contribución lo sensato es promoverlo, y bueno, escenarios como este lo están ahogando.

2
17276Puntos
3 días

Gracias al Open Source estamos aqui aprendiendo y aplicando JS, Python, Web, etc. Con la mejor comunidad Tech de toda habla hispana.

Gracias al Open Source y movimientos similares como el Open Hardware podemos crear cosas increibles con pocos recursos.

Si he visto más lejos, es poniéndome sobre los hombros de Gigantes - Isaac Newton

Es nuestra responsabilidad informarnos sobre las implicaciones a la hora de hacer publicos nuestros proyectos y nuestra responsabilidad saber las obligaciones cuando integramos trabajo de terceros. Y es algo un poco dificil pues casi no se habla de licencias pero de esto sirven este tipo de noticias, para crear conciencia y fortalecer.

Entiendo el punto de Marak, puede que su experiencia ayude a promover esa norma de cortesia en todas las empresas, grandes o pequenias.

En mi ciudad conozco algunas que mensualmente donan dinero a los proyectos y/o hacen propuestas asi que si hay, dentro del fortune 500 hay empresas que tienen proyectos Open Source o son sponsors asi que tampoco viene bien generalizar.

Gracias (sin sarcasmo) por no estar de acuerdo.

10
14136Puntos

Me parece muy acertada la forma en que Marak protesto ya que hoy en día los proyectos que son open source no reciben algún beneficio monetario, teniendo en cuenta que varias compañías que ya están recibiendo ganancias no aportan nada a proyectos que ayudan a ser lo que son. Me parecería muy interesante generar una forma de pago en el mundo del open source, en donde si el proyecto esta haciendo uso de un modulo (como este caso), y este proyecto ya está monetizando, algo de esto debería ir a los demás proyectos involucrados

5
540Puntos

Justo por cosas como la de esta noticia, me llama muchísimo la atención el Desarrollo Web 3 .
La posibilidad de crear páginas, repositorios, librerías, etcétera pero descentralizadas, que sean financiadas gracias a las recompensas del Staking que dejen los usuarios por usar, ver o copiar la información, entrar con tu wallet y que al salir o hasta que dejes de usarlo puedas quitar el stake o si es poco tiempo o que solo sea “copy - page” pues se determinen tarifas que aporte al creador, a los trabajadores que sostienen la plataforma.
Sé que falta mucho por llegar a ese nivel pero me gustaría que muchos nos centremos en desarrollarlo que estar pensando, que AltCoin me hará rico o que sí BitCoin bajo o subío.

5
47619Puntos

Marak actuó de una forma radical, pero realmente se hizo escuchar, de otra manera no habría llegado a tantas personas.
Considero que GitHub actuó de forma correcta, de lo contrario se le podría venir una bola de nieve. Creo que fue lo mejor para todo el ecosistema Open Source.

2
287Puntos
3 días

Tal vez sí fue lo mejor para sus intereses y para todos los proyectos el volver a una versión anterior, pero castigar a Marak de esa forma? Digo, “expulsarlo” de todo su trabajo y luego cambiar las políticas para que sea “más bonito” leerlo, no sé, suena algo totalitarista para mí. Suena a que no tenemos control sobre lo que hacemos.

Por eso me gusta la web 3, el hecho de descentralizar la información hace que estos trabajos Open Source sigan siendo de sus creadores (al menos por ahora).

Lo que me lleva a una pregunta para continuar la conversación, ¿Un proyecto “Open Source” puede dejar de serlo si su creador quiere? ¿O por el simple hecho de ser “Open Source” hace que el creador pierda sus derechos sobre el mismo? Bajo el argumento de que eso es de todos, no de él. Y de ser así, ¿GitHub es el ente moral adecuado para tomar esa decisión? ¿O debería de ser un proceso más democrático?

4
16529Puntos

Hola, que Increíble noticia 😃.
sin embargo quería añadir que en el párrafo antes del título la fragilidad del open source hace falta una “n”.

Acá:
1.jpg

5
19647Puntos
4 días

Muchas gracias ya esta arreglado 👌

3
9525Puntos

¡wow!
¿Tiene derecho a que le paguen?, sí.
Entonces que no se dedique al software libre.

Es su software, es su trabajo, y por lo tanto ¿lo puede modificar hasta dejarlo sin uso?, sí.

La empresa GitHub, tomó represalias y no lo deja continuar, pues ni hablar que se vaya a otro sitio.

2
2867Puntos

Protestar aprovechando la popularidad de su open source para usarlo como una protesta troyano no me parece la mejor forma de actuar, para mi eso es muy poco profesional y muy infantil, ahora a ver quien va a confiar en su trabajo.

1
171Puntos
2 días

cierto ahora nadie va a confiar en el

2
4692Puntos

Hola.

Desde la ignorancia ¿Sería legal intentar hacer un bot que haga Fork a los proyectos Open Source de los que dependo (solo una vez), automatizar los pull y push del proyecto original y seguir subiendo al repo forkeado esas actualizaciones (copiando y pegando todo el contenido del repo, excepto el .git y haciendo commit con mensaje aleatorio y push)? y que mi proyecto dependa de ese Fork.

O ¿existe ya una forma de mantener un repo completamente sincronizado con el original?

3
1989Puntos
4 días

Si puedes, son proyectos opensource siempre, aunque suelen tener restricciones sobre vender la modificación que hagas, ahora si solo lo usas no habría problema, aunque no sería escalable, tendrías que verificar cada cosa que le añadan y a veces son parches de seguridad así que dificilmente puedas ver y analizar cada pieza de código que se le añada.

2
12345Puntos

jamas había pensado de esta manera, pero definitivamente es interesante

2
4692Puntos

¿Ustedes preferirían ver anuncios en Github si Microsoft apoyara el Software Libre con lo recaudado por publicidad (con una suscripción de pago para no verla + otros beneficios)?

2
1617Puntos

Es importante el reconocimiento, implementar algo parecido a lo que hacen algunas plataformas con sus creadores de contenido incentivándolo seria una de las respuestas para apoyar todas estas personas que con su esfuerzo contribuyen para que muchos se beneficien.

2
797Puntos

Si tiene razón en su punto de vista sin embargo no así en la forma que utilizó ya que afectó en mayor medida a sus pares que confiaban en la ética que caracteriza a los desarrolladores de OS.
La iniciativa por recibir sponsor es un muy buen incentivo.

1
952Puntos
1
952Puntos
4 días

Se envio el mensaje antes de poner lo que quería jaja.
Iba a escribir que muchas gracias por la información, ya que me permite ver puntos de vista diferentes

1
1258Puntos

Que noticia…
Sin embargo tengo una duda, ¿es acaso la dependencia de millones de usuarios una razón valida para despojarte de tus derechos como creador?
siempre he sabido el impacto que puede tener un “commit” en mis proyectos personales, pero que impresionante el impacto que a generado Marak en la búsqueda de defender su postura social.
Saludos a la comunidad

1
1841Puntos

Es algo que va a seguir sucediendo por desconocimiento de contratos.

La mayoría de las herramientas opensource lo contemplan desde sus inicios.

Los juegos, cms, base de datos, son un claro ejemplo.

Debe de haber contemplado generar una versión paga, con otros features.

Pero claramente se dio cuenta de que pudo haber monetizado su producto muy tarde.

Lo cierto es que es cada vez más claro que en el mundo laboral será más común tratar de desarrollar con la prescindencia en la medida de lo posible de librería openSource.

1
171Puntos

Quizás no fue la mejor forma, termino afectando negativamente a gente que no tenia nada que ver con su “protesta” pero bueno ya se ira viendo como fluye todo.

1
14031Puntos

Excelente artículo!

1
2992Puntos

Otra prueba mas de que el comunismo vestido de altruismo nunca funcionará y el capitalismo si.

1
3379Puntos

Que época para vivir!!!, Pandemia mundial, criptomonedas, la debacle del open source…

1
10771Puntos

Tremendo artículo! Muchas gracias por explicar tan bien la situación.

1
5653Puntos

Hay que ver qué puede llegar a ocurrir con esto, más que es una forma de protesta bastante ingeniosa teniendo en cuenta que no solo el proyecto que modifico se vio comprometido sino los otros cientos que comenta tenía en la misma cuenta. Otra reflexión a sacar es la necesidad de tener siempre un backup no online, por muchas facilidad que ofrezca lo cierto es que nos exponemos a políticas dónde podríamos perder el derecho a nuestro trabajo.

1
2179Puntos

Definitivamente hay que apoyar a estos proyectos y desarrolladores, pero creando un plan de compensación, para cuando el uso final de los proyectos no es open source, en caso de que tenga un beneficio pecunario, tenga que dar un aporte, aunque sea de pago único.

1
406Puntos

Muy buen post, gracias por la información.