Quando il Registro Diventa il Payload: l’Ultima Ondata di Pacchetti di npm
Una rapida raffica di versioni malevole di npm mostra come un singolo percorso di pubblicazione possa trasformare aggiornamenti di dipendenze di routine in un evento di supply chain in rapida evoluzione.
Introduzione
Nell’open source, la fiducia è spesso automatizzata. Ecco perché un incidente in un registro di pacchetti può evolversi così rapidamente: se un attaccante ottiene il controllo della pubblicazione, il registro stesso può diventare il meccanismo di consegna. In questo caso, una campagna del 19 maggio nell’ecosistema npm è stata rilevata per la prima volta alle 01:39 UTC, con una pubblicazione di pacchetto seguita da un’altra cinque minuti dopo, e almeno 633 versioni di pacchetti malevoli diffuse tra centinaia di pacchetti in meno di un’ora.
Le informazioni disponibili supportano un’analisi del rischio, non un’affermazione definitiva sull’intero percorso tecnico, sull’impatto a valle o sul fatto che siano stati sottratti dati. Ciò che mostra è quanto rapidamente un attacco basato su pacchetti possa scalare una volta che le credenziali di pubblicazione entrano in gioco.
Fatti Rapidi
- La campagna ha coinvolto almeno 633 versioni di pacchetti malevoli.
- L’attività si è svolta su centinaia di pacchetti npm in meno di un’ora.
- La prima pubblicazione osservata nella timeline è stata jest-canvas-mock@2.5.3.
- size-sensor@1.0.4 è apparso cinque minuti dopo nella stessa sequenza.
- Le installazioni npm possono eseguire script di lifecycle, a meno che gli script non siano disabilitati.
TECHCROOK
Il pericolo tecnico qui non è solo il numero di pacchetti. È il modello di fiducia. I pacchetti npm sono artefatti versionati e, una volta che una specifica name@version viene pubblicata, quella release non può semplicemente essere riutilizzata in seguito come se nulla fosse successo. Questo rende le release malevole abbastanza persistenti da restare in lockfile, cache, mirror e artefatti di build anche dopo che i difensori hanno iniziato a rispondere.
I team di sicurezza che osservano questo tipo di evento si concentrano di solito su tre punti di pressione: l’account del publisher, il percorso di installazione e l’automazione che li riguarda entrambi. Se un attaccante ottiene un token di un maintainer, può essere in grado di pubblicare nuove versioni senza dover compromettere ogni sistema a valle. Se una dipendenza include script di lifecycle, tali script possono essere eseguiti durante l’installazione e potenzialmente avviarsi su macchine degli sviluppatori o runner CI. Ecco perché gli incidenti di supply chain spesso iniziano come abuso del registro e finiscono come rischio per gli endpoint.
Endor Labs ha in precedenza descritto l’attività in stile Shai-Hulud come un pattern di minaccia npm capace di auto-diffondersi che usa credenziali di pubblicazione rubate per passare da un pacchetto al successivo. L’ondata attuale usa quell’etichetta come abbreviazione, ma il meccanismo esatto in questo incidente non è stato completamente stabilito nei fatti disponibili. La conclusione più prudente è più circoscritta: una pubblicazione rapida su molti pacchetti è coerente con un incidente di controllo del registro, e gli incidenti di controllo del registro possono diffondersi più velocemente della revisione manuale.
Dal punto di vista difensivo, questo significa trattare la pubblicazione dei pacchetti come un’operazione privilegiata, non come una funzionalità di comodità. Token a breve durata e con scope limitato, 2FA dove possibile, segreti CI con restrizioni e ignore-scripts in ambienti di build controllati possono tutti ridurre l’esposizione. Anche la revisione del lockfile è importante, perché il primo segnale di compromissione è spesso un cambio di versione che a prima vista sembra di routine.
Conclusione
La lezione è semplice ma scomoda: in un ecosistema guidato dalle dipendenze, il registro fa parte della superficie d’attacco. Quando le credenziali di pubblicazione vengono rubate o usate in modo improprio, l’attaccante non deve lottare contro ogni singolo bersaglio. Può invece sfruttare la normale supply chain del software. Ecco perché il rilevamento rapido, l’igiene dei token e i controlli di installazione contano così tanto: la differenza tra una piccola anomalia e un ampio incidente può essere misurata in minuti.
TECHCROOK
chiave di sicurezza hardware: Utile per account di sviluppatori e amministratori, una chiave di sicurezza hardware aggiunge un secondo fattore fisico ai flussi di accesso e pubblicazione. È comunemente usata insieme a password manager e app 2FA per account a rischio più elevato.
WIKICROOK
- registro npm: Il sistema di distribuzione dei pacchetti utilizzato dai progetti JavaScript e Node.js.
- script di lifecycle: Codice come preinstall, install o postinstall che può essere eseguito durante l’installazione di un pacchetto.
- token con scope: Un token di accesso limitato ad azioni, pacchetti o organizzazioni specifici di npm.
- lockfile: Un file che blocca esattamente le versioni delle dipendenze per installazioni ripetibili.
- worm della supply chain: Malware che si diffonde abusando di flussi di pubblicazione o build software fidati.




