Massachusetts Institute of Technology'i teadlased on avastanud TONTOU (Time-of-Neutralization to Time-of-Use) rĂŒnnetehnika, mis pakub uut viisi Spectre v2 klassi mikroarhitektuursete haavatavuste Ă€rakasutamiseks. Haavatavus vĂ”imaldab tuvastada tuuma mĂ€lu sisu rakenduse kasutamise ajal. Kood haavatavuse Ă€rakasutamise blokeerimiseks vĂ”eti kasutusele Linuxi kernelisse 5. augustil ning see on kaasatud vĂ€ljaannetesse 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 ja 5.10.263.
Teadlased demonstreerisid, et lokaalne mitteprivilegeeritud kasutaja saab rĂŒnnata ja tuvastada root kasutaja parooli hash'i, mis on salvestatud failis /etc/shadow ja laaditud mĂ€lu sĂŒsteemi autentimise kĂ€igus. Teadlased suutsid saavutada tuumamĂ€lu andmete lekke kiirusel 5.47 baiti sekundis ja tĂ€psusega 91.97%. 10 testkĂ€ivituse keskmine kestev aeg oli 18 minutit ning pooled kordadest Ă”nnestus tuvastada /etc/shadow faili olemasolu mĂ€lus ning selle sisu vĂ€lja tĂ”mmata.
Eksploit demonstreeriti AMD protsessoriga sĂŒsteemidel ja seda saab kasutada AMD CPU-de Zen 1-4 peredes. Intel'i sĂŒsteemidel on rĂŒnne samuti vĂ”imalik, kuid Ă€rakasutamine on keerulisem. Toetuseks virnastamisĂŒlekande ĂŒlekoormuse ja SRSO (Speculative Return Stack Overflow) haavatavuse blokeerimise vastu on AMD protsessorites rakendatud Safe-RET kaitsemehhanism, mis puhastab hĂŒpoteesi vahemiku bufferi pĂ€rast iga kasutamist ning kitsendab rĂŒnnaku akent 2 kĂ€sule, mis kestavad paarikĂŒmneid nanosekundeid.
Kaitseks selle kaitse ĂŒletamiseks ja rĂŒnnakuakna pikendamiseks on rakendatud CPU aeglustamise tehnikat, mis vĂ”imaldab Ă”igel ajal katkestuse asendust teostada, suunates tegevuse juhtimisvoo tuumas ja kasutades katkestuse töötlejat, et moonutada prognoosimise vahemiku salvestust. SRSO haavatavuse Ă€ra kasutamiseks vĂ”ib rĂŒndaja luua tingimusi, kus prognoosimise vahemik spekuleerib suure hulga vale prognoositud CALL kĂ”nesid, mis on piisavad, et ĂŒletada tagastamisadresside virn ja kirjutada ĂŒle Ă”igesti prognoositud tagastamispunkte, mis asuvad virna alguses. Selle tulemusena vĂ”ivad virna algselemendid olla kirjutatud rĂŒndaja valitud vÀÀrtustega, mis viib sellele, et need asendatud vÀÀrtused kasutatakse eksitavalt RET kĂ€skluse tĂ€itmisel teise protsessi kontekstis.
Protsessor tuvastab, et haru prognoosimine ei Ă”igustanud ennast ja tagastab operatsiooni algsesse olekusse, kuid spekulatiivse tĂ€itmise kĂ€igus töötlemise alla langenud andmed jÀÀvad vahemĂ€lu ja mikroarhitektuursetesse puhvrisse. Kui vale tĂ€idetud plokk teostab mĂ€lule pöördumise, toob selle spekulatiivne tĂ€itmine kaasa andmete jÀÀmise ĂŒldisesse vahemĂ€llu, mis on loetud mĂ€lust. VahemĂ€lu sisu vĂ€ljavĂ”tmiseks vĂ”ib kasutada ĂŒhte meetodit, mis pĂ”hineb vahemĂ€lu andmete ja mitte-vahemĂ€llu andmete juurdepÀÀsuaja muutuste analĂŒĂŒsimisel.
Allikas: opennet.ru
