La campagne GemStuffer abuse de RubyGems pour l'exfiltration de données, cible les portails du gouvernement britannique
Une nouvelle campagne baptisée **GemStuffer** a été découverte abusant du dépôt RubyGems, non pas pour la distribution de malware, mais comme canal d'exfiltration de données. Plus de 150 gems malveillantes ont été identifiées, collectant des données sur les portails des gouvernements locaux britanniques et utilisant RubyGems pour stocker et diffuser les informations collectées.
Des chercheurs en cybersécurité ont découvert une campagne unique, **GemStuffer**, ciblant le dépôt **RubyGems**. Contrairement aux attaques typiques visant un compromis généralisé des développeurs par le biais de malware, cette campagne utilise la plateforme comme canal d'exfiltration de données.
### Activité inhabituelle
Selon **Socket**, les packages impliqués ne semblent pas conçus pour un compromis à grande échelle. Beaucoup présentent peu ou pas d'activité de téléchargement, et leurs payloads sont répétitifs et autonomes. Au lieu de cela, ces gems récupèrent des pages des portails des services démocratiques des gouvernements locaux du Royaume-Uni, empaquètent les réponses collectées dans des archives .gem valides, puis les publient sur RubyGems en utilisant des clés API codées en dur.
### RubyGems sous surveillance
Ce développement coïncide avec la désactivation temporaire des nouvelles inscriptions de comptes par **RubyGems** suite à une attaque malveillante majeure. Bien qu'un lien direct entre les deux événements reste non confirmé, Socket note que GemStuffer présente un schéma d'abus similaire, impliquant l'utilisation de packages nouvellement créés avec des noms génériques pour héberger des données collectées.
### Détails techniques
L'attaque fonctionne en collectant le contenu d'URL de portails de conseils britanniques codées en dur. Les réponses HTTP sont ensuite empaquetées dans des archives .gem valides et téléchargées sur **RubyGems** en utilisant des identifiants de registre intégrés. Dans certains cas, la gem malveillante crée un environnement d'identifiants **RubyGems** temporaire, remplace la variable d'environnement HOME, construit une gem localement et la pousse sur **RubyGems** en utilisant l'interface de ligne de commande (CLI) `gem`.
D'autres variantes contournent la CLI, optant plutôt pour le téléchargement de l'archive directement sur l'API **RubyGems** via une requête HTTP POST. Une fois publiée, les attaquants peuvent accéder aux données collectées en exécutant une commande `gem fetch` avec le nom et la version de la gem.

### Cible : Portails des conseils britanniques
La campagne de collecte cible les portails ModernGov publics utilisés par des conseils tels que Lambeth, Wandsworth et Southwark. L'objectif est de collecter les calendriers des réunions de comité, les listes des points à l'ordre du jour, les documents PDF liés, les informations de contact des responsables et le contenu des flux RSS. L'objectif final reste flou, d'autant plus que les informations sont publiquement accessibles.

### Motivations potentielles
**Socket** suggère que la collecte et l'archivage systématiques de ces données pourraient être une démonstration de capacité contre les infrastructures gouvernementales. D'autres possibilités incluent le spam de registre, un proof-of-concept de worm, un scraper automatisé utilisant abusivement **RubyGems** comme couche de stockage, ou un test délibéré d'abus de registre de paquets. Quoi qu'il en soit, les mécanismes indiquent une intentionnalité : génération répétée de gems, incréments de version, identifiants **RubyGems** codés en dur, envois directs au registre et données collectées intégrées dans les archives de paquets.