Un acteur malveillant connu sous le nom de GemStuffer a compromis plus de 150 paquets RubyGems dans le but d'extraire des données de portails de conseils municipaux du Royaume-Uni. La campagne utilise la technique de stuffing, créant des gems avec des noms similaires à des bibliothèques légitimes pour tromper les développeurs. Une fois installées, ces gems collectent des informations sensibles sur les citoyens et les registres administratifs, les exfiltrant vers des serveurs contrôlés par l'attaquant.
Comment fonctionne l'attaque de stuffing dans l'écosystème Ruby 🛡️
L'attaque repose sur la publication massive de gems avec des noms typographiquement proches de bibliothèques populaires, comme le typosquatting ou le combosquatting. Une fois installées, elles exécutent un code qui scrape les données des portails de mairies, incluant noms, adresses et registres de services publics. L'exfiltration se fait via des requêtes HTTP vers des serveurs distants. La détection est complexe car les gems malveillantes imitent les fonctions de base des originales, cachant leur charge nuisible dans des modules secondaires ou via l'obfuscation de code.
GemStuffer : le collectionneur de données qui n'a pas demandé la permission 😅
Il semble que GemStuffer ait compris le concept d'open source de manière littérale : tout ce qu'ils trouvent sur les portails municipaux est à eux. Avec plus de 150 gems, ils ont monté une bibliothèque de données volées qui ferait pâlir n'importe quel archiviste. Le plus drôle, c'est qu'au lieu de demander une API publique, ils ont préféré la méthode de demander poliment via un malware. Au moins, si quelqu'un pose la question, ils savent déjà que le code n'était pas le leur, il était juste de passage.