Negli ultimi giorni è emersa una nuova campagna malware che adotta un approccio sofisticato per distribuire un stealer denominato Stealit, sfruttando la modalità Single Executable Application (SEA) di Node.js per eludere rilevamenti e semplificare la diffusione. Secondo il report di Fortinet FortiGuard Labs, l’attacco in corso introduce una variazione rispetto alle versioni precedenti, che impiegavano Electron o altri bundle Node.js più tradizionali.
La campagna Stealit si diffonde principalmente tramite file installer fasulli mascherati da giochi o applicazioni VPN, resi disponibili su piattaforme di file sharing come Mediafire o Discord. Il metodo utilizzato consiste nel confezionare script Node.js e risorse correlate all’interno di un unico eseguibile, in modo che l’esecuzione non richieda un runtime Node.js già presente sul sistema bersaglio. Questo approccio permette all’attaccante di ridurre le dipendenze visibili e aggirare controlli che si focalizzano su scenari “classici” di malware basati su script.
L’eseguibile malevolo incorpora al suo interno una risorsa denominata NODE_SEA_BLOB, contenente il contenuto del vero script offuscato, insieme al percorso originale del file prima del bundling (che in alcuni casi include directory come “StealIt” o “angablue” – quest’ultimo riconducibile a un progetto open source che facilita la creazione di eseguibili SEA). All’avvio, il loader interno estrae e decodifica il payload secondario (spesso contenuto in un blob cifrato) e lo esegue direttamente in memoria usando require() di Node.js, riducendo la traccia su disco.
La scelta di SEA appare strategica: trattandosi di una feature sperimentale, il suo utilizzo da parte di malware può cogliere impreparati molte soluzioni antivirus e sistemi di analisi automatica. Tuttavia, Fortinet ha notato che in alcuni sample successivi la campagna è tornata ad usare Electron, ma con script cifrati tramite AES-256-GCM. Il comportamento essenziale del malware rimane comunque invariato: instaurare persistenza, raccogliere dati sensibili, e mantenerne il controllo remoto.
Il sito ufficiale di Stealit (che funge anche da pannello di controllo C2) è stato migrato più volte: inizialmente hostato su domini come stealituptaded[.]lol, è stato poi spostato su iloveanimals[.]shop. Il sito offre piani commerciali per la versione Windows e Android del malware: tra i servizi promossi vi sono la capacità di estrazione file, controllo webcam, monitoraggio dello schermo in tempo reale e anche la distribuzione di ransomware. Il pricing varia da soluzioni a termine fino a licenze “lifetime” da diversi centinaia di dollari.
Per contestualizzare questa minaccia, vale la pena osservare che l’uso di Node.js per malware non è una novità assoluta. Microsoft ha recentemente pubblicato un report che evidenzia campagne che distribuiscono eseguibili Node.js tramite malvertising, sfruttando inserzioni ingannevoli per veicolare installer compromessi che avviano script dai server C2. Analogamente, nel mondo della ricerca su malware basati su JavaScript si segnalano casi come NodeLoader, che trasporta miner criptovalute e stealer attraverso eseguibili Node.js compilati con il modulo pkg. Un altro esempio di stealer JavaScript “classico” era un malware per Facebook scritto in Node.js, impacchettato in eseguibile e capace di trasmettere dati tramite bot Telegram o server C2. Nel panorama dei malware “commodity”, Celestial Stealer adottava già la pratica di fornire personalizzazioni agli acquirenti tramite Telegram e offriva le varianti sia in formato Electron sia in formato Node.js single-file.
Alla luce di questo scenario emergente, chi opera nella difesa deve aggiornare la consapevolezza riguardo ai segni di compromissione e rafforzare i controlli su eseguibili Node.js insoliti. Pur non esistendo ancora signature consolidate per SEA (data la novità), si possono adottare contromisure come la scansione comportamentale, il monitoraggio delle risorse contenute nel blob interno e l’analisi delle richieste di rete effettuate dal processo. Per gli ambienti in cui è presente Node.js come piattaforma applicativa, l’introduzione di soluzioni come il runtime enforcement basato su SBOM (come il recente concept NodeShield) può cominciare a fare la differenza nel contenere attività malevole stealth. In definitiva, questa campagna Stealit ci ricorda che anche tecnologie emergenti — in fase sperimentale — possono diventare strumenti d’offesa nelle mani di attori minacciosi, e che l’evoluzione delle minacce richiede sempre vigilanza sulle “frontiere” del software moderno.
Commenti
Posta un commento