Malware iniettato nel pacchetto NPM UAParser.js con 8 milioni di download a settimana

La storia della rimozione di tre pacchetti dannosi che copiavano il codice della libreria UAParser.js dal repository NPM ha ricevuto una continuazione inaspettata: aggressori sconosciuti hanno preso il controllo dell'account dell'autore del progetto UAParser.js e rilasciato aggiornamenti contenenti codice per rubare password e minare criptovalute.

Il problema è che la libreria UAParser.js, che offre funzioni per il parsing dell'intestazione HTTP User-Agent, ha circa 8 milioni di download a settimana ed è utilizzata come dipendenza in oltre 1200 progetti. Si afferma che UAParser.js sia utilizzato da aziende come Microsoft, Amazon, Facebook, Slack, Discord, Mozilla, Apple, ProtonMail, Autodesk, Reddit, Vimeo, Uber, Dell, IBM, Siemens, Oracle, HP e Verison.

L'attacco è stato effettuato violando l'account dello sviluppatore del progetto, che si è reso conto che qualcosa non andava dopo che un'insolita ondata di spam è caduta nella sua casella di posta. In che modo esattamente l'account dello sviluppatore è stato violato non viene segnalato. Gli aggressori hanno creato le versioni 0.7.29, 0.8.0 e 1.0.0 inserendovi codice dannoso. Nel giro di poche ore, gli sviluppatori hanno ripreso il controllo del progetto e hanno generato gli aggiornamenti 0.7.30, 0.8.1 e 1.0.1 risolvendo il problema. Le versioni dannose sono state pubblicate solo come pacchetti nel repository NPM. Il repository Git del progetto su GitHub non è stato interessato. Tutti gli utenti che hanno installato versioni problematiche, se trovano il file jsextension su Linux/macOS, e i file jsextension.exe e create.dll su Windows, sono invitati a considerare il sistema compromesso.

Le modifiche dannose aggiunte erano simili a quelle precedentemente proposte nei cloni di UAParser.js, che sembrano essere stati rilasciati per testare la funzionalità prima di lanciare un attacco su larga scala al progetto principale. Il file eseguibile jsextension è stato caricato e avviato sul sistema dell'utente da un host esterno, selezionato in base alla piattaforma dell'utente e al lavoro supportato su Linux, macOS e Windows. Per la piattaforma Windows, oltre al programma di mining di criptovalute Monero (è stato utilizzato il miner XMRig), gli aggressori hanno organizzato anche l'introduzione della libreria create.dll per intercettare le password e inviarle a un host esterno.

Il codice di download è stato aggiunto al file preinstall.sh, che includeva l'inserto IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') if [ -z " $ IP" ] ... scarica ed esegui l'eseguibile fi

Come si può vedere dal codice, lo script ha prima controllato l'indirizzo IP nel servizio freegeoip.app e non ha lanciato un'applicazione dannosa per gli utenti di Russia, Ucraina, Bielorussia e Kazakistan.

Fonte: opennet.ru

Aggiungi un commento