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 !

Un package npm malveillant ouvre des portes dérobées sur les ordinateurs des programmeurs,
Le code JavaScript douteux se faisant passer pour une bibliothèque liée à la plateforme Twilio

Le , par Stan Adkens

83PARTAGES

6  0 
Les développeurs ont été exposés à une autre astuce malveillante ce week-end. Une bibliothèque JavaScript, se présentant comme une bibliothèque liée à Twilio et qui ouvre des portes dérobées sur les ordinateurs des programmeurs pour permettre aux attaquants d'accéder aux postes de travail infectés, a été mise en ligne dans le registre open source npm vendredi dernier. Heureusement, le logiciel malveillant, en trois versions, a été rapidement détecté par le service de détection de codes malveillants Release Integrity de Sonatype, et supprimé lundi.

L'équipe de sécurité npm a retiré lundi du site Web npm une bibliothèque JavaScript baptisée "twilio-npm" parce qu'elle contenait du code malveillant permettant d'ouvrir des portes dérobées sur les ordinateurs des programmeurs. Les packages contenant du code malveillant sont devenus un thème récurrent du registre de code JavaScript open source. La dernière bibliothèque incriminée, conçue pour permettre l'exécution de code à distance, a été repérée par Sonatype, l'entreprise de sécurité qui a signalé d’autres packages malveillants en septembre et en octobre.


La bibliothèque JavaScript (et son comportement malveillant) a été découverte ce week-end par Sonatype, qui surveille les dépôts de paquets publics dans le cadre de ses services d'opérations de sécurité pour les DevSecOps. Dans un rapport publié lundi, Sonatype a déclaré que la bibliothèque a été publiée pour la première fois sur le site Web npm vendredi, a été découverte le même jour et retirée lundi après que l'équipe de sécurité npm a mis le package sur liste noire.

Il existe de nombreux packages légitimes sur le registre npm liés ou représentant le service officiel Twilio. Mais selon Ax Sharma, ingénieur en sécurité chez Sonatype, twilio-npm n'a rien à voir avec l’entreprise Twilio. Twilio n'est pas impliqué et n'a rien à voir avec cette tentative de brandjacking. Twilio est une plateforme de communication en nuage de premier plan - en tant que service - qui permet aux développeurs de créer des applications basées sur la voix sur IP capables de passer et de recevoir des appels téléphoniques et des messages texte de manière programmable.

Le paquet officiel de Twilio npm est téléchargé près d'un demi-million de fois par semaine, selon l’ingénieur. Sa simple popularité explique pourquoi les acteurs de la menace pourraient être intéressés à piéger les développeurs avec un composant contrefait au nom identique.

« Le paquet Twilio-npm n'est pas resté assez longtemps pour tromper beaucoup de gens, cependant. Téléchargé le vendredi 30 octobre, le service Release Integrity de Sontatype a apparemment signalé le code comme suspect un jour plus tard - l'IA et l'apprentissage machine ont manifestement des usages. Le lundi 2 novembre, le biz a publié ses conclusions et le code a été retiré ».

Malgré une courte durée de vie sur le portail npm, la bibliothèque a été téléchargée plus de 370 fois et automatiquement incluse dans des projets JavaScript construits et gérés via l'utilitaire en ligne de commande npm (Node Package Manager), selon Sharma. Et beaucoup de ces demandes initiales sont probablement venues de moteurs d'analyse et de proxys qui visent à suivre les changements apportés au registre npm.

Mode opératoire du package malveillant

Release Integrity de Sonatype est une solution proactive basée sur l'IA/ML qui balaie régulièrement les dépôts open source à la recherche de comportements suspects et de composants contrefaits. Elle scanne en permanence les composants en miroir à partir des dépôts OSS tels que npm pour déterminer si quelque chose ne semble pas correct. En d’autres termes, d’après Sharma, à chaque fois qu'un auteur publie un nouveau composant sur npm, il est détecté par le moteur et analysé, en temps quasi réel. C'est ainsi que Sonatype a repéré twilio-npm peu après sa sortie sur le registre npm.

Selon Sharma, le package contrefait est un malware à fichier unique et a 3 versions disponibles au téléchargement (1.0.0, 1.0.1 et 1.0.2). Les trois versions semblent avoir été publiées le même jour, le 30 octobre. La version 1.0.0 n'accomplit pas grand-chose, selon Sharma. Elle ne comprend qu'un minuscule fichier manifeste, package.json, qui tire une ressource située dans un sous-domaine ngrok.

ngrok est un service légitime que les développeurs utilisent lorsqu'ils testent leur application, notamment pour ouvrir des connexions à leurs applications de serveur "localhost" derrière un NAT ou un pare-feu. Cependant, à partir des versions 1.0.1 et 1.0.2, le même manifeste a son script post-installation modifié pour effectuer une tâche sinistre, selon Sharma.


Ax Sharma, qui a découvert et analysé la bibliothèque, a déclaré que le code malveillant trouvé dans la fausse bibliothèque Twilio a ouvert un shell TCP inverse sur tous les ordinateurs où la bibliothèque a été téléchargée et importée dans les projets JavaScript/npm/Node.js. Le shell inversé a ouvert une connexion à "4.tcp.ngrok[.]io:11425" d'où il a attendu de recevoir de nouvelles commandes à exécuter sur les ordinateurs des utilisateurs infectés.

Cela ouvre effectivement une porte dérobée sur la machine de l'utilisateur, donnant à l'attaquant le contrôle de la machine compromise et des capacités d'exécution de code à distance (RCE). Sharma a déclaré que l'interpréteur de commandes inversé ne fonctionnait que sur les systèmes d'exploitation basés sur UNIX.

Les développeurs doivent changer les identifiants, les secrets et les clés

L'avis du npm indique que les développeurs qui ont pu installer le package malveillant avant sa suppression courent un danger. « Tout ordinateur sur lequel ce package est installé ou qui fonctionne doit être considéré comme totalement compromis », a déclaré lundi l'équipe de sécurité du npm, confirmant l'enquête de Sonatype. « Tous les secrets et les clés stockés sur cet ordinateur doivent être immédiatement transférés à partir d'un autre ordinateur », a ajouté l'équipe npm.

Cependant, l'incident n'est pas un événement isolé. Il s'agit du quatrième grand démantèlement de packages npm malveillant au cours des trois derniers mois. Fin août, l'équipe npm a retiré une bibliothèque npm malveillante (JavaScript) conçue pour voler des fichiers sensibles du navigateur et de l'application Discord d'un utilisateur infecté. En septembre, le personnel du npm a supprimé quatre bibliothèques npm (JavaScript) pour la collecte de données sur les utilisateurs et la mise en ligne des données volées sur une page GitHub publique.

En octobre, l'équipe npm a retiré trois paquets npm (JavaScript) qui ont également été pris en train d'ouvrir des shells inverses (portes dérobées) sur les ordinateurs des développeurs. Les trois packages ont également été découverts par Sonatype. Contrairement à celui découvert le week-end dernier, ces trois paquets fonctionnaient également sur des systèmes Windows, et pas seulement sur des systèmes de type UNIX.

Un document de recherche publié en septembre a affirmé que l'écosystème npm n'est pas aussi risqué qu'il n'y paraît. Cependant, cette étude s'est concentrée sur les vulnérabilités incorporées dans les bibliothèques plutôt que sur les tentatives délibérées de saboter les packages avec du code malveillant.

« Les logiciels open source sont publiés et consommés chaque jour à une échelle de plus en plus massive, mais la plupart des protections de sécurité reposent encore sur la confiance de la communauté et la surveillance humaine - qui peuvent être facilement abusées », a déclaré AJ Brown, chef de produit chez Sonatype.

Source : Sonatype

Et vous ?

Qu’en pensez-vous ?
Avez-vous des projets nmp ? Êtes-vous concerné par les derniers packages malveillants découverts ?

Voir aussi :

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 service npm Enterprise JavaScript est disponible, il s'accompagne de plus de fonctionnalités que la base de code du registre public npm
Des hackers ont glissé une porte dérobée dans une bibliothèque open source largement utilisée, pour voler des bitcoins
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

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

Avatar de BurSyst
Candidat au Club https://www.developpez.com
Le 09/11/2020 à 22:41
« Les logiciels open source sont publiés et consommés chaque jour à une échelle de plus en plus massive, mais la plupart des protections de sécurité reposent encore sur la confiance de la communauté et la surveillance humaine - qui peuvent être facilement abusées »
La gratuité a toujours son côté sombre!
0  1