A Google bemutatta néhány nappal ezelőtt különféle prototípusok amelyek bemutatják a sebezhetőségek kihasználásának lehetőségét a Spectre osztályba, amikor JavaScript kódot hajt végre egy böngészőben, anélkül, hogy végigvenné a fent hozzáadott biztonsági módszereket.
A kihasználásokkal hozzáférhető a folyamat memóriája amely webtartalmat dolgoz fel az aktuális fülön. A kihasználás működésének teszteléséhez elindították a kiszivárgó oldal webhelyét, és a művelet logikáját leíró kódot feltették a GitHub-ra.
A javasolt prototípust arra tervezték támadja meg a rendszereket Intel Core i7-6500U processzorok Linux és Chrome 88 környezetben, bár ez nem zárja ki, hogy változtatásokat lehessen eszközölni más környezetekben.
A működési módszer nem specifikus a feldolgozók Intel: megfelelő adaptáció után, Megerősítették, hogy a kihasználás harmadik féltől származó processzorokkal rendelkező rendszereken működik, ideértve az ARM architektúrán alapuló Apple M1-et is. Kisebb módosítások után a kihasználás más operációs rendszereken és más, a Chromium motoron alapuló böngészőkön is működik.
A szabványos Chrome 88 és Intel Skylake processzorokon alapuló környezetben adatszivárgást értünk el a webes tartalom megjelenítéséért felelős folyamatból a jelenlegi Chrome fülön (renderelési folyamat), másodpercenként 1 kilobyte sebességgel. Ezenkívül alternatív prototípusokat is kifejlesztettek, például egy kihasználást, amely a csökkent stabilitás árán lehetővé teszi a szivárgási sebesség 8 kB / s-ra növelését a performance.now () időzítő használatával 5 mikrosekundum (0.005 milliszekundum) pontossággal. ). Olyan változatot is kifejlesztettek, amely egy milliszekundumos időzítő pontossággal működött, és amely egy másik folyamat memóriájához való hozzáférés megszervezésére szolgál, körülbelül 60 bájt / másodperc sebességgel.
A közzétett bemutató kód három részből áll:
- Az első rész kalibrálja az időzítőt a futási idő becsléséhez a processzor gyorsítótárában maradt adatok visszakereséséhez szükséges műveletek közül a CPU utasításainak spekulatív végrehajtása eredményeként.
- A második rész Meghatározza a JavaScript tömb lefoglalásakor használt memória elrendezést.
- A harmadik rész közvetlenül kihasználja a Spectre biztonsági rést a memóriatartalom meghatározásához bizonyos folyamatok spekulatív végrehajtásának feltételeinek megteremtése eredményeként, amelyek eredményét a processzor elveti a sikertelen előrejelzés meghatározása után, de a végrehajtás nyomai rendeződnek a megosztott gyorsítótárban, és a a gyorsítótár tartalmának meghatározására szolgáló módszerek külső csatornák segítségével, amelyek elemzik a gyorsítótárazott és nem gyorsítótárazott adatok hozzáférési idejének változását.
A javasolt kizsákmányolási technika kiküszöböli a nagy pontosságú időzítéseket elérhető a performance.now () API-n keresztül és a SharedArrayBuffer típus támogatása nélkül, amely lehetővé teszi tömbök létrehozását a megosztott memóriában.
A kihasználás magában foglalja a Spectre eszközt, amely ellenőrzött spekulatív kódfuttatást eredményez, és egy oldalsó csatorna szivárgáselemzőt, amely meghatározza, hogy a spekulatív végrehajtás során milyen adatok kerültek gyorsítótárba.
A modult egy JavaScript tömb segítségével valósítják meg, amelyben a pufferhatáron kívül eső területre próbálnak belépni, amely a fordító által hozzáadott puffer méretellenőrzés jelenléte miatt befolyásolja az elágazás-előrejelző blokk állapotát (a processzor spekulatív módon idő előtt végrehajt hozzáférést, de ellenőrzés után visszaállítja az állapotot).
A gyorsítótár-tartalom elemzéséhez elégtelen időzítő pontosság mellett olyan eljárást javasoltak, amely átveri a processzorokban használt Tree-PLRU gyorsítótár-adatok kilökődésének stratégiáját, és lehetővé teszi a ciklusok számának növelésével az érték visszaadásakor a különbség időtartamának jelentős növelését. a gyorsítótárból és ha nincs érték a gyorsítótárban.
A Google közzétette az erőforrás prototípusát, hogy bemutassa a támadások megvalósíthatóságát Spectre osztály sebezhetőségének felhasználásával és ösztönözze a webfejlesztőket olyan technikák használatára, amelyek minimalizálják az ilyen támadások kockázatát.
A Google ugyanakkor úgy véli, hogy a javasolt prototípus jelentős felülvizsgálata nélkül lehetetlen olyan univerzális kiaknázásokat létrehozni, amelyek nemcsak demonstrációra, hanem széleskörű használatra is készek.
forrás: https://security.googleblog.com