Sabotage : ajout de code aux fichiers supprimés du package NPM populaire en Russie et en Biélorussie

Tous tels nach Plastik Mit zunehmendem Abfall augmente auch das

Getty Images

Le développeur d’un package open source populaire a été surpris en train d’ajouter un code malveillant, ce qui a entraîné la suppression de fichiers sur des ordinateurs en Russie et en Biélorussie. Cette décision faisait partie d’une manifestation qui a exaspéré de nombreux utilisateurs et suscité des inquiétudes quant à la sécurité des logiciels libres et open source.

L’application node.ipc étend d’autres bibliothèques de code open source avec des capacités de communication interprocessus à distance et de réseau neuronal. En tant que dépendance, node.ipc est automatiquement téléchargé et intégré à d’autres bibliothèques, y compris celles comme Vue.js CLI, qui compte plus d’un million de téléchargements hebdomadaires.

Un acte délibéré et dangereux

Il y a deux semaines, l’auteur de node.ipc a publié une nouvelle version de la bibliothèque qui a saboté des ordinateurs en Russie et en Biélorussie, les pays qui ont respectivement envahi l’Ukraine et soutenu l’invasion. La nouvelle version a ajouté une fonction qui vérifie l’adresse IP des développeurs qui ont utilisé le node.ipc dans leurs propres projets. Lorsqu’une adresse IP était géolocalisée en Russie ou en Biélorussie, la nouvelle version supprimait les fichiers de la machine et les remplaçait par un emoji en forme de cœur.

Pour masquer la malveillance, l’auteur de node.ipc, Brandon Nozaki Miller, a encodé les modifications en base 64 afin de rendre la tâche plus difficile pour les utilisateurs qui souhaitaient les inspecter visuellement à la recherche de problèmes.

Voici ce que ces développeurs ont vu :

+ 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");

Ces lignes ont ensuite été transmises à la fonction timer, telles que :

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

Les valeurs pour les chaînes Base64 étaient :

  • n2 est réglé sur: ./
  • o2 est réglé sur: ../
  • r est réglé sur: ../../
  • f est réglé sur: /

Lorsqu’elles sont transmises à la fonction de minuterie, les lignes ont ensuite été utilisées comme entrées pour supprimer des fichiers et les remplacer par l’emoji du cœur.

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

« À ce stade, si cela correspond à une géolocalisation de la Russie ou de la Biélorussie, il y aura un abus très clair et un incident critique de sécurité de la chaîne d’approvisionnement pour tout système où ce paquet npm est invoqué », a écrit Liran Tal, chercheur à Snyk, un société de sécurité qui a suivi les changements et publié ses conclusions mercredi.

Tal a découvert que l’auteur de node.ipc gère 40 autres bibliothèques, dont certaines ou toutes sont également des dépendances pour d’autres packages open source. Citant le nom de l’auteur de node.ipc, Tal a remis en question la sagesse de la protestation et ses implications probables pour l’écosystème open source dans son ensemble.

« Alors que l’acte intentionnel et dangereux du mainteneur de RIAEvangelist est perçu par certains comme un acte de protestation légitime, comment cela affecte-t-il la réputation future du mainteneur et sa participation dans la communauté des développeurs ? », a écrit Tal. « Est-ce qu’on ferait encore confiance à ce soignant pour qu’il ne poursuive pas de futurs actes dans de telles actions ou des actions plus agressives pour des projets auxquels il participe ?

parti pour toujours

RIAevangelist a également été critiqué sur Twitter et dans les forums open source. La nouvelle version du code malveillant, a écrit une personne qui prétendait travailler pour une organisation basée aux États-Unis qui exploitait un serveur en Biélorussie, « a entraîné l’exécution de votre code et la suppression de plus de 30 000 messages et fichiers de crimes de guerre décrits, commis en Ukraine par l’armée russe et les représentants du gouvernement.

La personne qui a ensuite supprimé le message et l’a republié ici a déclaré que le but du serveur biélorusse est de contourner la censure dans ce pays. Le personnel de l’organisation a déjà été réduit depuis que la Russie a commencé à envahir l’Ukraine le 24 février, a déclaré la personne, et pour des raisons peu claires, les messages des soldats de première ligne et d’autres données sensibles ont probablement disparu pour toujours.

« Personnellement, mes collègues et moi sommes absolument dévastés », a écrit la personne. « Tout ce que je peux dire [is] que votre petite plaisanterie nous a fait plus de mal que Poutine ou Loukachenka ne pourraient jamais le faire. Professionnellement, notre avocat a suggéré de déposer des accusations criminelles au niveau fédéral, et il est probable que nous le ferons.

gnns-general