Tre pacchetti NPM maligni diffondono NodeCordRAT nella supply chain JavaScript

di Redazione
0 commenti
nodecordrat npm typosquatting

NodeCordRAT è l’ennesima dimostrazione di quanto la supply chain del software open source sia diventata un bersaglio prioritario per gli attori malevoli. La minaccia emerge da una campagna identificata da Zscaler ThreatLabz, che ha individuato tre pacchetti NPM maligni capaci di infettare automaticamente sistemi di sviluppo, trasformando una normale installazione di dipendenze in un accesso remoto persistente controllato tramite Discord.

La campagna, attiva almeno da novembre 2025, sfrutta typosquatting mirato su librerie Bitcoin, colpendo sviluppatori che lavorano su progetti JavaScript e Node.js. Il risultato è una compromissione silenziosa ma profonda, con furto di segreti, wallet cripto e credenziali di browser, in un contesto in cui la fiducia nell’ecosistema NPM diventa essa stessa il vettore di attacco.

La scoperta dei pacchetti NPM maligni

I ricercatori hanno identificato tre pacchetti pubblicati sul registro NPM: bitcoin-main-lib, bitcoin-lib-js e bip40. Tutti e tre risultano caricati dallo stesso indirizzo email, [email protected], e presentano metadati studiati per imitare progetti legittimi dell’ecosistema Bitcoin, come bitcoinjs-lib.

image 277
Tre pacchetti NPM maligni diffondono NodeCordRAT nella supply chain JavaScript 18

Il dettaglio più insidioso è l’uso di un repository GitHub falso all’interno del file package.json, che punta in realtà al progetto autentico. Questo stratagemma aumenta la credibilità apparente dei pacchetti, riducendo la probabilità che uno sviluppatore noti incongruenze prima dell’installazione.

Prima della rimozione, i pacchetti hanno accumulato migliaia di download: bitcoin-main-lib ha superato 2.200 installazioni, bip40 circa 950, mentre bitcoin-lib-js ha registrato oltre 180 download. Numeri sufficienti a indicare una diffusione non trascurabile in ambienti reali di sviluppo.

Il flusso di attacco e l’abuso degli script post-installazione

L’infezione inizia nel momento in cui uno sviluppatore installa bitcoin-main-lib o bitcoin-lib-js come parte del proprio workflow. Durante l’installazione, viene eseguito automaticamente uno script postinstall.cjs, una funzionalità legittima di NPM spesso ignorata nelle verifiche manuali.

Questo script agisce come primo stadio dell’attacco. Identifica il sistema operativo in uso, verifica la presenza di PM2 (Process Manager 2) e risolve la dipendenza bip40, che contiene il payload principale. Se PM2 è disponibile, il malware viene avviato in background come processo “detached”, ottenendo una persistenza di fatto nella sessione di sviluppo. Se PM2 non è presente, l’esecuzione prosegue comunque senza generare errori evidenti, riducendo il rischio di sospetti immediati.

Questa catena sfrutta un punto critico della supply chain: la risoluzione automatica delle dipendenze. Lo sviluppatore non deve fare nulla oltre alla normale installazione di un pacchetto, e l’intero processo avviene senza prompt, finestre o alert.

NodeCordRAT e l’uso di Node.js come piattaforma offensiva

NodeCordRAT è scritto interamente in JavaScript e gira su Node.js, una scelta che lo rende perfettamente integrato negli ambienti di sviluppo moderni. Una volta avviato, il RAT genera un fingerprint univoco della macchina infetta, utilizzando meccanismi diversi a seconda del sistema operativo.

Leggi il rapporto di ZScaler

Su Windows, il malware estrae l’UUID tramite wmic o PowerShell, mentre su Linux e macOS utilizza file come /etc/machine-id o comandi come ioreg. Il risultato è un identificatore strutturato, ad esempio win32-c5a3f1b4, che consente agli attori di tracciare con precisione ogni endpoint compromesso.

Il RAT stabilisce quindi una connessione verso un server di command-and-control basato su Discord, sfruttando un token statico hardcoded. Per ogni nuova infezione viene creato un canale privato dedicato, che funge da console remota per l’operatore.

Discord come infrastruttura C2 resiliente

L’uso di Discord come C2 non è casuale. NodeCordRAT sfrutta le API REST ufficiali della piattaforma per inviare e ricevere comandi, caricando file e screenshot come allegati ai messaggi. Questo approccio consente di evitare infrastrutture dedicate, riducendo i costi e aumentando la resilienza contro i takedown.

Attraverso semplici prefissi di comando, l’attore può eseguire shell commands remoti, catturare screenshot del desktop, caricare file arbitrari e monitorare l’attività del sistema in tempo reale. Il traffico verso Discord appare spesso legittimo nei log di rete, rendendo più complessa l’individuazione della minaccia in ambienti aziendali.

Furto di dati e targeting degli sviluppatori cripto

NodeCordRAT combina le funzionalità di accesso remoto con un modulo di data stealing mirato. Il malware cerca file .env all’interno delle home directory, escludendo percorsi come node_modules e .git, per individuare segreti applicativi, API key e credenziali cloud.

Particolare attenzione è rivolta ai wallet crittografici. Il RAT scandaglia i profili di Chrome alla ricerca dei database associati all’estensione MetaMask, estraendo dati potenzialmente sufficienti a compromettere fondi digitali. A questo si aggiunge il furto di credenziali browser, cookie di sessione e altri artefatti sensibili.

L’esfiltrazione avviene interamente tramite Discord, consolidando in un unico canale sia il controllo remoto sia il furto di informazioni.

Persistenza tramite PM2 e invisibilità operativa

L’abuso di PM2 rappresenta uno degli aspetti più insidiosi della campagna. PM2 è uno strumento ampiamente utilizzato dagli sviluppatori per gestire applicazioni Node.js in produzione e in locale. Avviando NodeCordRAT come processo PM2, il malware si mimetizza nel rumore di fondo dell’ambiente di sviluppo, rendendo difficile distinguere un processo legittimo da uno malevolo.

Questa scelta consente al RAT di sopravvivere per lunghi periodi, soprattutto su macchine di sviluppo utilizzate quotidianamente, aumentando il rischio di propagazione laterale e di compromissione di repository, pipeline CI/CD e credenziali condivise.

Un segnale d’allarme per la supply chain open source

La campagna NodeCordRAT conferma un’evoluzione chiara: gli attacchi non puntano più solo sugli utenti finali, ma sugli sviluppatori come punto di ingresso privilegiato. Il typosquatting su NPM, combinato con script post-installazione e C2 su piattaforme legittime, rappresenta una minaccia particolarmente efficace e difficile da intercettare con controlli tradizionali.

La rimozione dei pacchetti dal registro NPM non elimina il problema per chi li ha già installati. Le infezioni persistono, e la fiducia implicita negli ecosistemi open source si trasforma in un fattore di rischio sistemico.

Domande frequenti su NodeCordRAT e i pacchetti NPM maligni

Come si diffonde NodeCordRAT tramite NPM?

NodeCordRAT viene installato automaticamente quando uno sviluppatore aggiunge pacchetti NPM typosquatted. Gli script post-installazione eseguono il payload senza richiedere interazione, sfruttando il normale meccanismo di risoluzione delle dipendenze.

Perché l’uso di Discord come C2 è pericoloso?

Discord è una piattaforma legittima e ampiamente utilizzata. Il traffico verso i suoi server difficilmente viene bloccato, rendendo il command-and-control più resiliente e meno visibile nei sistemi di monitoraggio.

Quali dati vengono rubati da NodeCordRAT?

Il malware ruba file .env, credenziali browser, cookie di sessione e dati associati a wallet come MetaMask. Questo può portare a compromissioni finanziarie e di progetti software.

Come possono difendersi gli sviluppatori?

È fondamentale verificare l’autenticità dei pacchetti, analizzare gli script post-installazione, monitorare processi PM2 inattesi e limitare l’uso di segreti in chiaro negli ambienti di sviluppo.


Matrice Digitale partecipa al Programma Affiliazione Amazon EU, un programma di affiliazione che consente ai siti di percepire una commissione pubblicitaria pubblicizzando e fornendo link al sito Amazon.it.