Mini Shai-Hulud Worm

Atakujący znany jako TeamPCP jest powiązany z zaawansowaną kampanią ataku na łańcuch dostaw, wymierzoną w powszechnie używane pakiety npm i PyPI związane z systemami TanStack, UiPath, Mistral AI, OpenSearch, Guardrails AI i kilkoma innymi. Operacja, powiązana z rozwijającą się kampanią malware Mini Shai-Hulud, świadczy o znacznej eskalacji nadużyć w łańcuchu dostaw oprogramowania i technik kompromitacji opartych na tożsamości.

Badacze zidentyfikowali, że złośliwe pakiety npm zostały zmodyfikowane w taki sposób, aby zawierały zaciemniony komponent JavaScript o nazwie router_init.js. Ten ładunek profiluje zainfekowane środowiska i wdraża zaawansowanego kradnącego dane uwierzytelniające, atakującego dostawców usług w chmurze, portfele kryptowalut, narzędzia programistyczne AI, platformy komunikacyjne, systemy CI/CD oraz środowiska GitHub Actions. Wykradzione dane są przesyłane głównie do domeny filev2.getsession.org.

Wykorzystanie infrastruktury protokołu sesji (SIP) wskazuje na celową próbę obejścia zabezpieczeń przedsiębiorstwa. Ponieważ domena należy do zdecentralizowanej platformy komunikacyjnej skoncentrowanej na prywatności, jest mniej prawdopodobne, że zostanie zablokowana przez tradycyjne zabezpieczenia sieci. Jako dodatkowa metoda eksfiltracji, zaszyfrowane dane są przekazywane do repozytoriów kontrolowanych przez atakujących za pośrednictwem interfejsu API GitHub GraphQL z wykorzystaniem skradzionych tokenów uwierzytelniających GitHub pod tożsamością autora claude@users.noreply.github.com.

Mechanizmy trwałości i rozszerzenie ochrony przed kradzieżą danych uwierzytelniających

Szkodliwe oprogramowanie wprowadza szereg funkcji utrwalania i nadzoru, zaprojektowanych w celu utrzymania długoterminowego dostępu do zainfekowanych środowisk programistycznych. Mechanizmy utrwalania są wbudowane w Claude Code i Microsoft Visual Studio Code, co pozwala złośliwemu oprogramowaniu przetrwać ponowne uruchomienie systemu i automatycznie uruchamiać się ponownie po otwarciu środowisk programistycznych (IDE).

Dodatkowo wdrożono usługę gh-token-monitor, która stale monitoruje i ponownie eksfiltruje tokeny GitHub. Do zainfekowanych repozytoriów wstrzykiwane są również dwa złośliwe przepływy pracy GitHub Actions. Przepływy te serializują sekrety repozytoriów do formatu JSON i przesyłają dane do zewnętrznego punktu końcowego api.masscan.cloud.

Najnowsze naruszenie bezpieczeństwa TanStack znacząco różni się od wcześniejszych incydentów w łańcuchu dostaw. Zamiast polegać na haczyku preinstalacji, atakujący umieścili złośliwy plik JavaScript bezpośrednio w archiwach tarball, wprowadzając jednocześnie opcjonalną zależność powiązaną z pakietem hostowanym w serwisie GitHub. Zależność ta zawiera hak cyklu życia „prepare”, który wykonuje ładunek za pośrednictwem środowiska uruchomieniowego Bun.

Złośliwe pakiety Mistral AI przyjęły starszą strategię infekcji, modyfikując plik package.json za pomocą haka preinstalacyjnego, który wywołuje plik node setup.mjs. Ten proces pobiera Bun i uruchamia to samo złośliwe oprogramowanie kradnące dane uwierzytelniające.

CVE-2026-45321 i nadużycie zaufanego publikowania

Oficjalnie atak na TanStack został oznaczony numerem CVE-2026-45321 i otrzymał krytyczny wynik CVSS wynoszący 9,6. Śledczy potwierdzili, że atak dotyczył 42 pakietów i 84 wersji w ekosystemie TanStack.

Analiza ujawniła, że naruszenie bezpieczeństwa wynikało z ataku łańcuchowego na GitHub Actions, wykorzystującego wyzwalacz pull_request_target, zatruwanie pamięci podręcznej GitHub Actions oraz ekstrakcję tokenów OIDC z programów uruchamiających GitHub Actions w czasie wykonywania. Atakujący rzekomo przygotowywali złośliwe ładunki za pomocą osieroconych commitów w forkach GitHub, a następnie wstrzykiwali je do archiwum pakietów npm. Następnie atakujący przejęli legalne przepływy pracy TanStack/router, aby opublikować zainfekowane pakiety z prawidłowymi poświadczeniami pochodzenia SLSA.

Ten rozwój sytuacji oznacza historyczną eskalację ataków na łańcuch dostaw oprogramowania. Szkodliwe pakiety posiadały prawidłowe sygnatury pochodzenia SLSA Build Level 3, co czyni go pierwszym udokumentowanym robakiem npm zdolnym do dystrybucji złośliwych pakietów z autentycznymi atestami kompilacji. Kampania złośliwego oprogramowania rozprzestrzeniła się następnie poza TanStack i rozprzestrzeniła się na ekosystemy obsługiwane przez UiPath, DraftLab i innych deweloperów.

Operacja ta w znacznym stopniu nadużywa zaufanych przepływów pracy publikacji. Zamiast bezpośrednio kraść dane uwierzytelniające npm, kontrolowany przez atakującego kod, działający w zaufanych potokach CI/CD, wykorzystywał uprawnienia OIDC do generowania krótkotrwałych tokenów publikacji podczas procesu kompilacji. Umożliwiło to publikację złośliwych pakietów za pośrednictwem legalnych potoków publikacji z pominięciem konwencjonalnych zabezpieczeń uwierzytelniania.

Samonapędzające się zachowanie robaka budzi alarm

Jednym z najniebezpieczniejszych aspektów kampanii Mini Shai-Hulud jest jej model propagacji przypominający robaka. Szkodliwe oprogramowanie aktywnie poszukuje publikowalnych tokenów npm skonfigurowanych z parametrem bypass_2fa=true, enumeruje pakiety zarządzane przez zainfekowanego programistę i wymienia tokeny GitHub OIDC na tokeny publikacyjne dla każdego pakietu. Mechanizm ten umożliwia złośliwemu oprogramowaniu boczne rozprzestrzenianie się w ekosystemach pakietów bez uciekania się do tradycyjnych technik kradzieży danych uwierzytelniających.

Atak wykorzystał również konfiguracje zaufania na poziomie repozytorium w modelu zaufanego wydawcy OIDC serwisu GitHub. Ponieważ zaufanie było szeroko przyznawane na poziomie repozytorium, a nie ograniczone do chronionych gałęzi i określonych plików przepływów pracy, złośliwe wykonania przepływów pracy wywołane przez porzucone zatwierdzenia mogły żądać legalnych tokenów publikacji npm.

Kolejną niepokojącą funkcją jest wdrożenie „wyłącznika bezpieczeństwa”. Szkodliwe oprogramowanie instaluje skrypt powłoki, który co 60 sekund wielokrotnie sprawdza punkt końcowy api.github.com/user, aby ustalić, czy utworzone przez atakującego tokeny npm pozostają aktywne. Tokeny te noszą groźny opis IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner.

Jeśli obrońcy unieważnią token za pośrednictwem pulpitu npm, złośliwe oprogramowanie uruchomi destrukcyjną procedurę, wykonując polecenie rm -rf ~/, skutecznie przekształcając infekcję w złośliwe oprogramowanie typu wiper. To agresywne zachowanie wskazuje na znaczną ewolucję taktyk operacyjnych TeamPCP i świadczy o coraz większym wyrafinowaniu metod przymusowego utrzymywania danych. Zespołom ds. bezpieczeństwa zaleca się zatem izolowanie i tworzenie obrazów zainfekowanych systemów przed unieważnieniem naruszonych danych uwierzytelniających npm.

Dotknięte pakiety i rosnący wpływ na ekosystem

Kampania dotknęła ponad 170 pakietów w npm i PyPI, co łącznie odpowiada za ponad 518 milionów pobrań. Śledczy zidentyfikowali również co najmniej 400 repozytoriów utworzonych przy użyciu skradzionych danych uwierzytelniających, wszystkie zawierające frazę „Shai-Hulud: Here We Go Again”.

Pakiety objęte akcją obejmują:

guardrails-ai@0.10.1 (PyPI)
mistralai@2.4.6 (PyPI)
@opensearch-project/opensearch@3.5.3, 3.6.2, 3.7.0, 3.8.0
@squawk/mcp@0.9.5
@squawk/weather@0.5.10
@squawk/flightplan@0.5.6
@tallyui/connector-medusa@1.0.1, 1.0.2, 1.0.3
@tallyui/connector-vendure@1.0.1, 1.0.2, 1.0.3

Szkodliwe oprogramowanie wykorzystuje również wiele redundantnych kanałów eksfiltracji. Oprócz infrastruktury protokołu sesyjnego (SIP) i martwych punktów dostępu GitHub, skradzione dane uwierzytelniające są przesyłane przez domenę git-tanstack.com, która została zhakowana.

Oprogramowanie złośliwe PyPI wprowadza destrukcyjną logikę geofencingową

Warianty złośliwego oprogramowania opartego na Pythonie, powiązane ze złośliwymi pakietami Mistral AI i Guardrails AI, znacząco różnią się od ładunków JavaScript dystrybuowanych za pośrednictwem npm. Zainfekowany pakiet mistralai PyPI pobiera program wykradający dane uwierzytelniające ze zdalnego hosta 83.142.209.194.

Badacze odkryli, że złośliwe oprogramowanie w Pythonie zawiera logikę uwzględniającą dany kraj, zaprojektowaną w celu uniknięcia uruchomienia w środowiskach rosyjskojęzycznych. Zawiera również mechanizm destrukcyjny z geofencingiem, który zwiększa prawdopodobieństwo wykonania polecenia rm -rf / do 6, jeśli zainfekowany system znajduje się w Izraelu lub Iranie.

To zachowanie jest niepokojącym przykładem ewolucji w kierunku wdrażania destrukcyjnego ładunku uwzględniającego regiony w ekosystemach pakietów open source.

Rosnące zagrożenie atakami na łańcuch dostaw opartymi na tożsamości

Kampania Mini Shai-Hulud odzwierciedla szerszą transformację współczesnych ataków na łańcuchy dostaw. Zamiast koncentrować się wyłącznie na kompromitacji pakietów, atakujący coraz częściej atakują zaufane tożsamości CI/CD, przepływy pracy w obszarze publikacji oraz chmurowe systemy automatyzacji.

Gdy atakujący uzyskają dostęp do infrastruktury publikowania oprogramowania, sam proces rozwoju oprogramowania staje się mechanizmem dystrybucji złośliwego oprogramowania. Ponieważ wiele złośliwych działań jest realizowanych za pośrednictwem legalnych przepływów pracy, zaufanych atestów i autentycznych systemów publikacji, tradycyjne mechanizmy bezpieczeństwa mogą nie być w stanie zidentyfikować złośliwego zachowania.

Do najważniejszych cech definiujących tę nową generację ataków na łańcuchy dostaw należą:

  • Nadużywanie zaufanych publikacji i mechanizmów wymiany tokenów OIDC
  • Propagacja poprzez legalne przepływy pracy CI/CD i systemy kompilacji
  • Wykorzystanie ważnych poświadczeń SLSA w celu ukrycia złośliwych pakietów
  • Wielokanałowe operacje eksfiltracji i utrwalania danych uwierzytelniających
  • Niszczycielskie mechanizmy odwetowe mające na celu zastraszenie obrońców

Rozszerzenie kampanii na narzędzia AI, automatyzację przedsiębiorstw, infrastrukturę wyszukiwania, rozwój front-endu, narzędzia lotnicze oraz ekosystemy CI/CD pokazuje, jak głęboko powiązane stały się łańcuchy dostaw oprogramowania. Monitorowanie zachowań podczas instalacji pakietów i wykonywania kompilacji ma obecnie coraz większe znaczenie dla wykrywania zagrożeń, które na pierwszy rzut oka wydają się uzasadnione.

Popularne

Najczęściej oglądane

Ładowanie...