Zarejestrowano atak na użytkowników katalogu NPM, w wyniku którego 20 lutego w repozytorium NPM umieszczono ponad 15 tysięcy paczek, w plikach README których pojawiły się odnośniki do stron phishingowych lub linki referencyjne, za kliknięcia w które wypłacane są prowizje. W trakcie analizy w paczkach zidentyfikowano 190 unikalnych linków phishingowych lub reklamowych, obejmujących 31 domen.
Nazwy paczek były wybierane w celu przyciągnięcia uwagi przeciętnych użytkowników, na przykład „free-tiktok-followers”, „free-xbox-codes”, „instagram-followers-free” itd. Obliczenia opierały się na wypełnieniu spamskimi paczkami listy ostatnich aktualizacji na stronie głównej NPM. W opisach paczek zamieszczano linki, obiecujące darmowe rozdania, prezenty, kody do gier, a także darmowe usługi dotyczące sztucznego zwiększania liczby subskrybentów i „lajków” w mediach społecznościowych, takich jak TikTok i Instagram. To nie jest pierwszy taki atak; w grudniu w katalogach NuGet, NPM i PyPi odnotowano publikację 144 tysięcy spamskich paczek.

Zawartość paczek została automatycznie wygenerowana za pomocą skryptu Pythona, który najwyraźniej przez niedopatrzenie został pozostawiony w paczkach i zawierał działające dane uwierzytelniające użyte w trakcie ataku. Paczki zostały opublikowane pod wieloma różnymi kontami, z użyciem metod utrudniających śledzenie i szybką identyfikację problematycznych paczek.
Oprócz oszukańczych działań w repozytoriach NPM i PyPi odnotowano także kilka prób publikacji złośliwych paczek:
- W repozytorium PyPI znaleziono 451 złośliwy pakiet, który maskował się pod popularne biblioteki za pomocą type squattingu (przy użyciu podobnych nazw, różniących się niektórymi znakami, np. vper zamiast vyper, bitcoinnlib zamiast bitcoinlib, ccryptofeed zamiast cryptofeed, ccxtt zamiast ccxt, cryptocommpare zamiast cryptocompare, seleium zamiast selenium, pinstaller zamiast pyinstaller itp.). Pakiety zawierały złośliwy kod do kradzieży kryptowalut, który identyfikował obecność identyfikatorów portfeli kryptowalutowych w schowku i zmieniał je na portfel przestępcy (zakłada się, że podczas dokonywania płatności ofiara nie zauważy różnicy w numerze portfela przeniesionym przez schowek). Zmiana była realizowana przez wtyczkę wbudowaną w przeglądarkę, działającą w kontekście każdej przeglądanej strony internetowej.
- W repozytorium PyPI wykryto serię złośliwych bibliotek HTTP. Złośliwa aktywność została znaleziona w 41 pakietach, których nazwy wybierano za pomocą metod type squattingu i przypominały popularne biblioteki (aio5, requestst, ulrlib, urllb, libhttps, piphttps, httpxv2 itp.). Zawartość była stylizowana na działające biblioteki HTTP lub kopiowała kod istniejących bibliotek, a w opisie przedstawiano twierdzenia o zaletach i porównania z legalnymi bibliotekami HTTP. Złośliwa aktywność polegała albo na pobieraniu złośliwego oprogramowania na system, albo na zbieraniu i wysyłaniu poufnych danych.
- W NPM wykryto 16 paczek JavaScript (speedte*, trova*, lagra), które oprócz deklarowanej funkcjonalności (testowanie przepustowości) zawierały również kod do wydobywania kryptowalut bez wiedzy użytkownika.
- W NPM zidentyfikowano 691 złośliwych pakietów. Większość problematycznych pakietów udawała projekty Yandex (yandex-logger-sentry, yandex-logger-qloud, yandex-sendsms itp.) i zawierała kod do wysyłania poufnych informacji na zewnątrz. serweryZakłada się, że umieszczający pakiety próbowali wymusić podstawienie własnej zależności podczas budowy projektów w Yandex (metoda podmiany wewnętrznych zależności). W repozytorium PyPI ci sami badacze znaleźli 49 pakietów (reqsystem, httpxfaster, aio6, gorilla2, httpsos, pohttp itp.) z obfuskowanym złośliwym kodem, który pobierał i uruchamiał plik wykonywalny z zewnątrz. serwera.
Źródło: opennet.ru
