Un worm auto-replicante ha colpito 187 pacchetti in NPM

L'attacco ai pacchetti di accompagnamento nel repository NPM ha raggiunto un nuovo livello. Oltre all'uso di malware per intercettare pagamenti e informazioni riservate, gli attaccanti hanno iniziato a implementare un worm nei pacchetti compromessi per automatizzare l'inserimento di malware nelle dipendenze. L'uso del worm è stato registrato dopo la compromissione del pacchetto NPM @ctrl/tinycolor, che ha 2,2 milioni di download settimanali ed è stato utilizzato come dipendenza diretta in 964 pacchetti. A seguito dell'attività del worm, l'attacco ha colpito 187 pacchetti, per i quali sono state create versioni malevole (477 versioni malevole).

Durante un nuovo attacco, dopo aver ottenuto le credenziali dell'account di accompagnamento tramite phishing, gli attaccanti pubblicano una versione del pacchetto con un worm che si attiva quando viene installato un pacchetto compromesso tra le dipendenze. Dopo l'attivazione, il worm cerca le credenziali nell'ambiente attuale, scaricando e avviando l'utilità TruffleHog. Se viene trovato un token di connessione al catalogo NPM, il worm pubblica automaticamente una nuova versione malevola e colpisce a catena l'albero delle dipendenze. Oltre al token di accesso a NPM, il worm conserva le chiavi di accesso a GitHub e ai servizi cloud AWS, Azure e GCP (Google Cloud Platform), così come altri dati riservati che il scanner TruffleHog è in grado di rilevare.

Le versioni malevole vengono create per i 20 pacchetti più popolari a cui il token NPM trovato ha accesso. La funzionalità di pubblicazione della versione è implementata sotto forma della funzione NpmModule.updatePackage, che carica l'archivio sorgente del pacchetto, modifica il numero di versione e aggiunge un hook postinstall al file package.json, inserisce il gestore bundle.js, ricompone il pacchetto e lo pubblica. È supportato il funzionamento su Linux e macOS.

Il verme è stato assegnato il nome in codice Shai-Hulud (un verme gigante menzionato nel romanzo Dune). Le credenziali trovate nel sistema vengono caricate su GitHub attraverso la creazione di repository chiamati Shai-Hulud (ad esempio, "B611/Shai-Hulud"), e vengono anche riflesse in forma codificata nei log di GitHub Actions. Nel repository creato viene posizionato un file data.json, contenente una stringa con informazioni codificate in base64 sul sistema, variabili d'ambiente e chiavi di accesso intercettate. Nella CI basata su GitHub, per trasferire le informazioni a un host esterno, il verme crea un gestore di GitHub Actions (.github/workflows/shai-hulud-workflow.yml). A quanto pare, l'attacco non si limita ai 187 pacchetti menzionati, poiché su GitHub continuano a comparire nuovi repository con il nome Shai-Hulud e il file data.json.

Un worm auto-replicante ha colpito 187 pacchetti in NPM

Tra l'altro, a seguito dell'attività del verme, sono stati colpiti 25 pacchetti della società CrowdStrike, che sviluppa strumenti per la protezione dagli attacchi tramite dipendenze (Supply Chain). Secondo quanto dichiarato da CrowdStrike, i pacchetti compromessi non erano utilizzati nella piattaforma Falcon e l'attacco non si è diffuso ai clienti. È stato anche reso noto che la scorsa ondata di pubblicazione di versioni dannose in NPM, effettuata senza il verme, ha colpito il progetto gemini-cli, sviluppato da Google.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster