Kutatók egy csoportja amerikai, ausztrál és izraeli egyetemek jelentették új támadási technikát írt le amely lehetővé teszi a sebezhetőségek kihasználását Spectre osztály Chromium-alapú böngészőkön.
A támadás kódnéven A Spook.js lehetővé teszi a JavaScript -kód végrehajtásakor, hogy megkerülje a webhely -elkülönítési mechanizmust és az aktuális folyamat teljes címterének tartalmának olvasása, azaz hozzáférés azoknak az oldalaknak az adataihoz, amelyek más lapokon vannak végrehajtva, de ugyanazon folyamatban kerülnek feldolgozásra.
Mivel a Chrome különböző webhelyeket indít el különböző folyamatokban, a gyakorlati támadások olyan szolgáltatásokra korlátozódnak, amelyek lehetővé teszik, hogy különböző felhasználók tárolják oldalaikat. A Spook.js támadási módszer lehetővé teszi egy olyan oldalról, ahol a támadó beágyazhatja JavaScript -kódját, határozza meg az ugyanazon webhely felhasználója által megnyitott egyéb oldalak jelenlétét és nyerjen ki bizalmas információkat ezek közül például a hitelesítő adatok vagy banki adatok, amelyeket az automatikus kiegészítő rendszer vált le webes űrlapokon.
A módszer másik alkalmazása a böngészőbővítmények elleni támadás, amely lehetővé teszi, hogy egy támadó által vezérelt beépülő modul telepítésekor adatokat nyerjen ki más bővítményekből.
A Spook.js minden Chromium motoron alapuló böngészőre alkalmazható, beleértve a Google Chrome -ot, a Microsoft Edge -t és a Brave -t. A kutatók azt is hiszik, hogy a módszer adaptálható a Firefoxhoz, de mivel a Firefox motorja nagyon különbözik a Chrome -tól, az ilyen kihasználás létrehozásának munkáját a jövőre bízzák.
A böngészőn keresztül az utasítások spekulatív végrehajtásával kapcsolatos támadások elleni védelem érdekében a Chrome-ban a címtér-szegmentálás valósul meg: a homokozó-izolálás lehetővé teszi, hogy a JavaScript csak 32 bites mutatókkal működjön, és megosztja a vezérlő memóriáját nem átfedésben lévő 4 GB-os kötegekkel.
A folyamat teljes címteréhez való hozzáférés megszervezése és a 32 bites korlátozás elkerülése érdekében a kutatók a típuszavar technikát használták, amely lehetővé teszi a JavaScript motor számára, hogy rossz típusú objektumot dolgozzon fel, lehetővé téve egy 64 bites formázást kód két 32 bites érték kombinációján alapul.
A támadás lényege, hogy a JavaScript motorban egy speciálisan kialakított rosszindulatú objektum feldolgozásával olyan feltételek jönnek létre, amelyek a tömbhöz hozzáférő utasítások spekulatív végrehajtásához vezetnek. Az objektumot úgy választják ki, hogy a támadók által vezérelt mezők a 64 bites mutató használatának területére kerüljenek.
Mivel a rosszindulatú objektum típusa nem felel meg a feldolgozott tömb típusának, normál körülmények között az ilyen műveleteket blokkolja a Chrome -ban a tömbök eléréséhez használt kód deoptimizációs mechanizmusa. A probléma megoldásához a Type Confusion támadási kódot egy "if" feltételes blokkba helyezzük, amely normál körülmények között nem indul, de spekulatív módban fut, ha a processzor helytelenül több ágat jósol.
Ennek eredményeként a processzor spekulatívan hozzáfér a generált 64 bites mutatóhoz, és visszaállítja az állapotot a sikertelen előrejelzés meghatározása után, de a végrehajtási nyomok a megosztott gyorsítótárban vannak beállítva, és visszaállíthatók a gyorsítótár tartalmának meghatározására szolgáló módszerekkel a harmadik pártcsatornák, elemzi a gyorsítótárazott és nem gyorsítótárazott adatok elérési idejének változását.
A gyorsítótár tartalmának elemzéséhez a JavaScript-ben elérhető időzítő elégtelen pontossága esetén a Google által javasolt módszert alkalmazzák, amely átveri a processzorokban használt Tree-PLRU gyorsítótár-adatkioldási stratégiát, és lehetővé teszi a számciklusok növelésével jelentősen növeli az időkülönbséget a gyorsítótárban lévő érték jelenlétében és hiányában.
A kutatók közzétettek egy prototípus -kihasználást, amely a Chrome 89 e -ben működikn rendszerek Intel i7-6700K és i7-7600U. A kihasználást a Google által korábban közzétett JavaScript -kód prototípusainak felhasználásával hozták létre a Spectre támadások végrehajtásához.
Végül a kutatók megemlítik ezt sikerült előkészíteni az Intel és az Apple M1 processzoron alapuló rendszerek működési lehetőségeit, amelyek lehetőséget kapnak a memóriaolvasás 500 bájt másodpercenként és 96%-os pontossággal történő megszervezésére. A módszer állítólag alkalmazható az AMD processzorokra, de nem volt lehetséges teljesen működőképes előkészítés.
forrás: https://www.spookjs.com