Die 16 Gems wurden nach Angaben von OpenSourceMalware von den Nutzern „mod8rz41mje“ alias Riley Miller und „rbq95bwt6q“ alias Alex Davis veröffentlicht. In mindestens zwei Fällen, bei „brumdler“ und „brundlef“, nutzten die Angreifer demnach ein bekanntes Verhalten von RubyGems aus: Sobald alle Versionen eines Gems entfernt sind, kann der Namensraum von beliebigen Dritten wieder beansprucht werden. Beide Pakete waren ursprünglich von „gemlewqqhu1“ alias Taylor Moore veröffentlicht worden, bevor sie von den beiden genannten Konten erneut übernommen wurden.
Jenn Gile, Mitgründerin von OpenSourceMalware, sagte gegenüber The Hacker News, die Kampagne sei zwar relativ früh unterbrochen worden, sei aber durch „schlechte Designentscheidungen“ von Ruby wirksamer geworden. Wenn eines der bösartigen Gems entfernt worden sei, habe der Bedrohungsakteur einfach ein neues Eigentümerkonto anlegen und unter demselben Paketnamen eine neue schädliche Version veröffentlichen können. Zudem habe der Angreifer jedem Gem einen anderen Autorennamen zugewiesen, um den Eindruck zu erwecken, die Pakete stünden nicht miteinander in Verbindung. Das sei möglich, weil das Autorenfeld ein vollständig ungeprüftes Klartextfeld sei und nicht zum Eigentümer passen müsse.
Technisch setzt die Angriffskette laut OpenSourceMalware auf den Hook „extconf.rb“. Diese Datei wird beim Installieren eines Gems automatisch ausgeführt und dient üblicherweise dazu, native Erweiterungen in C, C++ oder Rust zu konfigurieren, die im Verzeichnis „ext/“ eines Ruby-Pakets liegen und bei der Installation kompiliert werden. Im Fall von StubMaker diente der Ruby-Hook jedoch dazu, einen 22 Megabyte großen, in Rust geschriebenen Loader aus einem GitHub-Release nachzuladen.
Dieser Loader startet anschließend einen eingebetteten, in Go entwickelten Stealer mit dem Namen „wincfg“. Das zugehörige GitHub-Konto „github[.]com/bebraz1“ ist inzwischen nicht mehr erreichbar. Der Stealer enthält wiederum eine DLL-Nutzlast namens „abe_payload.dll“, die Zugangsdaten aus Chromium-basierten Browsern extrahiert. Genannt werden Google Chrome, Microsoft Edge, Brave, Opera, Opera GX, Vivaldi, Yandex, Avast, AVG und CCleaner Browser. Dabei umgeht die Schadsoftware laut Bericht die von Google eingeführten ABE-Schutzmechanismen zur an Anwendungen gebundenen Verschlüsselung.
Darüber hinaus sammelt die Malware Erweiterungsdaten, Browserverlauf und Zahlungskartennummern, sucht nach Kryptowallets und Seed-Phrasen, extrahiert Daten aus Telegram Desktop, erfasst Systeminformationen und ruft „api.ipify[.]org“ auf, um die öffentliche IP-Adresse des Opfers zu ermitteln. Die erbeuteten Daten werden anschließend als passwortgeschütztes ZIP-Archiv zu Gofile hochgeladen; der erzeugte Download-Link wird über einen unverschlüsselten HTTP-Kanal an „dresslee.com“ übermittelt.
McCarty beschreibt StubMaker als Täuschungsmanöver im Installationsprozess. Die Schadsoftware baue nichts, sondern erzeuge ein Makefile mit leeren Zielen für „all“, „install“ und „clean“ sowie Stub-Skripte für Unix und Windows, die lediglich Erfolg zurückmelden. So wirke die Erweiterungsphase wie ein sauberer Build, während die eigentliche schädliche Aktivität bereits im Installations-Hook stattfinde.
Die Veröffentlichung fällt mit der Entdeckung von zwei Supply-Chain-Kampagnen gegen npm zusammen. SafeDep teilte mit, die fortlaufende Überwachung des npm-Registers habe 4.250 Paketnamen mit „baileys“ und weitere 112 mit „libsignal-node“ erfasst. Bösartiges Verhalten sei bei 70 auf Baileys aufbauenden Paketnamen über 343 Versionen sowie bei 15 Nachahmern von „libsignal-node“ über 38 Versionen beobachtet worden.
