RubyGems, 760 bibliothèques malveillantes découvertes

Environ 760 bibliothèques malveillantes ont été identifiées sur RubyGems, le gestionnaire de packages pour le langage de programmation Ruby. L’objectif de ces bibliothèques étaient de dérober des Bitcoin.

Selon Tomislav Maljic, analyste en sécurité informatique chez ReversingLabs, les cybercriminels ont utilisé une simple technique de typosquattage pour mener à bien leur plan. Le typosquattage est le processus de changer un ou deux caractères dans un nom de fichier ou une URL afin de tromper les gens en leur faisant croire que c’est légitime. Par exemple, un fichier légitime peut être appelé «unfichier.exe», tandis qu’un imitateur malveillant peut s’appeler «unf1chier.exe». Les utilisateurs qui ne font pas attention pourraient ainsi télécharger le fichier malveillant par erreur.

En utilisant cette technique, les cybercriminels ont téléchargé des bibliothèques malveillantes typosquattées vers un gestionnaire de packages appelé RubyGems, qui contient des composants open source – appelés «gemmes» – qui peuvent être utilisés comme blocs de construction d’application de base par les développeurs de logiciels. RubyGems contient environ 158 000 gemmes (bibliothèques) et près de 49 milliards de téléchargements, selon son site Web.

Si les développeurs téléchargeaient accidentellement les fichiers malveillants à la place des fichiers légitimes qu’ils recherchaient, les packages logiciels qu’ils ont créés à l’aide des bibliothèques hébergeraient automatiquement le voleur de Bitcoin, mettant en danger tous les utilisateurs de ce logiciel.

«Le candidat idéal pour succomber à ce type d’attaque de chaîne d’approvisionnement est un développeur Ruby dont l’environnement de choix est un système Windows qui est également utilisé pour effectuer des transactions de Bitcoin», a écrit Maljic, dans une publication récente.

rubygems

Après avoir élaboré une liste des gemmes les plus populaires qu’ils ont utilisé comme référence, la société de sécurité a surveillé les nouveaux ajouts de RubyGems qui avaient des noms similaires à toutes les gemmes de liste de référence. Au cours de la première semaine de surveillance, qui a commencé le 16 février, le système de ReversingLabs a signalé plus de 400 gemmes qui devaient être soumis à une analyse plus approfondie.

«En regardant le répertoire de RubyGems, nous avons découvert que toutes ces gemmes provenaient de deux comptes d’utilisateurs, “JimCarrey” et “PeterGibbons”, et avaient un nombre assez élevé de téléchargements», a expliqué le chercheur. “Il semble que nous les ayons pris en flagrant délit, car le compte de “PeterGibbons” ajoutait activement de nouvelles gemmes typosquattées au moment de notre analyse.”

Une gemme typosquattée appelée «atlas-client» comptait 2100 téléchargements, ce qui représente près de 30% du total des téléchargements que la gemme légitime, «atlas_client», avait au moment de la publication.

Un voleur de Bitcoin à l’intérieur des gemmes de RubyGems

Après une inspection plus approfondie des fichiers suspects, l’équipe de recherche a constaté qu’il y avait un grand nombre de fichiers exécutables portables (PE), tous portant le nom de fichier «aaa.png». Ces fichiers se faisant passer pour des fichiers image et étaient également situés sur le même chemin dans chaque gemme suspecte analysée: «/ext/trellislike/unflaming/waffling/».

Pendant ce temps, tous les fichiers RubyGems – légitimes ou non – ont un fichier «Gemspec» qui contient des métadonnées de base, telles que l’auteur, la version et la description, ainsi que des informations supplémentaires sur les extensions utilisées dans la bibliothèque.

«Les extensions sont utilisées pour envelopper des bibliothèques distinctes écrites en C avec un wrapper Ruby. Par convention, si des extensions sont utilisées, tout ce qui leur est lié est placé dans le répertoire ext avec le fichier extconf.rb », a expliqué Maljic. «Le fichier extconf.rb configure un Makefile qui construit l’extension lors de l’installation de la gemme. Cependant, les extensions peuvent également être utilisées à des fins malveillantes, permettant aux logiciels malveillants de s’exécuter sans aucune interaction de l’utilisateur. »

Dans le cas des fichiers suspects de RubyGems, l’équipe d’analystes a constaté que le script extconf.rb se trouvait sur le même chemin que le fichier «aaa.png» et qu’il était utilisé pour vérifier la plate-forme ciblé.

“S’il s’exécute sur un système Windows, il renommera le fichier ‘aaa.png’ en ‘a.exe’ et l’exécutera”, a déclaré Maljic.

Le script Ruby qui est extrait contient du VBScript encodé en Base64 qui est décodé et enregistré dans le fichier «oh.vbs». Cela crée à son tour un nouveau fichier VBScript situé sur le chemin “Software Essentials.vbs”. Il crée également une nouvelle clé de registre à exécution automatique, «Exécuter Microsoft Software Essentials», qui garantit que le malware s’exécutera à chaque démarrage ou redémarrage du système.

Lorsque le script malveillant «Software Essentials.vbs» est exécuté, il capture les données du presse-papier de l’utilisateur.

«Le script vérifie ensuite si les données du presse-papiers correspondent au format d’une adresse de portefeuille de crypto-monnaie», a expliqué Maljic. «Si c’est le cas, il remplace l’adresse par une adresse contrôlée par l’attaquant, dans une fenêtre masquée. Avec cela, le pirate tente de rediriger toutes les transactions potentielles de crypto-monnaie vers son adresse de portefeuille. »

rubygems

Une attaque en cours

Alors que Maljic a contacté l’équipe de sécurité de RubyGems le 25 février et que les paquets malveillants ont été supprimés deux jours plus tard, il a déclaré que ce type d’attaques semblait encore être en cours.

«Nous pensons que le même pirate (ou groupe de pirates) est responsable d’au moins deux campagnes malveillantes précédentes contre le dépôt RubyGems», a-t-il expliqué. «Le même chemin de fichier /ext/trellislike/unflaming/waffling/ a été utilisé dans toutes les attaques. De même, l’intention malveillante était liée à la crypto-monnaie dans tous les cas. »

Il y’a quelques temps, les chercheurs de ReversingLabs ont également découvert des packages malveillants dans les dépôts PyPI et NPM.

“Il n’est pas surprenant d’apprendre que les dépôts de packages sont de plus en plus ciblés”, a déclaré Maljic. «L’attaque de la chaîne d’approvisionnement des logiciels devient de plus en plus populaire [pour les cybercriminels]. Ces attaques menacent indirectement les organisations en ciblant les fournisseurs tiers qui leur fournissent des logiciels ou des services. Étant donné que ces fournisseurs sont généralement considérés comme des éditeurs de confiance, les organisations ont tendance à passer moins de temps à vérifier que les packages qu’elles consomment sont effectivement exempts de logiciels malveillants. »

Si cet article vous a plu, jetez un œil à notre article précédent.