IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quatre packages npm trouvés en train d'ouvrir des shells sur des systèmes Linux et Windows.
Tout ordinateur avec l'un de ces packages installés « doit être considéré comme totalement compromis »

Le , par Stan Adkens

638PARTAGES

15  0 
L’équipe de sécurité de npm a supprimé la semaine dernière quatre packages hébergés sur son dépôt, découverts en train d’ouvrir des shells afin d’établir une connexion à des serveurs distants pour exfiltrer les données des utilisateurs à partir des systèmes Linux et Windows infectés. Selon l’équipe de sécurité, chaque bibliothèque a été téléchargée des centaines de fois depuis son chargement sur le portail npm.

Les noms des quatre packages npm sont : plutov-slack-client, nodetest199, nodetest1010 et npmpubman. Les packages ont été mis en ligne sur le portail npm en mai 2018 (en ce qui concerne le premier) et en septembre de la même année (pour le reste). Jeudi dernier, le personnel du npm a retiré les quatre paquets JavaScript du portail npm parce qu'ils contenaient du code malveillant.


npm est le plus grand dépôt de packages pour tous les langages de programmation. L'équipe de sécurité de npm scanne régulièrement sa collection de bibliothèques JavaScript, considérée comme le plus important dépôt. Bien que les pacquages malveillants soient régulièrement supprimés, la suppression de la semaine dernière est la troisième grande mesure de répression de ces trois derniers mois.

Selon les avis publiés par l'équipe de sécurité de npm, les quatre bibliothèques JavaScript ont ouvert des shells sur les ordinateurs des développeurs qui ont importé ces packages dans leurs projets. Les shells permettaient aux acteurs de la menace de se connecter à distance à l'ordinateur infecté et d'exécuter des opérations malveillantes. L'équipe de sécurité de npm a déclaré que les shells pouvaient fonctionner à la fois sur les systèmes d'exploitation Windows et *nix, tels que Linux, FreeBSD, OpenBSD, et d'autres.

Procédure d’infection et de collecte de données sur l’ordinateur cible

Une fois importés dans des projets des développeurs, ces packages constituent un danger pour les ordinateurs cibles. Le chercheur en sécurité, AX Sharma, qui a analysé les packages, a révélé que plutov-slack-client, nodetest1010 et nodetest199 partagent un code identique simpliste, mais capable de fonctionner sur tous les systèmes cités plus haut.

Une fois les packages installés, le code établit un shell inversé vers le serveur de l'attaquant, permettant à ce dernier d'obtenir un accès à distance à la machine compromise, d’après Sharma. Une des principales conclusions, selon le chercheur en sécurité, est que, malgré le fait que les trois packages partagent un code identique, le fichier manifeste (package.json) contenu dans chacun d'entre eux possède des métadonnées radicalement différentes sur la localisation de l'auteur et ses profils GitHub.

Quant à la dernière bibliothèque de la liste, npmpubman, elle a une structure de code et un objectif très différents, selon le chercheur. Ce package collecte les données utilisateur à partir des variables d'environnement et les télécharge sur un hôte distant. Selon le chercheur, dans un scénario réel, npmpubman pourrait être utilisé dans le cadre des efforts de reconnaissance d'un attaquant pour collecter des informations sur un système, alors que les autres paquets établissent une connexion directe entre les ordinateurs de l'attaquant et celui de la victime.

Il est possible que les quatre paquets aient été créés par le(s) même(s) attaquant(s) malgré les données contradictoires fournies dans le manifeste du paquet .json, d’après Sharma. Les packages JavaScript ont été retirés du portail npm et les différents comptes d'auteurs npm associés à ces 4 paquets ont été fermés par l’équipe de sécurité de npm.

« Toutes les versions de plutov-slack-client contiennent du code malveillant. Lors de l'installation, le paquet ouvre un shell vers un serveur distant. Le paquet affecte à la fois les systèmes Windows et *nix », lit-on dans l’avis de l’équipe de npm, en ce qui concerne le premier package plutov-slack-client. L’équipe a également mis en garde les développeurs qui utilisent ses bibliothèques.

« Tout ordinateur sur lequel ce paquet est installé ou en fonctionnement doit être considéré comme totalement compromis. Tous les secrets et clés stockés sur cet ordinateur doivent être immédiatement changés à partir d'un autre ordinateur ».

« Le package doit être retiré, mais comme le contrôle total de l'ordinateur peut avoir été donné à une entité extérieure, il n'est pas garanti que le retrait du paquet supprimera tous les logiciels malveillants résultant de son installation ».

Les cas de logiciels malveillants s'infiltrant dans l'écosystème open source sont de plus en plus nombreux. En août, l'équipe de sécurité de npm a supprimé la bibliothèque JavaScript nommée "fallguys" du portail npm parce qu'elle contenait un code malveillant utilisé pour voler des fichiers sensibles du navigateur d'un utilisateur infecté et de l'application Discord. Le package malveillant prétendait fournir une interface à l'API du jeu "Fall Guys: Ultimate Knockout". Cependant, une fois que les développeurs ont téléchargé la bibliothèque et l'ont intégrée dans leurs projets, lorsqu’un développeur infecté exécutait son code, le package malveillant s'exécutait également.

En septembre, le personnel de npm a supprimé quatre bibliothèques JavaScript contenant du code malveillant destiné à collecter des informations sur les utilisateurs et à télécharger les données volées sur une page GitHub publique. Une fois qu'un développeur a inclus et installé par erreur l'un des quatre packages malveillants, le code malveillant trouvé à l'intérieur collectait l'adresse IP du développeur, le pays, la ville, le nom d'utilisateur de l'ordinateur, le chemin du répertoire personnel et les informations sur le modèle de processeur, et publiait ces informations sous forme de nouveau commentaire dans la section "Problèmes" d'un dépôt GitHub.

Sources : npm(1, 2, 3 & 4)

Et vous ?

Qu’en pensez-vous ?
Avez-vous des projets nmp ? Avez-vous déjà supprimé les packages malveillants ?

Voir aussi :

Un projet Node.js sur deux audité par les outils de npm aurait au moins une vulnérabilité, une sur dix d'entre elles est critique
Des hackers ont glissé une porte dérobée dans une bibliothèque open source largement utilisée, pour voler des bitcoins
Le service npm Enterprise JavaScript est disponible, il s'accompagne de plus de fonctionnalités que la base de code du registre public npm
npm 6.0.0, le gestionnaire de paquets officiel de Node.js. passe en @latest, et se concentre désormais sur la sécurité

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de transgohan
Expert éminent https://www.developpez.com
Le 19/10/2020 à 16:20
Citation Envoyé par Doksuri Voir le message
windows a fait mieux : techviral.net/malware-infected-windows-users/ (pour ceux qui ne comprennent pas l'anglais : un virus vieux de 15ans sur windows)
Je comprends surtout que cela n'a rien à voir.
Il ne vient pas du store windows non (cela n'existait pas à l'époque) ?

Or là on parle du NPM Registery, c'est donc centralisé et doit être contrôlé...

C'est un peu comme comparer un virement de ta banque et la remise en main propre d'argent.
Dans le premier cas tu as un acteur qui agit comme référence de sécurité, dans le second cas... Cela vient de n'importe qui, n'importe où, sans aucune sécurité.
5  0 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 19/10/2020 à 14:39
Citation Envoyé par Stan Adkens Voir le message
Les noms des quatre packages npm sont : plutov-slack-client, nodetest199, nodetest1010 et npmpubman. Les packages ont été mis en ligne sur le portail npm en mai 2018 (en ce qui concerne le premier) et en septembre de la même année (pour le reste). Jeudi dernier, le personnel du npm a retiré les quatre paquets JavaScript du portail npm parce qu'ils contenaient du code malveillant.
[...]
Et vous ?

Qu’en pensez-vous ?
Que deux ans pour trouver un package malicieux c'est un peu beaucoup...
4  0 
Avatar de
https://www.developpez.com
Le 20/10/2020 à 11:34
Qu'apprends-je ? Le système de dépendances de JS et le fameux "node_modules" serait un vecteur d'attaques ? NodeJS est une plaie à sécuriser convenablement ?

Je suis pantois
4  0 
Avatar de Gazeld
Membre régulier https://www.developpez.com
Le 21/10/2020 à 9:53
"npmpubman pourrait être utilisé dans le cadre des efforts de reconnaissance d'un attaquant" : un attaquant fait des efforts de reconnaissance ? Ou on fait des efforts pour reconnaître un attaquant ?

Qu'est-ce que c'est que ces phrases encore mal tournées dont le sens devient complètement abscons ?
2  0 
Avatar de Fagus
Membre expert https://www.developpez.com
Le 20/10/2020 à 17:00
Citation Envoyé par Doksuri Voir le message
windows a fait mieux : techviral.net/malware-infected-windows-users/ (pour ceux qui ne comprennent pas l'anglais : un virus vieux de 15ans sur windows)
En fait quand on remonte aux sources, ce n'est pas un vieux malware, mais un botnet régulièrement mis à jour et sophistiqué (500 000 PC infectés, obfuscation, compilation d'un binaire unique par utilisateur !, réseau de proxies initialisé depuis youtube, désactivation d'antivirus et des malwares concurrents...).

-------------

Pour les paquets, c'est en effet une zone grise : beaucoup de paquets maintenus par peu de monde, personne pour relire, facilité de cacher une vulnérabilité obfusquée. Les éditeurs d'antivirus avec leur personnel payé pour ça, leurs moteurs d'analyse comportementale semblent incontournables à terme.
1  0 
Avatar de niuxe
Membre régulier https://www.developpez.com
Le 13/12/2020 à 12:53
npm est le plus grand dépôt de packages pour tous les langages de programmation.
Toutes mes félicitations....
0  0 
Avatar de Doksuri
Expert confirmé https://www.developpez.com
Le 19/10/2020 à 15:47
Citation Envoyé par transgohan Voir le message
Que deux ans pour trouver un package malicieux c'est un peu beaucoup...
windows a fait mieux : techviral.net/malware-infected-windows-users/ (pour ceux qui ne comprennent pas l'anglais : un virus vieux de 15ans sur windows)
1  2