Salta al contenuto principale


Attacco supply chain npm, Shai-Hulud diffonde codice malevolo in centinaia di pacchetti


L’ecosistema npm è nuovamente al centro di un vasto attacco alla supply chain attribuito alla campagna Shai-Hulud. Questa ondata ha portato alla diffusione di centinaia di pacchetti apparentemente legittimi, ma alterati con codice malevolo, coinvolgendo librerie utilizzate in servizi diffusi come Zapier, ENS Domains, PostHog e Postman.

Secondo le prime analisi, l’obiettivo principale degli aggressori era sottrarre credenziali degli sviluppatori e token utilizzati nei processi di integrazione e distribuzione continua (CI/CD). Le informazioni rubate venivano poi inviate automaticamente su GitHub in forma codificata. Al momento, sono stati individuati su GitHub oltre 27.600 record riconducibili all’operazione.

Shai-Hulud aveva già fatto la sua comparsa a metà settembre, quando aveva compromesso 187 pacchetti npm, sfruttando un payload in grado di propagarsi autonomamente e di sottrarre chiavi tramite lo strumento TruffleHog. La tecnica utilizzata prevedeva il recupero automatico di pacchetti originali, la modifica del file package.json con script malevoli e la successiva pubblicazione delle versioni infette tramite account di manutentori compromessi.

Il ricercatore di Aikido Security Charlie Eriksenè stato tra i primi a rilevare il nuovo attacco, identificando inizialmente 105 pacchetti sospetti, poi cresciuti rapidamente a 492. Un’analisi più ampia ha mostrato che l’attacco si stava espandendo rapidamente: secondo i ricercatori di Wiz, il numero totale di pacchetti malevoli ha superato i 27.000, distribuiti tramite circa 350 account npm compromessi. Wiz segnala anche che, nelle ore più intense dell’operazione, venivano creati circa 1.000 nuovi repository GitHub ogni mezz’ora.

I repository individuati su GitHub rivelano che i dispositivi degli sviluppatori che utilizzavano pacchetti infetti, e che conservavano sul proprio ambiente credenziali GitHub, sono stati compromessi. L’azienda Step Security, specializzata nella protezione delle pipeline CI/CD, ha condotto un’analisi tecnica del nuovo malware evidenziando due file principali: setup_bun.js, presentato come installatore di Bun ma in realtà utilizzato per distribuire il payload, e bun_environment.js, un file da 10 MB pesantemente offuscato.

Gli analisti hanno riscontrato un uso massiccio di tecniche di offuscamento, incluse lunghe stringhe esadecimali, cicli anti-analisi e funzioni progettate per rendere difficile l’ispezione del codice. Il processo d’infezione è composto da cinque fasi e include il furto sistematico di credenziali (token GitHub, npm, AWS, Google Cloud, Azure e altri servizi) e un’azione distruttiva finale che consiste nella sovrascrittura completa della directory home della vittima. Questa fase entra in azione solo quando si verificano specifiche condizioni, come l’impossibilità di autenticarsi o di generare un nuovo repository GitHub.

Secondo Koi Security, considerando tutte le versioni compromesse, gli effetti dell’attacco hanno interessato complessivamente oltre 800 pacchetti npm. Il malware crea inoltre quattro file-cloud.json, contents.json, environment.json e truffleSecrets.json per poi caricare i dati sottratti su repository appositamente creati, tutti contrassegnati dalla dicitura “Shai-Hulud : The Second Coming“.

Gli attaccanti avrebbero assunto il controllo anche di alcuni account GitHub, sfruttandoli per generare rapidamente nuovi repository contenenti i file associati al malware. Nonostante GitHub proceda alla rimozione immediata dei repository sospetti, la rapidità con cui vengono creati nuovi contenuti rende complesso bloccare completamente la campagna.

Tra i pacchetti infetti individuati da Aikido Security figurano componenti chiave di Zapier, ENS Domains, PostHog e AsyncAPI. Le librerie di ENS hanno particolare rilevanza all’interno dell’ecosistema Ethereum, poiché vengono utilizzate in portafogli, DApp, exchange e strumenti di gestione dei domini .eth.

La piattaforma npm consente ancora di scaricare i pacchetti manomessi, anche se in alcuni casi compare un avviso che segnala la pubblicazione non autorizzata dell’ultima versione.

Gli esperti raccomandano alle organizzazioni di compilare un elenco completo dei pacchetti compromessi, sostituirli con versioni sicure e procedere immediatamente alla rigenerazione di tutte le chiavi e i token utilizzati nei workflow CI/CD. Wiz consiglia inoltre alle aziende di rinnovare le credenziali associate a GitHub, npm e servizi cloud. Aikido Security suggerisce anche di disattivare gli script post-installazione durante i processi di integrazione continua, quando possibile.

La riattivazione della campagna Shai-Hulud avviene in un periodo in cui npm è già oggetto di vari attacchi significativi alla supply chain. GitHub ha annunciato ulteriori misure di sicurezza, che tuttavia sono ancora in fase di progressiva implementazione.

L'articolo Attacco supply chain npm, Shai-Hulud diffonde codice malevolo in centinaia di pacchetti proviene da Red Hot Cyber.