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

    Quatre packages npm trouvés en train d’ouvrir des shells sur les systèmes Linux et Windows
    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 »

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

  2. #2
    Expert éminent
    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...

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  3. #3
    Membre expert
    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)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  4. #4
    Expert éminent
    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é.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  5. #5
    Membre expérimenté
    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

  6. #6
    Membre confirmé
    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.

  7. #7
    Nouveau membre du Club
    "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 ?

###raw>template_hook.ano_emploi###