Un progiciel disponible dans le référentiel officiel de NPM s’est révélé être en fait une façade pour un outil conçu pour voler les mots de passe enregistrés à partir du navigateur Web Chrome.
Le colis en question, nommé « nodejs_net_server » et téléchargé plus de 1 283 fois depuis février 2019, a été mis à jour pour la dernière fois il y a sept mois (version 1.1.2), avec son référentiel correspondant menant à des emplacements inexistants hébergés sur GitHub.
« Ce n’est pas malveillant en soi, mais cela peut l’être lorsqu’il est placé dans le contexte d’une utilisation malveillante », Karlo Zanki, chercheur à ReversingLabs. mentionné dans une analyse partagée avec The Hacker News. « Par exemple, ce package l’utilise pour effectuer un vol de mot de passe malveillant et une exfiltration d’informations d’identification. Même si cet outil de récupération de mot de passe standard est fourni avec une interface utilisateur graphique, les auteurs de logiciels malveillants aiment l’utiliser car il peut également être exécuté à partir de la commande ligne. »
Alors que la première version du package a été publiée uniquement pour tester le processus de publication d’un package NPM, le développeur, qui s’appelait « chrunlee », a effectué des révisions pour implémenter une fonctionnalité de shell distant qui a été improvisée sur plusieurs versions ultérieures.
Cela a été suivi par l’ajout d’un script qui a téléchargé le ChromePass outil de vol de mot de passe hébergé sur leur site Web personnel (« hxxps://chrunlee.cn/a.exe »), pour ensuite le modifier trois semaines plus tard pour exécuter le logiciel d’accès à distance TeamViewer.
Fait intéressant, l’auteur a également abusé des options de configuration des packages NPM spécifiés dans le fichier « package.json », en particulier le « poubelle » qui est utilisé pour installer des exécutables JavaScript, pour déployer un package légitime nommé « jstest », un framework de test JavaScript multiplateforme, l’exploitant pour lancer un service via une ligne de commande capable de recevoir un tableau de commandes, y compris la recherche de fichiers, fichier téléchargement, exécution de commandes shell et enregistrement d’écran et de caméra.
ReversingLabs a déclaré avoir signalé le paquet malveillant à l’équipe de sécurité de NPM à deux reprises, une fois le 2 juillet et une autre le 15 juillet, mais a noté qu’aucune mesure n’avait été prise à ce jour pour le supprimer. Nous avons contacté NPM pour obtenir des éclaircissements supplémentaires, et nous mettrons à jour l’histoire une fois que nous aurons reçu une réponse.
Au contraire, le développement révèle une fois de plus les lacunes dans le recours à du code tiers hébergé sur des référentiels de packages publics, car les attaques de la chaîne d’approvisionnement logicielle deviennent une tactique populaire pour les acteurs malveillants qui abusent de la confiance dans les logiciels informatiques interconnectés pour mettre en place des failles de sécurité de plus en plus sophistiquées.
« La popularité croissante des référentiels de progiciels et leur facilité d’utilisation en font une cible idéale », a déclaré Zanki. « Lorsque les développeurs réutilisent des bibliothèques existantes pour implémenter les fonctionnalités nécessaires plus rapidement et plus facilement, ils effectuent rarement des évaluations de sécurité approfondies avant de les inclure dans leur projet. »
« Cette omission est le résultat de la nature écrasante et de la grande quantité de problèmes de sécurité potentiels trouvés dans le code tiers. Par conséquent, en général, les packages sont rapidement installés pour valider s’ils résolvent le problème et, s’ils ne le font pas, passez à l’alternative. C’est une pratique dangereuse, et elle peut conduire à l’installation accidentelle de logiciels malveillants », a ajouté Zanki.