# Analiza złośliwego rozszerzenia Chrome udającego panel YouTube
W Chrome Web Store odkryto rozszerzenie „Youside — boczny panel YouTube”, które w rzeczywistości nie ma nic wspólnego z funkcjonalnością YouTube. Zamiast obiecanych funkcji — wbudowanego odtwarzacza, zarządzania subskrypcjami i szybkiego dostępu — implementuje cienki klient dla zewnętrznego backendu z zdalnym sterowaniem interfejsem, zbieraniem danych użytkowników i ukrytą monetyzacją.
Architektura: klient bez logiki
Rozszerzenie o identyfikatorze mmecpiobcdbjkaijljohghhpfgngpjmk demonstruje typową architekturę złośliwego oprogramowania: minimum lokalnej logiki, maksimum zależności od zewnętrznego serwera. Po uruchomieniu generowany jest lub odczytywany trwały user_id z localStorage, po czym wysyłany jest request do API pod adresem https://mines.cloudapi.stream/user_info. Odpowiedź serwera w pełni determinuje zachowanie interfejsu użytkownika — od wyświetlania elementów po zawartość bloków HTML.
Kluczowe cechy:
- Brak jakichkolwiek odwołań do YouTube API lub domeny
youtube.com - Brak implementacji IFrame Player API
- Brak logiki obsługi subskrypcji, wyszukiwania wideo czy pracy z strumieniem wideo
- Wszystkie działania sterowane są przez odpowiedzi zewnętrznego serwera
Dzięki temu atakujący mogą dynamicznie zmieniać zachowanie rozszerzenia bez potrzeby aktualizacji kodu w sklepie.
Zdalne sterowanie interfejsem
Serwer zwraca obiekt JSON z polami success, is_valid, rating i protxt. Część kliencka bezpośrednio stosuje te dane do DOM bez jakiejkolwiek walidacji:
if (result.is_valid) {
proplansID.classList.add('h_');
playBtn.classList.remove('h_');
} else {
playBtn.classList.add('h_');
}
Taki podejście realizuje mechanizm flag cech, ale bez ochrony przed iniekcjami. Szczególnie niebezpieczne jest bezpośrednie wstawianie HTML:
if (result.protxt) {
proplansID.innerHTML = result.protxt;
}
Ponieważ zawartość nie jest filtrowana ani sanitizowana, serwer może wstrzyknąć dowolny JavaScript za pomocą innerHTML, co otwiera drogę do ataków XSS nawet w izolowanym kontekście rozszerzenia.
Ukryta monetyzacja i śledzenie
Wszystkie przyciski z klasą .buyBtn są przechwytywane i przekierowywane na zewnętrzny domenę:
document.querySelectorAll('.buyBtn').forEach(btn => {
btn.setAttribute(
'href',
`https://topup.cloudapi.stream/?user_id=${encodeURIComponent(localStorage.getItem("user_id"))}&type=game`
);
});
W ten sposób wszelkie kliknięcia tych elementów przekazują unikalny identyfikator użytkownika w parametrze URL. Pozwala to powiązać działania użytkownika z jego profilem w celach monetyzacji lub dalszego profilowania.
Do stabilnego śledzenia używana jest kombinacja danych:
user_idzlocalStorage(trwały identyfikator)chrome.runtime.id(unikalny ID rozszerzenia w przeglądarce)navigator.language(kod językowy użytkownika)
Taki zestaw zapewnia wysoką precyzję identyfikacji nawet przy zmianie adresu IP lub czyszczeniu ciasteczek.
Brak deklarowanej funkcjonalności
Mimo opisu w sklepie rozszerzenie nie zawiera ani jednej linii kodu związanej z YouTube:
- Brak wywołań YouTube Data API
- Brak osadzania odtwarzacza wideo przez iframe
- Brak obsługi zdarzeń odtwarzania
- Brak logiki pracy z playlistami lub kanałami
Jedyna interakcja z YouTube to przekierowanie po kliknięciu przycisku Play:
playBtn.addEventListener("click", () => {
window.location = "https://youtube.com/";
});
Potwierdza to, że rozszerzenie zostało stworzone wyłącznie do kamuflażu pod przydatne narzędzie, podczas gdy jego rzeczywistym celem jest zbieranie danych i monetyzacja ruchu.
Co ważne
- Rozszerzenie nie oferuje deklarowanej funkcjonalności YouTube.
- Interfejs jest w pełni sterowany przez zewnętrzny serwer za pomocą niechronionych API.
- Możliwa iniekcja dowolnego HTML i potencjalny XSS.
- Zaimplementowane ukryte śledzenie użytkownika poprzez kombinację identyfikatorów.
- Wszystkie linki monetyzacyjne przekierowują na zewnętrzne domeny z przekazywaniem user_id.
— Editorial Team
Brak komentarzy.