Un paquet npm, gestionnaire de paquets pour la bibliothèque populaire JavaScript Node.js, a été infecté par un hacker
pour lui permettre de voler des identifiants npm
npm est désormais incontournable pour les développeurs javascript . Apparu avec node.js en 2009 son usage dépasse aujourd’hui l’environnement serveur. Il est de plus en plus utilisé pour des applications front et son usage comme outil de développement devient quasi systématique. De plus il reste simple et permet d’accéder au plus gros dépôt de paquets tout langages confondus.
Un hacker a accédé au compte npm d'un développeur et a injecté du code malveillant dans une bibliothèque JavaScript populaire, un code conçu pour voler les informations d'identification npm des utilisateurs qui utilisent le paquet infecté dans leurs projets. Pour rappel, npm est le gestionnaire de paquets officiel de Node.js.
Depuis la version 0.6.3 de Node.js, npm fait partie de l'environnement et est donc automatiquement installé par défaut. npm fonctionne avec un terminal et gère les dépendances pour une application. Il permet également d'installer des applications Node.js disponibles sur le dépôt npm.
Le paquet JavaScript (npm) qui a été compromis est eslint-scope, un sous-module de la plus célèbre ESLint, une boîte à outils d'analyse de code JavaScript.
Le hack a eu lieu dans la nuit du 11 au 12 juillet, selon les résultats d'une enquête préliminaire publiée sur GitHub il y a quelques heures.
« Un de nos responsables a observé qu'un nouveau jeton NPM a été généré du jour au lendemain (le responsable était endormi). Nous pensons que le jeton a probablement été utilisé mais attendons la confirmation de npm. Ce responsable a changé le mot de passe, activé l’authentification à deux facteurs et généré de nouveaux jetons.», a déclaré Kevin Partington, membre du projet ESLint.
Partington pense que le hacker s’est servi du jeton npm nouvellement généré pour s'authentifier et envoyer une nouvelle version de la bibliothèque eslint-scope sur le dépôt npm des paquets JavaScript.
La version malveillante était eslint-scope 3.7.2, que les mainteneurs du dépôt npm ont récemment mis hors ligne.
« Le code publié semble voler des informations d'identification npm, nous recommandons donc à tous ceux qui ont installé cette version de changer leur mot de passe npm et (si possible) révoquer leurs jetons npm et en générer de nouveaux », a proposé Partington. .
Peu de temps après que Partington ait fait cette recommandation, l'équipe de npm est intervenue et a annoncé son intention de le faire pour les utilisateurs.
« npm a l'intention d'invalider tous les jetons actifs, pour empêcher complètement la possibilité que des jetons volés soient utilisés à des fins malveillantes.Ce travail est en cours, mais vous devriez avoir besoin de générer à nouveau des jetons pour les systèmes de construction, etc. », a expliqué l'équipe de NPM. « Précision supplémentaire : npm révoquera tous les jetons émis avant 2018-07-12 12:30 UTC Si vous avez émis des jetons après cette période, vous n'aurez plus besoin de le faire à nouveau ».
L'incident est d'une grande importance car les informations d'identification NPM volées peuvent être utilisées de la même manière. Le hacker peut utiliser n'importe lequel des identifiants NPM volés pour empoisonner d'autres librairies JavaScript mises à disposition via npm, gestionnaire de paquet dans l’écosystème JavaScript.
C'est le troisième incident en un an dans lequel un hacker a inséré un code malveillant dans un paquet npm. Le premier incident de ce type s'est produit en août 2017 lorsque l'équipe npm a supprimé 38 paquets npm JavaScript qui ont été pris à voler des variables d'environnement à partir de projets infectés.
En mai 2018, un hacker a tenté de cacher une porte dérobée dans un autre paquet npm populaire nommé getcookies.
Source : GitHub
Et vous ?
Utilisez-vous nmp ? Pour quels types de développement ?
Qu'en pensez-vous ?
Voir aussi :
Un développeur JavaScript estime que l'écosystème Node.js est « chaotique et peu sûr », et voici pourquoi
Google ouvre App Engine Standard au déploiement de services développés en JavaScript avec la plateforme logicielle libre Node.js
Non, Microsoft n'a pas abandonné C++, C#, etc. pour réécrire ses outils et logiciels en JavaScript : un développeur de la firme fait des précisions
Microsoft serait en train de réécrire certains de ses outils et logiciels en JavaScript : Office 365, Teams, Skype, VS Code et probablement d'autres
Hyperapp, une bibliothèque JavaScript de 1 ko pour la création d'applications Web front-end, en quoi diffère-t-elle des bibliothèques existantes ?
Partager