
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Malvertising, czyli dystrybucja złośliwych treści za pośrednictwem reklam internetowych, od lat pozostaje skutecznym kanałem infekcji wymierzonych w użytkowników indywidualnych. Najnowsze kampanie pokazują jednak wyraźną zmianę taktyki: zamiast dostarczać gotowy plik malware z jednego adresu, operatorzy budują finalny plik wykonywalny etapami bezpośrednio w przeglądarce ofiary.
Taki model znacząco utrudnia analizę incydentów, osłabia skuteczność detekcji opartych na hashach i komplikuje korelację ruchu sieciowego z końcowym ładunkiem. W praktyce oznacza to, że przeglądarka staje się aktywnym elementem łańcucha dostarczenia, a nie wyłącznie narzędziem do pobrania pliku.
W skrócie
Opisywana kampania, identyfikowana jako SourTrade, wykorzystuje reklamy prowadzące do stron podszywających się pod znane platformy tradingowe i kryptowalutowe. Mechanizm nie bazuje na luce w przeglądarce ani na usuwaniu znacznika Mark of the Web.
- strona docelowa przygotowuje środowisko dostarczenia jeszcze przed pobraniem pliku,
- przeglądarka pobiera legalny runtime Bun,
- końcowy plik PE dla systemu Windows jest składany lokalnie z wielu fragmentów,
- każda sesja może wygenerować binarkę o innym hashu, mimo zachowania tej samej funkcji.
To podejście ogranicza wartość prostych wskaźników IOC opartych wyłącznie na skrótach plików i wymusza większy nacisk na analizę zachowania.
Kontekst / historia
Badacze bezpieczeństwa wskazują, że aktywność tej kampanii trwa co najmniej od końca 2024 roku. Ataki były kierowane głównie do inwestorów detalicznych oraz użytkowników zainteresowanych handlem aktywami cyfrowymi, a operatorzy podszywali się pod rozpoznawalne marki, dostosowując treści do języka i geolokalizacji ofiary.
Istotnym elementem operacji było także cloaking, czyli ukrywanie właściwej zawartości przed badaczami, botami i systemami automatycznej analizy. Podejrzane środowiska otrzymywały pustą lub nieaktywną stronę, podczas gdy wybrane ofiary widziały wiarygodną kopię serwisu. Wcześniejsze warianty podobnych działań wykorzystywały model strumieniowego pobierania, natomiast obecna wersja przenosi większą część procesu składania binarki bezpośrednio do przeglądarki.
Analiza techniczna
Łańcuch infekcji rozpoczyna się po wejściu użytkownika na stronę kontrolowaną przez atakujących. Jeszcze przed kliknięciem przycisku pobierania strona przygotowuje środowisko do dostarczenia ładunku. Rejestrowany jest Service Worker, a następnie tworzony jest SharedWorker z kodu osadzonego bezpośrednio w skrypcie strony, co ogranicza widoczność dodatkowych pobrań.
Kolejnym krokiem jest żądanie do endpointu konfiguracyjnego, który zwraca szablon składania pliku, adres wtórnego źródła runtime oraz losowe parametry przypisane do danej sesji. Następnie przeglądarka pobiera legalny runtime Bun, wykorzystywany jako nośnik i fundament końcowego pliku wykonywalnego.
Konfiguracja zawiera zakodowane w Base64 fragmenty struktury Portable Executable, w tym nagłówki PE, tablicę sekcji oraz sekcję odpowiadającą za wykonanie osadzonej logiki. Worker generuje duży pseudolosowy strumień bajtów z użyciem AES-CTR i stosuje dostarczony szablon jako instrukcję kopiowania danych. W efekcie finalny plik powstaje z połączenia fragmentów runtime, danych pseudolosowych oraz części kontrolowanych przez operatora kampanii.
Najważniejsze jest to, że binarka tworzona jest lokalnie po stronie ofiary. Zmienność parametrów, takich jak seed czy rozmiar danych, powoduje, że każda sesja może wygenerować inny hash pliku przy zachowaniu tej samej funkcjonalności. Po zakończeniu składania plik jest przekazywany do Service Workera jako strumień, a ukryty iframe inicjuje pobranie z nagłówkiem wskazującym na załącznik.
Na uwagę zasługuje również fakt, że badacze nie opisują tutaj eksploatacji podatności przeglądarki. Technika nie przełamuje więc natywnych zabezpieczeń w klasyczny sposób, lecz obchodzi część mechanizmów detekcyjnych poprzez rozproszenie procesu dostarczenia i rekonstrukcję binarki po stronie klienta.
Konsekwencje / ryzyko
Z perspektywy zespołów bezpieczeństwa największym problemem jest osłabienie skuteczności kontroli opartych na pojedynczych artefaktach. Jeśli każda ofiara otrzymuje inny plik wynikowy, detekcje bazujące na hashach stają się znacznie mniej wartościowe.
Dodatkowo analiza ruchu sieciowego może nie ujawniać jednego kompletnego sample malware, ponieważ poszczególne elementy są dostarczane oddzielnie i dopiero lokalnie składane w całość. Ryzyko rośnie także z powodu wykorzystania legalnych komponentów oraz standardowych mechanizmów przeglądarki, takich jak Service Worker i strumieniowanie danych, które mogą wtapiać się w zwykły ruch aplikacyjny.
Dla użytkowników końcowych szczególnie niebezpieczne są kampanie wykorzystujące marki z obszaru tradingu i kryptowalut. W takich scenariuszach presja czasu, obietnica szybkiego dostępu do platformy lub inwestycji oraz pozorna wiarygodność reklamy znacząco obniżają czujność. Potencjalne skutki mogą obejmować kradzież danych uwierzytelniających, przejęcie portfeli kryptowalutowych, keylogging, monitorowanie aktywności i zdalny dostęp do systemu.
Rekomendacje
Organizacje powinny rozszerzyć monitoring z prostych IOC na pełny łańcuch dostarczenia. Kluczowe staje się powiązanie reklamy lub referera, odwiedzin strony lądowania, rejestracji workerów, żądań do endpointów konfiguracyjnych, pobrań dodatkowego runtime oraz końcowego pobrania pliku wykonywalnego.
- monitorować nietypowe użycie Service Worker i SharedWorker na stronach o niskim poziomie zaufania,
- analizować pobrania plików wykonywalnych inicjowane przez ukryte iframe lub mechanizmy strumieniowe,
- wykrywać łańcuchy pobrań, w których legalny runtime jest łączony z dodatkowymi fragmentami binarnymi,
- stosować sandboxing i analizę behawioralną zamiast polegać wyłącznie na hashach,
- inspekcjonować ruch do endpointów konfiguracyjnych zwracających duże bloby Base64 lub dane przypominające elementy PE.
Po stronie użytkownika kluczowe jest ograniczenie ryzyka socjotechnicznego. Oprogramowanie tradingowe, aplikacje portfelowe i narzędzia inwestycyjne powinny być pobierane wyłącznie z oficjalnych kanałów producenta, a nie z reklam sponsorowanych. Dodatkową ochronę zapewniają rozwiązania EDR, filtrowanie reklam, izolacja przeglądarki oraz kontrola uruchamiania niepodpisanych plików wykonywalnych.
Zespoły SOC i threat hunting powinny uwzględnić, że brak jednego kompletnego pliku malware w telemetrii sieciowej nie oznacza braku incydentu. W takich kampaniach najważniejsze są relacje między etapami procesu i sekwencja zdarzeń w przeglądarce oraz systemie operacyjnym.
Podsumowanie
Opisana kampania malvertising pokazuje, że przeglądarka staje się aktywnym elementem budowy malware, a nie tylko kanałem jego dostarczenia. Wykorzystanie legalnego runtime Bun, dzielenie binarki na fragmenty oraz rekonstrukcja pliku po stronie ofiary znacząco utrudniają tradycyjną detekcję opartą na pojedynczych wskaźnikach.
Dla obrońców oznacza to konieczność analizy całego przepływu: od reklamy i cloakingu, przez logikę JavaScript i workery, aż po końcowy plik zapisany na dysku. To kolejny przykład dojrzewania technik stosowanych w cyberprzestępczości ukierunkowanej na użytkowników finansowych i kryptowalutowych.
Źródła
- The Hacker News — Malvertising Sends Malware in Pieces, Then Makes the Browser Build the Executable
- Confiant — analiza kampanii malvertising
- Bun — dokumentacja runtime
- Bitdefender — badania zagrożeń powiązanych z kampaniami tradingowymi
- Check Point Research — materiały dotyczące technik ukrywania i dostarczania malware