Mirage Kitten atakuje programistów przez fałszywe testy rekrutacyjne. NodeRabbit i PollCat rozszerzają arsenał APT - Security Bez Tabu

Mirage Kitten atakuje programistów przez fałszywe testy rekrutacyjne. NodeRabbit i PollCat rozszerzają arsenał APT

Cybersecurity news

Wprowadzenie do problemu / definicja

Grupa APT Mirage Kitten wykorzystuje fałszywe testy rekrutacyjne jako nośnik złośliwego oprogramowania wymierzonego w programistów i organizacje technologiczne. Kampania łączy socjotechnikę z atakiem na środowiska deweloperskie, co zwiększa skuteczność infekcji i utrudnia jej wykrycie.

W opisywanym scenariuszu ofiary otrzymują pozornie legalne zadania techniczne, które po uruchomieniu inicjują działanie malware. Celem nie jest jedynie jednorazowe wykonanie złośliwego kodu, ale uzyskanie trwałego dostępu do stacji roboczych, narzędzi programistycznych oraz potencjalnie do zasobów organizacyjnych.

W skrócie

Badacze zidentyfikowali dwie rodziny malware: NodeRabbit oraz PollCat, dostarczane jako rzekome zadania rekrutacyjne dla kandydatów kontaktowanych przez profesjonalne kanały komunikacji. Przynęty były przygotowane w taki sposób, aby przypominały typowe testy techniczne i ograniczać czujność ofiary.

  • NodeRabbit to wieloplatformowy implant oparty na Node.js.
  • PollCat był maskowany jako zadanie naprawy aplikacji React.
  • Kampania była ukierunkowana m.in. na sektor fintech i lotniczy.
  • Atakujący wykorzystywali mechanizmy utrudniające analizę i detekcję.

Kontekst / historia

Mirage Kitten jest grupą kojarzoną z operacjami cyberszpiegowskimi powiązanymi z Iranem, aktywną szczególnie wobec celów na Bliskim Wschodzie i w Afryce. W przeszłości aktor ten był łączony z kampaniami wykorzystującymi klasyczne implanty oraz techniki podszywania się pod rekruterów.

W najnowszej odsłonie kampanii widoczna jest zmiana modelu operacyjnego. Zamiast tradycyjnych dokumentów lub oczywiście podejrzanych załączników, ofiara otrzymuje projekt programistyczny osadzony w wiarygodnym kontekście rekrutacyjnym. To podejście jest szczególnie skuteczne wobec inżynierów oprogramowania, ponieważ wpisuje się w ich codzienny model pracy i nie odbiega od realnych procesów zatrudnienia.

Analiza techniczna

NodeRabbit został napisany w Node.js i zaprojektowany z myślą o działaniu na Windows, Linux i macOS. Złośliwy komponent był ukrywany w fałszywej paczce npm dołączonej do projektu, co pozwalało uruchomić malware w tle podczas pracy z zadaniem technicznym. Komunikacja z infrastrukturą C2 miała być zabezpieczana z użyciem szyfrowania AES-256-GCM.

W nowszych wariantach NodeRabbit zaobserwowano funkcje antyanalityczne. Malware sprawdzało parametry środowiska, takie jak liczba rdzeni procesora, ilość pamięci czy czas działania systemu, aby ocenić, czy działa w piaskownicy lub środowisku badawczym. Jeśli wykrywało warunki sugerujące analizę, mogło generować pozornie nieszkodliwy ruch do popularnych usług internetowych i zakończyć działanie bez kontaktu z właściwym serwerem sterującym.

Badacze odnotowali także bardziej zaawansowane możliwości jednego z wariantów. Obejmowały one rozszerzony zestaw komend C2, możliwość osadzania fałszywego rozszerzenia do Visual Studio Code podszywającego się pod narzędzie związane z GitHub Copilot oraz modyfikowanie Git hooks. Dzięki temu złośliwy launcher mógł zostać ponownie aktywowany przy operacjach takich jak merge lub checkout, co zwiększało szanse na utrzymanie persystencji blisko codziennego workflow programisty.

PollCat z kolei był ukrywany jako zadanie związane z naprawą aplikacji React. Projekt sprawiał wrażenie autentycznego testu z limitem czasu i polem do wpisania sześciocyfrowego kodu rzekomo przekazywanego przez rekrutera. W praktyce złośliwa aktywność rozpoczynała się już na etapie inicjalizacji aplikacji, jeszcze przed wprowadzeniem jakichkolwiek danych przez użytkownika.

Powiązanie obu rodzin z Mirage Kitten oparto na podobieństwach technicznych i operacyjnych, w tym na logice komunikacji sieciowej zbieżnej z wcześniej znanym backdoorem Retrograde, określanym również jako MiniFast. Jednym z charakterystycznych elementów było traktowanie odpowiedzi HTTP 400 jako sygnału poprawnej rejestracji sesji oraz wydobywanie z niej tokenu sesyjnego, co stanowi nietypowy i cenny artefakt atrybucyjny.

Istotny był również aspekt socjotechniczny. Instrukcje dołączone do testów zabraniały korzystania z narzędzi AI, co formalnie wyglądało jak standardowa polityka antycheatingowa, lecz w praktyce mogło ograniczać szansę na szybkie wykrycie podejrzanych importów, zależności i nietypowego kodu inicjalizacyjnego.

Konsekwencje / ryzyko

Kampania pokazuje, że proces rekrutacyjny może stać się skutecznym wektorem wejścia do organizacji technologicznych. Ryzyko nie ogranicza się do pojedynczych kandydatów, lecz obejmuje również firmy, których pracownicy uruchamiają zewnętrzne projekty na urządzeniach służbowych lub w środowiskach z dostępem do wrażliwych zasobów.

  • Kompromitacja stacji roboczych programistów.
  • Kradzież poświadczeń, tokenów i sekretów dostępowych.
  • Utrzymanie persystencji w repozytoriach oraz narzędziach deweloperskich.
  • Możliwość ruchu bocznego do systemów wewnętrznych.
  • Długoterminowy wyciek własności intelektualnej i danych operacyjnych.

Szczególnie groźne jest połączenie wiarygodnej przynęty rekrutacyjnej, wieloplatformowego malware oraz technik unikania analizy. W efekcie tradycyjne szkolenia antyphishingowe mogą nie wystarczyć w środowiskach, gdzie użytkownicy regularnie uruchamiają obcy kod w ramach codziennych obowiązków.

Rekomendacje

Organizacje powinny traktować każde zewnętrzne zadanie programistyczne jak nieufny kod i objąć je osobnym modelem bezpieczeństwa. Dotyczy to zarówno formalnych procesów rekrutacyjnych, jak i wszelkich proof-of-conceptów, challenge’y oraz próbek kodu dostarczanych przez osoby spoza organizacji.

  • Uruchamianie testów rekrutacyjnych wyłącznie w odizolowanych środowiskach, takich jak VM, sandbox lub ephemeral workspace.
  • Blokowanie wykonywania niezweryfikowanych projektów na stacjach produkcyjnych i głównych środowiskach developerskich.
  • Monitorowanie poleceń takich jak npm install, node oraz skryptów postinstall.
  • Analiza projektów pod kątem złośliwych Git hooks, niestandardowych launcherów i mechanizmów persystencji.
  • Kontrola rozszerzeń do IDE, zwłaszcza w środowisku Visual Studio Code.
  • Segmentacja dostępu do repozytoriów, sekretów CI/CD i środowisk chmurowych.
  • Wdrożenie EDR lub XDR z naciskiem na detekcję anomalii w środowiskach Node.js i JavaScript.
  • Szkolenie działów HR, rekrutacji oraz zespołów inżynieryjnych z ryzyk związanych z fałszywymi procesami rekrutacyjnymi.
  • Wymaganie przeglądu bezpieczeństwa każdego zewnętrznego testu przed jego uruchomieniem.

Podsumowanie

Operacja Mirage Kitten potwierdza, że współczesne kampanie APT coraz częściej wykorzystują naturalne procesy biznesowe jako nośnik infekcji. NodeRabbit i PollCat pokazują, że złośliwe oprogramowanie może zostać skutecznie ukryte w projektach wyglądających jak zwykłe zadania techniczne.

Dla zespołów bezpieczeństwa to wyraźny sygnał, że ochrona łańcucha pracy programistycznej musi obejmować nie tylko zależności open source i pipeline CI/CD, ale również testy rekrutacyjne, próbki kodu oraz każde zewnętrzne repozytorium uruchamiane przez pracowników.

Źródła

  • https://securityaffairs.com/198289/apt/iran-linked-apt-mirage-kitten-uses-fake-job-tests-to-spread-malware.html
  • https://securelist.com/mirage-kitten-new-nodejs-malware/117474/