Technologia

GlassWorm przez rok ukrywał się w rozszerzeniach VS Code, zanim go rozbito

Susan Hill

Przez ponad rok część programistów budujących aplikacje w twoim telefonie pracowała, nie wiedząc o tym, dla kogoś innego. Złośliwy program o nazwie GlassWorm tkwił w rozszerzeniach do Visual Studio Code, najczęściej używanego edytora kodu na świecie, oraz w pakietach open source, które ci programiści codziennie wciągają do swoich projektów. Zbierał ich hasła, przejmował konta i używał ich, by zaszczepiać się w jeszcze większej liczbie programów. CrowdStrike, Google i Shadowserver Foundation właśnie przecięły jego nici.

To dotyczy nawet ludzi, którzy nigdy nie otworzyli edytora kodu, bo łańcuch dostaw oprogramowania to właśnie to, łańcuch. Komunikator w telefonie, aplikacja banku, gra na konsoli, wszystkie opierają się na tysiącach małych klocków open source pisanych i utrzymywanych przez innych. Zatruj jeden z tych klocków, a trucizna może spłynąć w dół aż do gotowych produktów używanych przez miliony. GlassWorm został zbudowany tak, by płynąć z tym prądem niezauważony.

Wyróżniał go sposób ukrywania się. Jego operatorzy zapisywali złośliwe instrukcje niewidocznymi znakami Unicode, kodem, który w edytorze wygląda jak puste miejsce, więc programista sprawdzający plik nie widział nic podejrzanego. Badacze z Koi Security, którzy pierwsi zidentyfikowali kampanię, nazwali go pierwszym robakiem zdolnym samodzielnie rozprzestrzeniać się przez rozszerzenia edytorów kodu. Każda zarażona maszyna stawała się punktem startowym dla kolejnej.

Większość ataków na łańcuch dostaw to szybkie uderzenie: zatruty pakiet zostaje znaleziony, wycofany i naprawiony w ciągu kilku dni. GlassWorm był zbudowany na dłuższą metę. Ponieważ sam kradł poświadczenia potrzebne do rozprzestrzeniania się, mógł zaszczepiać się ponownie długo po usunięciu dowolnego rozszerzenia, i tak jedna operacja sięgnęła setek projektów i dziesiątek tysięcy pobrań w ciągu ponad roku.

Drogi infekcji były zwykłą instalacją współczesnej pracy nad oprogramowaniem. Operatorzy wrzucali spreparowane rozszerzenia do Open VSX, sklepu zasilającego VS Code i jego kuzynów Cursor, Windsurf, Positron i VSCodium, przebrane za nieszkodliwe narzędzia, jak liczniki czasu czy formatery kodu. Przemycali zmieniony kod do pakietów npm i indeksu Pythona przez skrypty instalacyjne, które uruchamiają się same, a używając poświadczeń zabranych wcześniejszym ofiarom, wymuszali złośliwe zmiany w głównych gałęziach ponad 300 repozytoriów na GitHubie. Gdy znalazł się już na maszynie, GlassWorm szukał kluczy: tokenów npm, loginów GitHub, tokenów publikacji pozwalających wgrywać rozszerzenia oraz portfeli kryptowalut. Zamieniał zarażone komputery w serwery przekaźnikowe dla innego przestępczego ruchu, a w niektórych przypadkach instalował ukryte oprogramowanie zdalnego dostępu, które dawało operatorom podgląd ekranu na żywo.

Rozbicie go wymagało uderzenia w to, jak operatorzy utrzymywali kontakt ze swoimi maszynami, a tu GlassWorm został zaprojektowany, by przetrwać. Zamiast polegać na jednym serwerze sterującym, który dałoby się odłączyć, używał czterech kanałów naraz. Jeden szyfrował instrukcje wewnątrz transakcji w blockchainie Solana, publicznym rejestrze zaprojektowanym tak, by był trwały i poza zasięgiem. Drugi ukrywał konfigurację w sieci wymiany plików BitTorrent. Trzeci wciskał zakodowane adresy do tytułów wydarzeń w Google Calendar. Czwarty był zwykłym wynajętym serwerem. Zespół Counter Adversary Operations z CrowdStrike, razem z Google i Shadowserver, przeciął cały ten zestaw w jednym skoordynowanym uderzeniu.

Przecięcie linek to nie to samo co oczyszczenie rany. Odcięcie kanałów uniemożliwia operatorom wysyłanie nowych rozkazów i świeżych ładunków, ale w żaden sposób nie usuwa GlassWorma z maszyn, które już kontroluje, a każde już skradzione hasło pozostaje skradzione. To zresztą nie pierwsze zakłócenie kampanii. Po tym, jak Koi Security ją ujawniło, GlassWorm wrócił, raz z dwoma tuzinami nowych złośliwych rozszerzeń, a miesiące później z kolejnymi dziesiątkami. Kanał oparty na blockchainie, który badacze opisywali jako niemożliwy do rozbicia, właśnie został rozbity, ale stojący za nim ludzie wielokrotnie pokazali, że odbudowują.

Śledczy sądzą, że operatorzy są prawdopodobnie w Rosji. Program sprawdza język i strefę czasową komputera przy starcie i po cichu się zamyka, jeśli trafi na system w Rosji lub w sąsiednim kraju z dawnego bloku sowieckiego, znany podpis grup przestępczych działających z tego regionu i omijających lokalne ofiary. CrowdStrike podsumował tę zmianę bez ogródek: napastnicy nie celują już tylko w produkty, celują w programistów, którzy je tworzą. Shadowserver Foundation zaczęła powiadamiać dotknięte organizacje, by oczyściły swoje systemy i zmieniły wszystkie poświadczenia, które mogły wyciec, a dla wszystkich niżej w łańcuchu prawdziwa praca zaczyna się teraz, gdy zespoły sprawdzają, jakie rozszerzenia i pakiety zainstalowały od początku 2025 roku. Infrastruktura jest wygaszona. Sprzątanie ledwie się zaczęło.

Dyskusja

Jest 0 komentarzy.