Ponad 300 pakietów JavaScript zainfekowanych przez samoreplikującego się robaka

Ponad 300 pakietów JavaScript zainfekowanych przez samoreplikującego się robaka

Ekosystem open source ponownie znalazł się pod ostrzałem. Po niedawnym incydencie związanym z biblioteką tinycolor, badacze bezpieczeństwa z firmy Socket odkryli, że do rejestru npm przedostał się samoreplikujący się robak. Zainfekował on ponad 300 pakietów, wykorzystując mechanizmy automatycznego powielania i publikacji nowych wersji bibliotek.

Atakujący zastosowali technikę opartą na funkcji NpmModule.updatePackage, która została wstrzyknięta do przejętych pakietów. Procedura infekcji obejmowała pobranie archiwum tarball nowej ofiary, modyfikację pliku package.json, dodanie złośliwego skryptu bundle.js, ponowne spakowanie archiwum i publikację w rejestrze npm przy użyciu skradzionego tokena. Dzięki temu robak mógł szybko i autonomicznie rozszerzać swój zasięg.

Kluczowym elementem była zdolność złośliwego oprogramowania do wyszukiwania zmiennych środowiskowych, takich jak NPM_TOKEN. Pozyskane dane uwierzytelniające umożliwiały dalsze rozprzestrzenianie infekcji poprzez kolejne przejęte konta.

Naruszone konta i pakiety

Według Socket, wśród przejętych znalazło się konto należące do CrowdStrike. Część jego bibliotek opublikowanych w rejestrze została zmodyfikowana i zawierała złośliwy kod. Firma szybko usunęła problematyczne wersje i zmieniła dane dostępowe, jednak atak ukazał skalę ryzyka, z jakim musi mierzyć się społeczność open source.

Wśród popularnych paczek objętych atakiem znalazły się między innymi @ctrl/tinycolor, ngx-toastr, @crowdstrike/glide-core, angulartics2, eslint-config-crowdstrike czy @nativescript-community/ui-collectionview. Lista jest jednak znacznie dłuższa, a proces identyfikacji nadal trwa.

Shai-Hulud – robak z pustyni kodu

Kampania została nazwana Shai-Hulud, co jest bezpośrednim nawiązaniem do gigantycznych robaków piaskowych z powieści Diuna. Nazwę zaczerpnięto z plików workflow shai-hulud.yaml znalezionych w złośliwym oprogramowaniu. Robak wykorzystywał dodatkowo legalne narzędzie TruffleHog do wyszukiwania i walidacji danych uwierzytelniających przed ich przesłaniem do zewnętrznego webhooka.

Konsekwencje dla programistów

Skala ataku sprawia, że każdy użytkownik ekosystemu npm powinien sprawdzić swoje projekty i upewnić się, czy nie korzystają one z naruszonych wersji bibliotek. Zainfekowane paczki mogą nie tylko zawierać szkodliwy kod, ale również prowadzić do wycieku danych uwierzytelniających.

Zaleca się natychmiastowe usunięcie podejrzanych zależności, przywrócenie do sprawdzonych wersji oraz rotację wszystkich tokenów i kluczy, które mogły zostać ujawnione. Dotyczy to nie tylko tokenów npm, ale także danych dostępowych GitHub, kluczy SSH, a także poświadczeń do chmur AWS, Google Cloud i Azure.

Obserwuj nas w Google News

Pokaż / Dodaj komentarze do: Ponad 300 pakietów JavaScript zainfekowanych przez samoreplikującego się robaka

 0
Kolejny proponowany artykuł
Kolejny proponowany artykuł
Kolejny proponowany artykuł
Kolejny proponowany artykuł