Zraniteľnosť v Adblock Plus, ktorá umožňuje spustenie kódu pri použití pochybných filtrov

V blokovaní reklám Adblock Plus identifikované zraniteľnosť, dovoľovať organizovať vykonávanie kódu JavaScript v kontexte stránok v prípade použitia neoverených filtrov pripravených útočníkmi (napríklad pri pripájaní súborov pravidiel tretích strán alebo prostredníctvom nahradenia pravidiel počas útoku MITM).

Autori zoznamov so sadami filtrov môžu organizovať vykonávanie svojho kódu v kontexte stránok otvorených používateľom pridaním pravidiel s operátorom "prepísať“, ktorý vám umožňuje nahradiť časť adresy URL. Operátor prepísania vám neumožňuje nahradiť hostiteľa v adrese URL, ale umožňuje vám voľne manipulovať s argumentmi požiadavky. Ako náhradnú masku možno použiť iba text a je povolené nahrádzať značky skriptu, objektu a subdokumentu zablokované.

Spustenie kódu však možno dosiahnuť náhradným riešením.
Niektoré stránky vrátane Máp Google, Gmailu a Obrázkov Google používajú techniku ​​dynamického načítania spustiteľných blokov JavaScriptu, ktoré sa prenášajú vo forme holého textu. Ak server umožňuje presmerovanie požiadavky, presmerovanie na iného hostiteľa je možné dosiahnuť zmenou parametrov adresy URL (napríklad v kontexte Google je možné vykonať presmerovanie prostredníctvom rozhrania API "google.com/search"). Okrem hostiteľov, ktoré umožňujú presmerovanie, môže byť útok vykonaný aj proti službám, ktoré umožňujú uverejňovanie používateľského obsahu (hosting kódu, platformy na uverejňovanie článkov atď.).

Navrhovaná metóda útoku ovplyvňuje iba stránky, ktoré dynamicky načítavajú reťazce kódu JavaScript (napríklad prostredníctvom XMLHttpRequest alebo Fetch) a potom ich spúšťajú. Ďalším dôležitým obmedzením je potreba použiť presmerovanie alebo umiestniť ľubovoľné údaje na stranu pôvodného servera vydávajúceho zdroj. Na demonštráciu relevantnosti útoku je však uvedené, ako organizovať spustenie vášho kódu pri otvorení maps.google.com pomocou presmerovania cez „google.com/search“.

Oprava je stále v príprave. Problém sa týka aj blokátorov Adblock и uBlock. Blokátor uBlock Origin nie je ovplyvnený problémom, pretože nepodporuje operátor „prepis“. Svojho času autor uBlock Origin
odmietol pridať podporu pre prepis s uvedením potenciálnych bezpečnostných problémov a nedostatočných obmedzení na úrovni hostiteľa (namiesto prepísania bola navrhnutá možnosť Querystrip, aby sa vyčistili parametre dotazu namiesto ich nahradenia).

Vývojári Adblock Plus považujú skutočné útoky za nepravdepodobné, pretože všetky zmeny štandardných zoznamov pravidiel sú kontrolované a pripájanie zoznamov tretích strán je medzi používateľmi extrémne zriedkavé. Nahradeniu pravidiel cez MITM bráni štandardné používanie HTTPS na sťahovanie štandardných zoznamov blokov (pre ostatné zoznamy sa plánuje zákaz sťahovania cez HTTP v budúcom vydaní). Direktívy možno použiť na blokovanie útoku na strane lokality CSP (Content Security Policy), prostredníctvom ktorej môžete explicitne určiť hostiteľov, z ktorých možno načítať externé zdroje.

Zdroj: opennet.ru

Pridať komentár