L'équipe du gestionnaire de paquets de Node (npm) a découvert un mécanisme de porte dérobée intelligemment caché à l'intérieur d'un paquet JavaScript populaire obsolète.
Le mécanisme réel de la porte dérobée a été trouvé dans « getcookies », un paquet npm (ou Node Package Manager) relativement récent (bibliothèque JavaScript) qui fonctionne avec les cookies du navigateur. L'équipe npm a analysé ce paquet. Les rapports de l'équipe disent que getcookies contient un système complexe pour recevoir les commandes d'un attaquant distant qui pourrait cibler n'importe quelle application JavaScript qui a incorporé cette bibliothèque. L'équipe npm explique : la porte dérobée fonctionne en analysant les requêtes HTTP request.headers fournies par l'utilisateur à la recherche de données spécifiquement formatées.
Selon l'équipe npm, la porte dérobée « permettait à un attaquant de saisir du code arbitraire sur un serveur en cours d'exécution et de l'exécuter ».
Le module backdoor d'origine a été importé dans d'autres paquets. La bibliothèque getcookies était nouvelle et pas très populaire. Etant inclus dans très peu de projets. L'équipe npm dit qu'elle a découvert une chaîne de dépendances imbriquées à travers laquelle le paquet getcookies avait indirectement fait partie de la structure d'une bibliothèque très populaire appelée Mailparser.
Mailparser est un paquet npm pour analyser les données de courrier électronique en utilisant JavaScript. En dépit d'être obsolète, Mailparser reçoit encore environ 64 000 téléchargements hebdomadaires. Néanmoins, l'équipe npm rappelle que les utilisateurs de Mailparser n'ont pas été touchés. Seuls les utilisateurs ayant directement besoin d'utiliser les paquets express-cookies ou getcookies sont impactés.
En août 2017, la même équipe de npm avait supprimé 38 paquets npm qui volaient des variables d'environnement à partir de projets infectés. Quelque chose de similaire s'est passé sur PyPI (Python Package Index), le référentiel de logiciels tiers officiel pour le langage de programmation Python. En septembre 2017, le Bureau de la sécurité nationale slovaque (NBU) a découvert et signalé dix paquets Python malveillants sur PyPI, qui ont été rapidement retirés.
L'équipe a entrepris des actions pour résoudre le problème. Elle a commencé par supprimer l'utilisateur « dustin87 » derrière l'attaque. Puis, supprimer les getcookies non publiés, les cookies express et les cookies http-fetch. Ils ont également déployé Mailparser version 2.2.0, supprimant trois versions (2.2.3, 2.2.2 et 2.2.1) qui contenaient le paquet malveillant http-fetch-cookies. Ils ont aussi réinitialisé les jetons npm pour les utilisateurs de Mailparser afin d'empêcher d'autres publications non autorisées.
Source : npm blog
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
npm 6.0.0, le gestionnaire de paquets officiel de Node.js. passe en @latest, et se concentre désormais sur la sécurité
npm 5.7.0 retiré de la circulation à peine deux jours après sa sortie, la version 5.7.1 publiée pour corriger un problème critique
npm en version 5.7.0 est maintenant disponible, l'alignement vers les pratiques DevOps se poursuit