
Wprowadzenie do problemu / definicja
Ekosystem rozszerzeń do Visual Studio Code odgrywa dziś kluczową rolę w pracy programistów, administratorów oraz zespołów DevOps. Problem polega na tym, że dodatki instalowane w edytorze często uzyskują szeroki dostęp do lokalnego środowiska pracy, katalogów projektowych i danych uwierzytelniających. To sprawia, że złośliwe rozszerzenia mogą stać się skutecznym narzędziem ataku na łańcuch dostaw oprogramowania.
W opisywanym przypadku cyberprzestępcy wykorzystali zainteresowanie narzędziami dla Solidity, czyli języka używanego do tworzenia smart kontraktów. Fałszywe rozszerzenia podszywające się pod przydatne dodatki deweloperskie zostały przygotowane tak, aby wykradać wrażliwe dane z komputerów ofiar.
W skrócie
Badacze bezpieczeństwa wykryli kampanię złośliwych rozszerzeń VS Code powiązanych z nazwą „Solidity Pro”. Jej celem była kradzież portfeli kryptowalut, kluczy API, tokenów dostępowych, poświadczeń i innych sekretów przechowywanych w środowisku deweloperskim.
- Zidentyfikowano rozszerzenia takie jak helper-beeps.solidity-pro oraz web3devtoolsx.solidity-pro.
- Starsze wersje pobierały zaszyfrowany ładunek w Pythonie z zewnętrznej infrastruktury.
- Nowsze wydania działały jak rozbudowany infostealer.
- Wykradzione dane były eksfiltrowane m.in. przez bota Telegram.
Kontekst / historia
Ataki na programistów nie są nowym zjawiskiem, jednak w ostatnich latach wyraźnie rośnie liczba kampanii wymierzonych w użytkowników narzędzi open source, marketplace’ów rozszerzeń i pakietów używanych w codziennej pracy deweloperskiej. Szczególnie atrakcyjnym celem stają się zespoły Web3, które poza kodem źródłowym przechowują także dostęp do portfeli, usług chmurowych i wrażliwych sekretów operacyjnych.
W tym przypadku napastnicy wykorzystali zaufanie do dodatków związanych z Solidity. Mechanizm wpisuje się w szerszy trend nadużywania reputacji narzędzi deweloperskich w celu uzyskania dostępu do repozytoriów, środowisk CI/CD oraz infrastruktury chmurowej. Tego typu incydenty pokazują, że stacja robocza programisty pozostaje jednym z najcenniejszych punktów wejścia dla atakujących.
Analiza techniczna
Z ustaleń badaczy wynika, że wcześniejsze wersje złośliwych rozszerzeń, od 1.0.0 do linii 2.4.x, wykorzystywały model wieloetapowy. Sam pakiet rozszerzenia wyglądał względnie niegroźnie, natomiast właściwy komponent szkodliwy był pobierany z zewnętrznej infrastruktury opartej na Cloudflare Workers. Następnie uruchamiano lokalnie zaszyfrowany ładunek w Pythonie.
Takie podejście utrudnia analizę statyczną oraz wykrycie zagrożenia podczas przeglądu kodu lub procesu publikacji. Od wersji 3.0.0 operatorzy kampanii przekształcili rozszerzenia w pełnoprawne narzędzie do kradzieży informacji, zdolne do pozyskiwania wielu klas danych jednocześnie.
- tokenów GitHub i GitLab,
- kluczy AWS oraz tokenów sesyjnych,
- tokenów Cloudflare,
- kluczy API używanych w usługach AI,
- tokenów botów Telegram,
- fraz seed i mnemonic,
- danych z portfeli takich jak MetaMask, Phantom, Rabby, Coinbase, Trust i Keplr,
- materiału kryptograficznego Bitcoin, w tym WIF i xprv,
- prywatnych kluczy SSH,
- poświadczeń zapisanych w adresach URL oraz wybranych sekretów powiązanych z MFA i menedżerami haseł.
Autorzy malware zadbali również o unikanie detekcji. Zastosowali silną obfuskację kodu, dzielenie ciągów znaków i ich składanie dopiero w czasie wykonania, a także modyfikowanie nazw metod pomiędzy wydaniami. W niektórych przypadkach pojawiały się także wersje pośrednie, które wyglądały na czyste, budując wiarygodność projektu przed aktywacją złośliwej funkcjonalności.
Szczególnie groźnym elementem była opóźniona aktywacja. Szkodliwy kod mógł uruchomić się dopiero po wielu godzinach lub dniach od instalacji, co utrudniało wykrycie zarówno automatycznym systemom analitycznym, jak i ręcznym testom prowadzonym krótko po wdrożeniu rozszerzenia.
Konsekwencje / ryzyko
Skutki takiego ataku mogą być bardzo poważne, ponieważ kompromitacja nie ogranicza się do jednego hasła czy pojedynczego konta. Zainfekowana stacja robocza programisty może otworzyć drogę do szerszego przejęcia zasobów organizacji.
- utrata środków z portfeli kryptowalut,
- przejęcie dostępu do repozytoriów kodu źródłowego,
- wyciek kluczy chmurowych i kompromitacja infrastruktury,
- nadużycie tokenów API do generowania kosztów lub dalszych ataków,
- eskalacja do środowisk produkcyjnych przez klucze SSH i sekrety CI/CD,
- długotrwała obecność atakującego dzięki wykorzystaniu skradzionych danych w kolejnych etapach operacji.
Dla firm tworzących oprogramowanie Web3 zagrożenie ma wymiar bezpośrednio finansowy. Kradzież seed phrase, prywatnych kluczy czy danych portfeli może skutkować natychmiastową utratą aktywów cyfrowych, a jednoczesne przejęcie dostępu do repozytoriów i chmury zwiększa ryzyko ataku na cały łańcuch dostaw.
Rekomendacje
Rozszerzenia IDE powinny być traktowane jak komponenty wysokiego ryzyka, a nie jedynie wygodne dodatki poprawiające produktywność. Organizacje oraz indywidualni deweloperzy powinni wdrożyć zestaw działań ograniczających ryzyko podobnych incydentów.
- natychmiast usunąć podejrzane rozszerzenia i przeanalizować hosty, na których były instalowane,
- unieważnić oraz wymienić wszystkie tokeny, klucze API, klucze SSH i inne sekrety obecne na potencjalnie zaatakowanych stacjach,
- przenieść dane uwierzytelniające do dedykowanych systemów zarządzania sekretami,
- monitorować nietypowe uruchomienia interpreterów i narzędzi systemowych, takich jak powershell, cmd, cscript, mshta czy curl,
- kontrolować zależności rozszerzeń oraz pakietów npm pod kątem zdalnie pobieranych ładunków i hooków instalacyjnych,
- wprowadzić listy dozwolonych rozszerzeń i formalny proces akceptacji nowych dodatków,
- segmentować środowiska deweloperskie i ograniczać ich dostęp do zasobów produkcyjnych,
- stosować MFA oraz krótkotrwałe tokeny dostępu,
- prowadzić regularny monitoring eksfiltracji danych do zewnętrznych usług komunikacyjnych,
- sprawdzać historię logowań do usług chmurowych, repozytoriów i platform komunikacyjnych po każdym podejrzeniu kompromitacji.
Warto podkreślić, że sama deinstalacja złośliwego rozszerzenia nie rozwiązuje problemu, jeśli dane zostały już wykradzione. Kluczowe znaczenie ma szybka rotacja poświadczeń i pełna analiza skutków incydentu.
Podsumowanie
Kampania związana z fałszywymi rozszerzeniami „Solidity Pro” pokazuje, że środowiska programistyczne pozostają strategicznym celem dla cyberprzestępców. Atakujący łączą dziś obfuskację, opóźnioną aktywację i rozbudowaną kradzież sekretów, aby maksymalizować skuteczność działań i utrudniać wykrycie.
Dla zespołów bezpieczeństwa oznacza to konieczność rozszerzenia ochrony łańcucha dostaw także na warstwę narzędzi deweloperskich. Ścisła kontrola rozszerzeń IDE, monitoring sekretów i szybka reakcja po incydencie stają się niezbędnym elementem nowoczesnej strategii bezpieczeństwa.