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

Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!

Malware ukryty w rozszerzeniach Firefoxa. Jak niewinnie wyglądające logo dodatku, może skutkować utratą prywatności – szczegóły kampanii GhostPoster

23 grudnia 2025, 07:40 | W biegu | komentarze 2

Badacze bezpieczeństwa z Koi Security wykryli aktywną kampanią malware, celującą w użytkowników przeglądarki Firefox. Na szczególną uwagę zasługuje wektor ataku, a mianowicie pliki graficzne PNG  umieszczone w rozszerzeniach Firefox Add-ons. Kampania została nazwana GhostPoster. Do tej pory udało się zidentyfikować 17 złośliwych rozszerzeń, które zostały pobrane ponad 50 000 razy. W tym miejscu należy pochwalić reakcję Mozilli, złośliwe dodatki zostały niezwłocznie usunięte zaraz po ich zgłoszeniu.
TLDR:

  • Odpowiedzialność za atak nie została dotychczas przypisana do żadnej ze znanych grup cyberprzestępczych.
  • Badacze bezpieczeństwa z Koi Security opublikowali na swoim blogu nowy rodzaj kampaniii cyberprzestępczej, wycelowanej w użytkowników przeglądarki Firefox.
  • Kampania, znana pod nazwą GhostPoster wykorzystuje rozszerzenia przeglądarki Firefox do propagacji malware.
  • Złośliwy kod jest osadzany w logo dodatku.
  • Do tej pory udało się zidentyfikować oraz zablokować 17 złośliwych rozszerzeń, zainstalowanych ponad 50 000 razy.

Pierwszy etap infekcji – loader ukryty w logo dodatku

Fakt wykrycia malware w rozszerzeniu Free VPN stanowi wynik proaktywnych działań, związanych z monitorowaniem ekosystemu Firefox (analiza plików JS, zasobów binarnych, itp.), realizowanych w trybie ciągłym przez zespół badaczy z Koi Security. Uwagę analityków zwrócił nietypowy rozmiar pliku logo.png, który znacząco różnił się od rozmiaru innych, analogicznych plików graficznych. 

Dalsza analiza wykazała, że funkcja odpowiadająca za wczytanie logo przeszukuje zawartość pliku w celu znalezienia nietypowego wzorca === (zapis bajtowy 0x3d3d3d). Wszystko co znajduje się za tym markerem, stanowi kod JavaScript loadera, czyli specjalnego programu odpowiadającego za komunikację z serwerem C2.

Rys. 1 Funkcja wczytująca logo rozszerzenia Free VPN Forever. Źródło: koi.ai

Drugi etap – pobranie payloadu

Po ekstrakcji bajtów okazało się, że jest to kod JavaScript, którego głównym zadaniem jest pobranie właściwego ładunku z serwera kontrolowanego przez atakującego. Malware wysyłał żądanie na adres www[.]liveupdt[.]com/ext/rd.php?f=, w przypadku problemów technicznych (np. zbyt długi czas odpowiedzi) używał alternatywnego adresu www[.]dealctr[.]com/ext/load.php?f=svr.png. Jako parametr żądania przesyłany był ciąg jednoznacznie  identyfikujący uruchomione rozszerzenie (signature), dzięki czemu cyberprzestępcy mogli monitorować, które rozszerzenie zostało zainstalowane. 

Ponadto, parametr ten może sugerować, że Free VPN nie jest jedynym, zainfekowanym rozszerzeniem, a co za tym idzie skala ataku może być znacznie większa niż początkowo zakładano. W efekcie przypuszczenia się potwierdziły a potencjalnie złośliwy kod był ukryty również w innych rozszerzeniem.

Warto zauważyć, że loader nie kontaktuje się z serwerem C2 podczas każdego uruchomienia rozszerzenia. Odczekuje ok. 48 godzin, a następnie podejmuje próbę nawiązania połączenia. Średnio ok. 10% prób kończy się sukcesem, a co za tym idzie payload zostaje wysłany. Działanie to wynika z charakterystyki loadera i ma na celu utrudnienie detekcji przez systemy monitorujące ruch sieciowy i wykrywające anomalie.

Trzeci etap – przygotowanie malware

Dane przesyłane z serwera C2 są zaszyfrowane, a następnie zakodowane w dosyć nietypowy sposób.

Rys. 2 Funkcja dekodująca payload. Źródło: koi.ai

ak widać na załączonym schemacie, payload został zakodowany następująco:

  • każdy znak jest zamieniany z wielkiej litery na małą i odwrotnie,
  • cyfra 9 jest zastępowaną cyfrą 8, a z kolei cyfra 8 cyfrą 9,
  • wynikowy ciąg jest dekodowany za pomocą funkcji base64.

Po zdekodowaniu danych następuje ich odszyfrowanie. W tym celu wykorzystano algorytm XOR z kluczem będącym unikalnym ID środowiska uruchomieniowego rozszerzenia (runtime). Malware zostaje zapisany w magazynie (storage) przeglądarki użytkownika.

Czwarty etap – infekcja

Kolejnym etapem jest uruchomienie właściwego malware. Złośliwe oprogramowanie realizuje wiele akcji, wśród których warto wyróżnić:

  • monitorowanie historii odwiedzanych stron oraz podmiana linków na dużych platformach e‑commerce (np. Taobao, JD.com). W efekcie prowizja za dokonane zakupy trafia na konto cyberprzestępców.
  • wstrzykiwanie Google Analytics z ID UA-60144933-8, głównie pod kątem śledzenia statystyk,
  • usuwanie nagłówków bezpieczeństwa (Content-Security-Policy, X-Frame-Options) z odpowiedzi HTTP, chroniące przed atakami typu XSS i clickjacking,
  • omijanie captchy, aby ukryć swoją obecność i tym samym utrudnić wykrycie,
  • wstrzykiwanie ukrytych iframe wykorzystywanych do dodatkowego śledzenia działań użytkownika oraz oszustw reklamowych. 

Co prawda, w powyższym opisie kampanii nie pojawiła się nigdzie wzmianka, że malware wykrada dane przeglądarki, z czym często się spotykaliśmy mówiąc o złośliwych rozszerzeniach. Nie mniej jednak z technicznego punktu widzenia, nic nie stoi na przeszkodzie, aby w kolejnych kampaniach oprogramowanie umożliwiało tego typu działania.

Warto podkreślić, że opisane powyżej akcje są realizowane w sposób ukryty. Z poziomu użytkownika, nie widać żadnych oznak infekcji. Strony poprawnie się ładują, systemy monitorujące ruch sieciowy nie alarmują o wykryciu anomalii, a rozszerzenia zachowują się zgodnie ze swoim przeznaczeniem.

Zalecamy zachować szczególną czujność oraz zweryfikować jakie rozszerzenia zostały zainstalowane w naszej przeglądarce. Malware pojawiał się w rozszerzeniach związanych m.in. z: 

  • darmowymi usługami VPN, 
  • pobieraniem plików multimedialnych,
  • tłumaczeniem tekstu,
  • dark reader mode,
  • blokowaniem reklam.  

W przypadku potwierdzenia instalacji złośliwego dodatku, należy niezwłocznie go usunąć, a następnie wyczyścić dane przeglądania (cache, cookies) oraz rozważyć zmianę haseł do krytycznych serwisów. 

Źródło: koi.ai

~_secmike

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



Komentarze

  1. Gander

    Kiedyś ukryłem backdoor w obrazie by uzmysłowić administratorom bazy wtyczek do PHP-Fusion, że wszystkie wtyczki wymagają dogłębnej analizy przed dodaniem do bazy, a nie tylko sprawdzać poprawność instalatora. To był taki Proof of Concept. Na szczęście było to bardzo przekonujące doświadczenie, bowiem zaczęli bardziej je prześwietlać. Sam Digitanium (Nick Jones) się zdenerwował gdy zobaczył tego backdoora. Poprawili się.

    Odpowiedz
  2. Wojciech

    wszystko fajnie, ale:
    1) gdzie sprawdzić czy rozszerzenia któe mam (ze ‘sklepu’ rozszerzeń’ zostały zidentyfikowane jako złośliwe?
    2) gdzie, jeśli w ogóle jest jakaś lista (można by ?
    3) czy jest możliwość samodzielnej weryfikacji (choćby spojrzenia na rozmiary plików png) w folderze profilowym FF gdzie są rozszerzenia?

    Edit: lista (przy6najmniej częściowa) jest tu: https://www.koi.ai/blog/inside-ghostposter-how-a-png-icon-infected-50-000-firefox-browser-users

    nie każdy klika w źródła ;)

    Odpowiedz

Odpowiedz