Le populaire gestionnaire de packages et registre JavaScript NPM a été touché par un afflux de packages malveillants, dont les plus nocifs sont liés au vol de données, à l’extraction de crypto, aux botnets et à l’exécution de code à distance, selon une étude de la société de sécurité WhiteSource.
La plate-forme de détection automatisée de logiciels malveillants de WhiteSource, WhiteSource Diffend, a détecté un total de 1,300 paquets malveillants sur NPM, sur une période de six mois se terminant en décembre 2021.
Tous les packages malveillants identifiés par WhiteSource ont été notifiés à NPM et ont ensuite été supprimés du registre des packages.
NPM est un gestionnaire de packages et un registre largement utilisé avec plus de 1,8 million de packages actifs, chaque package ayant un peu plus de 12 versions en moyenne. Un package est un ensemble pré-écrit de fonctions utiles qui peuvent être appelées dans un environnement de programmation sans avoir à écrire chaque ligne de code à partir de zéro. Un gestionnaire de packages est un activateur créé avec du code open source qui permet d’installer ou de mettre à jour ces packages. NPM est un gestionnaire de packages par défaut pour l’environnement d’exécution JavaScript largement utilisé Node.js.
Le NMP est devenu la cible constante des mauvais acteurs, selon Source Blanche. Un rapport récemment publié par WhiteSource indique que 57% des attaques se produisent pendant trois jours de la semaine – vendredi, samedi et dimanche. La plupart de ces (81,7 %) sont des attaques de « reconnaissance », consistant en des techniques qui impliquent que les adversaires collectent activement ou passivement des informations qui peuvent être utilisées pour soutenir le ciblage. 14 % des attaques sont conçues pour voler des informations telles que des informations d’identification et d’autres détails sensibles.
Les attaques NPM et leurs techniques uniques
Certains des logiciels malveillants les plus récents détectés par WhiteSource incluent :
- Mos-sass-loader et css-resources-loader : packages destinés à émuler les packages NPM populaires style-resource-loader et saas-loader et conçus pour insérer du code source malveillant pour télécharger des voleurs d’informations tiers et également obtenir des connexions pour l’exécution de code à distance (RCE);
- Circle-admin-web-app et browser-warning-ui : packages contenant du code malveillant conçus pour télécharger des packages externes spécifiques au système d’exploitation contenant des logiciels malveillants pour lancer RCE ;
- Noopenpaint : un package de troll sans code malveillant qui lance quelques applications à tour de rôle et affiche “vous avez été piraté ;”
- @grubhubprod_cookbook : le package exploite la confusion des dépendances pour cibler spécifiquement Grubhub, pour intercepter les données et les envoyer à un emplacement distant ;
- Azure-web-pubsub-express : un package de recherche de sécurité sans intention nuisible, pour collecter les données système et les détails de l’interface réseau et les envoyer à interactsh.com ;
- Reac1 et reect1 : un package de simulation d’exercice se faisant passer pour un package de recherche et tentant de diriger les requêtes http du système hôte vers webhook.com ;
- Mrg-message-broker : similaire à @grubhubprod_cookbook, utilise dépendance confusion pour voler des données d’environnement ;
- @sixt-web/api-client-sixt-v2-apps : un autre package de confusion de dépendances regroupant les données système lors de l’installation ;
- @maui-mf/app-auth : un package d’attaque potentiel SRRF (falsification de demande côté serveur) exécutant la découverte des rôles d’instance de service de métadonnées AWS et les envoyant à un faux domaine externe.
La majorité de ces attaques relèvent de quatre catégories de menaces nuisibles, notamment cryptominage, vol de données, les botnets, et la recherche sur la sécurité. Les packages de recherche de sécurité sont ceux qui se présentent comme des programmes de recherche de sécurité, mais en réalité, contiennent l’exécution de code à distance (RCE) destiné à obtenir un accès complet à un hôte.
D’autres packages moins nocifs comprenaient des script kiddies et des hacks SEO. “Les script kiddies sont des packages qui ne causent pas de dommages ou ne collectent pas de données, mais impriment des messages dérangeants tels que” Vous avez été piraté “”, explique Maciej Mansfeld, chef de projet senior chez WhiteSource. « Quelques packages tentent également d’exploiter le fait que NPM affiche le README des packages sur son registre en ligne pour renforcer le référencement de leur présence en ligne. Nous avons vu des casinos en ligne et des sites Web érotiques essayer d’exploiter cela.
La confusion des dépendances constitue une menace majeure
Le rapport recommande la prudence, en particulier concernant les attaques qui cherchent à exploiter la confusion des dépendances dans NPM, et le fait que la plupart des mauvais codes n’ont même pas besoin d’être téléchargés manuellement pour que l’attaque fonctionne.
“Une attaque par confusion de dépendance est un type d’attaque de la chaîne d’approvisionnement qui se produit lorsqu’un gestionnaire de packages est manipulé pour fournir un code malveillant au lieu du code prévu”, explique Mansfeld. “La méthode la plus connue pour exploiter cette vulnérabilité consiste à utiliser le mécanisme de hiérarchisation des gestionnaires de packages pour fournir les dernières versions.”
Dans de tels cas, lorsque les attaquants parviennent à trouver un nom de package de dépendance interne, ils peuvent alors créer un package public portant le même nom avec un numéro de version supérieur. Le package public malveillant sera alors préféré par le gestionnaire de packages et installé automatiquement à chaque appel de mise à jour.
Comment rester en sécurité sur NPM
Le rapport recommande l’adoption d’une confiance zéro politique sur le système, mise à jour uniquement lorsque vous êtes sûr du contenu d’un package ; être conscient de l’environnement et suivre régulièrement les changements ; exécuter l’intégration continue (IC) en phase isolée ; et garder un œil sur le SDLC (cycle de vie du développement logiciel).
Selon Mansfeld, la surveillance des packages qui téléchargent des composants distants lors de l’installation et le suivi de tous les composants OSS (système d’assistance aux opérations) utilisés sont également de bonnes routines sanitaires pour les utilisateurs finaux de NPM.
Copyright © 2022 IDG Communications, Inc.
— to www.csoonline.com