¿Protestware? No, vandalware. El caso de node-ipc.

Escrito por: Aglezabad

Hoy toca hablar de una vergüenza en el software FOSS y que, en mi opinión, está al mismo nivel que los sabotajes de la Universidad de Minesota al kernel Linux: sin duda hablo del suceso de Marzo de node-ipc.

Me he enterado al ver este vídeo del canal de Youtube Mental Outlaw, el cual recomiendo ver, ya que habla de temas relacionados con la tecnología, da sus posturas sobre ciertas acciones en la industria, así como tutoriales de software y de cocina (sí, de cocina). Como debe ser, lo voy a adjuntar a continuación, ya que aporta el contexto necesario sobre este tema.

También incluyo un enlace al artículo que hace referencia dicho vídeo, donde el asunto tiene mayor detalle y profundidad así como formas de mitigar el problema de seguridad que se ha generado. Recomiendo su lectura (en inglés):

Artículo de blog.snyk.io sobre problema de seguridad en node-ipc

El suceso: versión TLDR

Este suceso está registrado como CVE-2022-23812

  1. De acuerdo con la información publicada por Snyk, la versión 10.1.1 de node-ipc incluyó código sospechoso que podía implicar cambios en el comportamiento del módulo (llamadas a servidores externos y presencia de datos en base64).

  2. Dicho código tenía un temporizador que ejecutaba operaciones de sistema de ficheros que reemplazaba el contenido de los ficheros que hubiese por el carácter emoji corazón. Este comportamiento se ejecutaba si la IP tenía geolocalización en Rusia o Bielorrusia.

  3. Notifican también que se emite otra versión (10.1.2) donde solamente se modifica el fichero package.json. Sospechan en que esta versión está pensada para provocar la ejecución de las actualizaciones automáticas.

  4. Finalmente, en la versión 10.1.3 se detecta el borrado del código malicioso.

  5. Sale una versión 11 de node-ipc donde se incluye dependencia de un módulo llamado peacenotwar (del mismo desarrollador que node-ipc) donde se incluye un comportamiento menos lesivo que el probablemente provocado por el suceso indicado, pero que (según Snyk) sigue implicando un comportamiento no deseado.

Opinión al respecto

Se le ha ido acuñando a este acto con el término protestware (software protesta) pero me niego a mencionar este suceso como protestware sino como vandalware (vandallism software, ergo, malware). Y lo considero así por la propia definición de vandalismo, el cual es el daño a la propiedad pública o privada de forma intencionada.

El desarrollador de node-ipc, RIAEvangelist, ha cometido no solo dichos actos, sino daños a la reputación del software FOSS.

Prácticamente ha dejado una imagen donde a un desarrollador se le pueden cruzar los cables y provocar daños a otros desarrolladores y usuarios por criterios arbitrarios.
Y probablemente en este caso, detrás de esas direcciones ip no haya un oligarca ruso o bielorruso, sino un desarrollador cualquiera que ni siquiera apoye las derivas bélicas de sus presidentes.

Lo que más me repatea de esto es la respuesta a las quejas al respecto de otros desarrolladores y/o usuarios de Github, bajo el argumento de "es moral porque es para apoyar a Ucrania". No, lo has hecho por puro comportamiento egocéntrico y debería darte vergüenza.
Y no, esto no es un "ups, me he dejado una clave privada en el código fuente", esto lo has hecho a drede y con ánimo destructivo, y es normal que otras personas te lo echen en cara.

Su comportamiento es propio de un pirómano, echando gasolina al fuego. Si quiere ayudar a Ucrania de verdad, colabore con ONGs u organizaciones vecinales. Déjese de protagonismos y menos si va a salir mal parado de sus acciones.