Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    3 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 3 862
    Points : 97 336
    Points
    97 336

    Par défaut Un paquet npm a été infecté par un hacker pour lui permettre de voler des identifiant npm

    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. .

    Nom : npm.png
Affichages : 4519
Taille : 3,6 Ko

    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 ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Modérateur
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    3 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 3 505
    Points : 13 796
    Points
    13 796

    Par défaut L'authentification à 2 facteurs obligatoire en beta

    L'authentification à deux facteurs obligatoire en bêta,
    pour les mainteneurs sur les paquets indiqués comme protégés.

    Suite à l'infection des paquets eslint-scope et eslint-config-eslint signalée le 12 juillet dernier ici même, npm a publié un rapport d'incident pour faire le point.

    Nom : Dh69NXEW4AA2zGp.jpg
Affichages : 2942
Taille : 27,9 Ko

    L'équipe de sécurité a déterminé que 4500 comptes avaient pu voir leur tokens d'accès ("access token" en anglais, cf. oAuth2) compromis par le pirate.

    Par prudence, npm a révoqué tous les tokens créés avant le 12 juillet à 14h30 UTC, c'est à dire pour les Français métropolitains avant le 12 juillet à 16h30 (heure d'été).

    En conséquence, tous les utilisateurs connectés sur leur CLI avant cette date doivent se reconnecter, l'exécution de la commande npm publish retournant désormais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    npm WARN notice Due to a recent security incident, all user tokens have been invalidated. Please see https://status.npmjs.org/incidents/dn7c1fgrr7ng for more details. To generate a new token, visit https://www.npmjs.com/settings/~/tokens or run "npm login".
    npm ERR! publish Failed PUT 401
    npm ERR! code E401
    npm ERR! You must be logged in to publish packages. : <package-name>
    Le rapport d'incident précise que l'attaque n'a pas eu lieu à cause d'une brèche du côté du registre ou du CLI mais bien du fait d'une brèche chez un mainteneur des paquets eslint-scope et eslint-config-eslint.

    L'attaque détectée en moins d'une heure et réglée dans la journée

    ESLint a également publié un billet de blog détaillant précisément l'attaque et s'excuse pour le vecteur fourni par un de ses mainteneurs.

    Le billet précise que l'attaque a été détectée et signalée publiquement par un utilisateur du paquet eslint-scope moins d'une heure après que le paquet malicieux a été uploadé sur le registre.

    Le problème a été soldé moins de 10 heures plus tard par la révocation des tokens d'accès comme expliqué ci-dessus.

    En conséquence de cet incident, npm a décidé de permettre aux responsables de paquets de les protéger via l'authentification à deux facteurs.

    L'authentification à 2 facteurs pour les paquets rendue obligatoire

    Le lendemain de la publication du rapport d'incident, l'équipe npm a publié un court billet de blog pour promouvoir
    la 2FA sur les paquets.

    À l'heure actuelle cette fonctionnalité n'est activable que via le CLI en version canary qui correspond à la version taguée @next.

    En revanche son exécution est très bien supportée par le CLI actuel et elle peut donc d’ores et déjà être utilisée.

    Il est simplement nécessaire d'activer son usage via la version canary via cette commande : npx npmc access 2fa-required <package>L'usage de la 2FA est documenté largement, mais il est à noter que son usage nécessite l'installation d'une application tierce permettant de recevoir le mot de passe à usage unique.

    Finalement, toute action via le CLI entrainant la publication d'une nouvelle version de paquet sur un paquet marqué comme protégé par la 2FA nécessite la saisie d'un mot de passe à usage unique, même si l'utilisateur n'a pas activé la 2FA sur son compte.

    Sources : Rapport d'incident du 12 juillet 2018, Protection 2FA pour les paquets sur le blog npm officiel, Billet "postmortem" sur le blog ESLint officiel .


    Et vous ?

    Que pensez-vous de cet incident ?
    Avez-vous activé l'authentification à deux facteurs ?
    Êtes-vous inquiets des éventuels problèmes de sécurité posés par l'usage de npm ?

    Voir aussi :

    Un paquet npm, gestionnaire de paquets pour la bibliothèque populaire JavaScript Node.js, a été infecté par un hacker
    Un développeur JavaScript estime que l'écosystème Node.js est « chaotique et peu sûr »
    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

Discussions similaires

  1. Réponses: 23
    Dernier message: 02/07/2010, 01h31
  2. tout *.exe infecté par win32:shodi-E !
    Par devlopassion dans le forum Sécurité
    Réponses: 8
    Dernier message: 06/11/2006, 18h15
  3. PC infecté par le trojan Win32.Adload.ap
    Par winow dans le forum Sécurité
    Réponses: 4
    Dernier message: 15/05/2006, 16h40
  4. PC infecté par un Virus ou autre
    Par koyt dans le forum Sécurité
    Réponses: 9
    Dernier message: 07/02/2006, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo