È stata registrata un'attacco agli utenti del catalogo NPM, che il 20 febbraio ha visto l'inserimento di oltre 15.000 pacchetti nel repository NPM, i cui file README contenevano link a siti di phishing o link di affiliazione, che pagano commissioni per i clic. Durante l'analisi sono stati identificati 190 link unici di phishing o pubblicitari, che coprivano 31 domini.
I nomi dei pacchetti sono stati scelti per attirare l'attenzione della gente comune, ad esempio 'free-tiktok-followers', 'free-xbox-codes', 'instagram-followers-free', e così via. L'obiettivo era riempire la lista delle recenti aggiornamenti nella homepage di NPM con pacchetti di spam. Nella descrizione dei pacchetti erano forniti link che promettevano regali gratuiti, donazioni, cheat per giochi, e anche servizi gratuiti per incrementare follower e like sui social media come TikTok e Instagram. Non è il primo attacco di questo tipo; a dicembre erano stati pubblicati 144.000 pacchetti di spam nei cataloghi NuGet, NPM e PyPi.

Il contenuto dei pacchetti è stato generato automaticamente utilizzando uno script python, che evidentemente per disattenzione è stato lasciato nei pacchetti e conteneva credenziali funzionanti utilizzate durante l'attacco. I pacchetti sono stati pubblicati sotto numerosi account diversi utilizzando metodi che complicano la ricostruzione delle tracce e l'identificazione rapida dei pacchetti problematici.
Oltre alle attività fraudolente nei repository NPM e PyPi, sono state anche riportate diverse tentativi di pubblicazione di pacchetti dannosi:
- Nel repository PyPI sono stati trovati 451 pacchetti dannosi, che si mascheravano da alcune librerie popolari utilizzando il type-squatting (assegnazione di nomi simili, differenziati da singoli caratteri, ad esempio, vper invece di vyper, bitcoinnlib invece di bitcoinlib, ccryptofeed invece di cryptofeed, ccxtt invece di ccxt, cryptocommpare invece di cryptocompare, seleium invece di selenium, pinstaller invece di pyinstaller, ecc.). I pacchetti contenevano codice offuscato per rubare criptovalute, che identificava la presenza di identificatori di portafogli in memoria e li sostituiva con il portafoglio dell'aggressore (si presume che durante il pagamento la vittima non si accorga che il numero del portafoglio copiato sia diverso). La sostituzione veniva effettuata da un'estensione integrata nel browser, eseguita nel contesto di ogni pagina web visitata.
- Nel repository PyPI è stata rilevata una serie di librerie HTTP dannose. L'attività dannosa è stata trovata in 41 pacchetti, i cui nomi erano scelti utilizzando metodi di type-squatting e somigliavano a librerie popolari (aio5, requestst, ulrlib, urllb, libhttps, piphttps, httpxv2, ecc.). Il contenuto era stilizzato come quello di librerie HTTP funzionanti o copiava il codice di librerie esistenti, e nella descrizione erano presentate affermazioni sui vantaggi e confronti con librerie HTTP legittime. L'attività dannosa consisteva sia nel caricare malware nel sistema, sia nel raccogliere e inviare dati riservati.
- Nel NPM sono stati identificati 16 pacchetti JavaScript (speedte*, trova*, lagra), che oltre alla funzionalità dichiarata (test di capacità) contenevano anche codice per il mining di criptovalute senza il consenso dell'utente.
- Nel NPM sono stati individuati 691 pacchetti dannosi. La maggior parte dei pacchetti problematici si spacciava per progetti Yandex (yandex-logger-sentry, yandex-logger-qloud, yandex-sendsms, ecc.) ed includeva codice per l'invio di informazioni riservate a esterni. serversSi presume che coloro che hanno pubblicato i pacchetti tentassero di ottenere l'inserimento della propria dipendenza durante la compilazione dei progetti in Yandex (metodo di sostituzione delle dipendenze interne). Nel repository PyPI gli stessi ricercatori hanno trovato 49 pacchetti (reqsystem, httpxfaster, aio6, gorilla2, httpsos, pohttp, ecc.) con codice dannoso offuscato, che caricava ed eseguiva un file eseguibile da esterno. server.
Fonte: opennet.ru
