“Contagious Interview” rozszerza kampanię: 197 złośliwych paczek npm rozprowadza nowy wariant malware OtterCookie

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja luki

Zespół Socket Threat Research opisał nową falę kampanii “Contagious Interview” przypisywanej aktorom powiązanym z DPRK. Od 10 października 2025 r. do końca listopada aktorzy wprowadzili co najmniej 197 kolejnych złośliwych paczek npm, zwiększając łączną liczbę pobrań o >31 tys. Najnowszy łańcuch ataku wykorzystuje npm → Vercel → GitHub do dostarczenia świeżego wariantu OtterCookie – narzędzia łączącego funkcje infostealera i RAT z naciskiem na kradzież aktywów krypto oraz danych deweloperów.

MITRE ATT&CK klasyfikuje Contagious Interview (G1052) jako grupę aktywną od 2023 r., celującą w użytkowników Windows, macOS i Linux – szczególnie w deweloperów oraz osoby powiązane z blockchain/Web3.

W skrócie

  • Skala: +197 złośliwych paczek npm w najnowszej fali; co najmniej 15 w momencie publikacji Socket pozostawało dostępnych (zablokowanych następnie przez zespół npm).
  • Łańcuch: paczka npm z backdoorem → Vercel jako stager → kod z GitHub → uruchomienie OtterCookie i zestawienie C2.
  • Zdolności: fingerprinting, unikanie sandboxów/VM, keylogging globalny, screenshoty multi-monitor, kradzież schowka, skanowanie systemu i przeglądarek (Chrome/Brave, rozszerzenia walletów), zdalny shell.
  • TTPs: postinstall + eval odpowiedzi z sieci, typosquatting (np. tailwind-magic jako fork tailwind-merge), socjotechnika „fałszywi rekruterzy” i „zadania testowe”.

Kontekst / historia / powiązania

Kampania Contagious Interview została opisana m.in. przez Unit 42 (Palo Alto Networks) jako scenariusz, w którym napastnicy podszywają się pod rekruterów i przekonują ofiary do uruchomienia złośliwych narzędzi podczas „rozmów kwalifikacyjnych” lub zadań domowych. Wcześniejsze warianty dostarczały BeaverTail (downloader/infostealer) i InvisibleFerret (backdoor).

MITRE ATT&CK formalnie dodało grupę G1052 w październiku 2025 r., dokumentując m.in. wykorzystanie Vercel, GitHub, rejestrów pakietów oraz mechanizmów społecznościowych (LinkedIn itp.).

W styczniu 2025 r. analitycy NTT Security jako jedni z pierwszych nazwali nową rodzinę OtterCookie, opisując jej ewolucję (m.in. użycie Socket.IO do C2, kradzież „seedów” portfeli i zawartości schowka). Dzisiejsza fala na npm to rozwinięcie tej samej linii rozwojowej.

Analiza techniczna / szczegóły luki

Wejście do łańcucha

  • Paczki npm podszywające się pod popularne biblioteki (np. tailwind-magic imitujące tailwind-merge) zawierały postinstall uruchamiający loader. Loader wykonywał żądanie do stagera na Vercel (tetrismic[.]vercel[.]app), a odpowiedź była dynamicznie wykonywana (eval) w procesie Node.js. Repozytoria kodu i lury (np. projekty DEX/DeFi) utrzymywano na koncie stardev0914 na GitHub.

Stager i payload

  • Stager (Vercel) serwował aktualną zawartość pliku main.js w polu JSON (np. model), co pozwalało na rotację ładunków i modyfikację per cel. Drugi etap uruchamiał OtterCookie, który zestawiał kanał C2 i realizował zadania aktora.

Możliwości OtterCookie (najnowszy wariant)

  • Ewazja: detekcja środowisk wirtualnych/sandbox.
  • Rozpoznanie i kontrola: fingerprinting hosta, zdalny shell, długotrwała łączność C2.
  • Eksfiltracja: keylogging, screenshoty z wielu monitorów, kradzież schowka, rekursywne skanowanie systemu, wykradanie danych przeglądarek (Chrome/Brave) i rozszerzeń portfeli na Windows/macOS/Linux.
  • Cel: dokumenty, hasła, seed phrases, dane projektów krypto/Web3.

Techniki ATT&CK (wybrane)

  • T1195.002 (kompromitacja łańcucha dostaw), T1204.005 (złośliwa biblioteka), T1059.007 (JavaScript), T1497 (ewazja sandboxów), T1056.001 (keylogging), T1539/T1555.001 (ciasteczka sesyjne/Keychain), T1585/T1583.006 (tworzenie kont, usługi web).

Praktyczne konsekwencje / ryzyko

  • Zakażenia stanowisk deweloperskich → wyciek kluczy produkcyjnych, tokenów CI/CD, podpisów wydawniczych i seedów portfeli.
  • Ryzyko lateral movement z laptopa dev do środowisk chmurowych i pipelines (kradzież ciasteczek/przeglądarki).
  • Trwałość dzięki rotacji payloadów i rozproszonej infrastrukturze (npm + Vercel + GitHub).

Rekomendacje operacyjne / co zrobić teraz

1) Traktuj każdy npm install jak RCE

  • Odetnij CI/build od sekretów: brak dostępu do kluczy produkcyjnych, walletów, interfejsów admin chmury.
  • Wymuś egress filtering w czasie buildów; blokuj niespodziewane połączenia (np. .vercel.app spoza allowlisty).

2) Kontrola zależności i blokady wersji

  • Pinowanie wersji + lockfile; zakaz auto-aktualizacji „po cichu”.
  • Weryfikuj nowe/mało znane biblioteki, zwłaszcza „utility” plug-iny włączane globalnie.

3) Polityka kodu i przeglądy

  • Review każdego szablonu z GitHub (szczególnie Web3/DeFi).
  • Skanuj pull requesty pod kątem zachowań: import-time loaders, eval na odpowiedzi HTTP, dostęp do schowka/klawiatury. (Zwróć uwagę na znane paczki-przynęty jak tailwind-magic / „node-tailwind”.)

4) Twardnienie stacji dev

  • Odseparowane przeglądarki do pracy z walletami; menedżery haseł i polityka kluczy air-gapped do podpisywania.
  • Wykrywaj niecodzienne zachowania (global keylogging, multi-monitor screenshots, intensywne I/O na profilach przeglądarek).

5) Edukacja i „purple teaming”

  • Szkolenia dot. fałszywych rekruterów i „zadań testowych”.
  • Ćwiczenia ATT&CK dla technik dokumentowanych w G1052 (T1204.005, T1195.002, itd.).

6) Działania detekcyjno-reakcyjne (IoC/TTP-centric)

  • Przegląd instalacji npm z ostatnich 60–90 dni pod kątem postinstall, połączeń do .vercel.app, eval odpowiedzi JSON, artefaktów OtterCookie (np. aktywność Socket.IO, nietypowe procesy z uprawnieniami).
  • Korelacja z wcześniejszymi wariantami (BeaverTail/InvisibleFerret) – te często współwystępują.

Różnice / porównania z innymi przypadkami

  • OtterCookie vs. BeaverTail/InvisibleFerret: nowy wariant scala funkcje – zamiast łańcucha „downloader → backdoor” część zdolności (kradzież schowka/klawiatury, zdalny shell) jest w jednym module, co upraszcza operacje i utrudnia detekcję sygnaturową.
  • Infrastruktura: wyraźne operacjonalizowanie Vercel jako stagera oraz cykliczne odświeżanie payloadu (deploy’e na repo tetrismic). To odróżnia falę z 4Q’25 od wcześniejszych kampanii bazujących głównie na bezpośrednich serwerach C2.
  • Socjotechnika: stały motyw „rekrutacji” i zadań programistycznych – potwierdzony badaniami Unit 42 i ujęty w profilu MITRE G1052.

Podsumowanie / najważniejsze wnioski

  • Kampania Contagious Interview pozostaje systematyczną, „fabryczną” operacją kompromitującą łańcuch dostaw JS: npm → Vercel → GitHub.
  • 197 nowych paczek pokazało, iż aktor konsekwentnie adaptuje TTPs, konsolidując możliwości w OtterCookie i optymalizując dystrybucję przez stager.
  • Organizacje muszą traktować instalację zależności jak egzekucję kodu obcego i wdrożyć kontrolę egress, pinowanie, review’y behawioralne oraz izolację sekretów.

Źródła / bibliografia

  1. Socket Threat Research – Inside the GitHub Infrastructure Powering North Korea’s Contagious Interview npm Attacks (26 listopada 2025). (Socket)
  2. MITRE ATT&CK – Contagious Interview (G1052) (utw. 19 października 2025; modyf. 24 października 2025). (attack.mitre.org)
  3. Unit 42 (Palo Alto Networks) – Contagious Interview: DPRK Threat Actors Lure Tech Industry Job Seekers… (9 października 2024). (Unit 42)
  4. NTT Security Japan – OtterCookie, new malware used in Contagious Interview campaign (16 stycznia 2025). (jp.security.ntt)
  5. The Hacker News – North Korean Hackers Deploy 197 npm Packages to Spread Updated OtterCookie Malware (28 listopada 2025). (The Hacker News)
Idź do oryginalnego materiału