
Wprowadzenie do problemu / definicja
PhantomRaven to złośliwe oprogramowanie typu infostealer napisane w JavaScript i dystrybuowane za pośrednictwem ekosystemu npm. Kampania wpisuje się w rosnące zagrożenie dla łańcucha dostaw oprogramowania, w którym napastnicy publikują pakiety wyglądające na wiarygodne, aby uzyskać dostęp do środowisk programistycznych, tokenów uwierzytelniających oraz sekretów używanych w procesach CI/CD.
Na szczególną uwagę zasługuje fakt, że badacze dostrzegli przesłanki wskazujące na możliwe wykorzystanie dużego modelu językowego podczas tworzenia kodu malware. To sygnał, że generatywna AI może coraz częściej obniżać próg wejścia dla autorów narzędzi ofensywnych.
W skrócie
PhantomRaven był rozpowszechniany przez złośliwe pakiety npm podszywające się pod legalne biblioteki lub wykorzystujące techniki typosquattingu i slopsquattingu. Po instalacji pakiety pobierały zdalną zależność zawierającą właściwy ładunek, co utrudniało wykrycie przez klasyczne mechanizmy skanowania.
- kradzież danych konfiguracyjnych Git i npm,
- pozyskiwanie informacji o użytkowniku i adresach e-mail,
- zbieranie publicznego adresu IP i danych o hoście,
- identyfikacja środowisk CI/CD,
- ekstrakcja zmiennych środowiskowych mogących zawierać tokeny i klucze dostępu.
Według ustaleń badaczy operator kampanii mógł wykorzystywać skradzione dane głównie do identyfikowania okazji związanych z programami bug bounty.
Kontekst / historia
Kampania PhantomRaven została powiązana z szerszą aktywnością wymierzoną w użytkowników npm. Wcześniejsze obserwacje wskazywały na dużą liczbę złośliwych pakietów służących do przechwytywania tokenów, sekretów CI/CD i poświadczeń związanych z GitHubem, natomiast najnowsza analiza sugeruje, że operator działał od co najmniej listopada 2022 roku i korzystał z wielu tożsamości powiązanych z publikacją pakietów.
Wyróżnikiem tej sprawy jest przypuszczalna motywacja napastnika. Zamiast klasycznej monetyzacji poprzez sprzedaż skradzionych danych, zebrane informacje mogły służyć do wyszukiwania podatności i budowania podstaw do zgłoszeń w programach bug bounty. Taki model działania łączy elementy cyberprzestępczości z próbą osiągania korzyści finansowych i reputacyjnych pod pozorem legalnego researchu.
Analiza techniczna
Technicznie kampania opierała się na kompromitacji procesu instalacji zależności. Złośliwe pakiety dostępne w rejestrze npm pełniły rolę nośnika, natomiast właściwy komponent malware był dostarczany jako zdalna dynamiczna zależność. Dzięki temu sam pakiet mógł wyglądać relatywnie niegroźnie podczas analizy statycznej, a niebezpieczny kod był pobierany dopiero w trakcie instalacji lub uruchomienia.
Po wykonaniu PhantomRaven profilował system ofiary i jej środowisko pracy. Malware koncentrował się na zbieraniu danych istotnych z punktu widzenia dalszych ataków na łańcuch dostaw i infrastrukturę developerską.
- odczyt konfiguracji Git i npm,
- pozyskanie nazw użytkowników i adresów e-mail,
- zbieranie informacji o czasie uruchomienia i parametrach środowiska,
- fingerprinting hosta i ustalanie publicznego adresu IP,
- wykrywanie obecności narzędzi CI/CD,
- ekstrakcja zmiennych środowiskowych zawierających tokeny, hasła i klucze.
Szczególnie groźne jest ukierunkowanie na pipeline’y CI/CD. Kompromitacja takich sekretów może umożliwić przejęcie repozytoriów, modyfikację artefaktów buildów, publikację skażonych pakietów, a nawet dostęp do infrastruktury chmurowej i środowisk produkcyjnych.
Badacze zwrócili także uwagę na cechy kodu mogące wskazywać na wsparcie LLM przy tworzeniu malware, takie jak nietypowo rozbudowane komentarze, fragmenty kodu zastępczego oraz określone wzorce widoczne w strukturze tokenów. Nie jest to dowód ostateczny, ale stanowi mocną przesłankę, że narzędzia generatywnej AI zaczynają odgrywać praktyczną rolę również po stronie ofensywnej.
Konsekwencje / ryzyko
Najwyższe ryzyko dotyczy organizacji rozwijających oprogramowanie w oparciu o publiczne ekosystemy pakietów. Jeżeli zainfekowany pakiet trafi do środowiska deweloperskiego lub pipeline’u, skutki mogą wykraczać daleko poza pojedynczą stację roboczą.
- przejęcie kont deweloperskich,
- dostęp do prywatnych repozytoriów,
- manipulacja kodem źródłowym,
- publikacja trojanizowanych wydań,
- eskalacja do środowisk produkcyjnych.
Dodatkowe zagrożenie wynika z modelu działania operatora. Jeżeli celem było rzeczywiście wyszukiwanie okazji do zgłaszania błędów, napastnik mógł selektywnie wybierać ofiary z rozbudowaną infrastrukturą developerską i zasobami o wysokiej wartości technicznej. To zwiększa prawdopodobieństwo, że kradzież danych była elementem ukierunkowanego rozpoznania, a nie wyłącznie masowej kampanii.
Z perspektywy obrony problemem pozostaje także niska wykrywalność. Wykorzystanie zdalnie pobieranych zależności, legalnych menedżerów pakietów i skryptów wykonywanych podczas instalacji sprawia, że tradycyjne kontrole bezpieczeństwa mogą nie wychwycić pełnego łańcucha ataku na wczesnym etapie.
Rekomendacje
Przypadek PhantomRaven powinien skłonić organizacje do zaostrzenia kontroli wokół software supply chain. Ochrona nie może ograniczać się wyłącznie do endpointów, lecz musi obejmować również proces pozyskiwania, testowania i wdrażania zależności.
- ograniczenie instalacji niezweryfikowanych pakietów z publicznych rejestrów,
- stosowanie allowlist zależności oraz wewnętrznych proxy lub mirrorów rejestrów,
- monitorowanie skryptów preinstall, postinstall i podobnych mechanizmów,
- blokowanie lub alarmowanie o próbach pobierania zdalnych zależności podczas instalacji,
- skanowanie sekretów w stacjach roboczych i środowiskach CI/CD,
- rotacja tokenów npm, GitHub i innych poświadczeń po wykryciu podejrzanej aktywności,
- egzekwowanie zasady najmniejszych uprawnień,
- włączenie MFA dla kont utrzymujących pakiety i repozytoria,
- korelacja telemetrii z endpointów, menedżerów pakietów i systemów buildowych,
- szkolenie zespołów w zakresie typosquattingu, slopsquattingu i zatruwania łańcucha dostaw.
W środowiskach o podwyższonych wymaganiach bezpieczeństwa warto dodatkowo uruchamiać instalację zależności w odseparowanych sandboxach oraz prowadzić analizę behawioralną pakietów przed dopuszczeniem ich do produkcyjnych pipeline’ów.
Podsumowanie
PhantomRaven pokazuje, że ekosystemy open source pozostają jednym z najważniejszych celów ataków na łańcuch dostaw oprogramowania. W tej kampanii szczególnie niepokojące są trzy elementy: koncentracja na sekretach deweloperskich i CI/CD, wykorzystanie zdalnie dostarczanego ładunku do omijania detekcji oraz prawdopodobne wsparcie procesu tworzenia malware przez LLM.
Dla zespołów bezpieczeństwa i organizacji tworzących oprogramowanie oznacza to konieczność łączenia klasycznej ochrony endpointów z dojrzałym zarządzaniem ryzykiem w całym cyklu życia zależności. Bez takich działań nawet pojedynczy pakiet npm może stać się punktem wyjścia do znacznie poważniejszego incydentu.