L'attacco di phishing prende il controllo di diversi pacchetti NPM popolari

È stato registrato un attacco di phishing ai danni dei responsabili della manutenzione delle librerie JavaScript, durante il quale è stato inviato un messaggio per conto del servizio NPM, che richiedeva di confermare l'indirizzo email. L'attacco ha permesso agli aggressori di ottenere i token NPM del responsabile di uno dei principali progetti JavaScript e di rilasciare aggiornamenti con codice dannoso per cinque pacchetti NPM, che complessivamente ammontano a circa 100 milioni di download a settimana.

Il messaggio inviato dal manutentore era strutturato in modo da assomigliare alle tipiche notifiche NPM inviate da "support@npmjs.org", ma il link da seguire era "npnjs.com" invece di "npmjs.com" (la terza "n" invece di "m"). Gli aggressori hanno sfruttato un effetto psicologico in cui il cervello, anticipando il risultato atteso, non nota piccole distorsioni, come la sostituzione di lettere con altre simili o la modifica dell'ordine delle lettere in una parola. Cliccando sul link, si apriva una copia completa del sito web npmjs.com (probabilmente era stato impostato un proxy per intercettare il token di accesso).

 L'attacco di phishing prende il controllo di diversi pacchetti NPM popolari

Durante l'attacco sono state generate nuove versioni dei pacchetti:

  • 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.

Alle release generate è stato aggiunto codice dannoso per attaccare gli utenti che utilizzano la piattaforma Windows. Le modifiche apportate hanno caricato la libreria node-gyp.dll, che contiene funzionalità per l'esecuzione remota di comandi sul sistema.

Il manutentore si è accorto di aver iniziato a fare phishing circa un'ora dopo aver ricevuto la prima segnalazione di release sospette. Ha immediatamente revocato il token di accesso, modificato le password e contrassegnato le versioni problematiche come obsolete per impedire ai sistemi di build automatici di scaricarle, quindi ha inviato una richiesta al supporto NPM per rimuovere le versioni problematiche dal repository.

Non è specificato quanti utenti siano riusciti a scaricare versioni dannose (ad esempio, una versione dannosa del pacchetto eslint-plugin-prettier è rimasta nel repository per circa due giorni). Nell'ultima settimana, il pacchetto eslint-config-prettier è stato scaricato 30 milioni di volte ed è stato utilizzato come dipendenza per 11762 pacchetti, il pacchetto eslint-plugin-prettier è stato scaricato 21 milioni di volte (8468 pacchetti dipendenti), synckit è stato scaricato 18 milioni di volte, @pkgr/core è stato scaricato 16 milioni di volte e napi-postinstall è stato scaricato 10 milioni di volte.

Fonte: opennet.ru