Un flux de packages NPM et PyPi malveillants a été découvert en train de voler un large éventail de données sensibles aux développeurs de logiciels sur les plates-formes.
La campagne a débuté le 12 septembre 2023 et a été découvert pour la première fois par Sonatypedont les analystes ont découvert 14 packages malveillants sur npm.
Phylum rapporte qu’après une brève interruption opérationnelle les 16 et 17 septembre, l’attaque a repris et s’est étendue à l’écosystème PyPI.
Depuis le début de la campagne, les attaquants ont mis en ligne 45 packages sur npm (40) et PyPI (5), avec des variantes dans le code indiquant une évolution rapide de l’attaque.
Colis malveillants
La liste complète des packages malveillants distribués dans cette campagne se trouve dans la section inférieure de Rapport de Phylum.
Cependant, il convient de noter que les packages suivants ont utilisé le typosquatting pour ressembler à des packages populaires légitimes, ce qui peut inciter les développeurs à les installer :
- Shineouts et @dynamic-form-components/shineout – imitant la populaire bibliothèque React « Shineout »
- apm-web-vitals – pourrait passer comme « APM » (surveillance des performances des applications) pour la bibliothèque « web-vitals » de Google qui mesure les performances Web
- eslint-plugin-shein-soc-raw et @spgy/eslint-plugin-spgy-fe – se faisant passer pour des plugins ESLint
- ssc-concurrent-log-handler & sc-concurrent-log-handler – prétendant être des utilitaires de journalisation légitimes
Selon Phylum, au moins sept vagues d’attaques distinctes et plusieurs phases comportaient des modifications de code pour améliorer la furtivité et ajouter un ciblage plus spécifique.
Les premières vagues d’attaques se sont produites entre le 12 et le 15 septembre, les acteurs malveillants téléchargeant quotidiennement de nouveaux ensembles de packages, pour atteindre un total de 33 packages.
Les vagues d’attaques ultérieures ont eu lieu le 18 septembre (trois colis), le 20 septembre (cinq colis) et le 24 septembre (4 colis).
Dans les premières vagues, les packages avaient des routines de collecte et d’exfiltration de données codées en dur, contenant le code de collecte de données sous forme de texte brut en interne, ce qui les rendait susceptibles d’être détectés.
Les itérations intermédiaires ont introduit des mécanismes plus complexes tels que la récupération et l’exécution du script bash de collecte de données à partir d’un domaine externe.
En outre, les auteurs ont ajouté un hook « préinstallation » pour exécuter automatiquement du JavaScript malveillant lors de l’installation.
Les packages les plus récents utilisaient le codage base64 pour échapper à l’analyse, qui a ensuite été mis à niveau vers un double codage base64.
En général, les attaquants se sont engagés dans un processus continu de test et d’amélioration du code et ont même livré des packages plus spécialisés dans certains aspects de la collecte de données que dans d’autres.
Menace de vol d’informations
Les données volées par les packages comprennent des informations sensibles sur la machine et l’utilisateur.
Les détails collectés sur la machine et l’utilisateur incluent le nom d’hôte, le nom d’utilisateur, le chemin actuel, la version du système d’exploitation, les adresses IP externes et internes et la version Python pour les packages PyPI.
Ces détails et les configurations Kubernetes stockées sur les fichiers kubeconfig et les clés privées SSH dans ~/.ssh/id_rsa sont écrits dans un fichier texte (ConceptualTest.txt) et envoyés aux serveurs des attaquants.
Les informations volées peuvent être utilisées pour révéler l’identité réelle des développeurs et donner aux attaquants un accès non autorisé aux systèmes, serveurs ou infrastructures accessibles via les clés privées SSH volées.
Si les configurations Kubernetes volées contiennent des informations d’identification permettant d’accéder aux clusters, les attaquants pourraient modifier les déploiements, ajouter des conteneurs malveillants, accéder aux données sensibles stockées dans le cluster, se déplacer latéralement ou lancer une attaque de ransomware.
Il est conseillé aux utilisateurs de plateformes de distribution de code telles que PyPI et npm d’être prudents quant aux packages qu’ils téléchargent et lancent sur leurs systèmes, car il y a un afflux constant de logiciels malveillants dans ces écosystèmes.