
Co znajdziesz w tym artykule?
- 1 Wprowadzenie do problemu / definicja luki
- 2 W skrócie
- 3 Kontekst / historia / powiązania
- 4 Analiza techniczna / szczegóły luki
- 5 Praktyczne konsekwencje / ryzyko
- 6 Rekomendacje operacyjne / co zrobić teraz
- 7 Różnice / porównania z innymi przypadkami (jeśli dotyczy)
- 8 Podsumowanie / kluczowe wnioski
- 9 Źródła / bibliografia
Wprowadzenie do problemu / definicja luki
Ataki na łańcuch dostaw oprogramowania nie muszą zaczynać się od włamania do repozytorium firmy. Coraz częściej napastnicy „wchodzą” do ekosystemu tak, jak każdy inny deweloper — publikując paczki w publicznych rejestrach (npm, PyPI), licząc na pomyłkę w nazwie (typosquatting) lub bezrefleksyjne doinstalowanie „narzędzia” z internetu.
Właśnie w ten schemat wpisuje się kampania, w której aktorzy powiązani z Koreą Północną opublikowali 26 złośliwych pakietów npm, podszywających się pod narzędzia dla programistów. Celem jest infekcja stacji roboczych deweloperów i wykradanie sekretów oraz zdalne sterowanie hostem (RAT).
W skrócie
- 26 paczek npm udaje „developer tools”, a po instalacji uruchamia kod w hooku instalacyjnym.
- C2 nie jest zapisane wprost: loader używa Pastebin jako dead-drop i wyciąga adresy infrastruktury z tekstu przy pomocy steganografii na poziomie znaków.
- Następny etap pobierany jest z domen hostowanych na Vercel (zidentyfikowano wiele deploymentów/domen).
- Ładunek końcowy to zestaw modułów do: persistence (m.in. przez VS Code), keylogging/clipboard theft, kradzieży haseł z przeglądarek, skanowania sekretów (TruffleHog), eksfiltracji repozytoriów/Git/SSH i funkcji RAT.
Kontekst / historia / powiązania
Badacze łączą tę falę z długotrwałą kampanią Contagious Interview, w której napastnicy „rekrutują” deweloperów (fałszywe oferty pracy, zadania techniczne), a następnie przemycają malware poprzez zależności i narzędzia developerskie. W tym wariancie kampania otrzymała nazwę StegaBin (od steganografii w Pastebin).
Atrybucja w materiałach badaczy jest spójna z północnokoreańskim klastrem aktywności określanym jako FAMOUS CHOLLIMA.
Warto też zauważyć, że ten sam klaster eksperymentuje z alternatywnymi „stagerami” kolejnych etapów — np. Google Drive jako nośnik payloadu (co utrudnia proste blokady oparte o klasyczne paste-sites).
Analiza techniczna / szczegóły luki
1) Wejście: typosquatting + hook instalacyjny npm
Złośliwe paczki są publikowane tak, by wyglądały na „linty”, „walidatory”, „narzędzia” itp. Kluczowy mechanizm uruchomienia to install script w package.json, odpalany automatycznie podczas npm install.
Cechy charakterystyczne:
- install hook uruchamia plik w stylu
./scripts/test/install.js, który następnie ładuje właściwy payload z lokalizacji udającej „vendor” popularnej biblioteki (np. ścieżka sugerującascrypt-js). - napastnicy często dodają jako zależność prawdziwy, legitny pakiet, pod który się podszywają — żeby projekt „działał” i nie wzbudzał podejrzeń.
2) Ukrywanie infrastruktury: Pastebin jako dead-drop + steganografia
Zamiast trzymać C2 w kodzie, loader pobiera treść z Pastebin, która wygląda jak niewinna notatka/esej. W rzeczywistości wybrane znaki (w równych odstępach) są podmienione tak, by po złożeniu dawały listę adresów infrastruktury.
Opis działania dekodera (w uproszczeniu):
- usuwa znaki typu zero-width Unicode,
- czyta znacznik długości na początku,
- wylicza pozycje znaków „co N”,
- skleja znaki i dzieli wynik separatorem (np.
|||) do uzyskania tablicy domen C2.
3) Routing i hosting C2: Vercel + dalsze etapy
Zdekodowane adresy prowadzą do domen hostowanych na Vercel, które serwują kolejne etapy (w tym skrypty powłoki i komponenty RAT). W analizie Socket wymieniono szereg domen Vercel powiązanych z kampanią.
4) Działanie na hoście: modułowy infostealer + RAT
Z publicznie opisanych elementów wynika, że po stronie ofiary aktywowane są moduły odpowiadające m.in. za:
- persistence w VS Code poprzez modyfikację
tasks.jsoni triggerrunOn: "folderOpen", - keylogging/clipboard theft i telemetrię aktywnego okna,
- kradzież haseł z magazynów przeglądarek,
- kradzież rozszerzeń/walletów kryptowalutowych (np. MetaMask i inne),
- enumerację plików wg wzorców i eksfiltrację
.ssh, Git credentials oraz repozytoriów, - pobranie legalnego TruffleHog do wyszukiwania sekretów i ich wyprowadzenia,
- funkcje RAT (zdalne komendy / interaktywne sterowanie).
Lista zidentyfikowanych paczek npm (wg publikacji)
- argonist@0.41.0
- bcryptance@6.5.2
- bee-quarl@2.1.2
- bubble-core@6.26.2
- corstoken@2.14.7
- daytonjs@1.11.20
- ether-lint@5.9.4
- expressjs-lint@5.3.2
- fastify-lint@5.8.0
- formmiderable@3.5.7
- hapi-lint@19.1.2
- iosysredis@5.13.2
- jslint-config@10.22.2
- jsnwebapptoken@8.40.2
- kafkajs-lint@2.21.3
- loadash-lint@4.17.24
- mqttoken@5.40.2
- prism-lint@7.4.2
- promanage@6.0.21
- sequelization@6.40.2
- typoriem@0.4.17
- undicy-lint@7.23.1
- uuindex@13.1.0
- vitetest-lint@4.1.21
- windowston@3.19.2
- zoddle@4.4.2
Praktyczne konsekwencje / ryzyko
Największy problem w tego typu incydentach to blast radius: jedna błędnie zainstalowana paczka na laptopie dewelopera może otworzyć napastnikom drogę do:
- kluczy SSH, tokenów CI/CD, sekretów chmurowych,
.env, plików konfiguracyjnych, - dostępu do repozytoriów (Git credentials, session tokens),
- portfeli kryptowalutowych i rozszerzeń przeglądarki,
- trwałej obecności na stacji roboczej (persistence w narzędziach developerskich),
- a w konsekwencji — do kompromitacji pipeline’ów i produkcji.
Dodatkowo, użycie Pastebin/Vercel i steganografii zmniejsza skuteczność prostych reguł opartych o „twardo zakodowane IOC”.
Rekomendacje operacyjne / co zrobić teraz
Dla zespołów SecOps / SOC
- Hunting na procesy Node.js wykonujące połączenia do nietypowych usług „paste/hosting”, szczególnie w trakcie instalacji zależności (czas
npm install). - Monitoruj anomalie: uruchamianie skryptów instalacyjnych, tworzenie/modyfikacje w katalogach konfiguracji VS Code (np.
tasks.json) i nagłe żądania wychodzące po otwarciu folderu projektu. - Rozważ blokady/alerty na wybrane kategorie egress (Pastebin, Vercel) dla stacji developerskich, przynajmniej w trybie detekcji i z wyjątkami. (Uwaga: Vercel bywa legalnie używany — lepiej iść w detekcję + allowlist dla znanych projektów).
Dla developerów i platform engineering
- W środowiskach CI i na wrażliwych hostach używaj instalacji z ograniczeniami, np.:
npm ci(z lockfile),- rozważ
--ignore-scriptstam, gdzie to możliwe (i świadomie włączaj skrypty tylko dla zaufanych paczek).
- Włącz automatyczne skanowanie zależności (SCA), polityki blokowania typosquattingu i allowlisty dla paczek krytycznych.
- Używaj wewnętrznego proxy/repozytorium (registry cache) z kontrolą publikacji i reputacji paczek.
- Edukuj zespół: paczki typu „expressjs-lint”/„loadash-lint” wyglądają wiarygodnie właśnie po to, by wygrać z rutyną.
Różnice / porównania z innymi przypadkami (jeśli dotyczy)
- StegaBin wyróżnia się tym, że C2 jest „wyciągane” z tekstu w Pastebin metodą steganografii znakowej (zamiast jawnego URL w kodzie).
- W obserwacjach kmsec.uk widać też testowanie Google Drive jako stagera kolejnego etapu (inny wektor ukrycia i „legalny” CDN/hosting treści).
- Szerszy trend: rośnie skala i automatyzacja ataków supply-chain na open source; CISA zwracała uwagę na masowe kompromitacje w ekosystemie npm i mechanizmy propagacji po przejęciu kont deweloperskich (co pokazuje, że zagrożenie jest systemowe, nie incydentalne).
Podsumowanie / kluczowe wnioski
- Publiczne rejestry paczek to dziś pierwszorzędny wektor dla aktorów państwowych — szczególnie przeciw deweloperom.
- W tej fali ataku 26 paczek npm używa install hooków, ukrytego C2 w Pastebin i infrastruktury Vercel, by dostarczyć modułowego infostealera i RAT na Windows/macOS/Linux.
- Obrona powinna łączyć kontrolę egress, polityki instalacji zależności (lockfile, ograniczenie skryptów), SCA oraz monitoring zachowań narzędzi developerskich (VS Code).
Źródła / bibliografia
- The Hacker News – opis kampanii i lista paczek (02.03.2026). (The Hacker News)
- Socket – analiza StegaBin, Pastebin dead-drop, mechanika install hooków i IOC (27.02.2026). (Socket)
- kmsec.uk – „DPRK tests Google Drive as a malware stager” (21.02.2026). (kmsec.uk)
- CISA – alert dot. kompromitacji supply-chain w ekosystemie npm (23.09.2025). (CISA)