Cyberbezpieczeństwo

Jak fałszywa wtyczka do IDE okradła dewelopera AI z pół miliona dolarów

Cyberataki, bazujące na złośliwych pakietach open-source, stanowią coraz poważniejsze zagrożenie. Doniesienia o zainfekowanych pakietach w repozytoriach, takich jak PyPI czy npm, pojawiają się niemal codziennie. Mimo to, jak pokazuje ostatni incydent, pakiety open-source wciąż pozostają atrakcyjnym narzędziem dla przestępców, oferującym szybki zysk.

Atak z zaskoczenia

W czerwcu 2025 roku rosyjski deweloper blockchain zwrócił się o pomoc po tym, jak padł ofiarą ataku phishingowego, w wyniku którego stracił około 500 000 dolarów w aktywach kryptowalutowych. Przypadek ten wzbudził szczególne zainteresowanie ze względu na szczegóły: system operacyjny ofiary został zainstalowany zaledwie kilka dni wcześniej, a na komputerze znajdowały się jedynie niezbędne i popularne aplikacje. Deweloper był świadomy ryzyka związanego z transakcjami kryptowalutowymi i stosował darmowe usługi do wykrywania złośliwego oprogramowania, choć nie używał komercyjnego antywirusa.

To skłoniło nas do głębszej analizy zdarzenia. Obraz dysku zainfekowanego systemu dostarczył kluczowych danych.

Podstępne rozszerzenie: podświetlanie składni z ukrytym zagrożeniem

W trakcie analizy plików, w folderze %userprofile%\.cursor\extensions\solidityai.solidity-1.0.9-universal\src\, naszą uwagę przykuł plik extension.js. Badanie jego zawartości jednoznacznie wskazało na złośliwe działanie: kod pobierał i uruchamiał skrypt PowerShell z serwera angelic[.]su. Okazało się, że extension.js był elementem rozszerzenia Solidity Language dla IDE Cursor AI, opartego na Visual Studio Code i przeznaczonego do wspomaganego AI rozwoju. Rozszerzenie, opublikowane w rejestrze Open VSX około dwa miesiące wcześniej, zdążyło zebrać 54 000 pobrań, co już w tamtym momencie wydawało się podejrzane. Opis sugerował liczne funkcje optymalizujące pracę z kodem smart kontraktów Solidity, w tym podświetlanie składni.

Wnikliwa analiza kodu wszystkich wersji rozszerzenia potwierdziła, że było ono fałszywe. Ani podświetlanie składni, ani żadna z deklarowanych funkcji nie została zaimplementowana. Jedynym zadaniem rozszerzenia było pobieranie i uruchamianie złośliwego kodu. Co więcej, odkryliśmy, że przestępcy skopiowali opis złośliwej wtyczki z oficjalnej strony legalnego rozszerzenia, które miało 61 000 pobrań.

Pułapka algorytmu rankingowego

Jakim cudem złośliwe rozszerzenie z mniejszą liczbą pobrań mogło znaleźć się wyżej w wynikach wyszukiwania niż jego legalny odpowiednik? Okazało się, że rejestr Open VSX szereguje wyniki wyszukiwania według trafności, która uwzględnia wiele czynników, takich jak ocena rozszerzenia, data publikacji lub aktualizacji, całkowita liczba pobrań oraz status weryfikacji. W efekcie, nawet rozszerzenie z niewielką liczbą pobrań może znaleźć się na szczycie wyników, jeśli jego wskaźnik trafności jest kompensowany przez niedawną aktualizację. Tak właśnie stało się w tym przypadku: ostatnia aktualizacja fałszywej wtyczki miała miejsce 15 czerwca 2025 roku, podczas gdy legalnego rozszerzenia – 30 maja 2025 roku. To pozwoliło przestępcom skutecznie promować fałszywą wtyczkę w wynikach wyszukiwania. Deweloper, który wpadł w tę pułapkę, otrzymał niesprawne narzędzie, które uznał za błąd i postanowił zbadać później, tymczasem na jego komputerze instalovalo się złośliwe oprogramowanie.

Od skryptów PowerShell do zdalnej kontroli

Po aktywacji złośliwej wtyczki, z serwera angelic[.]su pobrany został skrypt PowerShell. Jego zadaniem było sprawdzenie, czy na komputerze zainstalowane jest oprogramowanie do zdalnego zarządzania ScreenConnect. W przypadku jego braku, pobierany był drugi skrypt PowerShell, który z kolei instalował ScreenConnect. Od tego momentu atakujący mieli pełną kontrolę nad zainfekowanym komputerem.

Dalsza analiza ujawniła, że przestępcy wykorzystali ScreenConnect do wgrania trzech skryptów VBScript (a.vbs, b.vbs, m.vbs). Każdy z nich pobierał skrypt PowerShell z usługi paste.ee, który następnie pobierał obraz z archive[.]org. Z tego obrazu, za pośrednictwem loadera VMDetector, znane w wcześniejszych kampaniach phishingowych, dystrybuowany był końcowy ładunek.

Analiza VBScriptów wykazała, że na zainfekowany komputer pobrano: backdoor Quasar (poprzez a.vbs i b.vbs) oraz stealer, pobierający dane z przeglądarek, klientów e-mail i portfeli kryptowalutowych (poprzez m.vbs). Oba implanty komunikowały się z serwerem C2, co ostatecznie pozwoliło atakującym zdobyć frazy-klucze do portfeli dewelopera i ukraść kryptowaluty.

Nowe złośliwe pakiety i klonowanie nazw

Złośliwa wtyczka szybko zniknęła ze sklepu rozszerzeń, ale przestępcy nie zaprzestali swoich działań. Zaledwie dzień po jej usunięciu, opublikowano kolejny złośliwy pakiet, tym razem dokładnie replikując nazwę oryginalnego, legalnego rozszerzenia – „solidity”. Funkcjonalność fałszywki pozostała niezmieniona. Co więcej, atakujący dążyli do sztucznego zawyżenia liczby pobrań, co miało skłonić użytkowników do zainstalowania złośliwego odpowiednika, który rzekomo pobrano około dwóch milionów razy! W wynikach wyszukiwania Cursor AI, legalne i złośliwe rozszerzenia pojawiały się obok siebie, odpowiednio na siódmej i ósmej pozycji. Nazwy deweloperów były niemal identyczne (juanblanco vs. juanbIanco), a czcionka używana przez Cursor AI sprawiała, że mała litera „l” i wielka litera „I” wyglądały identycznie, co czyniło wybór właściwego rozszerzenia niezwykle trudnym.

Warto również zauważyć, że odkryte rozszerzenia Solidity nie są jedynymi złośliwymi pakietami wykorzystywanymi w tej kampanii. Narzędzie do monitorowania pakietów open-source wykryło złośliwy pakiet npm o nazwie „solsafe”, który do pobierania ScreenConnect wykorzystuje podobną metodologię. W kwietniu i maju 2025 roku zidentyfikowano również trzy złośliwe rozszerzenia Visual Studio Code: solaibot, among-eth i blankebesxstnion, wszystkie o podobnym mechanizmie infekcji. Wszystkie wymienione rozszerzenia podczas działania wykonują te same złośliwe czynności: pobierają skrypty PowerShell o nazwach 1.txt i 2.txt, wykorzystują VBScript z zaciemnionym adresem URL do pobierania ładunku z paste.ee oraz ładują obraz z archive.org zawierający dalsze szkodliwe oprogramowanie. Nasze ustalenia sugerują, że te schematy infekcji są obecnie szeroko wykorzystywane do atakowania deweloperów blockchain, a ich skala może być znacznie większa, niż wskazywały dotychczasowe doniesienia.

Wnioski dla branży

Złośliwe pakiety stanowią poważne zagrożenie dla branży kryptowalut. W obliczu rosnącej zależności od narzędzi open-source pobieranych z repozytoriów, konieczne jest zachowanie nadzwyczajnej ostrożności. Rekomenduje się dokładne weryfikowanie autentyczności pobieranych pakietów. Jeśli rozszerzenie nie działa zgodnie z deklaracjami po instalacji, należy natychmiast podjąć działania i sprawdzić kod źródłowy. Nawet doświadczeni deweloperzy nie powinni zaniedbywać rozwiązań bezpieczeństwa, ponieważ mogą one skutecznie zapobiec atakowi, nawet w przypadku przypadkowej instalacji złośliwego pakietu.

Wskaźniki kompromitacji (IoC)

Hashes złośliwych plików JS:

  • 2c471e265409763024cdc33579c84d88d5aaf9aea1911266b875d3b7604a0eeb
  • 404dd413f10ccfeea23bfb00b0e403532fa8651bfb456d84b6a16953355a800a
  • 70309bf3d2aed946bba51fc3eedb2daa3e8044b60151f0b5c1550831fbc6df17
  • 84d4a4c6d7e55e201b20327ca2068992180d9ec08a6827faa4ff3534b96c3d6f
  • eb5b35057dedb235940b2c41da9e3ae0553969f1c89a16e3f66ba6f6005c6fa8
  • f4721f32b8d6eb856364327c21ea3c703f1787cfb4c043f87435a8876d903b2c

Wskaźniki sieciowe:

  • https://angelic[.]su/files/1.txt
  • https://angelic[.]su/files/2.txt
  • https://staketree[.]net/1.txt
  • https://staketree[.]net/2.txt
  • https://relay.lmfao[.]su
  • https://lmfao[.]su/Bin/ScreenConnect.ClientSetup.msi?e=Access&y=Guest
  • 144.172.112[.]84

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *