Une nouvelle opération de Typosquatting RubyGems a été signalée par des chercheurs en cybersécurité. Baptisée StubMaker et attribuée à un acteur malveillant surnommé OpenSourceMalware, la campagne cible des utilisateurs RubyGems sous Windows. L’objectif : faire exécuter du code lors de l’installation de paquets qui ressemblent à des dépendances légitimes.
Selon les observations publiées, les contrefaçons ne misent pas sur une “subtilité” sophistiquée. Au contraire, les noms présentent des fautes peu soignées, tout en cherchant à profiter des habitudes d’import et d’installation de la communauté Ruby.
Une campagne de Typosquatting RubyGems sur Windows
Le suivi de l’activité a commencé le 15 août 2026. Les chercheurs indiquent que StubMaker regroupe plusieurs paquets RubyGems publiés sous des noms trompeurs. À mesure que les paquets sont retirés (“yanked”), l’acteur adapte son approche pour continuer à toucher de nouvelles victimes.
Les chercheurs ont listé des gemmes impliquées dans la campagne, dont des noms proches de bibliothèques populaires. Cette stratégie vise généralement à abuser de la similarité visuelle, en incitant un développeur à installer une mauvaise référence sans s’en rendre compte.
Quels paquets ont été impliqués ?
Au moment de l’analyse, la campagne comprenait 16 paquets. Parmi eux : ubnuler, ubnlder, ri18nr, reaker, rakier, orakw, joxn, ise18n, ioe18n, ie18u, iai8n, i1l8n, i18om, activesupmport, brumdler et brundlef.
Les comptes ayant publié ces gemmes incluent notamment deux utilisateurs cités dans le suivi : mod8rz41mje (Riley Miller) et rbq95bwt6q (Alex Davis). D’après les informations disponibles, les paquets ont été retirés de RubyGems au moment de la divulgation.
Des “clés de navigateur” aux phrases de seed
Le point central de StubMaker est la collecte de données sensibles. Les chercheurs rapportent que le voleur (information stealer) vise notamment :
- les identifiants de navigateurs (via des navigateurs basés sur Chromium),
- des données de portefeuilles crypto et des phrases de seed,
- des informations liées à Telegram Desktop,
- l’historique de navigation et des données d’extensions,
- et des numéros de cartes (paiement), selon les observations.
L’attaque cherche aussi à obtenir l’adresse IP publique de la victime en effectuant une requête externe vers api.ipify.org. Une fois les informations rassemblées, elles sont empaquetées dans une archive ZIP protégée par mot de passe, puis envoyées à un service de stockage utilisé par l’acteur.
Le rôle clé de l’installation Ruby : extconf.rb
StubMaker ne se limite pas à un simple script : la chaîne d’attaque s’appuie sur un comportement lié à RubyGems. À un niveau général, les installateurs de gemmes peuvent exécuter automatiquement des étapes via des hooks comme extconf.rb.
Dans un paquet Ruby normal, extconf.rb sert souvent à préparer la compilation d’extensions natives regroupées dans un dossier ext/. C’est typiquement le moment où des outils de construction se déclenchent et où un paquet peut exécuter de la logique supplémentaire pendant l’installation.
Dans le cas de StubMaker, les chercheurs expliquent que ce hook agit comme un tunnel permettant de récupérer un chargeur basé sur Rust (environ 22 Mo) depuis une version hébergée sur GitHub. Ce chargeur lance ensuite un stealer développé en Go, nommé wincfg, qui contient le volet malveillant principal.
Pourquoi la campagne a continué malgré le retrait des gemmes
Les chercheurs soulignent un aspect particulièrement problématique du cycle RubyGems : dans au moins deux cas, l’acteur a profité d’un mécanisme permettant de récupérer un espace de noms lorsqu’une gem a été retirée de la publication pour toutes ses versions.
Les exemples cités concernent brumdler et brundlef. Les paquets avaient d’abord été publiés par un compte différent (mentionné comme gemlewqqhu1, alias Taylor Moore), puis réclamés par les comptes associés à StubMaker.
Autrement dit, même après suppression (“yank”), la fenêtre d’exploitation a pu s’ouvrir à nouveau : l’attaquant a alors pu créer un compte propriétaire et publier une nouvelle version malveillante sous le même nom de paquet.
Des champs “Author” trompeurs
Pour donner l’impression que chaque gem vient d’une source distincte, l’acteur a utilisé un champ Author variable selon les paquets. D’après les informations partagées, ce champ est une chaîne texte non validée : il ne doit pas nécessairement correspondre au propriétaire du compte.
Ce détail peut faciliter la dissimulation, car il ralentit la corrélation manuelle ou automatisée des paquets malveillants entre eux.
Un rendu “propre” pendant la compilation
Les chercheurs indiquent que StubMaker adopte une approche de camouflage lors de la phase de build. Le nom du malware s’y réfère directement : il ne “fabrique” pas réellement une chaîne d’outils, mais crée plutôt un Makefile avec des cibles vides et des scripts factices, qui renvoient un résultat de succès.
Le but : faire croire que l’installation s’est déroulée correctement, tout en réalisant l’essentiel du travail dans le hook d’installation. Ainsi, la partie qui “a l’air normale” masque la récupération du chargeur, l’exécution et la collecte des données.
Collecte ciblée : navigateurs Chromium et contour des protections
Le stealer embarque un composant DLL, indiqué comme abe_payload.dll, utilisé pour extraire des données de navigateurs Chromium. L’extraction passe par la mise en cause de mécanismes de protection mis en place par Google, notamment des défenses liées à ABE.
Les navigateurs cités incluent notamment : Google Chrome, Microsoft Edge, Brave, Opera, Opera GX, Vivaldi, Yandex, Avast, AVG et CCleaner Browser. Au-delà des identifiants, les chercheurs notent aussi la collecte de données d’extensions, de l’historique et de certains éléments liés au paiement.
Contexte : d’autres campagnes supply chain ont aussi été observées
La divulgation autour de Ruby intervient alors que d’autres alertes supply chain ont été repérées du côté de npm. Les chercheurs mentionnent deux ensembles d’attaques :
- Un cluster de 21 paquets npm qui ciblent des noms de binaires d’exécution (champ “bin”) exposés par des packages “scopés” de Google. Les mesures classiques comme la publication scoped ou le verrouillage par lockfile ne couvriraient pas entièrement cette zone.
- Un cluster de forks Baileys avec des comportements malveillants variés, notamment une manipulation du bot WhatsApp (abonnement de canaux et insertion d’URLs de l’auteur dans les médias).
Même si ces détails concernent npm et non RubyGems, ils illustrent une tendance : les attaques supply chain continuent d’explorer des angles morts dans les écosystèmes et d’exploiter les mécanismes d’installation.
Que retenir pour se protéger contre le Typosquatting RubyGems
La meilleure défense contre la Typosquatting RubyGems reste la vigilance lors de l’installation de dépendances. Vérifiez la source des gemmes (nom exact, mainteneur, historique), et évitez de lancer des installations “aveugles” sur des environnements sensibles.
En complément, surveillez les dépendances ajoutées récemment, surtout lorsque les noms sont proches d’une bibliothèque connue mais pas strictement identiques. En cas de doute, isolez l’environnement et procédez à une validation des paquets avant déploiement.
Conclusion
La campagne StubMaker met en évidence comment une Typosquatting RubyGems peut dépasser le simple délit de “mauvais nom” pour mener à un vol de données très étendu : identifiants de navigateurs, informations liées aux portefeuilles crypto, contenus Telegram et traces de navigation.
Le scénario repose sur des hooks d’installation propres à l’écosystème Ruby, un chargement de chargeurs distants et un camouflage pendant le build. Bien que les gemmes aient été retirées, les chercheurs rappellent que certains mécanismes de réattribution peuvent permettre une reprise de l’activité, ce qui souligne l’importance de contrôles stricts autour des dépendances.
Source: https://thehackernews.com/2026/08/16-typosquatted-rubygems-packages-steal.html
