Attacco APT con RAT sofisticato che mira ai progetti Gulp su npm

di Livio Varriale
0 commenti

Il 24 maggio 2024, la piattaforma automatizzata di rilevamento dei rischi di Phylum ha segnalato una pubblicazione sospetta di un RAT su npm. Il pacchetto in questione, chiamato glup-debugger-log, è stato pubblicato con due file offuscati che lavorano insieme per compromettere i sistemi bersaglio, scaricare ulteriori componenti di malware e fornire all’attaccante un meccanismo di accesso remoto persistente.

L’Attacco

Quando si esaminano pacchetti npm sospetti, il file package.json è sempre un buon punto di partenza. Questo file contiene informazioni cruciali sulla configurazione del pacchetto, le dipendenze e gli script. Gli attaccanti spesso sfruttano questo file inserendo comandi dannosi nei vari hook di installazione. In questo caso, il package.json del pacchetto glup-debugger-log mostrava script insoliti e l’uso di javascript-obfuscator per offuscare i file ./lib/play.js e ./lib/play-share.js.

Analisi del Codice

File index.js

Il file index.js richiama diverse librerie, tra cui gulplog e glogg, legittime e correlate a Gulp, ma anche un file locale ./lib/play. Il file play.js è offuscato, il che rende difficile analizzarlo direttamente.

Funzione bind()

La funzione bind() nel file play.js viene utilizzata per eseguire le funzioni start() e share(). La funzione start() scarica ed esegue comandi o file da URL specificati, mentre la funzione share() esegue un server HTTP per ricevere ed eseguire comandi da remoto.

La Dropper

La funzione start() verifica l’ambiente della macchina target e decide se eseguire comandi localmente o scaricare ed eseguire file da un URL. Utilizza child_process per eseguire comandi sulla macchina compromessa.

Server HTTP per RCE Arbitrario

La funzione share() imposta un server HTTP che ascolta le richieste sulla porta 3004 e esegue i comandi forniti come query cmd. Questo consente all’attaccante di eseguire comandi arbitrari sulla macchina compromessa in modo remoto.

Conclusioni di Phylum

Secondo la ricerca, questo RAT (Remote Access Trojan) è sia grezzo che sofisticato. È minimalista e focalizzato sulle funzionalità principali del RAT, implementato completamente in JavaScript senza bisogno di binari esterni. È sofisticato nella sua strategia di offuscamento, nei controlli ambientali e nella sua modularità. Questa combinazione lo rende particolarmente interessante dal punto di vista dell’analisi del malware, evidenziando l’evoluzione continua del panorama delle minacce nel mondo open source.

Articoli correlati