Qu’est-ce que les termes « bakso », « sate » et « rendang » vous évoquent ? Pour beaucoup, la réponse est « rien », les gourmets y verront des plats indonésiens, tandis que ceux qui suivent l’actualité de la cybersécurité penseront à une attaque contre l’écosystème Node Package Manager (npm), l’outil qui permet aux développeurs d’utiliser des bibliothèques prêtes à l’emploi au lieu d’écrire chaque ligne de code à partir de zéro.
À la mi-novembre, le chercheur en sécurité Paul McCarty a annoncé avoir découvert une campagne de spam visant à encombrer le registre npm. Bien entendu, il est déjà arrivé que des paquets inutiles apparaissent dans le registre, mais dans ce cas précis, on a recensé des dizaines de milliers de modules sans aucune utilité. Leur seul but était d’introduire des dépendances totalement inutiles dans les projets.
Les noms des archives comportaient des noms de plats indonésiens et des termes culinaires insérés au hasard, comme « bakso », « sate » et « rendang », ce qui a valu à la campagne le surnom d' »IndonesianFoods ». L’ampleur du phénomène était impressionnante : au moment de la découverte, environ 86 000 paquets avaient été recensés.
Nous examinons ci-dessous comment cela s’est produit et quel était le véritable objectif des pirates.
Dans les coulisses d’IndonesianFoods
À première vue, les paquets IndonesianFoods ne semblaient pas être entièrement inutiles. Ils comportaient des structures standard, des fichiers de configuration valides et même une documentation bien mise en forme. Selon les chercheurs d’Endor Labs, ce camouflage a permis à ces paquets de rester dans le registre npm pendant près de deux ans.
Les pirates n’ont pas vraiment cherché à intégrer leurs créations de force dans des projets externes. Au lieu de cela, ils ont simplement inondé l’écosystème de code à l’apparence légitime, en attendant que quelqu’un fasse une faute de frappe ou sélectionne par inadvertance leur bibliothèque parmi les résultats de recherche. On ne sait pas très bien ce qu’il faudrait rechercher pour confondre le nom d’un paquet avec celui d’un plat indonésien, mais l’étude initiale indique qu’au moins 11 projets ont, d’une manière ou d’une autre, réussi à inclure ces paquets dans leurs versions.
Une petite partie de ces paquets indésirables intégrait un mécanisme d’autoreproduction : une fois installés, ils créaient et publiaient de nouveaux paquets dans le registre npm toutes les sept secondes. Ces nouveaux modules étaient dotés de fonctionnalités permettant de choisir au hasard des noms (également liés à la cuisine indonésienne) et de numéros de version – tous publiés, comme on pouvait s’y attendre, à l’aide des identifiants de la victime.
Autres paquets malveillants intégrés à la plateforme blockchain TEA. Le projet TEA a été conçu pour récompenser les créateurs de logiciels open source par des jetons proportionnellement à la popularité et à l’utilisation de leur code, fonctionnant en théorie selon un modèle de « preuve de contribution ».
Une grande partie de ces paquets ne comportait aucune fonctionnalité réelle, mais comportait souvent une dizaine de dépendances qui, comme vous pouvez l’imaginer, renvoyaient à d’autres projets indésirables de la même campagne. Ainsi, si une victime installe par erreur l’un de ces paquets malveillants, plusieurs autres sont également téléchargés, dont certains comportent leurs propres dépendances. Le résultat est un projet final encombré d’une quantité considérable de code redondant.
Et les pirates, qu’est-ce qu’ils y gagnent ?
Il existe deux théories principales. Le plus évident est que toute cette campagne de spam élaborée a été conçue pour exploiter le protocole TEA susmentionné. Concrètement, sans apporter aucune contribution utile à la communauté open source, les pirates gagnent des jetons TEA, qui sont des actifs numériques classiques pouvant être échangés contre d’autres cryptomonnaies sur des plateformes d’échange. En s’appuyant sur un réseau de dépendances et de mécanismes d’autoreproduction, les pirates se font passer pour des développeurs open source authentiques afin de gonfler artificiellement l’importance et les statistiques d’utilisation de leurs paquets. Dans les fichiers README de certains paquets, les pirates se vantent même de leurs gains.
Il existe toutefois une théorie encore plus inquiétante. Par exemple, le chercheur Garrett Calpouzos estime que ce dont nous sommes témoins n’est qu’une simple démonstration de faisabilité. La campagne IndonesianFoods pourrait être en train de tester une nouvelle méthode de diffusion de programmes malveillants destinée à être vendue ultérieurement à d’autres acteurs malveillants.
Pourquoi éviter les fichiers inutiles dans vos projets
À première vue, le danger pour les entreprises de développement logiciel n’est peut-être pas évident : certes, IndonesianFoods encombre l’écosystème, mais il ne semble pas représenter une menace immédiate (ransomwares, violations des données, etc.). Cependant, les dépendances redondantes alourdissent le code et gaspillent les ressources système des développeurs. De plus, le fait de publier des paquets indésirables sous le nom de votre organisation peut nuire gravement à votre réputation au sein de la communauté des développeurs.
Nous ne pouvons pas non plus écarter la théorie de Calpouzos. Si ces paquets indésirables intégrés à votre logiciel recevaient une mise à jour introduisant des fonctionnalités véritablement malveillantes, ils pourraient constituer une menace non seulement pour votre organisation, mais aussi pour vos utilisateurs, et se transformer en des attaques contre la chaîne d’approvisionnement.
Comment protéger votre organisation ?
Les paquets indésirables ne s’introduisent pas d’eux-mêmes dans un projet. Leur installation nécessite une erreur de jugement de la part d’un développeur. C’est la raison pour laquelle nous recommandons de sensibiliser régulièrement les employés, même les plus avertis, aux cybermenaces modernes. Notre plateforme de formation interactive, KASAP (Kaspersky Automated Security Awareness Platform), peut vous aider dans cette démarche.
Vous pouvez également prévenir les infections en utilisant une solution spécialisée destinée à la protection des environnements conteneurisés. Celle-ci permettra d’analyser les images et les dépendances tierces, s’intégrera au processus de compilation et surveillera les conteneurs pendant leur exécution.
Si vous souhaitez en savoir plus sur les attaques visant la chaîne d’approvisionnement, nous vous invitons à consulter notre rapport d’analyse Réaction en chaîne : sécuriser l’écosystème numérique mondial à l’ère de l’interdépendance. Cette étude s’appuie sur les analyses d’experts techniques et met en évidence les risques auxquels les organisations sont souvent confrontées au niveau de leur chaîne d’approvisionnement et de leurs relations de confiance, ainsi que la manière dont elles les perçoivent.
chaine d'approvisionnement
Conseils