Korea Północna publikuje 26 złośliwych paczek npm: StegaBin ukrywa C2 w Pastebin i dostarcza wieloplatformowego RAT-a - Security Bez Tabu

Korea Północna publikuje 26 złośliwych paczek npm: StegaBin ukrywa C2 w Pastebin i dostarcza wieloplatformowego RAT-a

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ąca scrypt-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.json i trigger runOn: "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

  1. 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).
  2. 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.
  3. 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

  1. W środowiskach CI i na wrażliwych hostach używaj instalacji z ograniczeniami, np.:
    • npm ci (z lockfile),
    • rozważ --ignore-scripts tam, gdzie to możliwe (i świadomie włączaj skrypty tylko dla zaufanych paczek).
  2. Włącz automatyczne skanowanie zależności (SCA), polityki blokowania typosquattingu i allowlisty dla paczek krytycznych.
  3. Używaj wewnętrznego proxy/repozytorium (registry cache) z kontrolą publikacji i reputacji paczek.
  4. 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

  1. The Hacker News – opis kampanii i lista paczek (02.03.2026). (The Hacker News)
  2. Socket – analiza StegaBin, Pastebin dead-drop, mechanika install hooków i IOC (27.02.2026). (Socket)
  3. kmsec.uk – „DPRK tests Google Drive as a malware stager” (21.02.2026). (kmsec.uk)
  4. CISA – alert dot. kompromitacji supply-chain w ekosystemie npm (23.09.2025). (CISA)