Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Jak wykupione rozszerzenia Chrome zmieniły się w malware i adware
Dzisiaj praktycznie wszystko można zrobić w przeglądarce. Korzystanie z dedykowanej aplikacji do maili, pakietu biurowego czy komunikatora nie jest konieczne, bo większość takich usług działa również w wersjach webowych. Co za tym idzie, przeglądarka staje się de facto środowiskiem do uruchamiania innych aplikacji.
TLDR:
- Badacze z LayerX wykryli kampanię, w której wykupywano rozszerzenia Chrome i wdrażano złośliwe aktualizacje.
- Po zmianie właściciela rozszerzenia komunikowały się z serwerami C2 i pobierały z nich konfigurację.
- Wtyczki umożliwiały dynamiczną manipulację treścią stron, w tym formularzami logowania i dowolnymi elementami DOM.
- Dzięki użyciu MutationObserver mechanizm ten działał niezależnie od oryginalnych zmian na stronie.
- Atakujący wdrożyli także wtyczki z adware pokazujące użytkownikom fałszywą captchę i wysyłające powiadomienia.
- Nawet zaufane rozszerzenia mogą stać się wektorem ataku – ogranicz ich liczbę w swojej przeglądarce.
A środowisko takie musi być wygodne, prawda? Użytkownicy chętnie instalują więc wiele wtyczek, które mają ułatwić i usprawnić pracę w przeglądarce. Jednak niektóre pluginy robią trochę więcej, niż powinny, a artykuły o nich zaczynają tworzyć nową Modę na sukces.
Badacze bezpieczeństwa z LayerX odkryli kampanię, w ramach której wiele nieszkodliwych rozszerzeń do Chrome (a więc także innych opartych na Chromium przeglądarek Edge, Brave, Opera czy Vivaldi) otrzymało złośliwe aktualizacje. I zdaje się, że nie jest to typowy atak na łańcuch dostaw, w którym atakujący przejęliby konta twórców wtyczek, żeby wprowadzić swój kod. Wszystko wskazuje na to, że wtyczki zostały po prostu wykupione (po co atakować twórców, skoro wystarczy zapłacić ;)
Chociaż rozszerzenia wyglądały na nieszkodliwe i nie żądały żadnych specjalnych uprawnień, zostały zmodyfikowane tak, aby regularnie pobierać plik konfiguracyjny z serwera atakujących. Pozwalało to dynamicznie wstrzykiwać treści na wyświetlanych stronach oraz manipulować nimi bez konieczności ciągłych aktualizacji wtyczki w Web Store (wystarczył jednorazowy update do złośliwej wersji). Ewentualna zmiana konfiguracji musiała pojawić się jedynie na serwerze C2 (Command & Control), a rozszerzenia wdrażały ją same.
Badacze ustalili, że złośliwe funkcjonalności były wprowadzane natychmiast po zmianie właściciela w Chrome Web Store. Równolegle (krótko przed opublikowaniem aktualizacji) rejestrowane były domeny dla serwerów C2 używane później do dostarczania dynamicznej konfiguracji. Zbieżność rejestracji takich domen ze zmianami w kodzie po przejęciu wtyczek wskazuje, że działo się to w ramach skoordynowanej kampanii, a nie były to pojedyncze incydenty.
Chociaż badane rozszerzenia służyły pierwotnie do zupełnie różnych celów, złośliwy kod działał we wszystkich praktycznie tak samo. Przede wszystkim, każda wtyczka co 5 minut pobierała plik konfiguracyjny (config.php / theme.php) z serwera C2.
Plik ten definiował m.in.:
- strony internetowe, które modyfikowano
- elementy DOM, które miały zostać zmienione
- adres URL payloadu, który miał zostać wstrzyknięty
Ponieważ dane te pochodzą z domen kontrolowanych przez atakujących, zachowanie rozszerzeń może zostać zmienione w każdej chwili, bez żadnej aktualizacji w Chrome Web Store (a więc niezauważalnie dla użytkownika).
Wtyczki dla pobranych parametrów podmieniały elementy / parametry w DOM (Document Object Model) zdefiniowanych w konfiguracji stron:

Rozszerzenia wykorzystywały te reguły do pobierania treści kontrolowanych przez atakujących i bezpośredniego wstrzykiwania ich do stron internetowych:
Pozwala to m.in. na:
- przekierowanie (prawdziwych) formularzy logowania do domeny atakujących (de facto możliwość pozyskania loginu i hasła ofiary)
- modyfikację stron finansowych / sklepów
- wstrzyknięcie reklam / skryptów śledzących
- modyfikację treści artykułów / nagłówków / wpisów w social mediach
Aby zapewnić, że modyfikacje nie mogą zostać cofnięte przez witrynę (np. w sytuacji, gdy treść jest dynamicznie wstawiana przez framework frontendowy), rozszerzenie używa MutationObserver. Jest to API do wykrywania zmian w DOM. Dzięki temu treści dostarczane przez atakujących są wprowadzane za każdym razem, gdy oryginalna treść strony się aktualizuje.
Po sprawdzeniu historycznych danych z Chrome Web Store całość tworzyła spójny schemat – rozszerzenia były nieszkodliwe aż do zmiany właściciela. Przed wprowadzeniem zmian wtyczki zawierały deklarowane przez twórców funkcjonalności i nie korzystały ze zdalnych plików konfiguracyjnych ani nie modyfikowały DOM.
Badacze zebrali te zbieżności czasowe w tabeli:
| ID rozszerzenia | Zmiana właściciela | Rejestracja domeny C2 | Wydanie złośliwej aktualizacji |
| kbaofbaehfbehifbkhplkifihabcicoi | 2025-07-19 | 2025-07-27 | 2025-07-30 |
| ijhbioflmfpgfmgapjnojopobfncdeif | 2025-07-23 | 2025-08-20 | 2025-08-27 |
| nimnhhcainjoacphlmhbkodofenjgobh | 2025-07-19 | 2025-08-20 | 2025-08-22 |
| jleonlfcaijhkgejhhjfjinedgficgaj | 2025-04-14 | 2025-08-22 | 2025-08-26 |
| pgfjnclkpdmocilijgalomiaokgjejdm | 2025-07-19 | 2025-08-13 | 2025-08-16 |
| eekibodjacokkihmicbjgdpdfhkjemlf | 2025-09-21 | 2025-09-23 | 2025-09-25 |
| ggjlkinaanncojaippgbndimlhcdlohf | 2024-09-25 | 2024-09-30 | 2024-10-11 |
| ncbknoohfjmcfneopnfkapmkblaenokb | 2024-12-13 | 2025-02-03 | 2025-02-07 |
Najprawdopodobniej w tej kampanii atakujący zwyczajnie wybierali rozszerzenia o dużej liczbie instalacji i kupowali je od dotychczasowych twórców, by następnie wdrożyć złośliwą aktualizację, którą zainstaluje wielu użytkowników.
W grudniu badacze zidentyfikowali kilka kolejnych wtyczek, które także stały się złośliwe, ale nieco inaczej niż poprzednie. Zamiast malware wdrożono w nich adware.Rozszerzenia początkowo spełniały tylko swoją pierwotną funkcję. Jednak zaczęły pobierać również konfigurację z serwera C2. Plik ten zawierał listę domen, dla których rozszerzenie miało wyświetlać fałszywą “captchę”.

Gdy użytkownik odwiedzał jedną z tych domen, natychmiast wyświetlany był komunikat informujący o weryfikacji (“captcha”).

Choć całość udaje Cloudflare Turnstile, kliknięcie tak naprawdę przekierowuje ofiarę do kolejnej strony. Ta z kolei rejestruje service worker i wysyła dane o urządzeniu, przeglądarce i systemie operacyjnym użytkownika do domeny pushtorm[.]net. Następnie użytkownik jest proszony o wyrażenie zgody na powiadomienia.

Po ich przyznaniu rozszerzenie zaczyna wysyłać reklamy za pośrednictwem tych właśnie powiadomień, działając jak typowe adware.
Ta kampania jest kolejnym dowodem na to, jak nawet znane i zaufane wtyczki mogą stać się złośliwe. Powodem może być atak na łańcuch dostaw (jak np. w przypadku Trust Wallet, o którym niedawno pisaliśmy), ale też po prostu… wykupienie wtyczki przez atakujących.
Każde zainstalowane w przeglądarce rozszerzenie może stać się wektorem ataku. Główną poradą będzie więc minimalizacja liczby rozszerzeń. Dodatkowo warto rozważyć instalację specyficznych wtyczek (np. służących tylko do pobierania czy wyodrębnienia danych) w osobnej przeglądarce tylko do tego celu (co ograniczy skutki części ataków do miejsc, w których używaliśmy wtyczki). Pomóc może też wykonywanie wrażliwych operacji (np. płatności, logowanie do banku, ePUAP) w trybie incognito, gdzie wtyczki domyślnie nie mają dostępu.
Źródło: layerxsecurity.com
~Tymoteusz Jóźwiak
