Luka w Adblock Plus, pozwalająca na wykonanie kodu przy użyciu wątpliwych filtrów

W blokadorze reklam Adblock Plus wykryto istnieje luka, pozwalająca pozwalająca na wykonanie kodu JavaScript w kontekście stron internetowych, w przypadku użycia niezweryfikowanych filtrów przygotowanych przez osoby trzecie (na przykład przy połączeniu z zewnętrznymi zestawami reguł lub poprzez podstawienie reguł podczas ataku MITM).

Autorzy list z zestawami filtrów mogą zorganizować wykonanie swojego kodu w kontekście otwieranych przez użytkownika stron dodając reguły z operatorem „rewrite„, który pozwala na zamianę części URL. Operator rewrite nie pozwala na zmianę hosta w URL, ale umożliwia swobodne manipulowanie argumentami zapytania. Jako maska do zamiany można stosować tylko tekst, a podstawienie znaczników script, object i subdocument blokowany.

Niemniej jednak, wykonanie kodu można osiągnąć pośrednio.
Niektóre strony, w tym Google Maps, Gmail i Google Images, stosują technikę dynamicznego ładowania wykonawczych bloków JavaScript, przekazywanych w formie surowego tekstu. Jeśli serwer dopuszcza przekierowanie zadań, to można przeprowadzić przekierowanie na inny host zmieniając parametry URL (na przykład, w kontekście Google, przekierowanie można zrealizować poprzez API „google.com/search„). Oprócz hostów, które dopuszczają przekierowanie, atak może być również wymierzony w usługi umożliwiające umieszczanie treści użytkowników (hosting kodu, platformy publikacji artykułów itd.).

Proponowana metoda ataku dotyczy tylko stron ładujących dynamicznie ciągi z kodem JavaScript (na przykład, poprzez XMLHttpRequest lub Fetch) i następnie je wykonujących. Innym ważnym ograniczeniem jest konieczność użycia przekierowania lub umieszczenia dowolnych danych po stronie pierwotnego serwera dostarczającego zasób. Niemniej jednak, jako demonstrowanie aktualności ataku pokazano, jak zorganizować wykonanie własnego kodu przy otwieraniu maps.google.com, używając przekierowania przez „google.com/search”.

Naprawa jest obecnie w trakcie przygotowania. Problem dotyczy również blokatorów AdBlock i uBlock. Blokator uBlock Origin nie jest podatny na problem, ponieważ nie wspiera operatora „rewrite”. Kiedyś autor uBlock Origin
odmówił dodawanie wsparcia dla rewrite, powołując się na potencjalne problemy z bezpieczeństwem i niewystarczające ograniczenia na poziomie hosta (zamiast rewrite zaproponowano opcję querystrip do oczyszczania parametrów zapytania zamiast ich zastępowania).

Programiści Adblock Plus uważają, że przeprowadzenie rzeczywistych ataków jest mało prawdopodobne, ponieważ wszystkie zmiany w standardowych listach reguł są recenzowane, a korzystanie z zewnętrznych list jest przez użytkowników praktykowane niezwykle rzadko. Zastąpienie reguł za pomocą MITM wyklucza domyślne użycie HTTPS do ładowania standardowych list blokowania (dla pozostałych list planowane jest zablokowanie ładowania przez HTTP w przyszłej wersji). W celu zablokowania ataków po stronie stron internetowych można zastosować dyrektywy CSP (Content Security Policy), za pomocą których można wyraźnie określić hosty, z których dozwolone jest ładowanie zewnętrznych zasobów.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster