Le registre de packages npm est devenu la cible d’une autre campagne d’attaque très ciblée visant à inciter les développeurs à télécharger des modules malveillants.

La société de sécurité de la chaîne d’approvisionnement en logiciels Phylum a déclaré à The Hacker News que l’activité présente des comportements similaires à ceux d’une précédente vague d’attaque découverte en juin, qui a depuis été liée à des acteurs nord-coréens.

Pas moins de neuf packages ont été identifiés comme téléchargés sur npm entre le 9 et le 12 août 2023. Cela inclut : ws-paso-jssdk, pingan-vue-floating, srm-front-util, cloud-room-video, progress-player , ynf-core-loader, ynf-core-renderer, ynf-dx-scripts et ynf-dx-webpack-plugins.

« En raison de la nature sophistiquée de l’attaque et du petit nombre de packages concernés, nous soupçonnons qu’il s’agit d’une autre attaque très ciblée, probablement avec un aspect d’ingénierie sociale impliqué afin d’obtenir des cibles pour installer ces packages », a déclaré la société.

La chaîne d’attaque commence par le fichier package.json avec un hook postinstall qui exécute un fichier index.js lors de l’installation du package. Ce dernier utilise le module pm2 légitime comme dépendance pour lancer un processus démon qui, à son tour, exécute un autre fichier JavaScript nommé app.js.

Le code JavaScript est conçu pour initier une communication bidirectionnelle cryptée avec un serveur distant – « ql.rustdesk[.]net », un domaine usurpé se faisant passer pour le logiciel de bureau à distance RustDesk légitime – 45 secondes après l’installation du package et transmet des informations de base sur l’hôte compromis.

Le logiciel malveillant envoie ensuite un ping et attend d’autres instructions toutes les 45 secondes, qui sont ensuite décodées et exécutées.

« Il semblerait que les attaquants de l’autre côté surveillent les GUID des machines et émettent de manière sélective des charges utiles supplémentaires (sous la forme de Javascript crypté) vers toutes les machines d’intérêt », a déclaré l’équipe de recherche Phylum.

Le développement fait suite à la découverte d’une version typosquat d’un package Ethereum populaire sur npm qui est conçu pour envoyer une requête HTTP à un serveur chinois (« wallet.cba123[.]cn » contenant la clé cryptographique de l’utilisateur.

De plus, le package NuGet très populaire, Moq, a suscité des critiques après que les nouvelles versions 4.20.0 et 4.20.1 du package publiées la semaine dernière sont venues avec une nouvelle dépendance appelée SponsorLink qui extrait les hachages SHA-256 des adresses e-mail des développeurs de local Git configs et l’envoie à un service cloud à leur insu ou sans leur consentement.

Les modifications controversées, qui soulèvent des problèmes de conformité au RGPD, ont été annulées dans la version 4.20.2. Mais le mal a peut-être été fait, car Bleeping Computer a rapporté qu’Amazon Web Services (AWS) avait retiré son association avec le projet.

« À mon avis, l’auteur n’avait pas l’intention de causer de tort, mais a fini par nuire à la confiance de ses utilisateurs », a déclaré Jossef Harush, chercheur chez Checkmarx. « Cela aurait pu être évité s’il avait été ouvert à la discussion avant de publier les nouvelles modifications et d’accepter le contenu de ses utilisateurs. »

Les résultats surviennent également alors que les organisations se sont révélées de plus en plus vulnérables aux attaques de confusion de dépendance, ce qui a potentiellement conduit les développeurs à introduire involontairement du code vulnérable ou malveillant dans leurs projets, entraînant ainsi des attaques à grande échelle de la chaîne d’approvisionnement.

Pour atténuer les attaques de confusion de dépendance, il est recommandé de publier les packages internes sous les étendues d’organisation et de réserver les noms de packages internes dans le registre public en tant qu’espaces réservés pour éviter toute utilisation abusive.

A lire également