Malicious PyPI and npm Packages Discovered Exploiting Dependencies in Supply Chain Attacks

2 minute de lecture

Mis à jour :

Menace des chaînes d’approvisionnement : Exploitation des dépendances dans les dépôts de paquets

Des chercheurs en cybersécurité ont identifié des paquets malveillants dans les répertoires PyPI (Python Package Index) et npm qui exploitent les dépendances pour mener des attaques de chaîne d’approvisionnement. Ces paquets introduisent des comportements nuisibles, établissent la persistance et exécutent du code à distance.

Points clés :

  • Opération multi-étapes : Le paquet malveillant “termncolor” (PyPI) utilisait “colorinal” comme dépendance pour charger une DLL compromise. Cette DLL déchiffrait et exécutait ensuite une charge utile.
  • Techniques d’exécution : L’attaque utilisait le “DLL side-loading” pour lancer une DLL malveillante (“libcef.dll”) avec un exécutable légitime (“vcpktsvr.exe”). La DLL collectait des informations système et communiquait avec un serveur de commande et contrôle (C2) via Zulip, une application de chat open-source, pour dissimuler ses activités.
  • Persistance : La persistance était assurée par la création d’une entrée dans la clé de registre “Run” de Windows pour une exécution automatique au démarrage du système.
  • Plateformes ciblées : Les attaques affectent les systèmes Windows et Linux, avec des bibliothèques Python laissant tomber des fichiers partagés (“terminate.so”) sur Linux pour reproduire la fonctionnalité malveillante.
  • Ciblage des développeurs : Des paquets npm malveillants ont également été découverts, ciblant les développeurs via de fausses offres d’emploi. Ces paquets dérobaient des informations sensibles comme les mots de passe iCloud Keychain, les données de navigateur et les portefeuilles de cryptomonnaies.
  • Fonctionnalités malveillantes supplémentaires : Les paquets npm compromis téléchargeaient et exécutaient des scripts Python, capturaient des informations système, analysaient les systèmes de fichiers pour des données sensibles, volaient des identifiants, enregistraient les frappes clavier, prenaient des captures d’écran et surveillaient le contenu du presse-papiers.
  • Exploitation des outils d’automatisation : Des outils de mise à jour automatique de dépendances comme Dependabot peuvent involontairement introduire des risques de sécurité accrus lorsqu’ils ne sont pas correctement configurés, comme dans le cas de “eslint-config-prettier” où une dépendance mal déclarée a permis des mises à jour non vérifiées.

Vulnérabilités identifiées :

  • Bien que des CVE spécifiques ne soient pas mentionnés dans l’article, le mécanisme d’attaque repose sur l’exploitation des dépendances et la technique de “DLL side-loading”.

Paquets malveillants retirés :

  • PyPI :
    • termncolor
    • colorinal
  • npm :
    • redux-ace
    • rtk-logger

Recommandations :

  • Surveillance des écosystèmes open-source : Il est crucial de surveiller activement les dépôts de paquets pour détecter les signes d’attaques de la chaîne d’approvisionnement.
  • Vérification rigoureuse des dépendances : Examiner attentivement les dépendances des paquets avant de les intégrer dans un projet.
  • Configuration appropriée des outils : S’assurer que les outils de gestion automatique des dépendances sont configurés de manière sécurisée, en distinguant clairement les dépendances de développement des dépendances d’exécution.
  • Principe de moindre privilège : Déclarer les outils de développement comme “devDependencies” pour éviter leur installation automatique avec les dépendances régulières.

Source