CPU gyorsítótárából történő adatkinyerés támadása, amely webböngészőben real-time JavaScript nélkül valósítható meg.

Egy kutatócsoport több amerikai, izraeli és ausztrál egyetemtől három működő, webböngészőkben végrehajtható támadást fejlesztett ki, amelyek célja a processzor cache-ében tárolt információk visszanyerése. Az egyik módszer JavaScript nélküli böngészőkben működik, míg a másik két módszer megkerüli a létező védekezési mechanizmusokat, amelyek a harmadik féltől érkező támadások ellen védenek, beleértve a Tor böngészőt és a DeterFoxot is. A támadások demonstrálására szolgáló kód, valamint a szükséges szerverkomponensek a GitHubon találhatók.

A cache tartalmának elemzéséhez minden támadás során a Prime+Probe módszert alkalmazzák, amely magában foglalja a cache referenciaértékekkel való feltöltését és a változások meghatározását, a hozzáférési idő mérésével a második feltöltéskor. A pontos időmérés akadályozásának megkerülése érdekében a böngészőkben két megoldásnál egy támadó DNS- vagy WebSocket-szerverhez való kapcsolódást használnak, amelyen naplózzák a kérések érkezési idejét. Az egyik megoldásnál a DNS-válasz rögzített idejét használják referenciaidőként.

A külső DNS- vagy WebSocket-szerverek bevonásával végzett mérések, a gépi tanulás alapú osztályozási rendszer alkalmazásának köszönhetően, elegendőek voltak ahhoz, hogy a legoptimálisabb forgatókönyvben (átlagosan 80-90%) 98%-os pontossággal jósolják meg az értékeket. A támadási módszereket különböző hardverplatformokon (Intel, AMD Ryzen, Apple M1, Samsung Exynos) tesztelték, és univerzálisnak bizonyultak.

CPU gyorsítótárából történő adatkinyerés támadása, amely webböngészőben real-time JavaScript nélkül valósítható meg.

Az első DNS Racing támadás során a Prime+Probe módszer klasszikus megvalósítását használják, JavaScript tömböket alkalmazva. A különbségek a DNS-alapú külső időmérő és az onerror eseménykezelő alkalmazására korlátozódnak, amely egy nem létező domainről való kép betöltési kísérletekor lép működésbe. A külső időmérő lehetővé teszi a Prime+Probe támadást a JavaScript időmérők korlátozott vagy teljesen letiltott hozzáférése mellett is.

Egy ugyanabban az Ethernet-hálózatban elhelyezkedő DNS-szerver esetében a timer pontossága körülbelül 2 ms, ami elegendő a harmadik fél csatornákon történő támadásokhoz (összehasonlításképpen a Tor Browser standard JavaScript-timere 100 ms-ra csökkentett pontosságú). DNS-szerverhez történő hozzáférésre nincs szükség a támadáshoz, mivel az eljárás végrehajtásának idejét úgy állítják be, hogy a DNS válaszidője korábbi tesztelés jelzője legyen (attól függően, hogy a onerror handler korábban vagy később aktiválódik, következtetés vonható le a cache-kel végzett tesztelés sebességéről).

A „String and Sock” támadás második módszere az alacsony szintű tömbhasználat korlátozásait megkerülő védelmi módszerek megkerülésére irányul JavaScript-ben. A „String and Sock” nagyon nagy sztringekkel dolgozik a tömbök helyett, amelyek méretét úgy választják meg, hogy a változó lefedje az összes LLC (Last Level Cache) cache-t. Ezután az indexOf() függvény segítségével egy kis részsztringet keresnek a sztringben, amely eredetileg nem található meg az alap sztringben, ami azt jelenti, hogy a keresési művelet végigmegy az egész sztringen. Mivel a sztring mérete megegyezik az LLC-cache méretével, a beolvasás lehetővé teszi a cache tesztelési műveletet anélkül, hogy tömbökkel kellene manipulálni. A DNS helyett a késések méréséhez egy támadó által irányított WebSocket-szerver hívása történik — a keresési művelet előtt és után kéréseket küldenek, amelyek alapján szerveren kiszámítják a késést, amely a cache tartalmának elemzésére szolgál.

A harmadik támadási forma, a "CSS PP0" HTML és CSS használatával valósult meg, és működhet olyan böngészőkben is, ahol a JavaScript ki van kapcsolva. A módszer hasonlít a "String and Sock"-hoz, de nem kötődik a JavaScripthez. A támadás során CSS-szelektorok halmaza jön létre, amelyek minták szerint keresnek. Az eredeti nagy sztring, amely a gyorsítótárat kitölti, egy div tag létrehozásával van meghatározva, nagyon hosszú osztálynévvel. Ezen belül más div-ek sora található saját azonosítóikkal. Minden egyes beágyazott div számára saját stílust határoznak meg, amely a részstringek keresésére van konfigurálva. Az oldal renderelésekor a böngésző először a belső div-ek feldolgozására törekszik, ami a nagy sztringben való keresés végrehajtásához vezet. A keresés szándékosan hiányzó mintán alapul, és végigfut az egész sztringen, ezt követően a "not" feltétel aktiválódik, és megkísérli betölteni a háttérképet, amely véletlenszerűen hivatkozik. domainok: <style> #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … </style> <div id="»pp»" class="»строка," размером около мегабайта»> <div id="»s0″">X</div> <div id="»s1″">X</div> … </div>

A almérők a támadó DNS-szerverén kerülnek kiszolgálásra, amely mérni tudja a kérdésekre adott válaszok késleltetését. Minden DNS-kérelemre a szerver NXDOMAIN-ot ad vissza, és naplózza a kérések pontos időpontját. A div-ek sorainak feldolgozása eredményeként a támadó DNS-szerverére egy sor kérés érkezik, amelyek közötti késleltetések korrelálnak a gyorsítótár tartalmának ellenőrzésének eredményével.

CPU gyorsítótárából történő adatkinyerés támadása, amely webböngészőben real-time JavaScript nélkül valósítható meg.


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster