Guerre en Ukraine : pour protester contre l'invasion russe, un développeur sabote son paquet npm

Pour protester contre l'invasion russe en Ukraine, un développeur a délibérément saboté son paquet npm ce mois-ci.

La bibliothèque en question, node-ipc, est plutôt populaire puisqu'elle dépasse le million de téléchargements chaque semaine depuis le registre npm, et se trouve également dans des frameworks et outils majeurs comme par exemple le CLI (interface en ligne de commande) du framework Vue.js.

Mis au point par le développeur américain Brandon Nozaki Miller, connu sous le pseudonyme RIAEvangelist sur GitHub, node-ipc permet de gérer la communication inter-processus pour Node, en supportant les sockets et les protocoles TCP, TLS et UDP.

La Russie et la Biélorussie en ligne de mire

Dans les dernières versions de sa lib (10.1.1 et 10.1.2), le développeur a incorporé du code malicieux capable d'écraser un maximum de fichiers pour les utilisateurs localisés en Russie ou en Biélorussie en remplaçant l'intégralité de leur contenu par un symbole en forme de coeur.

Le code en question, commité pour la première fois le 7 mars, se charge de consulter l'adresse IP externe du système avant de décider de son passage à l'action.

En complément, les bundles de l'outil à compter de sa version 9.2.2 embarquaient un module prénommé peacenotwar, qui déposait automatiquement un fichier texte "WITH-LOVE-FROM-AMERICA.txt" sur le bureau des utilisateurs de la bibliothèque. Le fichier en question comportait des messages appelant à la paix dans le monde et retranscrits dans plusieurs langues.

Le problème, c'est que dès lors que ces versions étaient utilisées comme dépendances dans un projet, le module peacenotwar se retrouvait embarqué et exécuté, déposant ses fichiers sur un grand nombre de postes.

La version 10.1.3 a rapidement été déployée, sans embarquer la fonctionnalité destructrice, et les versions 10.1.1 et 10.1.2 ont quant à elles été retirées du registre npm, tout comme la version 9.2.2.

De son côté, le développeur a mis à jour l'intro du fichier README de son projet sur GitHub, en indiquant "merci pour toutes les pizzas gratuites, et merci à la police qui est venue me swater, c'était vraiment des types cools".

Une initiative condamnée par la communauté open source

Ce n'est pas la première fois qu'un développeur fait usage d'un de ses projets pour amplifier la portée de son message ou de ses revendications personnelles : en janvier, un autre développeur avait volontairement corrompu 2 de ses paquets npm largement utilisés dans le monde (faker.js et colors.js) afin de protester contre le fait que des sociétés inscrites au classement Fortune 500 exploitaient son code open source sans le financer.

L'incident a également soulevé de nombreuses réactions de mécontentement de la part de la communauté open source, qui juge que ce genre d'initiative immature et dangereuse porte préjudice à la crédibilité des logiciels libres de manière générale.

Nous assistons avec ce genre d'acte à un phénomène nouveau et à fort impact sur la sécurité et la stabilité des projets — à tel point que l'on parle désormais non plus de malware mais de "protestware" —, qui doit désormais être sérieusement pris en compte par les entreprises et utilisateurs d'outils open source.

À lire aussi sur Les Joies du Code :

⚠️ Des milliers de paquets npm exposés en raison de noms de domaine expirés

🇺🇦 Guerre en Ukraine : à travers le chaos russe, l'incroyable résilience des développeurs