Baza danych zagrożeń Złośliwe oprogramowanie Oprogramowanie złośliwe CanisterWorm

Oprogramowanie złośliwe CanisterWorm

Wyrafinowany atak na łańcuch dostaw, początkowo wymierzony w powszechnie używany skaner Trivy, przerodził się w szerszy atak, który dotknął wiele pakietów npm. Podejrzewa się, że sprawcy ataku wdrożyli wcześniej nieudokumentowanego, samonapędzającego się robaka o nazwie CanisterWorm, co znacznie zwiększyło skalę i wpływ ataku.

Nazwa złośliwego oprogramowania wywodzi się od wykorzystania przez nie kanistra protokołu internetowego (ICP) – odpornych na manipulacje inteligentnych kontraktów hostowanych na zdecentralizowanym blockchainie – jako części infrastruktury dowodzenia. Jest to pierwszy publicznie udokumentowany przypadek wykorzystania kanistrów ICP do przechwytywania punktów końcowych systemu dowodzenia i kontroli (C2), co wprowadza nowatorską i odporną taktykę, która komplikuje tradycyjne metody łagodzenia skutków ataku.

Zagrożone pakiety i początkowy wektor dostępu

Atak dotknął wiele pakietów npm w różnych zakresach, co pokazuje szeroki zasięg w łańcuchu dostaw oprogramowania:

  • 28 pakietów w zakresie @EmilGroup
  • 16 pakietów w zakresie @opengov
  • Dodatkowe pakiety, w tym @teale.io/eslint-config, @airtm/uuid-base32 i @pypestream/floating-ui-dom

Ta kampania jest następstwem ataku na dane uwierzytelniające, który umożliwił atakującym publikację złośliwych wersji narzędzi powiązanych z Trivy, a konkretnie trivy, trivy-action i setup-trivy, które zawierały wbudowaną funkcjonalność kradzieży danych uwierzytelniających. Uważa się, że operacja jest powiązana z grupą cyberprzestępców skoncentrowaną na chmurze obliczeniowej, zidentyfikowaną jako TeamPCP.

Przepływ pracy związany z infekcją i zdecentralizowana infrastruktura dowodzenia

Łańcuch infekcji rozpoczyna się podczas instalacji pakietu npm, gdzie skrypt postinstall uruchamia moduł ładujący. Moduł ten wdraża opartą na Pythonie tylną furtkę, która ma komunikować się z kontenerem ICP. Pojemnik działa jak mechanizm rozwiązywania martwych adresów (dead drop), zwracając adres URL, który kieruje zainfekowany system do pobrania i uruchomienia ładunku kolejnego etapu.

Zdecentralizowany charakter infrastruktury ICP zapewnia atakującym znaczną przewagę. Ponieważ kontener może dynamicznie aktualizować adres URL ładunku, atakujący mogą dystrybuować nowe złośliwe pliki binarne we wszystkich zainfekowanych systemach bez modyfikowania samego wdrożonego złośliwego oprogramowania. Taka architektura znacznie utrudnia również usuwanie zagrożeń.

Mechanizm trwałości i techniki skradania się

Trwałość osiąga się poprzez stworzenie usługi użytkownika systemd skonfigurowanej do automatycznego ponownego uruchamiania złośliwego procesu. Kluczowe cechy to:

  • Automatyczne ponowne uruchomienie wymuszone za pomocą dyrektywy Restart=always
  • 5-sekundowe opóźnienie przed ponownym uruchomieniem tylnego wejścia w przypadku jego zamknięcia
  • Maskowanie usługi jako legalnego oprogramowania do monitorowania PostgreSQL pod nazwą „pgmon”

Takie podejście zapewnia ciągłość działania, minimalizując jednocześnie prawdopodobieństwo wykrycia poprzez integrację z legalnymi usługami systemowymi.

Adaptacyjne dostarczanie ładunku i zachowanie wyłącznika awaryjnego

Tylne wejście okresowo komunikuje się z kontenerem ICP co 50 minut, używając fałszywego identyfikatora użytkownika przeglądarki, aby uniknąć podejrzeń. Zwrócony adres URL określa następną akcję:

  • Jeśli adres URL wskazuje na prawidłowy ładunek, złośliwe oprogramowanie go pobiera i uruchamia
  • Jeśli adres URL zawiera „youtube.com”, złośliwe oprogramowanie przechodzi w stan uśpienia

Mechanizm ten skutecznie działa jak zdalny wyłącznik awaryjny. Przełączając adres URL kontenera między nieszkodliwym linkiem YouTube a złośliwym oprogramowaniem, atakujący może aktywować lub dezaktywować złośliwe oprogramowanie we wszystkich zainfekowanych systemach. Co istotne, wcześniej uruchomione oprogramowanie nadal działa w tle, ponieważ złośliwe oprogramowanie nie kończy wcześniejszych procesów.

Podobny wyłącznik awaryjny oparty na YouTube zaobserwowano również w zmodyfikowanym pliku binarnym Trivy (wersja 0.69.4), który komunikuje się z tą samą infrastrukturą ICP za pomocą osobnego droppera Pythona.

Możliwości robaków i automatyczna propagacja

Początkowo propagacja opierała się na ręcznie wykonywanym skrypcie o nazwie „deploy.js”, który wykorzystywał skradzione tokeny uwierzytelniające npm do wstrzykiwania złośliwego kodu do dostępnych pakietów. Skrypt ten nie był uruchamiany podczas instalacji, lecz służył jako samodzielne narzędzie rozszerzające zasięg ataku.

Kolejne warianty CanisterWorma znacznie ewoluowały. W nowszych wersjach, takich jak te dostępne w pliku @teale.io/eslint-config (wersje 1.8.11 i 1.8.12), robak włącza mechanizm samorozprzestrzeniania się bezpośrednio do procesu instalacji pakietu. Zaktualizowany mechanizm obejmuje:

  • Wyodrębnianie tokenów uwierzytelniania npm z zainfekowanego środowiska
  • Natychmiastowe wykonanie procedury propagacji jako oddzielonego procesu w tle
  • Automatyczne publikowanie zagrożonych pakietów przy użyciu zebranych danych uwierzytelniających

Zmiana ta sprawia, że atak zmienia się z ręcznie obsługiwanej kampanii w całkowicie autonomiczny system propagacji.

Eskalacja w kierunku zagrożenia dla samowystarczalnego łańcucha dostaw

Wprowadzenie zautomatyzowanego gromadzenia tokenów i samoistnej propagacji oznacza krytyczną eskalację. Każda stacja robocza dewelopera lub potok CI/CD, który instaluje zainfekowany pakiet i zawiera dostępne dane uwierzytelniające npm, staje się aktywnym węzłem propagacji. Powoduje to efekt kaskadowy, w którym zainfekowane pakiety prowadzą do dalszych infekcji w zależnościach podrzędnych.

Na tym etapie zagrożenie wykracza poza pojedyncze włamanie na konto i przekształca się w samowystarczalny ekosystem dystrybucji złośliwego oprogramowania. Każde nowo zainfekowane środowisko przyczynia się do rozprzestrzeniania się, umożliwiając wykładniczy wzrost i znacznie utrudniając jego powstrzymanie.

Obawy te pogłębia fakt, że artefakty testowe, takie jak ładunek zastępczy („hello123”), wskazują, że atakujący aktywnie udoskonalają i weryfikują łańcuch ataku przed wdrożeniem w pełni operacyjnych złośliwych plików binarnych.

Popularne

Najczęściej oglądane

Ładowanie...