Les développeurs JavaScript seront mieux armés pour empêcher les paquets malveillants de se glisser dans leurs applications grâce à un trio d’outils publié par JFrog, affirme la société de logiciels.

Les outils – npm-secure-install, package-checker et npm_issues_statistic – sont conçus pour résoudre certains des problèmes de sécurité les plus épineux liés à l’utilisation de packages logiciels open source.

Entre autres choses, ils valident si les versions de package peuvent être approuvées, sécurisent les installations et surveillent les applications pour les composants potentiellement gênants.

Compromis de sécurité

Fournissant des millions de packages JavaScript open source, NPM est devenu la pierre angulaire du développement d’applications JavaScript.

Cependant, la commodité d’utiliser des packages open source s’accompagne de certains compromis en matière de sécurité. Les incidents de sécurité récents impliquant des vulnérabilités dans les logiciels open source ont soulevé des inquiétudes quant à savoir qui devrait assumer la responsabilité du contrôle et de la sécurisation du code de ces packages et comment.

Le développement des nouveaux outils de sécurité JFrog NPM a été provoqué par un incident récent au cours duquel un développeur a intentionnellement modifié deux packages NPM et les a rendus inutiles, ce qui a perturbé les applications qui en dépendaient.

« Cet incident a simplement attiré l’attention sur la discussion plus large qui se déroule dans l’industrie autour de la sécurité de la chaîne d’approvisionnement logicielle dans le monde moderne du développement de logiciels », a déclaré Ilya Khivrich, directeur principal des technologies avancées chez JFrog Security Research. La gorgée quotidienne.

Les développeurs font souvent aveuglément confiance aux packages NPM, alors que dans de nombreux cas, les outils de développement en extraient du code et l’intègrent dans des applications à l’insu du développeur. Ces applications hériteront donc de toutes les vulnérabilités contenues dans les packages.

Package-json.lock, un fichier de spécification qui oblige les applications JavaScript à utiliser une version spécifique d’une dépendance NPM, est fortement recommandé à la fois pour des raisons de stabilité et de sécurité. Cependant, dans certaines circonstances, cette fonctionnalité peut être contournée et amener les applications à exécuter une version malveillante du package.

Jfrog-npm-tools

La nouvelle suite d’outils de sécurité de JFrog est destinée à sécuriser la chaîne d’approvisionnement en ce qui concerne les dépendances NPM. Vérificateur de paquet vérifie si une version spécifique d’un package NPM peut être approuvée. Il recherche les signes de packages utilisés dans les attaques de la chaîne d’approvisionnement et peut identifier les risques potentiels avec les versions récemment publiées.

NPM-Secure-Installquant à lui, est un programme d’installation de packages qui applique des pratiques sécurisées, telles que l’interdiction de l’installation globale de packages à moins qu’ils ne contiennent npm-shrinkwrap.json, une spécification qui garantit que tout le monde obtient la même version de toutes les dépendances.

Et npm_issues_statistics surveille les applications pour les packages problématiques avant qu’ils ne soient signalés comme ayant des modifications avec rupture dans les versions mises à jour.

« Sur les trois outils, deux peuvent être utilisés directement dans le cycle de vie du développement », a déclaré Khivrich. « Npm-secure-install peut être directement utilisé par les développeurs en remplacement de npm-install, et package_checker peut être utilisé manuellement ou automatiquement lorsque le développeur décide de remplacer la version de dépendance utilisée. »

Npm_issues_statistics peut également être utilisé lors de la mise à niveau des dépendances, « mais dans ce cas uniquement manuellement et non dans le cadre d’un processus automatisé », a ajouté Khivrich.

JFrog envisage d’intégrer ces fonctionnalités et des fonctionnalités similaires dans son outil CLI pour assurer la gestion sécurisée des référentiels NPM.

« Que les outils soient ou non maintenus dans le cadre de la CLI JFrog ou sous une forme autonome, nous prévoyons d’améliorer encore les outils et d’étendre l’ensemble de raccourcis intuitifs qui facilitent la résolution de problèmes et les jugements de probabilité », a déclaré Khivrich.