Un nuovo attacco alla supply chain ha colpito l'ecosistema npm, l'indice dei pacchetti per Node.js, infettando 36 pacchetti con un infostealer chiamato IronWorm. La caratteristica più allarmante del malware è la sua capacità di auto-propagarsi, comportandosi come un vero e proprio worm tra sviluppatori e sistemi di integrazione continua.

Un malware sofisticato scritto in Rust

IronWorm è scritto in Rust, si nasconde dietro un rootkit del kernel basato su eBPF e comunica con l'operatore attraverso la rete Tor. Una volta in esecuzione, prende di mira 86 variabili d'ambiente e 20 file di credenziali che possono contenere chiavi di OpenAI, AWS, Anthropic e npm, file di configurazione di vault, chiavi SSH e persino i file dei wallet di criptovalute Exodus.

Come si diffonde

Il meccanismo di propagazione è ciò che rende IronWorm particolarmente pericoloso. Il malware utilizza le credenziali rubate per pubblicare nuovi pacchetti su npm, compresi i segreti associati al workflow di Trusted Publishing. Dopo aver compromesso l'ambiente di uno sviluppatore o un sistema CI, può pubblicare versioni trojanizzate dei pacchetti di proprietà della vittima, che a loro volta infettano altri sviluppatori e altre pipeline.

L'attacco è partito da un account compromesso di nome 'asteroiddao', che ha pubblicato versioni dei pacchetti contenenti il binario Rust, eseguito tramite lo script 'preinstall'. Curiosamente, i commit malevoli risultano firmati dall'autore "claude" e recano date alterate, in alcuni casi fino a 13 anni nel passato, pur essendo stati spinti solo negli ultimi giorni.

L'attacco fermato in tempo

La buona notizia è che IronWorm è stato individuato molto presto e bloccato prima che si propagasse ai pacchetti più popolari di npm. I ricercatori hanno pubblicato l'elenco completo dei pacchetti e delle versioni interessate.

Come proteggersi

  • Aggiorna alle versioni corrette dei pacchetti coinvolti, secondo l'elenco fornito dai ricercatori.
  • Ruota immediatamente tutte le chiavi e i token potenzialmente esposti: credenziali cloud, API, SSH e npm.
  • Attiva l'autenticazione a due fattori (2FA) su tutti gli account, in particolare quelli con permessi di pubblicazione.
  • Verifica gli script 'preinstall' e 'postinstall' delle dipendenze e valuta l'uso di flag come --ignore-scripts nelle pipeline CI.
  • Monitora gli ambienti di sviluppo e CI alla ricerca di processi anomali e connessioni verso la rete Tor.

L'episodio conferma una tendenza ormai consolidata: gli sviluppatori e le loro pipeline sono diventati l'anello debole da colpire per raggiungere, a cascata, migliaia di organizzazioni a valle.