stubmaker rubygems windows infostealer

StubMaker usa RubyGems per distribuire un infostealer Windows nascosto in Rust e Go

🛡️ Executive Summary

  • StubMaker sfrutta almeno 16 gemme RubyGems typosquat per eseguire un installer malevolo che, sui sistemi Windows, scarica un loader Rust da GitHub.
  • Il loader contiene già cifrato un infostealer Go e una DLL capace di recuperare le chiavi ABE utilizzate dai moderni browser Chromium.
  • Il malware sottrae password, cookie, carte, wallet, seed phrase e dati Telegram, li invia a Gofile e comunica il collegamento agli attaccanti.

Una nuova campagna supply chain trasforma RubyGems nel punto d’ingresso per un infostealer Windows progettato per sottrarre credenziali, sessioni browser, wallet di criptovalute e dati Telegram. I ricercatori di OpenSourceMalware hanno chiamato l’operazione StubMaker, dal meccanismo utilizzato dalle gemme malevole per simulare con successo la compilazione di un’estensione Ruby mentre il vero payload viene scaricato ed eseguito. La campagna, individuata il 15 agosto 2026, ha coinvolto almeno 16 pacchetti typosquat di dipendenze conosciute come Bundler, i18n, rake e ActiveSupport, accumulando centinaia di download prima della rimozione. La catena combina Ruby, un loader Rust e un infostealer Go, con quasi tutti gli stadi successivi al primo download nascosti in forma cifrata dentro gli eseguibili già consegnati.

StubMaker imita Bundler, i18n, rake e ActiveSupport con gemme typosquat

Annuncio

La ricerca tecnica originale di OpenSourceMalware ricostruisce una campagna iniziata con due pacchetti, brumdler e brundlef, entrambi scelti per assomigliare a Bundler, il dependency manager utilizzato praticamente in ogni ambiente Ruby. Nel giro di un giorno un secondo account ha pubblicato altre quindici gemme, compresa una nuova versione di brumdler, utilizzando nomi volutamente deformati di package molto conosciuti: activesupmport imita ActiveSupport, i18om, i1l8n, iai8n, ie18u e altre varianti richiamano i18n, mentre orakw e rakier puntano agli utenti di rake. Le identità degli autori riportate nei pacchetti erano differenti, ma questo dato non identifica il reale publisher perché il campo authors della gemspec è semplice testo controllato da chi crea il pacchetto; l’elemento verificabile è invece l’account utilizzato per effettuare il push.

image 408
StubMaker usa RubyGems per distribuire un infostealer Windows nascosto in Rust e Go 6

La tecnica si inserisce nello stesso terreno già sfruttato da SleeperGem, che aveva compromesso workstation degli sviluppatori attraverso pacchetti RubyGems apparentemente legittimi, confermando quanto i registry open source siano diventati una superficie privilegiata per raggiungere direttamente le macchine di sviluppo.

extconf.rb finge di compilare un’estensione mentre scarica il malware

Il nome StubMaker deriva dal passaggio più caratteristico dell’attacco. Ogni pacchetto contiene un file extconf.rb, normalmente utilizzato da RubyGems per configurare e compilare estensioni native. Invece di preparare codice C legittimo, il file richiama un runner che crea un Makefile praticamente vuoto con target all, install e clean, insieme agli script make_stub e make_stub.bat. Questi componenti restituiscono semplicemente successo, facendo credere a RubyGems che la compilazione sia avvenuta normalmente.

image 409
StubMaker usa RubyGems per distribuire un infostealer Windows nascosto in Rust e Go 7

Nel frattempo il runner effettua il vero lavoro malevolo. Prima invia un beacon HTTP contenente il sistema operativo della vittima a 193.70.34.101:20099; questa fase funziona su Windows, macOS e Linux. Se il sistema è Windows, il codice ricostruisce quindi un URL offuscato in Base64, scarica main.exe da una release GitHub nella cartella Downloads e prova immediatamente a eseguirlo attraverso diversi metodi Ruby e Windows. Il comportamento rende particolarmente utile come indicatore la presenza di processi Ruby che effettuano traffico di rete durante l’esecuzione di extconf.rb, soprattutto quando l’estensione genera successivamente un Makefile privo di reale attività di compilazione.

Il loader Rust contiene già l’infostealer Go cifrato

Il download da GitHub è sostanzialmente l’unico vero recupero di malware dalla rete. main.exe è un eseguibile Rust a 64 bit da circa 22 MB che contiene al proprio interno un blob esadecimale di oltre 22 milioni di caratteri, corrispondente a circa 11 MB di dati cifrati. Il loader verifica l’integrità del contenuto con SHA-256, applica una trasformazione simile a ChaCha20 seguita da ulteriori livelli XOR e controlla infine che il risultato inizi con l’header MZ di un eseguibile Windows. Il payload recuperato viene poi mappato manualmente in memoria utilizzando API Windows risolte attraverso hash, evitando di scrivere sul disco il secondo eseguibile.

image 410
StubMaker usa RubyGems per distribuire un infostealer Windows nascosto in Rust e Go 8

Questa caratteristica è centrale nella campagna: un sistema di monitoraggio che aspetta un ulteriore download dopo main.exe non vedrà arrivare nulla, perché l’infostealer è già stato consegnato insieme al loader. La tecnica rappresenta una forma di stratificazione simile a quella utilizzata da altri malware capaci di nascondere RAT e stealer dietro più livelli crittografici, come Cruciferra e le sue oltre 90 tecniche di offuscamento, ma applicata qui a una catena nata direttamente dentro un package manager.

L’infostealer attacca Chrome, Edge, Brave, Opera e numerosi browser Chromium

Il payload finale è scritto in Go e identifica internamente componenti dedicati a Chrome, wallet, messaggistica, raccolta dati e upload. La lista dei browser comprende Chrome, Microsoft Edge, Brave, Opera, Opera GX, Vivaldi, Chromium, Yandex, Avast Browser, AVG Browser e CCleaner Browser, oltre a diversi derivati meno diffusi. Il malware interroga direttamente i database SQLite dei profili per recuperare username e password salvate, cookie, token di sessione, numeri di carte di pagamento, CVC conservati localmente, cronologia di navigazione e dati IndexedDB delle estensioni. La possibilità di sottrarre cookie e sessioni è particolarmente pericolosa perché può rendere inutile il semplice cambio della password se l’attaccante riesce a riutilizzare una sessione già autenticata. Gli infostealer moderni stanno infatti spostando l’attenzione dalle sole password verso l’intero stato digitale del browser, una tendenza visibile anche nelle campagne npm e Chrome che sfruttano pacchetti malevoli e slopsquatting AI.

Una DLL integrata tenta di superare App-Bound Encryption di Chromium

La componente tecnicamente più interessante riguarda Application-Bound Encryption, ABE, il meccanismo introdotto nei browser Chromium moderni per rendere più difficile il furto delle credenziali cifrate attraverso semplici processi esterni. StubMaker include dentro l’infostealer una seconda componente, abe_payload.dll, anch’essa distribuita come dati cifrati anziché scaricata separatamente. Il payload Go prepara la DLL con parametri specifici del browser, individua o avvia il processo interessato e la carica nel suo contesto. Una volta eseguita internamente, la DLL inizializza COM, interagisce con il servizio di elevazione del browser e tenta di recuperare la chiave ABE necessaria a decifrare i nuovi secret v20. La chiave viene restituita al processo principale attraverso una named pipe. OpenSourceMalware sottolinea che la DLL non possiede funzioni autonome di rete o persistenza: il suo unico scopo è lavorare nel contesto previsto dal browser per aggirare il vantaggio offerto dall’isolamento ABE. Il risultato dimostra come le protezioni browser possano alzare considerevolmente il costo dell’attacco senza però eliminare il problema quando l’aggressore riesce già a eseguire codice sul sistema della vittima.

Wallet e seed phrase diventano uno degli obiettivi principali

StubMaker dedica una parte consistente del codice alle criptovalute. Il malware cerca estensioni browser e applicazioni desktop associate a MetaMask, Coinbase Wallet, Phantom, Solflare, Exodus, Electrum, Bitcoin, Litecoin, Dogecoin, Monero, Atomic, Guarda e Trezor Suite, oltre a numerosi altri prodotti. Non si limita a copiare directory note: analizza file testuali e JSON alla ricerca di campi associati al recupero dei wallet e verifica le possibili frasi mnemoniche confrontandole con il vocabolario BIP-39. Le informazioni individuate vengono salvate nei file wallets.txt e seeds.txt inseriti nell’archivio destinato all’esfiltrazione. I ricercatori non hanno osservato funzioni per firmare direttamente transazioni o trasferire automaticamente fondi: StubMaker ruba le informazioni necessarie affinché l’operatore possa utilizzare successivamente i wallet da un altro sistema. In un attacco del genere il furto della recovery phrase è quindi molto più grave della compromissione di una singola password, perché la seed consente di ricostruire il portafoglio anche dopo la reinstallazione del computer.

Telegram e informazioni hardware completano il profilo della vittima

Il payload cerca inoltre la directory tdata di Telegram Desktop, comprese installazioni standard e UWP, acquisendo i dati che possono permettere il recupero delle sessioni dell’applicazione. Vengono raccolti anche IP pubblico, username, hostname, Paese Windows, versione del sistema operativo, CPU, GPU e quantità di RAM installata. L’obiettivo è produrre per l’operatore un profilo immediato della macchina compromessa insieme al valore dei dati rubati. Tutte le informazioni vengono organizzate in memoria e inserite in un archivio ZIP protetto da password, evitando di lasciare sul filesystem la raccolta completa in chiaro. La catena non mostra invece un vero meccanismo di persistenza: i ricercatori non hanno identificato scheduled task, Run key, servizi Windows o collegamenti nella cartella Startup. StubMaker appare quindi progettato per un’attività rapida di raccolta ed esfiltrazione, non per mantenere il controllo del computer nel tempo.

Gofile viene usato per l’esfiltrazione e dresslee.com riceve il collegamento

Terminata la raccolta, l’archivio cifrato viene caricato su Gofile attraverso l’API del servizio. Il malware riceve il codice del file appena pubblicato, costruisce il relativo URL di download e invia questo collegamento insieme a un riepilogo della vittima verso dresslee.com sulla porta 20027 utilizzando HTTP non cifrato. Il messaggio include il Paese della vittima, caratteristiche hardware e conteggi relativi a wallet, password, cookie e cronologia. Il modello consente agli attaccanti di evitare la gestione diretta di grandi quantità di dati sul proprio C2: l’infrastruttura controllata dagli operatori riceve soltanto un puntatore verso l’archivio già depositato su un servizio esterno. È un ulteriore esempio di come servizi legittimi e piattaforme pubbliche possano essere riutilizzati come parti della catena criminale, una dinamica che RubyGems aveva già sperimentato quando GemStuffer trasformò 155 pacchetti in un sistema di pubblicazione ed esfiltrazione dati.

RubyGems sta rafforzando le difese ma il problema è la fiducia automatica nei package

L’ecosistema Ruby ha già iniziato a modificare le proprie difese. La documentazione ufficiale ricorda che installare una gem equivale a consentire l’esecuzione del suo codice nel contesto dell’applicazione e raccomanda verifiche specifiche sui package non conosciuti. Nel giugno 2026 RubyGems ha inoltre introdotto in Bundler 4.0.13 il meccanismo opzionale Cooldown, che permette di impedire la risoluzione automatica di versioni appena pubblicate per alcuni giorni, lasciando tempo alla community e ai sistemi automatici di rilevare release compromesse. La stessa logica sta comparendo anche in altri registry, come dimostrano le difese temporali introdotte da GitHub e PyPI contro gli aggiornamenti supply chain troppo recenti. StubMaker, però, evidenzia un problema ancora più elementare: la fiducia implicita assegnata al nome di una dipendenza. Pacchetti come brumdler non richiedono una sofisticata compromissione di un maintainer se basta un errore di digitazione durante gem install.

Una workstation infetta deve essere considerata completamente compromessa

OpenSourceMalware raccomanda di cercare connessioni Ruby verso 193.70.34.101:20099, creazione di Downloads/main.exe, esecuzione dell’eseguibile dalla cartella Downloads, accessi in rapida sequenza ai database Chromium, caricamento di codice unsigned nei processi browser e traffico verso Gofile seguito da connessioni a dresslee.com:20027. Se una gemma StubMaker è stata realmente eseguita su Windows, la sola rimozione del pacchetto non è sufficiente. Il sistema deve essere isolato e le sessioni browser e Telegram devono essere revocate, mentre tutte le credenziali memorizzate nei browser vanno ruotate da un dispositivo pulito. Le carte salvate devono essere considerate esposte e ogni seed phrase presente sulla macchina va trattata come compromessa, trasferendo i fondi su nuovi wallet generati da un ambiente affidabile. È la stessa lezione già emersa negli attacchi supply chain Ruby e Go capaci di sottrarre chiavi SSH dalle workstation degli sviluppatori: quando il package manager diventa il vettore iniziale, il vero obiettivo non è più la libreria, ma tutto ciò che lo sviluppatore può raggiungere attraverso il proprio computer.

Iscriviti alla Newsletter

Non perdere le analisi settimanali: Entra nella Matrice Digitale.

Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.

Torna in alto