Chyba zabezpečení v Adblock Plus, která umožňuje spuštění kódu při použití pochybných filtrů

V blokování reklam Adblock Plus identifikované zranitelnost, dovolující organizovat spouštění kódu JavaScript v kontextu stránek v případě použití neověřených filtrů připravených útočníky (například při připojování sad pravidel třetích stran nebo prostřednictvím záměny pravidel během útoku MITM).

Autoři seznamů se sadami filtrů mohou organizovat provádění svého kódu v kontextu stránek otevřených uživatelem přidáním pravidel s operátorem "přepsat“, který umožňuje nahradit část adresy URL. Operátor přepisu vám neumožňuje nahradit hostitele v adrese URL, ale umožňuje vám volně manipulovat s argumenty požadavku. Jako náhradní masku lze použít pouze text a je povoleno nahrazování značek skriptu, objektu a vnořeného dokumentu blokováno.

Spuštění kódu však lze dosáhnout náhradním řešením.
Některé weby, včetně Map Google, Gmailu a Obrázků Google, používají techniku ​​dynamického načítání spustitelných bloků JavaScriptu přenášených ve formě holého textu. Pokud server umožňuje přesměrování požadavku, lze přesměrování na jiného hostitele dosáhnout změnou parametrů adresy URL (například v kontextu Google lze přesměrování provést prostřednictvím rozhraní API "google.com/search"). Kromě hostitelů, které umožňují přesměrování, lze útok provést také proti službám, které umožňují zveřejňování uživatelského obsahu (hosting kódu, platformy pro vkládání článků atd.).

Navrhovaná metoda útoku ovlivňuje pouze stránky, které dynamicky načítají řetězce kódu JavaScript (například prostřednictvím XMLHttpRequest nebo Fetch) a poté je spouštějí. Dalším důležitým omezením je nutnost použít přesměrování nebo umístit libovolná data na stranu původního serveru vydávajícího zdroj. Abychom však demonstrovali relevanci útoku, je ukázáno, jak organizovat provádění vašeho kódu při otevírání maps.google.com pomocí přesměrování přes „google.com/search“.

Oprava je stále v přípravě. Problém se týká i blokátorů AdBlock и uBlock. Blokátor uBlock Origin není tímto problémem ovlivněn, protože nepodporuje operátor „přepisování“. Svého času autor uBlock Origin
odmítl přidat podporu pro přepis s odkazem na možné problémy se zabezpečením a nedostatečná omezení na úrovni hostitele (místo přepisu byla navržena možnost querystrip, aby se vyčistily parametry dotazu místo jejich nahrazení).

Vývojáři Adblock Plus považují skutečné útoky za nepravděpodobné, protože všechny změny standardních seznamů pravidel jsou přezkoumávány a připojení seznamů třetích stran je mezi uživateli extrémně vzácné. Nahrazování pravidel přes MITM je zabráněno výchozím používáním HTTPS pro stahování standardních seznamů blokování (u ostatních seznamů se plánuje zákaz stahování přes HTTP v budoucí verzi). Direktivy lze použít k zablokování útoku na straně webu CSP (Content Security Policy), prostřednictvím kterého můžete explicitně určit hostitele, ze kterých lze načítat externí zdroje.

Zdroj: opennet.ru

Přidat komentář