Open Source nel mirino: Aumentano gli attacchi ai repositori dei pacchetti online
Nelle ultime settimane, diversi sviluppatori open source sono stati colpiti da attacchi di phishing, che hanno infettato con malware i pacchetti, alcuni dei quali vengono scaricati 30 milioni di volte a settimana. Verso la fine della scorsa settimana, gli specialisti della sicurezza di Socket hanno segnalato la compromissione di 10 pacchetti npm di proprietà di Toptal, un marketplace freelance che aiuta le aziende a trovare sviluppatori, designer ed esperti finanziari. L’azienda gestisce anche i propri strumenti di sviluppo e sistemi di progettazione interni, tra cui Picasso, disponibili tramite GitHub e NPM.
Secondo i ricercatori, il 20 luglio 2025, degli aggressori hanno hackerato il GitHub di Toptal e hanno reso pubblici quasi immediatamente tutti i 73 repository dell’azienda, esponendo tutti i progetti privati e i codici sorgente. Gli aggressori hanno quindi modificato il codice sorgente di Picasso su GitHub per includere malware e hanno pubblicato 10 pacchetti dannosi su npm, camuffandoli da aggiornamenti legittimi.
Gli aggressori hanno iniettato malware per il furto di dati nel codice dei pacchetti, che ha raccolto token di autenticazione GitHub e poi cancellato i dati dai sistemi delle vittime. Nello specifico, gli hacker hanno iniettato codice dannoso nei file package.json per aggiungere due funzioni: furto di dati (script di preinstallazione) e pulizia dell’host (script di postinstallazione). Inoltre, prima che l’attacco venisse scoperto, i pacchetti infetti erano stati scaricati circa 5.000 volte.
I seguenti pacchetti sono stati soggetti a modifiche dannose:
- @toptal/picasso-tailwind (3.1.0)
- @toptal/picasso-charts (59.1.4)
- @toptal/picasso-shared (15.1.0)
- @toptal/picasso-provider (5.1.1)
- @toptal/picasso-select (4.2.2)
- @toptal/picasso-quote (2.1.7)
- @toptal/picasso-forms (73.3.2)
- @xene/core (0.4.1)
- @toptal/picasso-utils (3.2.0)
- @toptal/picasso-typography (4.1.4)
Toptal ha interrotto il supporto per i pacchetti dannosi il 23 luglio e ha restituito le versioni “pulite”. Tuttavia, l’azienda non ha rilasciato alcun annuncio ufficiale né ha tentato di avvisare gli utenti che hanno scaricato le versioni dannose dei pacchetti dei rischi. I ricercatori sottolineano che non è ancora chiaro come sia stato eseguito esattamente l’attacco, né in che modo siano correlati la compromissione e le modifiche al repository GitHub e la pubblicazione dei pacchetti in npm.
Altri attacchi informatici nelle ultime settimane
L’attacco a Toptal è il terzo incidente nell’ultima settimana e mezza che coinvolge attacchi alle catene di fornitura open source. Così, il 19 luglio, si è saputo che diverse librerie JavaScript molto diffuse erano state hackerate e che i loro sviluppatori erano stati vittime di attacchi di phishing mirati e furti di credenziali.
Un attacco ha compromesso il pacchetto npm eslint-config-prettier, scaricato oltre 30 milioni di volte a settimana. Il suo responsabile, JounQin, ha confermato di essere stato truffato dopo aver ricevuto un’email da support@npmjs.com. Il link nell’email portava a un sito fraudolento npnjs[.]com, di cui lo sviluppatore non si era accorto. Anche altri pacchetti (eslint-plugin-prettier, synckit, @pkgr/core e napi-postinstall) di questo manutentore sono stati hackerati.
Di conseguenza, il compromesso ha interessato:
- eslint-config-prettier (8.10.1, 9.1.1, 10.1.6, 10.1.7)
- eslint-plugin-prettier (4.2.2, 4.2.3)
- synckit (0.11.9)
- @pkgr/core (0.2.8)
- napi-postinstall (0.3.1)
- ottenuto-recupero (5.1.11, 5.1.12)
In questo caso, gli aggressori hanno utilizzato credenziali rubate per pubblicare più versioni di pacchetti contenenti codice dannoso, mirato a infettare i computer Windows. Nelle versioni dannose dei pacchetti, lo script install.js era configurato per essere eseguito immediatamente dopo l’installazione. Conteneva una funzione sospetta logDiskSpace() che, nonostante il nome, tentava di eseguire node-gyp.dll, parte del pacchetto, tramite il processo di sistema rundll32. Di conseguenza, lo stealer Scavanger penetrava nei sistemi delle vittime. Secondo la scansione di VirusTotal, questa DLL è riconosciuta come un Trojan.
“Un manutentore ha confermato che il suo token npm era stato compromesso tramite un’e-mail di phishing che si spacciava per npnjs[.]com. Gli aggressori hanno utilizzato le credenziali rubate per pubblicare versioni dannose di più pacchetti senza toccare i repository GitHub, rendendo l’attacco difficile da rilevare”, hanno affermato gli analisti di Socket.
Poiché Prettier ed ESLint vengono utilizzati in migliaia di progetti, i ricercatori hanno avvertito che le conseguenze di questa compromissione potrebbero essere devastanti, in quanto il malware incorporato nei pacchetti è molto difficile da rimuovere. Poco dopo l’attacco, lo sviluppatore Jordan Harband ha segnalato che anche il popolare pacchetto is, scaricato più di 2,8 milioni di volte a settimana, era stato compromesso. Le versioni dalla 3.3.1 alla 5.0.0 contenevano il malware e sono state rimosse circa sei ore dopo la pubblicazione su npm.
Il pacchetto is è una libreria JavaScript leggera che offre un’ampia gamma di funzioni per il controllo dei tipi e la convalida dei valori. La libreria è ampiamente utilizzata come dipendenza di basso livello in strumenti di sviluppo, librerie di test, sistemi di build e progetti backend e CLI. In questo caso, l’attacco è stato il risultato di un attacco di phishing riuscito che ha utilizzato il dominio npnjs[.]com sopra menzionato. Anche le credenziali del responsabile del servizio sono state rubate e sono state pubblicate versioni modificate e dannose del pacchetto.
Il codice è stato iniettato con un loader JavaScript multipiattaforma che ha aperto una backdoor basata su WebSocket nei sistemi interessati, consentendo l’esecuzione remota di codice arbitrario.
“Una volta attivato, il malware richiama il modulo os in Node.js per raccogliere informazioni su nome host, sistema operativo e processore, ed estrae tutte le variabili d’ambiente da process.env”, ha spiegato Socket . “Quindi importa dinamicamente la libreria ws per trasmettere questi dati tramite una connessione WebSocket. Ogni messaggio ricevuto tramite il socket viene interpretato come codice JavaScript eseguibile, fornendo di fatto all’aggressore una shell remota interattiva istantanea.”
Si consiglia ora agli sviluppatori che lavorano con uno qualsiasi dei pacchetti interessati sopra menzionati di assicurarsi che nessuna delle versioni dannose sia installata o utilizzata nei loro prodotti.
L'articolo Open Source nel mirino: Aumentano gli attacchi ai repositori dei pacchetti online proviene da il blog della sicurezza informatica.