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: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:Raccomandazioni per la sicurezza
Unit 42 raccomanda di: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
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:Persistenza del verme
Il verme stabilisce diversi meccanismi di persistenza, ma due di essi meritano particolare attenzione: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.