„Google“ demonstruoja „Spectre“ pažeidžiamumų naudojimą naudojant „JavaScript“ naršyklėje

„Google“ neseniai išleido keletą prototipinių pažeidžiamumų išnaudojimo būdų , demonstruojančių galimybę išnaudoti „Spectre“ klasės pažeidžiamumus vykdant „JavaScript“ kodą naršyklėje, nesiimant anksčiau pridėtų saugumo priemonių.

Išnaudojami spragų atvejai gali būti panaudoti norint gauti prieigą prie proceso , kuris apdoroja žiniatinklio turinį dabartiniame skirtuke, atminties. Norint patikrinti spragų veikimą, buvo paleista nutekėjusio puslapio svetainė, o operacijos logiką aprašantis kodas buvo paskelbtas „GitHub“.

Siūlomas prototipas skirtas atakuoti sistemas su „Intel Core i7-6500U“ procesoriais aplinkoje su „Linux“ ir „Chrome 88“, nors tai neatmeta galimybės atlikti pakeitimus, kad būtų galima naudoti spragą kitose aplinkose.

Veikimo metodas nėra būdingas tik „Intel“ procesoriams : atlikus atitinkamą pritaikymą, buvo patvirtinta, kad spragą galima naudoti ir kitų gamintojų procesoriuose, įskaitant „Apple M1“, pagrįstą ARM architektūra. Atlikus nedidelius pakeitimus, spragą galima naudoti ir kitose operacinėse sistemose bei naršyklėse, pagrįstose „Chromium“ varikliu.

Aplinkoje, pagrįstoje standartiniais „Chrome 88“ ir „Intel Skylake“ procesoriais, pasiekėme duomenų nutekėjimą iš proceso, atsakingo už žiniatinklio turinio pateikimą dabartiniame „Chrome“ skirtuke (atvaizdavimo procesas) 1 kilobaito per sekundę greičiu. Be to, buvo sukurti alternatyvūs prototipai, pavyzdžiui, išnaudojimas, leidžiantis sumažinto stabilumo kaina naudojant nuotolį padidinti nuotėkio greitį iki 8 kB / s. Dabar () laikmatis 5 mikrosekundžių (0.005 milisekundės) tikslumu. ). Taip pat buvo paruoštas variantas, veikiantis vieno milisekundės tikslumu laikmačiu, kuris galėjo būti naudojamas organizuojant prieigą prie kito proceso atminties maždaug 60 baitų per sekundę greičiu.

Paskelbtą demonstracinį kodą sudaro trys dalys:

  • Pirmoji dalis kalibruokite laikmatį, kad įvertintumėte važiavimo laiką operacijų, būtinų norint gauti duomenis, kurie lieka procesoriaus talpykloje dėl spekuliacinio CPU nurodymų vykdymo.
  • Antroji dalis Apibrėžia atminties išdėstymą, naudojamą paskirstant „JavaScript“ masyvą.
  • Trečioji dalis tiesiogiai naudoja „Spectre“ pažeidžiamumą, kad nustatytų atminties turinį dabartinio proceso rezultatas, sukūrus sąlygas tam tikrų operacijų spekuliaciniam vykdymui, kurio rezultatą procesorius atmeta nustatęs nepavykusią prognozę, tačiau vykdymo pėdsakai sutvarkomi bendrojoje talpykloje ir gali būti atkurti naudojant talpyklos turinio nustatymo būdai naudojant trečiųjų šalių kanalus, kurie analizuoja prieigos prie talpykloje ir ne talpykloje saugomų duomenų pasikeitimą.

Siūloma išnaudojimo technika leidžia atsisakyti didelio tikslumo laikmačių, prieinamų per performance.now() API, ir be palaikymo „SharedArrayBuffer“ tipui, kuris leidžia kurti masyvus bendroje atmintyje.

Išnaudojimas apima „Spectre“ įrenginį, kuris sukelia kontroliuojamą spekuliacinį kodo vykdymą, ir šoninio kanalo nuotėkio analizatorių, kuris nustato, kokie duomenys buvo talpinami spekuliacinio vykdymo metu.

Įtaisas įgyvendinamas naudojant „JavaScript“ masyvą, kuriame bandoma pasiekti sritį už buferio ribų , o tai turi įtakos šakos prognozavimo bloko būsenai dėl kompiliatoriaus pridėto buferio dydžio patikrinimo (procesorius spekuliatyviai atlieka išankstinę prieigą, bet po patikrinimo grąžina būseną).

Siekiant išanalizuoti talpyklos turinį esant nepakankamam laikmačio tikslumui, buvo pasiūlytas metodas, kuris apgauna procesoriuose naudojamą „Tree-PLRU“ talpyklos duomenų iškrovimo strategiją ir leidžia, didinant ciklų skaičių, žymiai padidinti skirtumo laiką, kai vertė grąžinamas iš talpyklos ir jei talpykloje nėra vertės.

„Google“ išleido šio pažeidžiamumo prototipą, norėdama pademonstruoti atakų, naudojant „Spectre“ klasės pažeidžiamumus , įgyvendinamumą ir paskatinti interneto svetainių kūrėjus naudoti metodus, kurie sumažintų tokių atakų riziką.

Tuo pačiu metu „Google“ mano, kad be reikšmingos siūlomo prototipo peržiūros neįmanoma sukurti universalių išnaudojimų, kurie būtų paruošti ne tik demonstravimui, bet ir plačiam naudojimui.

Šaltinis: https://security.googleblog.com


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje