Új technikát vezetett be a rejtett rendszer és böngésző azonosítására

A Grazi Műszaki Egyetem (Ausztria) kutatóinak egy csoportja, amely korábban támadási módszerek fejlesztéséről volt ismert MDS, NetSpectre и Dobókalapács, fedetlen információk egy új, harmadik féltől származó elemzési technikáról, amely lehetővé teszi a böngésző pontos verziójának, a használt operációs rendszer, a CPU architektúra, valamint a rejtett azonosítás leküzdésére szolgáló bővítmények használatának meghatározását.

E paraméterek meghatározásához elegendő a kutatók által elkészített JavaScript kódot a böngészőben végrehajtani. A módszer a gyakorlatban nem csak kiegészítő forrásként használható a közvetett felhasználói azonosításhoz, hanem az exploitok célzott használatához szükséges rendszerkörnyezeti paraméterek meghatározására is, figyelembe véve az operációs rendszert, az architektúrát és a böngészőt. A módszer akkor is hatékony, ha rejtett azonosítási blokkoló mechanizmusokkal rendelkező böngészőket használunk, mint például a Tor Browser. Forráskód prototípus kód metódus implementációval közzétett az MIT engedélye alapján.

A meghatározás a JavaScriptben a különböző böngészőkre jellemző tulajdonság-állapotminták kiosztása és a műveletek végrehajtási idejének jellemzői alapján történik, a JIT, CPU és memóriaallokációs mechanizmusok jellemzőitől függően. A tulajdonságok meghatározása a JavaScriptből elérhető összes objektum listájának létrehozásával történik. Mint kiderült, az objektumok száma közvetlenül korrelál a böngészőmotorral és annak verziójával.

function getProperties(o) {
varresult = [];
while (o !== null) {
eredmény = eredmény.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
visszatérési eredmény;
}

Például Firefox esetén 2247 tulajdonság támogatása van deklarálva a dokumentációban, míg bizonyos tulajdonságok tényleges száma a nem dokumentáltakat is figyelembe véve 15709 (Tor Browserben - 15639), Chrome esetén 2698 tulajdonság van deklarálva, de 13570 ténylegesen kínálják (az Androidra készült Chrome-ban – 13119) . A tulajdonságok száma és értéke a böngésző verziójáról és a különböző operációs rendszerekről változik.

Bizonyos tulajdonságok értékei és jelenléte felhasználható az operációs rendszer típusának meghatározására. Például a Kubuntuban a window.innerWidth tulajdonság 1000-re, a Windows 10-ben pedig 1001-re van állítva. Windowson a window.navigator.activeVRDisplays tulajdonság elérhető, Linuxon viszont nem. Számos konkrét hívás érhető el az Android számára, de nincs ablak.SharedWorker. Az operációs rendszer azonosításához javasolt a WebGL-paraméterek elemzése is, amelyek állapota az illesztőprogramoktól függ. Ezenkívül a WEBGL_debug_renderer_infoextension meghívása lehetővé teszi, hogy információkat kapjon az OpenGL-megjelenítő motorról, amely operációs rendszerenként eltérő.

A CPU meghatározásához különféle tipikus kódblokkok végrehajtási idejében mutatkozó különbségek értékelését használják, amelyek feldolgozása az utasításkészlet architektúrájától függ, figyelembe véve a JIT viselkedését (meghatározzák, hogy hány CPU regiszter részt vesz, és mely esetekben a JIT hatékony kódot generál optimalizálással és kiterjesztett utasításokkal, és mikor nem ). A memóriafoglalási rendszer és az operációs rendszer típusának meghatározásához a különböző struktúrák memóriafoglalási idejének különbségét is mérik, ami alapján megítélhető a memóriablokkok mérete.

A szkript végrehajtása során meghatározott paraméterek összehasonlításra kerülnek az előre tesztelt környezetekre jellemző referenciaértékekkel. A teszt során a kidolgozott technika 40 különböző tesztkörnyezet pontos meghatározását tette lehetővé, meghatározva a használt böngészők verzióit, a CPU gyártóját, a használt operációs rendszert, illetve azt, hogy valós hardveren vagy virtuális gépen fut-e.

Külön megemlítjük a böngészőbővítmények, sőt az egyéni kiegészítő beállítások megadásának lehetőségét, beleértve a rejtett azonosítási módszerek vagy a privát böngészési tevékenység blokkolására tervezett bővítményeket is. A javasolt módszerrel összefüggésben az ilyen kiegészítések az azonosítás másik adatforrásává válnak. A kiegészítések meghatározása az eredeti környezet paramétereinek a kiegészítések által bevezetett torzulásainak felmérésével történik.

Egyéb azonosítási módszerek mellett megjegyezhető az olyan közvetett adatok figyelembevétele, mint pl képernyőfelbontás, támogatott MIME típusok listája, fejlécspecifikus beállítások (HTTP / 2 и HTTPS), elemzése megállapított bővítmények és betűtípusok, a videokártyákra jellemző bizonyos webes API-k elérhetősége Jellemzők renderelés WebGL-lel és Vászon, manipuláció CSS-szel, a munka jellemzőinek elemzése egér и billentyűzet.

Forrás: opennet.ru

Hozzászólás