Sicurezza informatica
NPM Supply-Chain Attack: Cosa è successo e come risolverlo

L’industria delle criptovalute e il mondo intero hanno recentemente vissuto un brivido quando gli esperti di sicurezza hanno identificato un attacco alla catena di fornitura che prendeva di mira l’ecosistema Node.js e che aveva già compromesso fino a 18 pacchetti npm.
Questo perché questi pochi pacchetti registrano miliardi di download ogni settimana.
I pacchetti software sono usati per distribuire software di terze parti. Spesso prelevati da una fonte esterna tramite un gestore di pacchetti, includono solitamente codice sorgente, librerie, documentazione e altri file necessari per costruire ed eseguire il software.
Ora, un pacchetto contenente malware si maschera da legittimo, quando in realtà è maligno con l’intento di infettare il software. Una volta entrato in un sistema, il malware nel pacchetto dannoso può modificare file, rubare dati e persino prendere il controllo dell’intero sistema per fare ciò che l’attaccante desidera.
Mentre altri grandi ecosistemi open source come Python e .NET sono altrettanto vulnerabili agli attacchi, l’ampio utilizzo di JavaScript lo rende particolarmente esposto ai cybercriminali.
Node.js è un ambiente di runtime open source costruito sopra JavaScript che consente agli sviluppatori di eseguire il proprio codice al di fuori del browser web.
Tradizionalmente, il linguaggio di programmazione interpretato, noto soprattutto per rendere interattive le pagine web, veniva utilizzato principalmente per lo sviluppo web lato client nei browser, ma Node.js ha esteso l’uso di JavaScript al lato server e ad altre applicazioni.
Con Node.js, gli sviluppatori possono costruire applicazioni veloci e scalabili come server web, API, strumenti e altro.
Beneficia di un vasto ecosistema di librerie e strumenti open source disponibili tramite npm, che semplifica lo sviluppo e fornisce soluzioni per varie funzionalità.
Node Package Manager, o npm, è uno strumento chiave nello sviluppo JavaScript, utilizzato per trovare, costruire e gestire i pacchetti di codice. Aiuta nella gestione delle dipendenze, favorisce la collaborazione e semplifica i flussi di lavoro.
Questo è il più grande registro di software al mondo, contiene oltre 3 milioni di pacchetti di codice ed è completamente gratuito.
Chiunque può scaricare tutti i pacchetti software pubblici di npm senza doversi registrare. Gli sviluppatori open source usano npm per condividere e prendere in prestito software, mentre molte organizzazioni lo usano per gestire lo sviluppo privato.
Per installare npm sul tuo computer, devi prima installare Node.js.
Il gestore di pacchetti per JavaScript è mantenuto da npm, Inc., una filiale di GitHub, la principale piattaforma di sviluppo software al mondo, di proprietà di Microsoft dal 2018, quando il colosso tecnologico l’ha acquisita per 7,5 miliardi di dollari per potenziare gli sviluppatori.
La scorsa settimana, lo strumento su cui più di 17 milioni di sviluppatori in tutto il mondo si affidano è stato compromesso, creando panico su Internet, anche se solo per un breve periodo, poiché gli esperti l’hanno individuato rapidamente e gli aggressori non sono riusciti a rubare più di 50 $. Ecco cosa è successo!
Cosa è successo nell’attacco alla catena di fornitura NPM (settembre 2025)
Nel massiccio attacco alla catena di fornitura che ha colpito l’ecosistema JavaScript, gli hacker hanno compromesso una serie di pacchetti npm con malware. L’obiettivo dell’attacco era rubare risorse digitali agli utenti.
In particolare, l’account npm dello sviluppatore ‘qix’ è stato violato.
Qix è un account di manutentore open source che è stato compromesso da un attacco di phishing. Questo ha permesso agli aggressori di infettare 18 popolari pacchetti npm con codice maligno. Insieme, questi pacchetti vengono scaricati centinaia di milioni di volte ogni settimana poiché sono incorporati in framework, strumenti per sviluppatori e servizi di produzione.
I pacchetti interessati includono chalk, debug, color-name, wrap-ansi e ansi-styles, che sono tra i più popolari, mentre i pacchetti npm meno noti colpiti sono backslash, chalk-template e has-ansi.
Scorri per visualizzare →
| Pacchetto | Versione(i) compromessa(e) | Azione |
|---|---|---|
| debug | 4.4.2 | Blocca alla versione precedente a 4.4.2; reinstalla; analizza i log di build |
| chalk | 5.6.1 | Blocca alla versione precedente a 5.6.1; ridistribuisci build pulita |
| ansi-styles | 6.2.2 | Blocca alla versione precedente a 6.2.2; verifica le dipendenze a valle |
| ansi-regex | 6.2.1 | Blocca alla versione precedente a 6.2.1 |
| strip-ansi | 7.1.1 | Blocca alla versione precedente a 7.1.1 |
| wrap-ansi | 9.0.1 | Blocca alla versione precedente a 9.0.1 |
| color, color-convert, color-string, color-name | 5.0.1 / 3.1.1 / 2.1.1 / 2.0.1 | Blocca alle versioni precedenti elencate; ri-blocca e ricostruisci |
| has-ansi, supports-color, slice-ansi | 6.0.1 / 10.2.1 / 7.1.1 | Blocca alle versioni precedenti elencate |
| backslash, is-arrayish, error-ex, simple-swizzle, chalk-template, supports-hyperlinks | 0.2.1 / 0.3.3 / 1.3.3 / 0.2.3 / 1.1.1 / 4.1.1 | Blocca alle versioni precedenti elencate |
| duckdb, @duckdb/node-api, @duckdb/node-bindings, @duckdb/duckdb-wasm | 1.3.3 / 1.3.3 / 1.3.3 / 1.29.2 | Evita le versioni elencate; attendi gli aggiornamenti del fornitore |
Tutti i pacchetti che sono stati colpiti sono stati rimossi dal registro npm. Compromettendo un manutentore open source di alto valore, l’attacco ha trasformato in arma la fiducia nell’ecosistema del software open source (OSS), poiché gli sviluppatori non verificano ogni dipendenza che usano. Quello che fanno è fare affidamento sul loro utilizzo e sulla reputazione, così come sulla sicurezza dei registri.

Per compromettere i pacchetti, l’hacker ha seguito la via del phishing. L’attaccante ha prima lanciato una campagna di phishing per dirottare l’account di un manutentore di pacchetti npm, poi ha iniettato il proprio codice maligno nei pacchetti npm prima di caricare le versioni compromesse.
Lo sviluppatore Josh Junon è stato la vittima di un’email di phishing che faceva parte di una campagna più ampia che imitava npm. Gli aggressori hanno usato un sito di phishing che imitava la pagina di login di npm per rubare le sue credenziali. E non appena gli aggressori sono entrati, hanno bloccato Junon cambiando l’indirizzo email associato al suo account npm.
“Ciao, sì sono stato compromesso. Scusate tutti, molto imbarazzante,” ha scritto Junon su HackerNews, confermando l’incidente. Ha spiegato prima di chiarire che solo npm era stato colpito:
“Sembrava legittimo a prima vista. Non sto cercando scuse, ho avuto una settimana lunga e una mattina agitata e stavo solo cercando di spuntare qualcosa dalla mia lista di cose da fare. Ho commesso l’errore di cliccare sul link invece di andare direttamente al sito.”
L’email di phishing proveniva da support [at] npmjs [dot] help e usava una tattica di paura per indurre Junon a cliccare sul link, che lo reindirizzava al sito di phishing.
Fingendo di essere di npm, gli aggressori gli hanno chiesto di aggiornare le credenziali 2FA, sostenendo di far parte di un “impegno continuo per la sicurezza dell’account” e che stavano richiedendo lo stesso a tutti gli utenti.
“I nostri registri indicano che è passato più di 12 mesi dal tuo ultimo aggiornamento 2FA,” affermava l’email di phishing, aggiungendo che chi ha “credenziali 2FA obsolete sarà temporaneamente bloccato a partire dal 10 settembre 2025, per prevenire accessi non autorizzati.”
La stessa email è stata usata anche per prendere di mira altri manutentori di pacchetti e sviluppatori.
Dato l’ampio utilizzo dei pacchetti colpiti, questo avrebbe potuto diventare un incidente importante se non fosse stato gestito così rapidamente.
Come ha osservato Charlie Erickson di Aikido Security in un rapporto, innumerevoli siti web hanno evitato danni molto seri da questo attacco, poiché i pacchetti npm contenevano un frammento di codice che si sarebbe eseguito sul client di un sito web.
“Questo malware è essenzialmente un intercettatore basato sul browser che dirotta sia il traffico di rete sia le API delle applicazioni,” ha dichiarato nella sua analisi dell’attacco. “Ciò che lo rende pericoloso è che opera su più livelli: altera i contenuti mostrati sui siti web, manipola le chiamate API e modifica ciò che le app degli utenti credono di firmare. Anche se l’interfaccia sembra corretta, la transazione sottostante può essere reindirizzata in background.”
Il codice maligno è stato progettato per rubare criptovalute. L’attaccante analizza le stringhe alla ricerca di indirizzi di wallet crypto, mettendo a rischio chi lavora su applicazioni legate alle criptovalute.
Il malware operava silenziosamente all’interno del browser senza che l’utente lo sapesse, riscrivendo gli indirizzi dei wallet e reindirizzando i fondi verso account controllati dall’attaccante. Dirottava e manipolava direttamente le transazioni su Bitcoin, Ethereum, Solana, Tron, Litecoin e Bitcoin Cash su un sistema compromesso.
Per fare ciò, il codice maligno monitorava le interfacce di programmazione delle applicazioni del browser, come fetch, e le interfacce dei wallet, come window.ethereum.
Il codice maligno “intercetta silenziosamente le attività crypto e Web3 nel browser, manipola le interazioni del wallet e riscrive le destinazioni di pagamento in modo che fondi e approvazioni vengano reindirizzati a account controllati dall’attaccante senza alcun segno evidente per l’utente,” ha detto Erickson.
Una volta terminato, il malware copre le proprie tracce pur rimanendo in background per intercettare eventuali transazioni future sulla rete della vittima ignara.
Data la gravità dell’attacco, Charles Guillemet, CTO del fornitore di hardware wallet Ledger, ha avvertito gli utenti crypto di essere cauti quando confermano transazioni on-chain. I pacchetti colpiti, ha osservato nel post, sono già stati scaricati oltre un miliardo di volte.
L’attacco su larga scala alla catena di fornitura, ha condiviso con la community, sta prendendo di mira i wallet software crypto con il payload maligno “scambia silenziosamente gli indirizzi crypto al volo per rubare fondi”.
“Se usi un hardware wallet, presta attenzione a ogni transazione prima di firmare e sarai al sicuro. Se non usi un hardware wallet, astieniti dal fare qualsiasi transazione on-chain per ora.”
– Guillemet
Nel frattempo, 0xngmi, il fondatore pseudonimo di DefiLlama, una piattaforma di analisi crypto, ha scritto su X, condividendo che “l’area di impatto effettiva è molto più piccola di ‘tutti i siti web'”, poiché solo quei progetti potrebbero essere a rischio che sono stati aggiornati dopo che il pacchetto npm infetto è stato pubblicato. Tuttavia, “è più sicuro evitare di usare siti crypto finché questo non si risolve e puliscono i pacchetti dannosi,” ha aggiunto.
Alla fine, gli hacker sono riusciti a rubare solo $50 di criptovaluta da un attacco così massiccio alla catena di fornitura. I $50 includono Ether e una serie di meme coin come Brett e Andy, tra gli altri.

Tuttavia, è stato più fortuna che altro, come ha osservato la piattaforma di intelligence crypto Security Alliance su X:
“Questo avrebbe potuto essere molto peggio. Un backdoor distribuito silenziosamente che mirava alle macchine degli sviluppatori con un focus sulla persistenza avrebbe potuto rimanere sotto il radar per chi lo sa quanto tempo.”
Da allora, molte applicazioni crypto come Aave, Uniswap, Ledger, Jupiter, MetaMask, Phantom, Blast e altre hanno informato i loro utenti che sono al sicuro dall’attacco npm.
Sebbene l’attacco sia fallito, è un chiaro promemoria per gli sviluppatori che, per la massima sicurezza, devono andare oltre il proprio codice. Anche le dipendenze software che sono state fidate e ampiamente usate possono essere compromesse in qualsiasi momento.
Qui, piattaforme di codifica come GitHub e npm devono fare di più per garantire la sicurezza dei pacchetti ampiamente usati.
“I pacchetti più popolari dovrebbero richiedere una attestazione che provengono da una provenienza affidabile e non semplicemente da qualche luogo casuale su Internet.”
– Eriksen

Le compromissioni di repository di codice, dopotutto, possono essere estremamente disastrose per gli sviluppatori, i quali potrebbero finire per abbandonare interamente i loro progetti a causa di un simile incidente.
L’incidente è una testimonianza di quanto l’ecosistema software odierno sia interconnesso e vulnerabile allo sfruttamento. Un singolo account compromesso può fornire agli aggressori una portata enorme, rendendo fondamentale implementare misure di sicurezza della catena di fornitura migliorate in ogni fase del processo di sviluppo.
Proteggersi dalla minaccia in rapida crescita del malware
Con le minacce di malware in aumento e gli attacchi sempre più avanzati e mirati, è importante che gli utenti siano informati e rimangano sempre vigili su tutte le piattaforme.
Il software dannoso o malware è in realtà uno dei tipi più comuni di attacchi informatici. In questo caso, gli aggressori sviluppano un codice software o un programma informatico con l’intento di ottenere accesso o causare danni al computer della vittima senza che la vittima sappia di essere stata compromessa.
Ogni anno, miliardi di attacchi malware avvengono in tutto il mondo su tutti i tipi di dispositivi e sistemi operativi. Usando il malware, i cybercriminali tengono in ostaggio non solo i dispositivi ma intere reti aziendali.
Ottenendo accesso non autorizzato ai dispositivi della vittima, gli aggressori rubano risorse digitali e dati sensibili, inclusi credenziali di accesso, numeri di carte di credito e altre informazioni di valore. Gli attacchi malware stanno colpendo sempre più le aziende a causa della grande quantità di dati personali che le società detengono, i quali possono essere sfruttati dagli hacker per estorcere ingenti somme di denaro.
I dati mostrano che la maggioranza (59 %) delle organizzazioni è stata soggetta a tale attacco nel 2024. Anche le aziende più piccole non sono al sicuro, con il 47 % di esse colpite da ransomware lo scorso anno. Nel frattempo, il pagamento medio del riscatto è aumentato del 500 % fino a 2 milioni di dollari in questo periodo.
Il costo medio di recupero da un attacco malware è salito fino a 2,73 milioni di dollari. Una delle più grandi minacce che Internet affronta attualmente è il malware, che può assumere varie forme con l’unico scopo di danneggiare i sistemi informatici e i loro utenti.
Virus, ransomware, trojan, worm, spyware, adware e crypto-jacking sono tutti diversi tipi di malware. Tutti questi sono progettati per ottenere accesso non autorizzato a una rete o danneggiare i sistemi informatici.
Per quanto riguarda le cause alla radice degli attacchi, la più grande, al 32 %, è lo sfruttamento di vulnerabilità da parte degli aggressori, seguita da credenziali compromesse (29 %) e poi da email malevole (23 %).
Ora, come può qualcuno proteggersi da questa minaccia sempre presente? Il primo e più semplice passo è mantenere sempre aggiornati computer e software. Inoltre, è fondamentale non cliccare su qualsiasi cosa su Internet. Soprattutto come utente crypto, bisogna essere sospettosi dei link e assolutamente non scaricare nulla di cui non si è sicuri.
Lo stesso vale per gli allegati email. Sii cauto nell’aprire email sospette e cerca di limitare al minimo la condivisione di file. È prudente avere un software antivirus installato sul tuo dispositivo.
Sebbene inevitabili, le organizzazioni possono anche prepararsi agli attacchi malware rafforzando le proprie difese. I modi più semplici per farlo sono usare password robuste, autenticazione a più fattori e VPN, che anche gli individui possono utilizzare per proteggersi più efficacemente.
Le organizzazioni devono monitorare costantemente i dispositivi alla ricerca di segni di attività sospette, valutare eventuali vulnerabilità e eseguire test di penetrazione. Nel frattempo, i backup dei dati sensibili su unità scollegate dalla rete aiuteranno nel recupero da attacchi malware.
I dipendenti devono essere formati per individuare meglio tali attacchi e rispondere rapidamente avendo piani di risposta agli incidenti e sapendo a chi contattare quando sospettano una minaccia malware.
Utilizzando l’architettura di rete zero trust, le aziende possono garantire che nessuno possa accedere a dati o risorse a cui non dovrebbe. Nel modello zero trust, gli utenti non sono mai considerati affidabili e sono sempre verificati.
Nella vita iper-digitale di oggi, queste pratiche possono aiutare a proteggersi dai pericoli di un mondo sempre più interconnesso.
Per quanto riguarda la protezione da pacchetti maligni, le raccomandazioni generali di sicurezza contro il malware si applicano anche agli attacchi npm, ma naturalmente ci sono precauzioni aggiuntive e specifiche da prendere a causa della vulnerabilità dell’ecosistema, dovuta alla sua natura aperta, al riutilizzo massiccio di piccoli pacchetti e a grandi alberi di dipendenze.
Per proteggersi da questa seria minaccia, è necessario verificare sempre che il pacchetto sia affidabile prima di installarlo. Verificare l’integrità del pacchetto garantirà che l’albero delle dipendenze non sia stato manomesso.
Quando si cercano segni di illegittimità, oltre alla fonte e alla proprietà del pacchetto, esamina eventuali modifiche apportate ai manutentori. Potresti anche voler indagare su cosa fanno i pacchetti e sulla necessità di essi.
Utilizza strumenti di sicurezza che monitorano continuamente le nuove minacce e forniscono consigli pratici per mitigare la situazione. È possibile eseguire controlli npm audit per vulnerabilità note nelle dipendenze del progetto. Implementare scansioni di sicurezza automatizzate prima del deployment, nel frattempo, garantirà che solo codice revisionato e approvato arrivi in produzione.
Ora, per proteggerti dall’ultimo attacco malware, devi bloccare i pacchetti colpiti alle loro versioni più sicure prima della compromissione tramite la funzionalità overrides in package.json.
Esegui npm audit o utilizza strumenti di analisi della composizione del software (SCA) per verificare le versioni colpite nel tuo albero delle dipendenze. Monitora eventuali Indicatori di Compromissione (IoC) controllando i log di build, gli ambienti di sviluppo e il traffico in uscita per attività sospette.
Clicca qui per un elenco delle prime cinque aziende che hanno combattuto gli attacchi informatici.
Considerazioni finali: rafforzare le dipendenze open source
Le minacce su Internet sono in costante aumento e diventano sempre più sofisticate.
Con gli aggressori che ricorrono a nuovi vettori di attacco e prendono di mira progetti con risorse limitate, diventa fondamentale per sviluppatori, imprese e utenti non attendere che la minaccia si manifesti prima di agire, ma adottare misure proattive perché un punto debole può far crollare un intero sistema.
È rimanendo informati sulle minacce emergenti e auditando continuamente le catene di fornitura del software e monitorando le minacce che possiamo davvero proteggerci dai rischi informatici in continua evoluzione.












