Un verme auto-propagante infetta oltre 400 pacchetti npm: la minaccia ChainDrop

Un recente attacco informatico ha visto la diffusione di un verme auto-propagante chiamato ChainDrop, che ha infettato oltre 400 pacchetti npm scaricati centinaia di milioni di volte ogni settimana. Tra i pacchetti compromessi ci sono versioni maliziose di pacchetti ampiamente utilizzati come keyv e cacheable-request.

L'impatto di ChainDrop

Gli attaccanti dietro ChainDrop potenzialmente hanno esposto postazioni di lavoro degli sviluppatori, pipeline di integrazione continua (CI), ambienti cloud e utenti finali del software in numerose organizzazioni. Una volta installato, ChainDrop ruba:
  • Credenziali cloud
  • Token npm e GitHub
  • Chiavi SSH
  • Altri dati sensibili degli sviluppatori
  • Il verme è in grado di estrarre credenziali temporanee dalla memoria dei runner GitHub Actions e utilizzare token di pubblicazione npm rubati per infettare e ripubblicare ulteriori pacchetti, mantenendo intatta la loro funzionalità legittima.

    Scoperte durante l'indagine

    Durante l'indagine su questo attacco, sono stati identificati 453 repository pubblici GitHub su cinque account che corrispondevano ai modelli di esfiltramento del verme. Inoltre, sono stati rilevati esecuzioni di ChainDrop in 10 ambienti distinti. Al momento della pubblicazione, questi repository sono stati rimossi.

    Caratteristiche del malware

    Il malware è stato deobfuscato e sono state identificate diverse caratteristiche:
  • Persistenza attraverso strumenti di sviluppo e AI
  • Risoluzione del comando e controllo (C2) basata su blockchain
  • Capacità di eseguire codice aggiuntivo fornito dagli attaccanti
  • Inoltre, il 4 agosto 2026, è stata osservata la riconfigurazione silenziosa dell'intera infrastruttura C2 del verme attraverso una singola transazione Ethereum, senza richiedere alcuna modifica al malware distribuito.

    Raccomandazioni per la sicurezza

    Unit 42 raccomanda di:
  • Identificare le installazioni delle versioni dei pacchetti npm interessati
  • Indagare sulle postazioni di lavoro degli sviluppatori e sui runner CI per segni di compromissione
  • Esaminare attività di pubblicazione npm e repository GitHub inattese
  • Revocare e ruotare le credenziali npm, GitHub, cloud, SSH e di automazione potenzialmente esposte
  • Rimuovere i meccanismi di persistenza identificati
  • Bloccare sia i canali di esfiltramento basati su dominio che quelli basati su GitHub
  • Strumenti di rilevamento e prevenzione

    Il motore di rischio Koi Agentic Endpoint Security ha segnalato l'attività del pacchetto dannoso mentre l'attacco si svolgeva. Cortex XDR ha rilevato e segnalato l'esecuzione del verme utilizzando rilevamenti comportamentali predefiniti. I clienti Palo Alto Networks possono utilizzare Koi Agentic Endpoint Security per aiutare a identificare e controllare pacchetti dannosi su endpoint degli sviluppatori.

    Ulteriori strumenti e servizi

  • Cortex AgentiX Threat Intel agent: aiuta gli analisti a estrarre, arricchire e cercare gli IoC utilizzando linguaggio naturale per determinare rapidamente l'impatto organizzativo.
  • Cortex Cloud Endpoint Protection: sfrutta analisi abilitati dall'IA per aiutare a rilevare e prevenire minacce che prendono di mira endpoint Linux, container e politiche IAM cloud associate.
  • Cortex XDR e XSIAM: forniscono rilevamento comportamentale, indagine e risposta che possono aiutare le organizzazioni a affrontare l'attività di ChainDrop in esecuzione negli ambienti di sviluppo.
  • Idira Secrets Manager e Secrets Hub: eliminano le credenziali codificate permanentemente dai file di configurazione e dal codice sorgente automatizzando la rotazione a zero tempo di inattività e fornendo accesso just-in-time alle identità non umane in ambienti multi-cloud e DevOps.
  • Unit 42 Cloud Security Assessment: è un servizio di valutazione che esamina l'infrastruttura cloud per identificare configurazioni errate e lacune di sicurezza.
  • Unit 42 Incident Response team: può essere coinvolto per aiutare in caso di compromissione o per fornire una valutazione proattiva per ridurre il rischio.
  • Analisi della catena di attacco

    Abbiamo analizzato il contenuto di uno dei pacchetti infetti per comprendere l'intera catena di attacco. Il pacchetto conteneva il codice legittimo dell'SDK che un utente si aspetterebbe, inclusi sorgente, dipendenze e documentazione. Tuttavia, conteneva anche piccoli indicatori del verme ChainDrop: due file aggiuntivi di livello superiore e un hook del ciclo di vita. Uno degli indicatori è un file package.json di un pacchetto npm infetto contenente codice con il comando preinstall. Questa riga preinstall punta a setup.mjs, un dropper che verifica se Bun (un runtime e gestore di pacchetti JavaScript alternativo a Node.js) è presente nel PATH. Se non è presente, scarica Bun 1.3.13 dal repository GitHub legittimo di Oven. Successivamente, alimenta Bun con un payload JavaScript obfuscato di 727 KB (mathinit.js) compresso in due righe di sorgente. È importante sottolineare che Bun non è compromesso. L'attaccante sta utilizzando un runtime legittimo come veicolo di esecuzione portatile. Il payload genera un processo di sfondo staccato, imposta NODERUNTIMEINIT=1 per prevenire il rilancio ricorsivo e permette al processo di installazione di completarsi senza errori o avvisi. La maggior parte degli sviluppatori procederebbe senza notare un dettaglio chiave: il verme è già in esecuzione. Il verme si stacca quando non è in CI. Se rileva un ambiente CI, esegue in linea nel lavoro invece, il che significa che il proprio output di debug finisce nel registro del flusso di lavoro. Questo è utile per i difensori alla ricerca di indicatori perché il verme è chiacchierone.

    Raccolta di credenziali

    Il payload di sfondo inizia una scansione della macchina infetta per raccogliere credenziali dall'ambiente. Queste includono:
  • Credenziali cloud: più piattaforme di infrastruttura cloud principali, query degli endpoint di metadata e token attraverso sia istanze di calcolo che servizi container per raccogliere credenziali IAM temporanee e token di identità a vita breve.
  • Strumenti di sviluppo: configurazioni Docker e Helm, credenziali Git, elenchi di mount, token npm e GitHub, credenziali Poetry e PyPI, token RubyGems, chiavi SSH, stato Terraform, token Vault.
  • Strumenti AI: strumenti di codifica assistita da AI, piattaforme di sviluppo basate su cloud, configurazioni e artefatti di autenticazione di assistenti di codifica open source.
  • Altro: file .env, .netrc, configurazioni di applicazioni sparse nella directory home, file di portafoglio Bitcoin ed Electrum, materiale di credenziali crittografate Jenkins, token di account di servizio Kubernetes e kubeconfigs, storie di shell.
  • ChainDrop raccoglie credenziali, ma anche una vasta gamma di altre informazioni sui sistemi e ambienti in cui viene eseguito. Alcune delle informazioni rubate sono vitali per la sopravvivenza del verme, poiché i token npm e GitHub che trova sono ciò di cui ha bisogno per continuare a diffondersi.

    Persistenza del verme

    Il verme stabilisce diversi meccanismi di persistenza, ma due di essi meritano particolare attenzione:
  • Persistenza incrociata attraverso VS Code e Claude Code
  • Una capacità latente per la persistenza a livello di sistema operativo
  • Scrive un file .vscode/tasks.json con un compito etichettato come Environment Setup e lo imposta per eseguirsi quando la cartella viene aperta, il che significa che si esegue automaticamente ogni volta che uno sviluppatore apre il progetto in VS Code. Quel compito esegue node .claude/setup.mjs, una copia del dropper che è byte-identico al setup.mjs fornito nel pacchetto stesso. Scrive anche un file .claude/settings.json con un gancio di comando SessionStart, il che significa che si esegue ogni volta che Claude Code avvia una sessione nel progetto. Quel gancio esegue node .vscode/setup.mjs, una seconda copia del medesimo dropper.

    L'impatto di ChainDrop sull'ecosistema npm

    L'attacco di ChainDrop rappresenta un punto di svolta nella sicurezza dell'ecosistema npm, evidenziando vulnerabilità critiche che potrebbero avere ripercussioni a lungo termine. L'ampia diffusione del verme attraverso pacchetti ampiamente utilizzati come keyv e cacheable-request dimostra la capacità di sfruttare la fiducia intrinseca riposta nella supply chain di sviluppo software.

    Rischi per gli sviluppatori e le organizzazioni

    Gli sviluppatori che utilizzano i pacchetti infetti potrebbero inconsapevolmente diffondere il verme in altri progetti, creando una catena di infezione difficile da contenere. Le organizzazioni che dipendono da questi pacchetti potrebbero subire violazioni dei dati, interruzioni dei servizi e danni reputazionali. Inoltre, la capacità del verme di raccogliere credenziali da una vasta gamma di strumenti di sviluppo e piattaforme cloud lo rende una minaccia significativa per la sicurezza delle infrastrutture critiche.

    Implicazioni per la sicurezza informatica

    L'uso di strumenti legittimi come Bun per eseguire payload dannosi sottolinea la sfida di distinguere tra attività legittime e malintenzionate. Questo approccio rende più difficile per i difensori rilevare e bloccare le minacce, poiché il comportamento del verme può essere mascherato da attività di sviluppo normale.

    Strategie di mitigazione

    Per contrastare efficacemente ChainDrop e minacce simili, le organizzazioni dovrebbero adottare le seguenti misure:

    • Monitoraggio continuo: Implementare soluzioni di monitoraggio avanzate per rilevare comportamenti anomali nei progetti di sviluppo.
    • Autenticazione a più fattori (MFA): Applicare MFA per tutti gli account di sviluppo e di distribuzione per limitare l'accesso non autorizzato.
    • Revisione dei pacchetti: Eseguire verifiche regolari dei pacchetti utilizzati per identificare eventuali modifiche sospette.
    • Educazione degli sviluppatori: Formare gli sviluppatori sulle pratiche di sicurezza e sui segnali di potenziali infezioni.
    • Isolamento degli ambienti: Utilizzare ambienti di sviluppo isolati per limitare la diffusione di eventuali infezioni.

    Il futuro della sicurezza npm

    L'attacco di ChainDrop sottolinea la necessità di miglioramenti significativi nella sicurezza dell'ecosistema npm. Le soluzioni future dovrebbero includere meccanismi di autenticazione più robusti, sistemi di rilevamento delle anomalie avanzati e una maggiore collaborazione tra sviluppatori e fornitori di sicurezza per affrontare le minacce emergenti.

    ChainDrop rappresenta una minaccia complessa che richiede un approccio proattivo e collaborativo per essere affrontata efficacemente. Le organizzazioni e gli sviluppatori devono rimanere vigilanti e adottare misure preventive per proteggere i loro progetti e infrastrutture da potenziali attacchi simili.

    Nota Editoriale e Disclaimer

    Le guide e i contenuti pubblicati su GoYou sono frutto di attività di ricerca e analisi indipendente, a scopo informativo, educativo e di approfondimento.

    GoYou non costituisce una testata giornalistica né un prodotto editoriale ai sensi della Legge n. 62/2001 e non svolge attività di informazione in tempo reale.

    Il progetto GoYou non fornisce consulenza professionale, tecnica, legale o finanziaria e declina ogni responsabilità per l’uso improprio delle informazioni pubblicate.

    Nel settore Crypto, ogni investimento comporta rischi: si invita il lettore a informarsi sempre in modo autonomo prima di assumere qualsiasi decisione.