GhostPoster: złośliwy JavaScript ukryty w logo dodatków Firefoksa. Analiza kampanii, ryzyko i zalecenia

securitybeztabu.pl 4 godzin temu

Wprowadzenie do problemu / definicja luki

Nowa kampania „GhostPoster” wykorzystuje nieoczywistą technikę ukrywania złośliwego kodu wewnątrz pliku logo (PNG) rozszerzenia Firefoksa. Po instalacji z pozoru zwykły dodatek odczytuje własną ikonę, wyciąga z niej fragment JavaScriptu i uruchamia jako loader do pobrania adekwatnego payloadu z serwera C2. Według badaczy z Koi Security, kampania obejmuje 17 dodatków i >50 tys. instalacji, m.in. kategorie „free VPN”, tłumaczenia, pogoda, zrzuty ekranu czy „dark reader”. Mozilla potwierdziła usunięcie tych rozszerzeń z AMO i aktualizację detekcji.

W skrócie

  • Vektor: steganografia w logo.png rozszerzenia; kod ukryty po znaczniku ===.
  • Skala: 17 rozszerzeń, >50 000 instalacji łącznie. Przykłady: free-vpn-forever, google-translate-right-clicks, dark-reader-for-ff, ad-stop.
  • C2 & ładowanie: loader kontaktuje liveupdt[.]com (primary) i dealctr[.]com (backup); opóźnienie 48 h i pobranie tylko w 10% prób – utrudnienie detekcji.
  • Zdolności payloadu: przechwytywanie/ujednolicanie linków afiliacyjnych, wstrzykiwanie Google Analytics w każdą stronę, usuwanie nagłówków CSP/X-Frame-Options, omijanie CAPTCHA, niewidoczne iframy (ad/click fraud).
  • Status: Mozilla: „wszystkie rozszerzenia usunięte z AMO; systemy automatyczne zaktualizowane”. (aktualizacja z 17.12.2025).

Kontekst / historia / powiązania

Krajobraz zagrożeń wokół marketplace’ów rozszerzeń konsekwentnie się zaostrza: od kampanii ShadyPanda (miliony ofiar na Chrome/Edge) po wielokrotne przypadki nadużyć przez „free VPN” i narzędzia produktywne. Wspólnym mianownikiem jest wysokie zaufanie użytkowników do dodatków oraz ograniczona skuteczność statycznego przeglądu w sklepach. GhostPoster dorzuca do arsenału steganografię i opóźnienia behawioralne, co utrudnia tradycyjny monitoring.

Analiza techniczna / szczegóły luki

1) Faza „Logo” (steganografia):

  • Rozszerzenie pobiera własne logo.png, przeszukuje surowe bajty w poszukiwaniu znacznika ===.
  • Sekcja za znacznikiem zawiera zdeklarowany kod JS – loader uruchamiany w kontekście rozszerzenia.

2) Loader i C2:

  • Komunikacja do www.liveupdt[.]com, awaryjnie www.dealctr[.]com; parametry z podpisem/sygnaturą pozwalają śledzić instalacje.
  • Ewazja: odczekanie ~48 godzin oraz probabilistyczny fetch (10%), przez co analiza sieciowa bywa „pusta”.

3) Dekodowanie/cyfring:

  • Payload kodowany prostą sekwencją: swap małe/DUŻE litery → zamiana 8/9 → base64, następnie XOR z kluczem wyprowadzonym z runtime ID rozszerzenia; zapis do storage (trwałość).

4) Końcowy payload – moduły:

  • Affiliate hijacking na dużych platformach e-commerce (kradzież prowizji).
  • Tracking injection: wstrzyknięcie Google Analytics (np. UA-60144933-8) na każdą stronę z własnymi atrybutami znaczników.
  • Twardsze obejścia zabezpieczeń: pasywne usuwanie CSP/X-Frame-Options, omijanie CAPTCHA kilkoma metodami (w tym ładownie solvera z refeuficn.github.io).
  • Fraud: krótkotrwałe niewidoczne iframy (samoczyszczenie po ~15 s) dla ad/click fraud i śledzenia.

5) Wskaźniki kompromitacji (IOCs – wybrane):

  • Domeny C2: liveupdt[.]com, dealctr[.]com, dodatkowo mitarchive[.]info.
  • Znacznik w pliku: === w logo.png.
  • ID GA: UA-60144933-8.
  • Nazwy dodatków (próbki): free-vpn-forever, crxmouse-gesture, dark-reader-for-ff, ad-stop, google-translate-pro-extension (pełna lista: 17 pozycji).

Praktyczne konsekwencje / ryzyko

  • Prywatność i profilowanie: globalny tracking (GA + własne atrybuty), fingerprinting i identyfikatory.
  • Ominięcie polityk bezpieczeństwa przeglądarki: usunięcie CSP i XFO zwiększa powierzchnię XSS/clickjacking.
  • Straty finansowe i reputacyjne: hijacking afiliacyjny, ad/click fraud (koszty i zafałszowane metryki).
  • Ryzyko eskalacji: mechanizm ładowania zdalnego kodu pozwala w każdej chwili dołożyć groźniejszy moduł (np. kradzież haseł, lateral movement przez sesje SSO).

Rekomendacje operacyjne / co zrobić teraz

Dla użytkowników i helpdesku

  1. Natychmiast odinstaluj wskazane rozszerzenia w Firefoksie (Menu → Dodatki i motywy → Rozszerzenia). Zweryfikuj też inne przeglądarki.
  2. Wyczyść dane przeglądania (cache/cookies), zaloguj się ponownie do krytycznych serwisów.
  3. Zmień hasła do usług krytycznych / kont finansowych (ostrożnie: jeżeli BYŁO ryzyko kradzieży sesji).
  4. Przegląd zgód na powiadomienia push (usuń podejrzane domeny).

Dla SOC/IT/SecOps (enterprise)

  • Blokady sieciowe (proxy/DNS/EDR): liveupdt[.]com, dealctr[.]com, mitarchive[.]info, a także refeuficn.github.io (solver). Monitoruj niestandardowe żądania z kontekstu przeglądarki.
  • Hunting w logach:
    • Wywołania GA z ID UA-60144933-8 poza własną domeną.
    • Wzorce modyfikacji nagłówków CSP/XFO przez rozszerzenia.
    • Iniekcje ukrytych iframe z krótkim TTL.
  • Kontrola floty przeglądarek: polityki pozwalające na allow-listę rozszerzeń, blokadę niezatwierdzonych dodatków i telemetrię zachowania (co robi rozszerzenie po instalacji). (Por. wnioski o niedostatkach samej statycznej weryfikacji marketplace’ów.)
  • IR: jeżeli wykryto komunikację z C2 – traktuj jako incident z potencjałem modyfikacji treści stron i kradzieży sesji; rozważ force logout/rotację tokenów w krytycznych aplikacjach.

Dla vendorów/marketplace’ów

  • Analiza behawioralna po publikacji (nie tylko przed).
  • Reguły heurystyczne: odczyt surowych bajtów ikon, poszukiwanie markerów, probabilistyczne fetch’e, długie opóźnienia (≥48 h).

Różnice / porównania z innymi przypadkami

  • VS Code / PNG-trojan w marketplace’ach – wcześniej raportowano nadużycia formatów/zasobów (np. fałszywe PNG w rozszerzeniach IDE), ale GhostPoster stosuje to w przeglądarkach i łączy z elegantną ewazją czasową (48 h + 10%).
  • Wobec kampanii ShadyPanda czy fal „free VPN spyware”, GhostPoster nie musi kraść haseł, by być groźny – obniża poziom zabezpieczeń i monetyzuje ruch, a jednocześnie utrzymuje zdalnie sterowalną infrastrukturę.

Podsumowanie / najważniejsze wnioski

GhostPoster to nowoczesna kampania „marketplace malware”: prosta steganografia w ikonie + cierpliwość + modularyzacja. Efekt: trudna detekcja, duża skala i pełna kontrola nad zachowaniem przeglądarki. Obowiązkowe jest wdrożenie allow-listy dodatków, kontroli sieciowej C2, monitorowania anomalii w nagłówkach oraz higieny użytkowników (usuwanie niepotrzebnych rozszerzeń, ostrożność wobec „free VPN”). Mozilla potwierdziła reakcję i usunięcie dodatków, ale model zaufania do rozszerzeń musi się zmienić po stronie organizacji.

Źródła / bibliografia

  1. Koi Security – Inside GhostPoster: How a PNG Icon Infected 50,000 Firefox Users (pełna analiza techniczna, IOCs). (Koi)
  2. BleepingComputer – GhostPoster attacks hide malicious JavaScript in Firefox addon logos (przegląd kampanii + oświadczenie Mozilli z 17.12.2025). (BleepingComputer)
  3. Koi Security – 4.3 Million Browsers Infected: Inside ShadyPanda’s 7-Year Malware Campaign (kontekst ryzyka marketplace’ów). (Koi)
Idź do oryginalnego materiału