NPM zidentyfikował 15 tysięcy pakietów phishingowych i spamowych

Odnotowano atak na użytkowników katalogu NPM, w wyniku którego 20 lutego w repozytorium NPM umieszczono ponad 15 tysięcy pakietów, których pliki README zawierały linki do stron phishingowych lub linki polecające za kliknięcia, za które pobierane są tantiemy. są płacone. Podczas analizy w pakietach zidentyfikowano 190 unikalnych linków phishingowych lub reklamowych, obejmujących 31 domen.

Nazwy pakietów zostały wybrane tak, aby przyciągnąć zainteresowanie zwykłych ludzi, na przykład „bezpłatni obserwujący tiktok”, „bezpłatne kody na Xbox”, „bez obserwujących na Instagramie” itp. Kalkulacja została dokonana w celu zapełnienia listy ostatnich aktualizacji na stronie głównej NPM pakietami spamowymi. Opisy pakietów zawierały linki obiecujące darmowe prezenty, prezenty, kody do gier, a także bezpłatne usługi zwiększające liczbę obserwujących i polubień w sieciach społecznościowych, takich jak TikTok i Instagram. To nie pierwszy tego typu atak, w grudniu w katalogach NuGet, NPM i PyPi odnotowano publikację 144 tys. pakietów spamowych.

NPM zidentyfikował 15 tysięcy pakietów phishingowych i spamowych

Zawartość pakietów została wygenerowana automatycznie przy użyciu skryptu Pythona, który najwyraźniej przypadkowo pozostawiono w pakietach i zawierał dane uwierzytelniające użyte w ataku. Pakiety zostały opublikowane na wielu różnych kontach przy użyciu metod utrudniających rozwikłanie tropu i szybką identyfikację problematycznych pakietów.

Oprócz oszukańczych działań, w repozytoriach NPM i PyPi wykryto także kilka prób opublikowania szkodliwych pakietów:

  • W repozytorium PyPI odnaleziono 451 szkodliwych pakietów, które podszywały się pod niektóre popularne biblioteki wykorzystujące typequatting (przypisując podobne nazwy różniące się poszczególnymi znakami, np. vper zamiast vyper, bitcoinnlib zamiast bitcoinlib, ccryptofeed zamiast cryptofeed, ccxtt zamiast ccxt, cryptocommpare zamiast cryptocompare, seleium zamiast selenium, pinstaller zamiast pyinstaller itp.). W pakietach znajdował się zaciemniony kod służący do kradzieży kryptowalut, który wykrywał obecność identyfikatorów portfela kryptowalut w schowku i podmieniał je na portfel atakującego (zakłada się, że podczas dokonywania płatności ofiara nie zauważy, że numer portfela przesłany przez schowek) jest inny). Podstawienie zostało zrealizowane poprzez dodatek do przeglądarki, który wykonywał się w kontekście każdej przeglądanej strony internetowej.
  • W repozytorium PyPI zidentyfikowano szereg złośliwych bibliotek HTTP. Szkodliwą aktywność wykryto w 41 pakietach, których nazwy zostały wybrane przy użyciu metod typequatting i przypominały popularne biblioteki (aio5, requestst, ulrlib, urllb, libhttps, piphttps, httpxv2 itp.). Wypełnienie zostało zaprojektowane tak, aby przypominało działające biblioteki HTTP lub skopiowało kod istniejących bibliotek, a opis zawierał twierdzenia o korzyściach i porównaniach z legalnymi bibliotekami HTTP. Szkodliwa aktywność polegała na pobieraniu złośliwego oprogramowania do systemu lub gromadzeniu i wysyłaniu wrażliwych danych.
  • NPM zidentyfikowało 16 pakietów JavaScript (speedte*, trova*, lagra), które oprócz deklarowanej funkcjonalności (testowanie przepustowości) zawierały również kod umożliwiający wydobywanie kryptowaluty bez wiedzy użytkownika.
  • NPM zidentyfikował 691 szkodliwych pakietów. Większość problematycznych pakietów udawała projekty Yandex (yandex-logger-sentry, yandex-logger-qloud, yandex-sendsms itp.) i zawierała kod umożliwiający wysyłanie poufnych informacji na serwery zewnętrzne. Zakłada się, że osoby, które wysłały pakiety, próbowały uzyskać podstawienie własnej zależności podczas asemblowania projektów w Yandex (metoda zastępowania zależności wewnętrznych). W repozytorium PyPI ci sami badacze znaleźli 49 pakietów (reqsystem, httpxfaster, aio6, gorilla2, httpsos, pohttp itp.) z zaciemnionym złośliwym kodem, który pobiera i uruchamia plik wykonywalny z serwera zewnętrznego.

Źródło: opennet.ru

Dodaj komentarz