Megjelent a Chrome-ba telepített bővítmények észlelésére szolgáló eszköztár

Megjelent egy eszközkészlet, amely egy módszert valósít meg a Chrome böngészőbe telepített bővítmények észlelésére. Az eredményül kapott bővítmények listája felhasználható egy adott böngészőpéldány passzív azonosításának pontosságának növelésére, más közvetett jelzőkkel kombinálva, mint például a képernyőfelbontás, a WebGL-szolgáltatások, a telepített bővítmények és betűtípusok listája. A javasolt megvalósítás több mint 1000 kiegészítő telepítését ellenőrzi. Egy online bemutatót kínálunk a rendszer tesztelésére.

A bővítmények meghatározása a kiegészítők által biztosított, külső kérések számára elérhető erőforrások elemzésén keresztül történik. A bővítmények általában különféle kísérő fájlokat, például képeket tartalmaznak, amelyeket a web_accessible_resources tulajdonság határoz meg a bővítmény jegyzékében. A Chrome-jegyzék első verziójában az erőforrásokhoz való hozzáférés nem volt korlátozva, és bármely webhely letölthette a biztosított erőforrásokat. A jegyzék második verziójában az ilyen erőforrásokhoz való hozzáférés alapértelmezés szerint csak magának a bővítménynek volt engedélyezve. A kiáltvány harmadik verziójában meg lehetett határozni, hogy mely bővítményekhez, tartományokhoz, oldalakhoz milyen erőforrások adhatók.

A weboldalak lekérhetik a bővítmény által biztosított erőforrásokat a fetch metódussal (például "fetch('chrome-extension://okb....nd5/test.png')"), ami általában azt jelzi, hogy a "false" hogy a kiegészítő nincs telepítve. Egyes bővítmények egy erőforrás jelenlétének észlelését megakadályozó ellenőrző tokent generálnak, amelyek az erőforrás eléréséhez szükségesek. A lekérés hívása token megadása nélkül mindig sikertelen.

Mint kiderült, a kiegészítő erőforrásokhoz való hozzáférés védelme megkerülhető a művelet végrehajtási idejének becslésével. Annak ellenére, hogy a fetch token nélküli kéréskor mindig hibát ad vissza, a művelet végrehajtási ideje a kiegészítővel és anélkül eltérő - ha a kiegészítő jelen van, a kérés tovább tart, mint ha a kiegészítő nincs telepítve. A reakcióidő felmérésével meglehetősen pontosan meghatározhatja a kiegészítő jelenlétét.

Egyes bővítmények, amelyek nem tartalmaznak külsőleg elérhető erőforrásokat, további tulajdonságokkal azonosíthatók. Például a MetaMask kiegészítő definiálható a window.ethereum tulajdonság definíciójának kiértékelésével (ha a kiegészítő nincs beállítva, a "typeof window.ethereum" az "undefined" értéket adja vissza).

Forrás: opennet.ru

Hozzászólás