Oprogramowanie złośliwe PhantomRaven
Badacze cyberbezpieczeństwa odkryli wysoce aktywny atak na łańcuch dostaw oprogramowania, wymierzony w ekosystem npm. Zidentyfikowano ponad 100 złośliwych pakietów, zdolnych do kradzieży poufnych danych uwierzytelniających programistów, w tym tokenów uwierzytelniających, sekretów CI/CD i danych uwierzytelniających GitHub, bezpośrednio z zainfekowanych maszyn.
Kampania o nazwie kodowej PhantomRaven po raz pierwszy pojawiła się w sierpniu 2025 roku. Od tego czasu rozrosła się do 126 bibliotek npm i zgromadziła ponad 86 000 instalacji, co pokazuje szybkie rozprzestrzenianie się i adopcję tych złośliwych pakietów.
Spis treści
Złośliwe pakiety latające poza radarem
Kilka spośród oznaczonych pakietów obejmuje:
- instalator op-cli – 486 pobrań
- unused-imports – 1350 pobrań
- badgekit-api-client – 483 pobrań
- polyfill-corejs3 – 475 pobrań
- eslint-comments – 936 pobrań
Tym, co czyni PhantomRaven szczególnie podstępnym, jest wykorzystanie zdalnych zależności dynamicznych (RDD). Zamiast pobierać kod z oficjalnego rejestru npm, złośliwe pakiety wskazują na niestandardowy adres URL HTTP (packages.storeartifact.com). Pozwala to npm na pobieranie zależności z niezaufanego źródła zewnętrznego, skutecznie omijając zabezpieczenia npmjs.com.
Tradycyjne skanery bezpieczeństwa i narzędzia do analizy zależności nie wykrywają tych RDD, ponieważ zautomatyzowane systemy postrzegają pakiety jako mające „0 zależności”.
Jak działa atak
Łańcuch ataku rozpoczyna się w momencie zainstalowania przez programistę jednego z pozornie nieszkodliwych pakietów. Kluczowe elementy obejmują:
Wykonanie haka przed instalacją : Pakiet zawiera skrypt cyklu życia przed instalacją, który automatycznie wykonuje główny ładunek.
Zdalne pobieranie danych : Skrypt pobiera złośliwą zależność z serwera kontrolowanego przez atakującego.
Eksfiltracja danych : Po uruchomieniu złośliwe oprogramowanie skanuje środowisko programisty w poszukiwaniu adresów e-mail, gromadzi szczegóły środowiska CI/CD, tworzy odciski palców systemu (w tym publiczny adres IP) i wysyła dane na zdalny serwer.
Atakujący może dowolnie modyfikować ładunek, początkowo dostarczając nieszkodliwy kod, aby uniknąć wykrycia, a następnie, gdy pakiet zostanie przyjęty, wdrażając złośliwe aktualizacje.
Wykorzystywanie martwych punktów człowieka i sztucznej inteligencji
Wybór nazw pakietów jest celowy. Aktor zagrożenia wykorzystuje taktykę znaną jako slopsquatting, polegającą na tym, że duże modele językowe (LLM) tworzą halucynacje nieistniejących, ale wiarygodnie brzmiących nazw pakietów. Programiści mogą ufać tym pakietom ze względu na ich realistyczne nazewnictwo, nieświadomi ukrytego zagrożenia.
Jak zauważają badacze, PhantomRaven podkreśla rosnącą wyrafinowanie atakujących:
- Zdalne zależności dynamiczne unikają analizy statycznej.
- Nazwy pakietów generowane przez sztuczną inteligencję wykorzystują zaufanie programistów.
- Skrypty cyklu życia są wykonywane automatycznie, bez konieczności interakcji z użytkownikiem.
Kampania ta pokazuje, w jaki sposób złośliwi cyberprzestępcy znajdują nowe sposoby ukrywania kodu w ekosystemach open source, wykorzystując luki w tradycyjnych narzędziach zabezpieczających.
Dlaczego npm jest głównym celem
Niski poziom tarcia ekosystemu npm w zakresie publikowania pakietów, w połączeniu z automatycznym wykonywaniem skryptów preinstall, install i postinstall, czyni go głównym celem ataku. Atakujący mogą ukrywać złośliwe zachowania w skryptach cyklu życia oprogramowania, często bez wiedzy programisty, co ilustruje potrzebę wzmożonej czujności i stosowania solidnych praktyk bezpieczeństwa w nowoczesnych środowiskach programistycznych.