Powrót do strony głównej

GlassWorm: Zig-dropper w WakaTime infekuje IDE

Kampania GlassWorm ewoluowała do używania binarnych Zig w fałszywych rozszerzeniach WakaTime i autoimport. Atak infekuje wszystkie VS Code-kompatybilne IDE na maszynie, omijając piaskownicę JS. Zalecenia dotyczące wykrywania i oczyszczania.

Zig-atak GlassWorm: wszystkie Twoje IDE są zagrożone
Advertisement 728x90

GlassWorm: nowy, natywny dropper w Zig zakaża wszystkie edytory VS Code

Nowa faza kampanii GlassWorm wykorzystuje fałszywe rozszerzenie WakaTime w Open VSX do wdrożenia natywnego binarku w języku Zig. Kod ten przekracza granice JS-sandboxa, skanuje system i instaluje szkodliwy kod we wszystkich IDE kompatybilnych z VS Code — od VS Code po Cursor i Positron.

Badacze z Aikido Security odkryli rozszerzenie code-wakatime-activity-tracker, identyczne z legalnym WakaTime, ale z modyfikowaną funkcją activate(). Ta funkcja ładuje plik binarny win.node (Windows) lub mac.node (macOS), który uruchamia pełny cykl infekcji.

Mechanizm uruchomienia

W funkcji activate() następuje require natywnego dodatku:

Google AdInline article slot
const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();

Binarki to native addons Node.js (DLL PE32+ na Windows, Mach-O na macOS dla x86_64/arm64), skompilowane w języku Zig. Inżynierują się w środowisko Node z uprawnieniami systemowymi, obejmując JS-sandbox. Symbole debugowe w wersji macOS wskazują na projekt /Users/davidioasd/Downloads/vsx_installer_zig.

Następnie binarka przegląda ścieżki do IDE:

  • Windows: %LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd
  • %LOCALAPPDATA%\Programs\Cursor\resources\app\bin\cursor.cmd
  • Podobnie dla VS Code Insiders, Windsurf, VSCodium, Positron.

Na macOS — /Applications/*.app dla tych samych edytorów. Jeśli na maszynie znajduje się kilka IDE, wszystkie są skompromitowane.

Google AdInline article slot

Druga faza: podmiana autoimportu

Binarka pobiera plik .vsix floktokbok.autoimport z GitHub Releases (klon steoates.autoimport z ponad 5 milionami instalacji). Instalacja przez CLI każdej IDE:

cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"

Po instalacji cleanupVsix() usuwa ślady. Drugi dropper pomija lokalizacje rosyjskie, używa blockchaina Solana do C2 (adres z transakcji portfela). Exfiltruje dane poufne, instaluje RAT oraz Chrome-infostealer do zbierania ciasteczek i logowania klawiszy.

Zalety i wady ataku:

Google AdInline article slot
  • Zalety: kod natywny nie jest widoczny w DevTools; C2 na Solanie zapewnia odporność na blokady domen.
  • Wady: ciągi binarne są statyczne (aż do ponownej kompilacji); ograniczone do Windows i macOS.

Ewolucja GlassWorm

Kampania trwa od marca 2025: od npm z payloadem Unicode po GitHub i Marketplace VS Code. Kluczowy przełom — dodatki w Zig zamiast JS, co wymaga analizy na poziomie systemu operacyjnego. Zainfekowanych zostało setki projektów.

Indykatory kompromitacji

Rozszerzenia:

  • specstudio.code-wakatime-activity-tracker
  • floktokbok.autoimport

SHA-256 binarek:

  • win.node: 2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
  • mac.node: 112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44

ciągi tekstowe: vsx_installer_zig, davidioasd.

Co ważne

  • Natywne dodatki w Zig obchodzą analizę JS; monitoruj pliki .node/.dll w rozszerzeniach.
  • Infekcja łańcuchowa: jedno rozszerzenie kompromituje wszystkie forki VS Code na maszynie.
  • C2 przez Solana: blokada domen bezcelowa — potrzebny monitoring blockchaina.
  • Pominięcie rosyjskiej lokalizacji — sygnał celowej akcji; obracaj klucze przy wykryciu.
  • Profilaktyka: sprawdzaj autora i liczbę instalacji; skanuj foldery EDR z rozszerzeniami.

Działania czyszczenia

  • Sprawdź rozszerzenia we wszystkich IDE (VS Code, Cursor itp.).
  • Usuń podejrzane; obróć klucze SSH, tokeny (npm, GitHub PAT, AWS).
  • Oczyść Chrome z nieznanych rozszerzeń, wyloguj się wszędzie.
  • Wprowadź białą listę rozszerzeń i EDR dla dodatków natywnych.

— Editorial Team

Advertisement 728x90

Czytaj dalej