Az Adblock Plus biztonsági rése, amely megkérdőjelezhető szűrők használatakor kódfuttatást tesz lehetővé

Adblock Plus hirdetésblokkolóban azonosított sebezhetőség, lehetővé téve megszervezheti a JavaScript-kód végrehajtását a webhelyek kontextusában, a támadók által készített, ellenőrizetlen szűrők használata esetén (például harmadik féltől származó szabálykészletek összekapcsolásakor vagy szabályok helyettesítése révén MITM-támadás során).

A szűrőkészletekkel rendelkező listák készítői megszervezhetik kódjuk végrehajtását a felhasználó által megnyitott webhelyek kontextusában úgy, hogy szabályokat adnak hozzá az operátorral "rewrite", amely lehetővé teszi az URL egy részének cseréjét. Az újraírási operátor nem teszi lehetővé a gazdagép lecserélését az URL-ben, de lehetővé teszi a kérés argumentumainak szabad manipulálását. Cseremaszkként csak szöveg használható, a szkript-, objektum- és aldokumentum-címkék helyettesítése megengedett zárolt.

A kódvégrehajtás azonban megoldható egy kerülő megoldással.
Egyes webhelyek, köztük a Google Térkép, a Gmail és a Google Képek, a futtatható JavaScript-blokkok dinamikus betöltésének technikáját használják, amelyeket puszta szöveg formájában továbbítanak. Ha a szerver engedélyezi a kérés átirányítását, akkor az URL-paraméterek megváltoztatásával egy másik gazdagépre való továbbítás érhető el (például a Google kontextusában az API-n keresztül lehet átirányítást végeznigoogle.com/search"). Az átirányítást lehetővé tevő gazdagépek mellett támadást lehet végrehajtani olyan szolgáltatások ellen is, amelyek lehetővé teszik felhasználói tartalmak közzétételét (kódtárhely, cikkküldő platformok stb.).

A javasolt támadási módszer csak azokat az oldalakat érinti, amelyek dinamikusan töltik be a JavaScript-kód karakterláncait (például XMLHttpRequest vagy Fetch segítségével), majd végrehajtják azokat. Egy másik fontos korlátozás az, hogy átirányítást kell használni, vagy tetszőleges adatokat kell elhelyezni az erőforrást kiadó eredeti kiszolgáló oldalán. A támadás relevanciájának bemutatása érdekében azonban bemutatjuk, hogyan kell megszervezni a kód végrehajtását a maps.google.com webhely megnyitásakor a „google.com/search” webhelyen keresztüli átirányítással.

A javítás még előkészítés alatt áll. A probléma a blokkolókat is érinti AdBlock и uBlock. Az uBlock Origin blokkolót nem érinti a probléma, mivel nem támogatja az „újraírás” operátort. Egy időben az uBlock Origin szerzője
visszautasította az újraírás támogatása a lehetséges biztonsági problémákra és az elégtelen hosztszintű korlátozásokra hivatkozva (a lekérdezésparaméterek lecserélése helyett az átírás helyett egy querystrip opciót javasoltak).

Az Adblock Plus fejlesztői valószínűtlennek tartják a valódi támadásokat, mivel a szabványos szabálylisták minden módosítását felülvizsgálják, és a harmadik féltől származó listák összekapcsolása rendkívül ritka a felhasználók körében. A szabályok MITM-en keresztüli helyettesítését megakadályozza a HTTPS alapértelmezett használata a szabványos tiltólisták letöltésére (más listák esetében a tervek szerint a HTTP-n keresztüli letöltést egy jövőbeni kiadásban tiltják). Az irányelvek segítségével blokkolható egy támadás a webhely oldalán CSP (Tartalombiztonsági házirend), amelyen keresztül kifejezetten meghatározható, hogy mely gazdagépekről lehet külső erőforrásokat betölteni.

Forrás: opennet.ru

Hozzászólás