Nauja technika, skirta išnaudoti „Chrome“ esančius „Spectre“ pažeidžiamumus

Grupė mokslininkų iš Amerikos, Australijos ir Izraelio universitetų pasiūlė naują šoninio kanalo atakos techniką, skirtą išnaudoti Spectre klasės pažeidžiamumą naršyklėse, pagrįstose Chromium varikliu. Ataka, kodiniu pavadinimu Spook.js, leidžia apeiti svetainės izoliavimo mechanizmą paleidžiant JavaScript kodą ir nuskaityti visos esamo proceso adresų erdvės turinį, t.y. pasiekti duomenis iš puslapių, veikiančių kituose skirtukuose, bet apdorojamų tuo pačiu procesu.

Kadangi „Chrome“ naudoja skirtingas svetaines skirtingais procesais, galimybė vykdyti praktines atakas apsiriboja paslaugomis, kurios leidžia skirtingiems vartotojams priglobti savo puslapius. Šis metodas leidžia iš puslapio, kuriame užpuolikas turi galimybę įterpti savo JavaScript kodą, nustatyti, ar yra kitų puslapių, kuriuos vartotojas atidarė iš tos pačios svetainės, ir iš jų išgauti konfidencialią informaciją, pavyzdžiui, pakeisti kredencialus ar banko duomenis. naudojant automatinio žiniatinklio formų laukų užpildymo sistemą. Kaip demonstracija parodyta, kaip galite užpulti kažkieno tinklaraštį „Tumblr“ tarnyboje, jei jo savininkas kitame skirtuke atidaro užpuoliko tinklaraštį, priglobtą toje pačioje tarnyboje.

Kitas metodo panaudojimo variantas yra ataka prieš naršyklės priedus, leidžiančius diegiant užpuoliko valdomą priedą išgauti duomenis iš kitų priedų. Kaip pavyzdį parodome, kaip įdiegę kenkėjišką priedą galite ištraukti konfidencialią informaciją iš LastPass slaptažodžių tvarkyklės.

Tyrėjai paskelbė išnaudojimo prototipą, kuris veikia „Chrome 89“ sistemose su „CPUIntel i7-6700K“ ir „i7-7600U“. Kuriant išnaudojimą, Spectre klasės atakoms vykdyti buvo naudojami „Google“ anksčiau paskelbti JavaScript kodo prototipai. Pažymima, kad mokslininkai sugebėjo paruošti darbinius išnaudojimus sistemoms, pagrįstoms Intel ir Apple M1 procesoriais, kurie leidžia organizuoti atminties skaitymą 500 baitų per sekundę greičiu ir 96% tikslumu. Daroma prielaida, kad metodas tinka ir AMD procesoriams, tačiau nebuvo įmanoma parengti visiškai funkcionalaus eksploatavimo.

Ataka taikoma visoms naršyklėms, pagrįstoms „Chromium“ varikliu, įskaitant „Google Chrome“, „Microsoft Edge“ ir „Brave“. Tyrėjai taip pat mano, kad šį metodą galima pritaikyti darbui su „Firefox“, tačiau kadangi „Firefox“ variklis labai skiriasi nuo „Chrome“, darbas kuriant tokį išnaudojimą paliekamas ateičiai.

Siekdama apsisaugoti nuo naršyklės atakų, susijusių su spekuliatyviu instrukcijų vykdymu, „Chrome“ įdiegia adresų erdvės segmentavimą – smėlio dėžės atskyrimas leidžia „JavaScript“ veikti tik su 32 bitų rodyklėmis ir dalijasi tvarkytojų atmintimi atskirtomis 4 GB krūvomis. Siekdami suteikti prieigą prie visos proceso adresų erdvės ir apeiti 32 bitų apribojimą, tyrėjai naudojo techniką, vadinamą Tipo painiava, kuri priverčia JavaScript variklį apdoroti netinkamo tipo objektą, kuris leidžia suformuoti 64 bitų. rodyklė, pagrįsta dviejų 32 bitų reikšmių deriniu.

Atakos esmė ta, kad apdorojant specialiai sukurtą kenkėjišką objektą JavaScript variklyje, sukuriamos sąlygos, kurios lemia spekuliacinį instrukcijų, kurios pasiekia masyvą, vykdymą. Objektas parenkamas taip, kad užpuoliko valdomi laukai būtų patalpinti zonoje, kurioje naudojamas 64 bitų žymeklis. Kadangi kenkėjiško objekto tipas nesutampa su apdorojamo masyvo tipu, įprastomis sąlygomis tokius veiksmus „Chrome“ blokuoja mechanizmas, skirtas kodo, naudojamo masyvams pasiekti, deoptimizavimo mechanizmas. Norėdami išspręsti šią problemą, „Type Confusion“ atakos kodas yra patalpintas į sąlyginį „jei“ bloką, kuris normaliomis sąlygomis neįjungiamas, o vykdomas spekuliaciniu režimu, jei procesorius neteisingai numato tolesnį išsišakojimą.

Dėl to procesorius spekuliatyviai pasiekia sugeneruotą 64 bitų žymeklį ir atšaukia būseną, kai nustatė nesėkmingą numatymą, tačiau vykdymo pėdsakai lieka bendroje talpykloje ir gali būti atkurti naudojant šoninio kanalo talpyklos aptikimo metodus, analizuojančius pokyčius prieigos prie talpykloje saugomų ir neišsaugotų duomenų laikas. Talpyklos turiniui analizuoti esant nepakankamam JavaScript pasiekiamo laikmačio tikslumui, naudojamas Google pasiūlytas metodas, kuris apgauna procesoriuose naudojamą Tree-PLRU talpyklos iškeldinimo strategiją ir leidžia, padidinus ciklų skaičių, žymiai padidinti laiko skirtumą, kai reikšmė yra ir jos nėra talpykloje.

Šaltinis: opennet.ru

Добавить комментарий