Standardowe rozszerzenie przeglądarki to mały pakiet zaufania. Użytkownicy instalują bloker reklam i sieci VPN z oczekiwaniem, że narzędzia te będą pracować dla nich, a nie przeciwko nim. Microsoft niedawno zlikwidował masową operację, która odwróciła tę relację. Kampania, nazwana StegoAd, obejmowała 119 złośliwych rozszerzeń w sklepie Microsoft Edge Add-ons. Rozszerzenia te pozostawały aktywne przez lata, osiągając łączną bazę instalacji na poziomie 2,6 miliona użytkowników. Operacja ta jest majstersztykiem w unikaniu wykrycia, wykorzystującym steganografię do ukrywania złośliwych ładunków (payloads) wewnątrz plików, które sprawiają, że sieć wygląda i działa prawidłowo.
Z perspektywy ryzyka skala ekspozycji jest znacząca. Choć Microsoft zaznacza, że 2,6 miliona to górna granica, a nie potwierdzona liczba ofiar, architektoniczne zaawansowanie StegoAd sugeruje profesjonalny poziom planowania. Rozszerzenia robiły dokładnie to, co obiecywały. Blokowały reklamy, tłumaczyły tekst i pobierały filmy. Zdobywały pozytywne recenzje. Jednak za kulisami czekały na określony zestaw warunków, aby uruchomić wtórny, złośliwy cykl życia. Był to cierpliwy atak, zaprojektowany tak, aby omijać automatyczne skanery, które pełnią rolę strażników w nowoczesnych ekosystemach przeglądarek.
Śledzenie łańcucha ataku wstecz ujawnia metodyczne podejście do stanu uśpienia. Twórca StegoAd rozumiał, że natychmiastowa złośliwa aktywność to wyrok śmierci dla rozszerzenia przeglądarki. Większość ze 119 rozszerzeń pozostawała niegroźna przez kilka dni po instalacji. Ta zwłoka jest powszechną taktyką, ale napastnik poszedł dalej. Zaimplementował szereg testów unikania wykrycia, aby upewnić się, że rozszerzenie „obudzi się” tylko na maszynie prawdziwego użytkownika.
Jeden z testów sprawdzał obecność narzędzi deweloperskich przeglądarki (DevTools). Jeśli analityk otworzył inspektora, aby zobaczyć, co robi rozszerzenie, kod zauważał zmianę i przedłużał okres uśpienia. To skutecznie ukrywało zachowanie przed każdym, kto go szukał. Mówiąc proaktywnie, napastnik stosował również 10-procentową bramkę wykonawczą w niektórych wariantach. Oznacza to, że tylko jedna na dziesięć instalacji faktycznie aktywowała złośliwy ładunek. Dla badacza bezpieczeństwa próbującego zreprodukować zgłoszony błąd, złośliwe oprogramowanie po prostu by się nie pojawiło.
Ta selektywna egzekucja zmieniła bazę użytkowników w ogromny, zdecentralizowany poligon doświadczalny. Napastnik mógł dopracowywać swoje skrypty i metody eksfiltracji na małej podgrupie użytkowników, podczas gdy pozostałe 90% zapewniało tarczę w postaci legalnej aktywności i wysokich ocen. Rozszerzenia migrowały nawet z Manifest V2 do Manifest V3 wraz z ewolucją platformy Chromium. Świadczy to o długoterminowym zaangażowaniu w utrzymanie dostępu do bazy użytkowników Edge.
Rdzeniem kampanii jest steganografia, czyli praktyka ukrywania danych wewnątrz innych danych. Napastnik wykorzystywał obrazy i pliki czcionek jako nośniki dla swoich ładunków JavaScript. W najwcześniejszych wersjach StegoAd złośliwe oprogramowanie było dopisywane po znaczniku IEND ikony PNG. Znacznik ten informuje przeglądarkę obrazów, że plik się skończył. Wszystko po tym znaczniku jest ignorowane przez renderer, ale pozostaje dostępne dla skryptu. Dla skanera statycznego plik wygląda jak poprawna, nieszkodliwa ikona.
Wraz z ulepszaniem narzędzi detekcji, napastnik adaptował się. Przeniósł swoje ładunki do obrazów WebP i plików czcionek WOFF2. Pliki WOFF2 to skompresowane czcionki internetowe, które zawierają zakresy glifów i metadane. Napastnik ukrył kod w tych zakresach, sprawiając, że ładunek wyglądał jak tekst azjatycki lub metryki czcionek. Microsoft opisuje steganografię na taką skalę jako rzadkość w przestrzeni rozszerzeń przeglądarek. Jest to technika wymagająca dużego wysiłku, która zmusza atakującego do ręcznego tworzenia lub modyfikowania plików multimedialnych, aby upewnić się, że nadal działają, niosąc jednocześnie zaszyfrowanego „pasażera na gapę”.
W niektórych wariantach o dużym wpływie ładunek nie był nawet obecny w lokalnych plikach rozszerzenia. Rozszerzenie pobierało normalnie wyglądający obraz z serwera dowodzenia (C2). Po pobraniu rozszerzenie dekodowało obraz poprzez wiele warstw zamiany wielkości liter, zamiany cyfr, kodowania Base64 i operacji XOR. Następnie weryfikowało wynikowy skrypt za pomocą podpisu cyfrowego przed wykonaniem. Proces ten gwarantuje, że złośliwa logika nigdy nie jest przechowywana na dysku w czytelnym formacie.
Infrastruktura zaplecza dla StegoAd była równie odporna jak same rozszerzenia. Napastnik wykorzystał ponad dziesięć domen dowodzenia i kontroli z możliwością automatycznego przełączania awaryjnego. Jeśli jedna domena została zablokowana lub zdjęta, rozszerzenia automatycznie łączyły się z zapasową. Aby jeszcze bardziej ukryć swój ruch, operatorzy przesyłali żądania przez Cloudflare Workers. Dzięki temu złośliwy ruch wyglądał jak legalne wywołania API do renomowanego dostawcy chmury.
Walidacja po stronie serwera działała jak selekcjoner w ekskluzywnym klubie. Gdy rozszerzenie żądało ładunku, serwer sprawdzał odcisk palca przeglądarki (fingerprint) i ciąg User-Agent. Jeśli żądanie pochodziło ze znanego środowiska badawczego lub automatycznej piaskownicy (sandbox), serwer zwracał pustą, fałszywą odpowiedź. Widziałem taki poziom paranoi u zaawansowanych grup APT, ale jest on rzadziej spotykany w kampaniach typu adware. Sugeruje to, że operator był wysoce zmotywowany do ochrony swojego zestawu narzędzi przed odkryciem.
Kolejnym narzędziem w zestawie napastnika były GitHub Pages. Wykorzystywali tę platformę do hostowania sygnałów nawigacyjnych (beacons), zapewniając wiarygodną i zaufaną domenę, w której rozszerzenia mogły sprawdzać aktualizacje. Nadużywając legalnej infrastruktury, operatorzy StegoAd dbali o to, by ich ruch wtapiał się w szum tła typowej sieci korporacyjnej lub domowej. Wykrywanie tego ruchu wymaga czegoś więcej niż tylko listy złych adresów IP; wymaga analizy behawioralnej tego, jak rozszerzenie wchodzi w interakcję z siecią.
Najbardziej widoczną częścią infekcji StegoAd były oszustwa reklamowe (ad fraud). Rozszerzenia wstrzykiwały reklamy do stron internetowych, przejmowały prowizje afiliacyjne na stronach takich jak Amazon i eBay oraz przekierowywały zapytania wyszukiwania. Jest to głośna część złośliwego oprogramowania, zaprojektowana do generowania natychmiastowych przychodów. Jednak techniczna analiza post-mortem przeprowadzona przez Microsoft ujawniła znacznie mroczniejszy zestaw możliwości ukrytych pod powierzchnią.
Odzyskanie ładunków wykazało, że napastnik posiadał możliwości zdalnego wykonywania kodu (RCE). Mogli przesyłać dowolny kod JavaScript z serwera do dowolnej zainfekowanej przeglądarki. Pozwalało im to na zbieranie poświadczeń Google i kodów drugiego składnika podczas procesu logowania. Celowali również w loginy administratorów WordPress i masowo wykradali pliki cookie. Z perspektywy architektonicznej pliki cookie sesji są toksycznym aktywem, jeśli wpadną w niepowołane ręce. Atakujący ze świeżym plikiem cookie sesji może całkowicie ominąć MFA i wejść bezpośrednio na konto użytkownika.
Telemetria kampanii była zarządzana za pomocą siedmiu identyfikatorów śledzenia Google Analytics. Dało to operatorowi podgląd postępów w czasie rzeczywistym przy użyciu własnej infrastruktury analitycznej Google. Mogli widzieć, które rozszerzenia radzą sobie dobrze, które kraje mają najwięcej aktywnych instalacji i gdzie ich ładunki zostały pomyślnie uruchomione. Poziom inteligencji operacyjnej jest tutaj profesjonalny i wskazuje na usprawniony model biznesowy.
Microsoft oficjalnie nie nazwał sprawcy stojącego za StegoAd, ale wskaźniki techniczne wskazują na znaną grupę aktywności. Ładunek kradnący poświadczenia przesyła dane do domeny o nazwie mitarchive.info. Badacze bezpieczeństwa wcześniej powiązali tę domenę z chińską operacją znaną jako DarkSpectre. Grupa ta jest również kojarzona z kampaniami ShadyPanda i GhostPoster, które wykorzystywały podobne taktyki do dystrybucji złośliwych rozszerzeń.
Powiązanie to coś więcej niż tylko jedna domena. StegoAd wykorzystał dokładnie tę samą metodę ukrywania kodu wewnątrz własnej ikony rozszerzenia, której GhostPoster używał miesiące wcześniej. Współdzielili nawet te same konwencje nazewnictwa dla swoich rozszerzeń, takie jak Ads Block Ultimate. Sugeruje to, że StegoAd jest najnowszą ewolucją długotrwałej chińskiej operacji, która traktuje ekosystem rozszerzeń przeglądarek jako główny teatr działań. Operatorzy są zwinni, przenosząc się z jednej platformy na drugą, gdy obrońcy nadrabiają zaległości.
Microsoft usunął wszystkie 119 rozszerzeń i zawiesił konta deweloperów, ale niebezpieczeństwo nadal zagraża użytkownikom, którzy nadal mają te narzędzia zainstalowane. Ponieważ niektóre z tych rozszerzeń były w pełni funkcjonalne, użytkownicy mogą nawet nie zdawać sobie sprawy, że ich bezpieczeństwo zostało naruszone. Jeśli korzystasz z Edge, pierwszym krokiem jest odwiedzenie strony edge://extensions i audyt listy. Porównaj zainstalowane identyfikatory z listą podaną w raporcie technicznym Microsoftu.
W przypadku dopasowania, środowisko przeglądarki jest zagrożone. Usunięcie rozszerzenia to tylko pierwszy krok. Musisz założyć, że Twoje pliki cookie sesji i poświadczenia są w rękach grupy DarkSpectre. Zmień hasła do kont o wysokiej wartości, w tym Google, banku i wszelkich portali związanych z pracą, takich jak WordPress. Przejrzyj ostatnią aktywność logowania pod kątem nierozpoznanych lokalizacji lub urządzeń.
Patrząc na krajobraz zagrożeń, incydent ten podkreśla porażkę tradycyjnej weryfikacji rozszerzeń. Analiza statyczna nie jest już wystarczająca, aby wyłapać napastników stosujących steganografię i walidację po stronie serwera. Mówiąc proaktywnie, najlepszą obroną jest „odchudzona” przeglądarka. Instaluj tylko te rozszerzenia, które są absolutnie niezbędne i pochodzą od zweryfikowanych, renomowanych deweloperów. Używaj sprzętowych kluczy bezpieczeństwa dla MFA wszędzie tam, gdzie to możliwe. W przeciwieństwie do kodów SMS czy powiadomień push, klucz sprzętowy wymaga fizycznej interakcji, której skrypt oparty na rozszerzeniu nie może łatwo zreplikować.
Źródła: Microsoft Security Blog, NIST SP 800-53 (Control Assessment), MITRE ATT&CK (T1027.003 - Steganography), Koi Security Research Reports.
Zastrzeżenie: Niniejszy artykuł służy wyłącznie celom informacyjnym i edukacyjnym i nie zastępuje profesjonalnego audytu cyberbezpieczeństwa ani usług reagowania na incydenty.



Nasze kompleksowe, szyfrowane rozwiązanie do poczty e-mail i przechowywania danych w chmurze zapewnia najpotężniejsze środki bezpiecznej wymiany danych, zapewniając bezpieczeństwo i prywatność danych.
/ Utwórz bezpłatne konto