W ostatnich tygodniach wykryto szerzącą się kampanię złośliwego oprogramowania, która zainfekowała setki pakietów oprogramowania w głównych rejestrach open-source. Cyberprzestępcy ukryli w nich kod kradnący dane uwierzytelniające, który trafił do narzędzi developerskich pobieranych miliony razy tygodniowo.
Atak, określany mianem „Mini Shai-Hulud”, dotknął między innymi popularne biblioteki takie jak TanStack, UiPath oraz MistralAI. Sam pakiet React Router od TanStack jest pobierany ponad 12 milionów razy tygodniowo, co stawia złośliwy kod głęboko w łańcuchu dostaw nowoczesnych aplikacji enterprise.
W oficjalnym oświadczeniu przedstawiciele TanStack poinformowali, że zespoły bezpieczeństwa usunęły wszystkie zainfekowane wersje pakietów z rejestru. Mimo że nie ma dowodów na kradzież haseł rejestru, eksperci zalecają wszystkim, którzy pobrali podejrzane narzędzia w poniedziałek, natychmiastową zmianę wszystkich powiązanych haseł – w tym do Amazon Web Services, Google Cloud oraz GitHub.
Incydent ujawnia systemową lukę w automatycznym publikowaniu oprogramowania. Zainfekowane aktualizacje zdołały ominąć uwierzytelnianie dwuskładnikowe i posiadały kryptograficznie ważne podpisy pochodzenia. Te podpisy potwierdzały, że pakiety pochodziły z właściwych potoków CI/CD, jednak nie wykryły manipulacji samymi potokami, które autoryzowały złośliwy kod.
Badacze bezpieczeństwa przypisują atak grupie TeamPCP – cyberprzestępcom specjalizującym się w atakach na łańcuch dostaw i infrastrukturę chmurową, w tym środowiska Docker i Kubernetes. Grupa, podejrzewana o wcześniejsze opracowanie Shai Hulud, potrafi ukrywać złośliwe oprogramowanie w zaufanych aktualizacjach, infekując tysiące firm jednocześnie bez wzbudzania podejrzeń systemów ochrony.
Członkowie TeamPCP słyną z zaawansowanych technik zacierania śladów, takich jak maskowanie kradzionych danych jako anonimowego ruchu sieciowego, oraz agresywnych taktyk wymuszeniowych. Hakerzy grożą całkowitym usunięciem danych ofiar w przypadku prób usunięcia ich dostępu do systemów.
Mechanizm ataku: jak działał „Mini Shai-Hulud”
Atakujący uruchomili zautomatyzowany proces wydania przy użyciu tzw. „porzuconego commita” – kodu przesłanego do forka repozytorium bez odpowiadającej gałęzi. Wykorzystali przy tym zbyt szerokie uprawnienia w przepływach pracy GitHub Actions. Złośliwe oprogramowanie zostało dostarczone za pośrednictwem ukrytej zależności, która pobrała 2,3-megabajtowy, silnie zaciemniony payload, podszywający się pod moduł inicjalizacyjny.
Po uruchomieniu malware wykorzystuje Bun – wysokowydajny silnik do uruchamiania JavaScript – do systematycznego kradzieży kluczy bezpieczeństwa i haseł. Celuje w wysokopoziomową infrastrukturę chmurową, w tym AWS, Google Cloud Platform, Kubernetes oraz HashiCorp Vault. Kod został zaprojektowany tak, aby infiltruje wysoce zabezpieczone sieci chmurowe Amazon, jednocześnie przeszukując lokalny komputer developera w poszukiwaniu tajnych plików i kluczy SSH służących do odblokowywania innych systemów korporacyjnych.
Działając jak samorozprzestrzeniający się robak, malware publikuje kopie siebie w innych projektach, podszywając się pod zautomatyzowane commity od Anthropic Claude bot. W ramach dodatkowej próby wymuszenia generuje nowy token rejestru zawierający notkę okupową w opisie, grożąc całkowitym wymazaniem komputera ofiary w przypadku próby cofnięcia skompromitowanego dostępu.
Ograniczony zasięg, ale poważne zagrożenie
Pomimo zaawansowanych mechanizmów, badacze z firmy Aikido Security nie zaobserwowali szerokiego rozprzestrzeniania się malware.
„Zaobserwowaliśmy bardzo ograniczone rozprzestrzenianie się w społeczności”– powiedział Charlie Eriksen, ekspert ds. bezpieczeństwa aplikacji. Mimo to incydent stanowi poważne ostrzeżenie dotyczące podatności łańcucha dostaw oprogramowania na manipulacje i konieczności wzmocnienia zabezpieczeń w procesach automatycznego publikowania pakietów.