Jak oznaczać treści AI, by nie dostać kary? Zapisz się na bezpłatne szkolenie o AI Act

Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!

17 sierpnia startuję Dni Otwarte Sekurak.Academy. Dołącz bezpłatnie 🙂

 

Kampania fałszywych rozszerzeń VPN dla Chrome. Część podszywała się pod znane marki

19 sierpnia 2026, 01:48 | Aktualności | 0 komentarzy

Badacze z Socket zidentyfikowali kampanię ponad 700 darmowych wtyczek do przeglądarki Chrome. Były to narzędzia VPN i proxy opublikowane przy użyciu co najmniej 40 kont deweloperskich. Część z nich (274) podszywa się pod znane marki VPN. Analiza kodu 525 z nich wykazała, że prawie wszystkie kierują ruch z przeglądarki użytkownika przez tę samą infrastrukturę. Wtyczki dystrybuowane w ramach kampanii zgromadziły ponad 75 tys. instalacji.

TLDR:

  • Badacze z Socket zidentyfikowali kampanię ponad 700 darmowych rozszerzeń VPN i proxy dla Chrome, z których 274 podszywały się pod 66 znanych marek VPN.
  • 520 z 522 przeanalizowanych rozszerzeń kierowało cały ruch przeglądarki przez tę samą infrastrukturę SOCKS5, dając jej operatorowi możliwość obserwowania m.in. odwiedzanych adresów, TLS SNI i ruchu HTTP.
  • Badacze powiązali rozszerzenia z jedną operacją, m.in. przez wspólną infrastrukturę, dane buildów, identyfikatory Yandex Metrica i nazwę Myxa VPN.
  • Google usunęło 221 z 737 rozszerzeń objętych kampanią.

Rozszerzenia są skierowane do rosyjskojęzycznych użytkowników, którzy chcą uzyskać dostęp do usług zablokowanych w Rosji (np. Instagram, ChatGPT i YouTube). Część z nich ma nazwy lub opisy zapisane cyrylicą, występują w nich także nazwy zablokowanych usług w listingu.

Opisy obiecują ukrycie adresu IP i ochronę ruchu. Jeden z nich zawarty w pliku manifest wtyczki hfanmgjobgojpieocfemecgcgglmgpff zawiera:

{
  "description": "Скрывает IP и защищает данные, подходит для любых устройств и сайтов. Рекомендовано Юрием Дудём."
}

Listing 1 – fragment manifestu jednej z wtyczek, źródło: socket.dev

Można to przetłumaczyć jako “Ukrywa IP i chroni dane, odpowiednie dla dowolnych urządzeń i stron. Polecane przez Jurija Duda”. Jurij Dud jest rosyjskim dziennikarzem, jednak badacze nie znaleźli żadnego dowodu na promowanie przez niego rozpowszechnionych wtyczek.

Część rozszerzeń podszywa się pod 66 prawdziwych marek – w tym Proton VPN, NordVPN, Surfshark, AdGuard VPN, Browsec, ExpressVPN, CyberGhost, Windscribe, TunnelBear i 1.1.1.1 (Cloudflare).

Rys. 1 – wtyczka podszywająca się pod 1.1.1.1 (Cloudflare), źródło: socket.dev

Rozszerzenia, które konfigurują proxy (520 z 522 poddanych analizie) wykonują tę samą operację. Przykładowy fragment pliku worker.js z wtyczki aabaifmlfkdolhdbbhjblkeekaijfdfh:

const config = {  mode: "fixed_servers",  rules: {    singleProxy: {      scheme: "socks5",      host: node.host,      port: const config = {
  mode: "fixed_servers",
  rules: {
    singleProxy: {
      scheme: "socks5",
      host: node.host,
      port: node.port
    },
    bypassList: BYPASS_LIST   // = ["localhost", "127.0.0.1", "::1", "<-loopback>"]
  }
};
chrome.proxy.settings.set({ value: config, scope: "regular" }, callback);

Listing 2 – fragment kodu odpowiedzialnego za konfigurację proxy, źródło: socket.dev

Zmienna BYPASS_LIST zawiera wyłącznie adresy loopback – pokazane w komentarzu. Ruch do każdego innego adresu, w dowolnej karcie jest kierowany przez węzeł SOCKS5 kontrolowany przez dostawcę wtyczki (po uprzednim kliknięciu przez użytkownika przycisku Connect).

302 rozszerzenia mają zapisane na stałe adresy IP proxy (jedna współdzielona pula 15 adresów), a 104 uzyskują adres IP hosta za pośrednictwem DNS-over-HTTPS i przekazują go Chrome.

Z technicznego punktu widzenia samo to nie jest problemem. Wtyczki do przeglądarek reklamowane jako VPN zazwyczaj korzystają właśnie z proxy API. Konfiguracja SOCKS5 omijająca wyłącznie loopback jest standardowym sposobem jego implementacji.

Problemem, który odróżnia tę kampanię od zwykłych narzędzi VPN jest branding. Wiarygodny dostawca działa pod własną nazwą, a często znakiem towarowym. Z kolei rozszerzenia w ramach kampanii podszywają się pod 66 istniejących marek – w tym AmneziaVPN i AntiZapret, używane przez rosyjskich użytkowników do omijania blokad. 

Każde z rozszerzeń reklamuje lokalizacje (serwery) premium. Badacze sprawdzili jednak rekordy DNS ich domen, ustalając że subdomeny darmowych serwerów działają, a premium – nie. Dla jednej z domen – stealthpath[.]space:

  • us[.]stealthpath[.]space – 178[.]130[.]47[.]43, 178[.]130[.]47[.]44, 178[.]130[.]47[.]50, 147[.]45[.]60[.]241
  • de[.]stealthpath[.]space – 80[.]92[.]204[.]47, 185[.]252[.]215[.]97, 185[.]252[.]215[.]98, 80[.]92[.]204[.]33
  • gb[.]stealthpath[.]space – 5[.]180[.]30[.]15, 5[.]180[.]30[.]122
  • fr[.]stealthpath[.]space – 86[.]104[.]74[.]110, 94[.]131[.]118[.]39, 94[.]131[.]118[.]237
  • nl[.]stealthpath[.]space – 80[.]92[.]206[.]84, 194[.]150[.]220[.]163, 45[.]89[.]110[.]227
  • jp[.]stealthpath[.]space – brak odpowiedzi
  • sg[.]stealthpath[.]space  – brak odpowiedzi
  • au[.]stealthpath[.]space – brak odpowiedzi
  • tr[.]stealthpath[.]space – brak odpowiedzi

Wszystkie 200 subdomen jp, sg, ca, au i tr w ramach 40 testowanych domen nie zwróciło żadnego rekordu A. W pozyskanych listach serwerów są to dokładnie wpisy oznaczone premium: true.

Ponadto, 66 rozszerzeń pobiera konfigurację z domen ich dostawcy. Wtyczki odczytują nagłówek Location i podążają do wskazanego przez twórcę kampanii adresu, z którego pobierane są dane. Co istotne, mechanizm ten jest niezależny od aktualizacji w Chrome Web Store, dzięki czemu atakujący może zmieniać konfigurację bez wydawania nowych wersji.

fetch(LANDING_URL, { method: "HEAD", redirect: "manual", cache: "no-store" })  .then(function (r) {    var target = Lfetch(LANDING_URL, { method: "HEAD", redirect: "manual", cache: "no-store" })
  .then(function (r) {
    var target = LANDING_URL;
    if (r.status >= 300 && r.status < 400) {
      var loc = r.headers.get("Location");
      if (loc) target = loc;
    }
    landingLinks.assetsOrigin = new URL(target, LANDING_URL).origin;
    return fetch(landingLinks.assetsOrigin + "/config/links.json", { cache: "no-store" });
  });

Listing 3 – fragment pliku core.js wtyczki abjgfdfbmmijjdfbohbhgdnjeipjbplj

Rozszerzenie o identyfikatorze oaidiemgjmaabehcfjfbkeifdpeniemm przypadkowo dostarczyło w opublikowanym pakiecie archiwum vpn-bez-limita.zip. Jest to jego poprzedni build (v1.0.0). Porównanie go z aktywnym v1.0.1 pokazuje, że cała warstwa zdalnej konfiguracji została dodana po zatwierdzeniu wtyczki w Chrome Web Store.

W ocenie badaczy wszystkie rozszerzenia stanowią jedną kampanię.

Część z nich sama na to wskazywała, zawierając w różnych popupach nazwę własną dostawcy – Myxa VPN. Ponadto, 43 pakiety zawierały plik build-info.json ujawniający ścieżkę builda Windows atakującego: C:\Users\ollob\OneDrive\Документы\1.myxa-work\08.06.26<domain><product><product>-release.zip. Jedno konto Windows, jeden katalog projektu i wiele rozszerzeń.

Na 49 domenach atakującego stosowany jest skrypt śledzący Yandex Metrica, w ramach którego użyto 8 identyfikatorów współdzielonych między domenami. 21 spośród tych domen zostało zarejestrowanych w ciągu 10 sekund 20 maja 2026 r., a kolejne 14 – w ciągu 24 sekund 5 kwietnia 2026 r.

Ponad 100 z nich korzysta z tych samych serwerów nazw (NS) – ns1[.]reg[.]ru i ns2[.]reg[.]ru. Prawie połowa z nich wskazuje na ten sam adres IP – 212[.]192[.]14[.]75 – na którym działa nginx 1.24.0 na Ubuntu. Reverse-IP lookup dla tego hosta zwrócił wyłącznie domeny kampanii.

Google podjęło działania wobec tej kampanii. 221 z 737 rozszerzeń zostało usuniętych z Chrome Web Store. Po pełną listę wtyczek odsyłamy do Socket.

Użytkownikom polecamy minimalizowanie liczby zainstalowanych rozszerzeń. Warto skonfigurować osobny profil (bez wtyczek) do wykonywania wrażliwych operacji (np. bankowość elektroniczna) lub wykonywać je w trybie incognito, gdzie wtyczki nie mają domyślnie dostępu (i nie należy im go dawać).

Źródło: socket.dev

~Tymoteusz Jóźwiak

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz