Odkrycie 36 złośliwych pakietów w rejestrze npm, podszywających się pod wtyczki Strapi
Badacze zajmujący się bezpieczeństwem cybernetycznym zidentyfikowali 36 złośliwych pakietów w rejestrze npm, które podszywają się pod wtyczki Strapi CMS. W rzeczywistości pakiety te zawierają różnorodne złośliwe ładunki, umożliwiające wykorzystanie Redis i PostgreSQL, wdrażanie odwróconych powłok, zbieranie danych uwierzytelniających oraz umieszczanie trwałych implantów.
Według informacji od SafeDep, „każdy pakiet zawiera trzy pliki (package.json, index.js, postinstall.js), nie ma opisu, repozytorium ani strony głównej, a wersja 3.6.8 sprawia, że wygląda jak dojrzała wtyczka społeczności Strapi v3.”
Wszystkie zidentyfikowane pakiety npm stosują tę samą konwencję nazewnictwa, zaczynając od „strapi-plugin-” oraz używając fraz takich jak „cron”, „database” czy „server”. Celem jest wprowadzenie w błąd nieświadomych programistów. Warto dodać, że oficjalne wtyczki Strapi są oznaczone jako „@strapi/”.
Lista złośliwych pakietów
Pakiety zostały załadowane przez cztery konta, tzw. sock puppets: „umarbek1233”, „kekylf12”, „tikeqemif26” oraz „umar_bektembiev1” w ciągu zaledwie 13 godzin. Oto lista złośliwych pakietów:
- strapi-plugin-cron
- strapi-plugin-config
- strapi-plugin-server
- strapi-plugin-database
- strapi-plugin-core
- strapi-plugin-hooks
- strapi-plugin-monitor
- strapi-plugin-events
- strapi-plugin-logger
- strapi-plugin-health
- strapi-plugin-sync
- strapi-plugin-seed
- strapi-plugin-locale
- strapi-plugin-form
- strapi-plugin-notify
- strapi-plugin-api
- strapi-plugin-sitemap-gen
- strapi-plugin-nordica-tools
- strapi-plugin-nordica-sync
- strapi-plugin-nordica-cms
- strapi-plugin-nordica-api
- strapi-plugin-nordica-recon
- strapi-plugin-nordica-stage
- strapi-plugin-nordica-vhost
- strapi-plugin-nordica-deep
- strapi-plugin-nordica-lite
- strapi-plugin-nordica
- strapi-plugin-finseven
- strapi-plugin-hextest
- strapi-plugin-cms-tools
- strapi-plugin-content-sync
- strapi-plugin-debug-tools
- strapi-plugin-health-check
- strapi-plugin-guardarian-ext
- strapi-plugin-advanced-uuid
- strapi-plugin-blurhash
Analiza złośliwych ładunków
Analiza wspomnianych pakietów ujawnia, że złośliwy kod jest osadzony w skrypcie postinstall, który jest wykonywany podczas instalacji pakietu npm, bez konieczności interakcji ze strony użytkownika. Oznacza to, że działa on z tymi samymi uprawnieniami co użytkownik instalujący, co znacząco zwiększa ryzyko naruszenia bezpieczeństwa, zwłaszcza w środowiskach CI/CD oraz kontenerach Docker.
Wskazuje to na ewolucję ładunków złośliwych, które są częścią tej kampanii:
- Wykorzystanie lokalnie dostępnej instancji Redis do wykonywania zdalnego kodu przez wstrzykiwanie wpisów crontab, co co minutę pobiera i uruchamia skrypt powłoki zdalnego serwera.
- Połączenie wykorzystania Redis z ucieczką z kontenera Docker w celu zapisania ładunków powłoki na hoście.
- Wdrożenie odwróconej powłoki i ściąganie złośliwego programu przez Redis.
- Skany systemu w celu poszukiwania zmiennych środowiskowych i stringów połączeń do bazy danych PostgreSQL.
- Rozszerzone zbieranie danych uwierzytelniających oraz wywiadowczy payload do zbierania konfiguracji Strapi i tajemnic bazy danych Redis.
- Eksploatacja bazy danych PostgreSQL połączeniem z użyciem hardkodowanych danych uwierzytelniających.
- Wdrożenie trwałego implantu, aby utrzymać zdalny dostęp.
- Ułatwienie kradzieży danych uwierzytelniających poprzez skanowanie hardkodowanych ścieżek.
„Ośmiu ładunków pokazuje wyraźną narrację: atakujący zaczął ofensywnie, jednak zmienił strategię na zbieranie danych i trwały dostęp z kluczami dostępu. Następnie, w miarę badania systemu, przeszli do bezpośredniego połączenia z bazą danych za pomocą hardkodowanych danych.” – SafeDep
Charakter ładunków, w zestawieniu z wyraźnym naciskiem na aktywa cyfrowe oraz użyciem hardkodowanych danych uwierzytelniających, wzbudza podejrzenia, że kampania mogła być wymierzona w platformę kryptowalutową. Użytkownicy, którzy zainstalowali jakikolwiek z wymienionych pakietów, powinni zakładać, że ich systemy mogły zostać skompromitowane i obawiać się o bezpieczeństwo danych.
Kontekst ataków na łańcuch dostaw
Odkrycie tej sytuacji zbiegło się z innymi atakami na łańcuch dostaw, które również dotknęły ekosystem open-source. Na przykład konto GitHub o nazwie „ezmtebo” złożyło ponad 256 zapytań do różnych repozytoriów, które zawierały ładunek do kradzieży danych uwierzytelniających. Te ataki stają się coraz powszechniejsze i prowadzą do poważnych naruszeń bezpieczeństwa.
Grupa-IB zwróciła uwagę, że ataki te stają się „dominującą siłą, przekształcającą globalny krajobraz zagrożeń cybernetycznych”. Wielu ekspertów dostrzega w tym nową erę zagrożeń dla organizacji, dlatego należy ścisłe monitorować i zabezpieczać procesy programistyczne, aby uniknąć nieautoryzowanego dostępu do danych i systemów.












