IndonesianFoods: campagna worm-like con 86mila pacchetti maligni infesta il registry NPM

di Redazione
0 commenti

La campagna IndonesianFoods rappresenta una delle operazioni di inquinamento più imponenti mai osservate nell’ecosistema NPM, con oltre 86mila pacchetti maligni generati da almeno 55 account dedicati. L’attività, analizzata dal ricercatore Paul McCarty, è attiva da oltre due anni e mostra una combinazione di spam aggressivo, automazione worm-like e manipolazione delle dipendenze che compromette la qualità del registry JavaScript e introduce rischi significativi per la supply chain software. I pacchetti non mirano al furto di credenziali, ma saturano ricerche, pubblicazioni e flussi CI/CD, provocando inquinamento sistemico che espone sviluppatori a conseguenze operative, tecniche ed economiche. La campagna sfrutta account creati ad hoc, file automatizzati e un sistema di generazione continua di pacchetti che pubblica un nuovo elemento ogni pochi secondi, mostrando un livello di persistenza e organizzazione che ha richiesto risposte coordinate da parte della comunità open source.

Scoperta e analisi della campagna IndonesianFoods

La scoperta della campagna avviene attraverso un’indagine approfondita sul registry NPM condotta da Paul McCarty. Il ricercatore identifica una rete di account responsabili della pubblicazione coordinata di migliaia di pacchetti ciascuno, con nomi utente come veyla, noirdnv e doaortu, tutti creati appositamente per sostenere l’attacco. La dimensione del fenomeno — oltre 86mila pacchetti distribuiti in circa due anni — evidenzia un processo sistematico che sfrutta la facilità di pubblicazione del registry.

image 448
IndonesianFoods: campagna worm-like con 86mila pacchetti maligni infesta il registry NPM 7

L’analisi rivela tre tipologie principali di pacchetti: quelli con file tea.yaml utilizzati per monetizzare il protocollo Tea blockchain, quelli con dipendenze maligne inserite all’interno dei file package.json e una terza categoria worm-like in grado di generare autonomamente nuovi pacchetti. Quest’ultima categoria produce nomi random combinando termini indonesiani con alimenti, creando risultati come combinazioni casuali di nomi e numeri che appaiono legittimi agli occhi di utenti meno esperti. Il codice è spesso mascherato da template Next.js, scelta che contribuisce a eludere i controlli automatici e ingannare sistemi di rilevamento superficiali. La diffusione non richiede vulnerabilità specifiche: l’intera operazione sfrutta la fiducia implicita nel registry, un punto debole noto nelle supply chain moderne. McCarty pubblica un archivio completo dei pacchetti e degli account su un repository GitHub, permettendo alla comunità di tracciare l’evoluzione dell’operazione e facilitare rimozioni e blocchi.

Metodo di infezione e diffusione dei pacchetti

La campagna IndonesianFoods si propaga attraverso la pubblicazione diretta di pacchetti sul registry, sfruttando la possibilità di caricare librerie senza controlli preliminari. Gli sviluppatori scaricano questi pacchetti involontariamente, soprattutto durante installazioni automatizzate o aggiornamenti non verificati. Le tre varianti si diffondono con approcci differenti ma interconnessi. I pacchetti con tea.yaml fingono legittimità, attirando sviluppatori ignari tramite strutture familiari. I pacchetti con package.json modificati creano reti di dipendenze incrociate: quando installati, richiamano altre componenti spam, amplificando l’impatto. La variante più pericolosa rimane quella worm-like, che genera automaticamente nuove pubblicazioni tramite file come auto.js e publishScript.js. Questi script operano in un ciclo continuo che genera nome, versione e contenuto del pacchetto, per poi pubblicarlo su NPM utilizzando semplici comandi npm. Il ritmo della pubblicazione — un pacchetto ogni sette secondi — permette una crescita esponenziale del volume spam, saturando le ricerche e rendendo difficoltosa l’individuazione dei componenti utili. Il codice riproduce se stesso modificando manifesti e pubblicando nuove varianti in modo persistente, in un comportamento simile ai worm tradizionali.

Impatto su sviluppatori e ecosistema NPM

L’impatto della campagna IndonesianFoods è significativo e colpisce l’intero ecosistema JavaScript. Gli sviluppatori affrontano ricerche pesantemente inquinate, con risultati irrelevanti che rallentano lo sviluppo e complicano le attività quotidiane. La presenza di migliaia di pacchetti spam riduce la qualità complessiva del registry, comportando rischio di installazioni accidentalmente compromesse. La supply chain soffre ulteriormente a causa della natura interconnessa dei pacchetti malevoli, che creano dipendenze circolari e reti spam difficili da tracciare. Oltre all’impatto operativo, la campagna genera costi indiretti per audit, controlli manuali, debugging e rallentamenti nei pipeline CI/CD. Gli sviluppatori meno esperti risultano i più esposti, poiché possono installare pacchetti con nomi familiari o simili a quelli legittimi senza verificarne l’origine. La presenza di pacchetti generati automaticamente consuma risorse dell’infrastruttura NPM e impone lavori di pulizia costanti. La comunità open source registra perdita di fiducia nel registry, con alcuni sviluppatori che preferiscono mirror privati o registry alternativi per evitare rischi. La contaminazione a livello globale alimenta discussioni sulla necessità di aumentare i controlli prima della pubblicazione e di introdurre sistemi di verifica più rigorosi.

Indicatori di compromissione e dettagli tecnici

Gli indicatori di compromissione (IOC) emersi dall’indagine includono account specifici come veyla, doaortu, noirdnv e jarwok, tutti associati a migliaia di pubblicazioni spam. I principali file malevoli sono auto.js, publishScript.js, index.js e configurazioni come tea.yaml, ciascuno utilizzato per automatizzare generazione, mascheramento e pubblicazione. I pacchetti generati utilizzano nomi random che accoppiano termini indonesiani con cibi, fenomeno che permette di identificarli più facilmente nei log. Nei pacchetti worm-like, la logica del codice genera versioni casuali, aggiorna di continuo il package.json e utilizza npm publish per riprodursi in modo aggressivo. La presenza del file tea.yaml indica tentativi di monetizzazione tramite protocollo Tea blockchain, mentre le dipendenze incrociate in package.json segnalano collegamenti diretti con altre componenti spam. Questi IOC sono stati inseriti in database come OSV.dev, permettendo alert e blocchi automatici nel momento in cui un ambiente di sviluppo entra in contatto con un elemento riconducibile alla campagna.

Mitigazioni e raccomandazioni per sviluppatori

Gli sviluppatori possono mitigare l’impatto della campagna IndonesianFoods adottando pratiche di sicurezza mirate. Gli audit regolari delle dipendenze identificano pacchetti sospetti, mentre l’uso di scansioni automatizzate nei pipeline CI/CD permette di bloccare installazioni potenzialmente dannose. L’uso dei lock file evita aggiornamenti non controllati, mentre il pinning delle versioni riduce il rischio di integrare pacchetti spam. La verifica manuale dei pacchetti prima dell’installazione, soprattutto nei casi in cui il nome appaia insolito o contenga termini riconducibili a pattern indonesiani, riduce vulnerabilità. Registry mirror sicuri rappresentano una soluzione alternativa per progetti critici. La comunità consiglia inoltre la segnalazione immediata dei pacchetti sospetti affinché possano essere rimossi rapidamente. Nel frattempo, NPM sta implementando filtri avanzati e riforme dei sistemi di moderazione per ridurre creazioni massicce di account fraudolenti.

Azioni intraprese contro la campagna

Le autorità e la comunità open source hanno aggiunto gli oltre 86mila pacchetti al database OSV.dev e ad altri archivi come opensourcemalware.com, accelerando l’identificazione delle varianti future. Gli account responsabili sono stati bloccati, mentre numerosi pacchetti sono stati rimossi direttamente dal registry. Le piattaforme di threat intelligence condividono indicatori e pattern per consentire un blocco più ampio possibile. Le contromisure includono aggiornamenti dei tool di sicurezza, la diffusione di avvisi e la collaborazione tra ricercatori per tracciare l’origine dell’operazione. NPM rafforza il proprio sistema di moderazione introducendo controlli più severi e strumenti di analisi automatica. La risposta collettiva contribuisce a contenere la campagna e a preservare la stabilità dell’ecosistema JavaScript.