Este mes, el desarrollador detrás del popular paquete npm ‘node-ipc’ lanzó versiones saboteadas de la biblioteca en protesta por la guerra ruso-ucraniana en curso.
Las versiones más nuevas del paquete ‘node-ipc’ comenzaron a eliminar todos los datos y sobrescribir todos los archivos en las máquinas de los desarrolladores, además de crear nuevos archivos de texto con mensajes de «paz».
Con más de un millón de descargas semanales , ‘node-ipc’ es un paquete destacado utilizado por las principales bibliotecas como Vue.js CLI.
Protestware: la crisis actual de Ucrania se desvanece en el código abierto
Se detectaron versiones seleccionadas (10.1.1 y 10.1.2) del popular paquete ‘node-ipc’ que contenía un código malicioso que sobrescribía o eliminaba archivos arbitrarios en un sistema para usuarios con sede en Rusia y Bielorrusia. Estas versiones se rastrean bajo CVE-2022-23812 .
El 8 de marzo, el desarrollador Brandon Nozaki Miller, también conocido como RIAEvangelist , lanzó paquetes de software de código abierto llamados pacenotwar y oneday-test tanto en npm como en GitHub.
Los paquetes parecen haber sido creados originalmente por el desarrollador como una forma de protesta pacífica, ya que principalmente agregan un «mensaje de paz» en el escritorio de cualquier usuario que instale los paquetes.
«Este código sirve como un ejemplo no destructivo de por qué es importante controlar los módulos de su nodo», explica RIAEvangelist .
“También sirve como una protesta no violenta contra la agresión de Rusia que amenaza al mundo en este momento”.
Pero se desató el caos cuando se vio que versiones seleccionadas de npm de la famosa biblioteca ‘node-ipc’, también mantenida por RIAEvangelist , lanzaban una carga útil destructiva a todos los datos y sobrescribían todos los archivos de los usuarios que instalaban el paquete.
Curiosamente, el código malicioso, cometido el 7 de marzo por el desarrollador, leería la dirección IP externa del sistema y solo eliminaría datos sobrescribiendo archivos para usuarios con sede en Rusia y Bielorrusia.
El código presente dentro de ‘node-ipc’, específicamente en el archivo «ssl-geospec.js» contiene cadenas codificadas en base64 y tácticas de ofuscación para enmascarar su verdadero propósito:
Una copia simplificada del código proporcionado por los investigadores muestra que para los usuarios con sede en Rusia o Bielorrusia, el código reescribirá el contenido de todos los archivos presentes en un sistema con un emoji de corazón, eliminando efectivamente todos los datos en un sistema.
Además, debido a que las versiones 9.2.2, 11.0.0 y posteriores a la 11.0.0 de ‘node-ipc’ incluyen el módulo de paz y guerra dentro de sí mismos, los usuarios afectados vieron aparecer archivos ‘ CON-AMOR-DE-AMERICA.txt’ en sus Escritorio con mensajes de «paz»:
Los investigadores de la firma de seguridad de código abierto Snyk también rastrearon y analizaron la actividad maliciosa:
«En este punto, se producirá un abuso muy claro y un incidente crítico de seguridad de la cadena de suministro para cualquier sistema en el que se solicite este paquete npm, si coincide con una ubicación geográfica de Rusia o Bielorrusia», escribe Liran Tal, director. de Developer Advocacy en Snyk en una entrada de blog .
Los usuarios de Vue.js entran en pánico por el ataque a la cadena de suministro
El popular marco de front-end de JavaScript ‘Vue.js’ también usa ‘node-ipc’ como una dependencia. Pero antes de este incidente, ‘Vue.js’ no ancló las versiones de la dependencia ‘node-ipc’ a una versión segura y, en su lugar, se configuró para obtener las últimas versiones secundarias y parches, como se desprende del símbolo de intercalación (^). :
Como tal, los usuarios de la CLI de Vue.js hicieron un llamamiento urgente a los mantenedores del proyecto para fijar la dependencia ‘node-ipc’ a una versión segura, después de que algunos se sorprendieran .
Y, como observó BleepingComputer, Vue.js no es el único proyecto de código abierto afectado por este sabotaje.
Los desarrolladores Lukas Mertens y Fedor advierten a otros mantenedores de proyectos que se aseguren de no estar en una versión maliciosa de ‘node-ipc’:
Los investigadores de Snyk sospechan que npm eliminó las versiones 10.1.1 y 10.1.2 de ‘node-ipc’ que causan daños flagrantes al sistema dentro de las 24 horas posteriores a la publicación.
Tenga en cuenta, sin embargo, que las versiones 11.0.0 y posteriores de ‘node-ipc’ siguen estando disponibles en npm. Y, estas versiones aún contienen el módulo de paz y guerra que creará los archivos ‘CON AMOR-DE-AMERICA.txt’ antes mencionados en el escritorio.
Como tal, si su aplicación se crea con la biblioteca ‘node-ipc’, asegúrese de anclar la dependencia a una versión segura como 9.2.1 (resulta que 9.2.2 tampoco es inocente).
Incidente trastorna a la comunidad de código abierto
Esto marca el segundo gran incidente de protesta de un desarrollador de código abierto este año, luego del incidente de autosabotaje de los ‘colores’ y los ‘falsificadores’ de enero , como informó por primera vez BleepingComputer.
En el caso de ‘colors’, su desarrollador, Marak Squires, provocó reacciones mixtas de la comunidad de código abierto porque su forma de protesta implicaba romper miles de aplicaciones introduciendo bucles infinitos dentro de ellas.
Sin embargo, el movimiento de RIAEvangelist , que mantiene más de 40 paquetes en npm , ha generado fuertes críticas por ir más allá de una simple «protesta pacífica» y desplegar activamente cargas útiles destructivas en una biblioteca popular sin previo aviso a los usuarios honestos.
Un usuario de GitHub lo llamó «un gran daño» a la credibilidad de toda la comunidad de código abierto.
«Este comportamiento es más que jodido. Claro, la guerra es mala, pero eso no hace que este comportamiento (por ejemplo, eliminar todos los archivos para los usuarios de Rusia/Bielorrusia y crear un archivo extraño en la carpeta del escritorio) esté justificado. F*** tú, vete al infierno. Acabas de arruinar con éxito la comunidad de código abierto. ¿Estás feliz ahora @RIAEvangelist ? preguntó otro.
Algunos criticaron al desarrollador de ‘node-ipc’ por tratar de «encubrir» sus pistas al editar y eliminar persistentemente los comentarios anteriores en el hilo [ 1 , 2 , 3 ].
«Incluso si el acto deliberado y peligroso del mantenedor RIAEvangelist será percibido por algunos como un acto legítimo de protesta. ¿Cómo se refleja eso en la reputación futura del mantenedor y su participación en la comunidad de desarrolladores?» pregunta Tal de Snyk.
Los desarrolladores deben tener cuidado antes de usar ‘node-ipc‘ en sus aplicaciones, ya que no hay garantía de que las versiones futuras de esta o cualquier biblioteca lanzada por RIAEvangelist sean seguras.
Anclar sus dependencias a una versión confiable es una de las formas de proteger sus aplicaciones contra tales ataques a la cadena de suministro.
Fuente: https://www.bleepingcomputer.com