GachiLoader e Vectored Overloading: la nuova frontiera del malware Node.js

di Redazione
0 commenti

In un panorama di minacce digitali sempre più complesso, i ricercatori di Check Point Research, guidati dagli analisti Sven Rath e Jaromír Hořejší, hanno portato alla luce il 17 dicembre 2025 un’operazione sofisticata incentrata su GachiLoader malware Node.js, un vettore di attacco altamente offuscato che sfrutta la YouTube Ghost Network per distribuire payload malevoli tramite tecniche di iniezione innovative come il Vectored Overloading. Questa scoperta evidenzia un cambiamento strategico negli attori delle minacce, che abbandonano i linguaggi tradizionali per sfruttare la flessibilità di ambienti runtime come Node.js, nascondendo le proprie tracce dietro video ingannevoli che promettono cheat per videogiochi e software crackati, attivi sin dal 22 dicembre 2024. L’analisi approfondita rivela non solo l’infrastruttura di distribuzione, ma anche l’evoluzione delle tecniche di evasione che rendono obsoleti i metodi di rilevamento convenzionali.

La rete fantasma di YouTube e la catena di infezione

image 528
 Esempio di account compromesso che inizia a condividere pubblicità di trucchi di gioco dannosi

L’architettura di distribuzione di questa campagna si basa su una manipolazione sistematica della piattaforma video più grande del mondo. Gli attaccanti hanno compromesso e utilizzato 39 account YouTube per caricare oltre cento video promozionali, creando quella che gli esperti definiscono una YouTube Ghost Network. Questi contenuti, progettati per attrarre un pubblico giovane o tecnicamente inesperto, offrono falsi vantaggi competitivi nei giochi o accesso gratuito a software a pagamento.

image 530
Prima variante di GachiLoader che carica un payload remoto

Le descrizioni dei video fungono da esca finale, indirizzando le vittime verso link di download esterni che ospitano archivi protetti da password, accompagnati da istruzioni perentorie per disabilitare Windows Defender e altre suite di sicurezza. Nonostante l’intervento di YouTube, che ha rimosso la maggior parte dei contenuti dopo le segnalazioni, la campagna ha operato indisturbata per nove mesi, permettendo agli attori malintenzionati di adattare costantemente le loro tattiche e migrare su nuovi account compromessi non appena quelli vecchi venivano bannati.

Anatomia di GachiLoader: offuscamento e anti-analisi

Dal punto di vista tecnico, GachiLoader si presenta come un modulo JavaScript pesantemente offuscato, impacchettato utilizzando lo strumento nexe in un singolo file eseguibile che varia dai 60 ai 90 MB. Questa dimensione notevole è dovuta all’inclusione dell’intero runtime Node.js, permettendo al malware di operare in modo indipendente senza dipendenze esterne sul sistema ospite. Per penetrare questo guscio protettivo, i ricercatori hanno impiegato nexe_unpacker, rivelando una serie di controlli anti-analisi meticolosi. Il malware esegue una scansione preliminare dell’ambiente, verificando la presenza di almeno 4 GB di RAM e due core della CPU, ed enumera i processi attivi tramite comandi PowerShell via WMI per identificare strumenti di analisi noti. Inoltre, confronta il nome utente e l’hostname con una blacklist predefinita e conta i connettori delle porte e i modelli dei drive per distinguere tra macchine fisiche e virtuali. Se rileva un ambiente sandbox o una macchina virtuale, il malware entra in una modalità di stallo, inviando richieste GET in loop a siti benigni per ingannare gli analisti comportamentali.

La persistenza e l’escalation dei privilegi sono gestite con pari astuzia. GachiLoader verifica i privilegi amministrativi tramite il comando net session e, se necessario, forza un riavvio dello script tramite PowerShell inducendo un prompt UAC che l’utente, condizionato dalle istruzioni del video, tende ad accettare. Una volta ottenuto l’accesso elevato, il malware neutralizza le difese del sistema terminando il processo SecHealthUI.exe e aggiungendo esclusioni a Windows Defender per percorsi critici come le directory utente, ProgramData, la cartella Windows e la root del drive di sistema, estendendo l’immunità anche a tutti i file con estensione .sys. Per prevenire esecuzioni multiple, viene creato un file mutex nella directory temporanea %TEMP%.

Le varianti del payload: da Rhadamanthys a Kidkadi

L’analisi di Check Point Research ha identificato due varianti principali nella catena di esecuzione. La prima variante si concentra sulla ricognizione e sul download del payload finale, tipicamente l’infostealer Rhadamanthys. Questa versione invia dati sul sistema operativo e sugli antivirus installati tramite richieste POST all’endpoint /log dei server di comando e controllo (C2). Successivamente, richiede il payload cifrato tramite una richiesta GET all’endpoint /richfamily/<key>, utilizzando un header specifico X-Secret per autenticare la transazione. Il file scaricato, protetto da packer commerciali come VMProtect o Themida, viene salvato con nomi apparentemente legittimi.

image 531
Seconda variante di GachiLoader che rilascia Kidkadi

La seconda variante introduce un elemento di novità assoluta con il componente Kidkadi, un modulo nativo Node.js (.node) che viene rilasciato nella directory temporanea. L’analisi interna di questo modulo ha rivelato nomi di metodi in lingua russa, suggerendo una possibile origine geografica degli sviluppatori. Kidkadi funge da vettore per una tecnica di iniezione estremamente avanzata denominata Vectored Overloading, che rappresenta un’evoluzione significativa rispetto alle tradizionali tecniche di process hollowing o DLL injection.

Innovazione nell’iniezione: la tecnica Vectored Overloading

Il cuore dell’innovazione tecnica di questa campagna risiede nel Vectored Overloading, un metodo che sfrutta il meccanismo di gestione delle eccezioni di Windows (Vectored Exception Handling o VEH) per eseguire codice arbitrario eludendo i controlli di integrità. Il processo inizia con Kidkadi che crea una sezione immagine partendo da una DLL legittima del sistema, come wmp.dll. Invece di caricare la DLL normalmente, il malware ne sovrascrive il contenuto con il proprio payload PE (Portable Executable) malevolo, mappa la vista della sezione in memoria e applica le rilocazioni necessarie. Dopo aver azzerato l’entry point originale per nascondere l’esecuzione, il malware registra un gestore di eccezioni vettoriali (VEH) e imposta dei breakpoint hardware su funzioni native critiche come NtOpenSection.

image 532
Progetto HookPE PoC, che utilizza la stessa tecnica

L’esecuzione viene innescata caricando una libreria benigna come amsi.dll. Quando il sistema tenta di chiamare la funzione monitorata, scatta il breakpoint hardware e il controllo passa al gestore VEH registrato dal malware. A questo punto, il gestore scambia l’handle della sezione legittima con quello del payload malevolo e avanza il puntatore di istruzioni (EIP) all’istruzione di ritorno (ret), emulando di fatto l’esecuzione della chiamata di sistema originale. Il processo prosegue intercettando ed emulando altre chiamate critiche come NtMapViewOfSection e NtClose, garantendo che il sistema operativo carichi ed esegua il codice malevolo credendo di gestire una libreria legittima. Check Point ha validato questa tecnica rilasciando un Proof of Concept (PoC) denominato HookPE.exe, basato sulla libreria libpeconv, disponibile su GitHub.

Node.js Tracer: la risposta della ricerca alla de offuscazione

image 529
Sorgente JavaScript offuscata (ma formattata)

Per contrastare la crescente complessità dei malware basati su JavaScript, il team di ricerca ha sviluppato e rilasciato Node.js Tracer, uno strumento open-source progettato per semplificare l’analisi dinamica. Questo tool si aggancia alle API interne di Node.js, permettendo agli analisti di intercettare le chiamate di funzione, spoofare i valori di ritorno per bypassare i controlli anti-analisi (come quelli su RAM e CPU) ed estrarre configurazioni dinamiche come gli indirizzi C2 e le chiavi di cifratura. L’introduzione di Node.js Tracer rappresenta un passo fondamentale per la comunità di sicurezza, offrendo un mezzo efficace per disinnescare tecniche di evasione che altrimenti richiederebbero un dispendioso reverse engineering manuale.

FAQ

Che cos’è GachiLoader e come si diffonde?

GachiLoader è un malware scritto in Node.js e pesantemente offuscato, scoperto da Check Point Research. Si diffonde tramite la “YouTube Ghost Network”, una rete di account compromessi che pubblicano video promozionali di cheat e software crackati contenenti link ai payload malevoli.

In cosa consiste la tecnica Vectored Overloading?

Il Vectored Overloading è una tecnica di iniezione avanzata utilizzata dal modulo Kidkadi. Sfrutta il Vectored Exception Handling (VEH) e i breakpoint hardware per intercettare le chiamate di sistema (come NtOpenSection), sostituendo le DLL legittime con codice malevolo durante il caricamento in memoria.

Qual è la funzione dello strumento Node.js Tracer?

Node.js Tracer è un tool open-source sviluppato da Check Point per analizzare malware Node.js offuscati. Permette di agganciare le API, manipolare i valori di ritorno per superare i controlli anti-sandbox ed estrarre configurazioni nascoste senza dover deoffuscare manualmente l’intero codice.

Quali payload distribuisce GachiLoader?

La campagna distribuisce principalmente l’infostealer Rhadamanthys e il dropper Kidkadi. Rhadamanthys è progettato per rubare credenziali e dati sensibili, mentre Kidkadi esegue l’iniezione del codice malevolo utilizzando tecniche sofisticate per evadere i software di sicurezza.