La réputation des développeurs de logiciels open source pourrait être abusée pour diffuser des packages NPM malveillants à leur insu ou sans leur consentement, ont révélé des chercheurs en sécurité.

Le 26 avril, l’équipe de cybersécurité d’Aqua’s Team Nautilus a publié un conseil en sécurité sur le problème, qui « a permis aux acteurs de la menace de faire passer un paquet malveillant pour légitime et de tromper les développeurs sans méfiance pour qu’ils l’installent ».

Jusqu’à récemment, la plate-forme NPM de GitHub permettait à n’importe quel développeur d’être ajouté à un projet en tant que mainteneur sans son autorisation – un angle mort potentiel que les acteurs de la menace pourraient facilement militariser.

TU POURRAIS AUSSI AIMER Les mises à jour de la base de données IBM corrigent les vulnérabilités critiques de l’analyseur XML tiers

Si un attaquant « choisit soigneusement » des mainteneurs de confiance et populaires, puis les ajoute – sans leur approbation – à un paquet malveillant, cela pourrait donner l’impression qu’un paquet est légitime et encourager les utilisateurs à le télécharger, ont déclaré les chercheurs.

Cette technique a été surnommée « plantation en paquets » par l’équipe Nautilus.

Défaut de logique

« Par exemple, le package lodash est très populaire et crédible », déclarent les chercheurs. « Si nous ajoutons ses propriétaires Mathias, jdalton et bnjmnt4n à un nouveau package malveillant, de nombreux développeurs pourraient être amenés à penser que ce package est légitime et même attrayant. »

Lodashune bibliothèque JavaScript pour les fonctions utilitaires, a été téléchargée plus de 42 millions de fois et compte plus de 154 000 personnes à charge.

Les développeurs dont la réputation est exploitée de cette manière ne seraient pas informés qu’ils ont été ajoutés en tant que mainteneurs de paquets en raison d’une faille logique dans le mécanisme d’invitation de NPM.

De plus, un acteur malveillant pourrait, en théorie, ajouter un mainteneur populaire à un paquet malveillant, puis le signaler pour activités illicites, ce qui pourrait nuire à sa réputation.

Le problème de logique a été signalé à la plateforme de primes de bogues de GitHub via HackerOne le 10 février, et un correctif a été déployé le 26 avril sous la forme d’un nouveau mécanisme de confirmation.

Ajouter un nouveau mainteneur à un projet NPM sans son approbation n’est plus possible.

« Il est important d’utiliser des sources fiables pour tous les composants tiers et de sécuriser votre environnement avec des solutions capables de détecter les menaces de la chaîne d’approvisionnement logicielle telles que la plantation de paquets », ont commenté les chercheurs.

« Les utilisateurs de NPM doivent vérifier que tous les packages répertoriés sous leur nom leur appartiennent réellement, afin de s’assurer qu’ils n’ont été ajoutés à aucun projet sans leur consentement. »

Projet d’analyse de package

Par ailleurs, le 28 avril, Google a annoncé son soutien à l’Open Source Security Foundation (OpenSSF) Projet d’analyse de packageun schéma prototype pour lutter contre la propagation de packages NPM malveillants.

Le programme d’analyse de packages est en cours de développement pour analyser dynamiquement les packages NPM téléchargés à la recherche de signatures malveillantes et pour « identifier quand un logiciel auparavant sûr commence à agir de manière suspecte ».

Google est membre d’OpenSSF. Le géant de la technologie mené une étude de 200 packages NPM malveillants téléchargés au cours d’un mois et a constaté que la plupart des attaques sont basées sur des techniques de typosquattage et de confusion des dépendances.

« Cet effort vise à améliorer la sécurité des logiciels open source en détectant les comportements malveillants, en informant les consommateurs de la sélection des packages et en fournissant aux chercheurs des données sur l’écosystème », OpenSSF dit. « Bien que le projet soit en développement depuis un certain temps, il n’est devenu utile que récemment après d’importantes modifications basées sur les premières expériences. »

La gorgée quotidienne a contacté GitHub et Aqua avec des requêtes supplémentaires et nous mettrons à jour cette histoire si et quand nous recevrons une réponse.