Bitdefenderi teadlased
Haavatavus kuulub Spectre v1 klassi ja põhineb ideel taastada pärast käskude spekulatiivset täitmist allesjäänud andmed protsessori vahemälust. Jõudluse parandamiseks kasutavad kaasaegsete protsessorite haruennustusseadmed mõningate kõige tõenäolisemalt täidetavate käskude ennetavat täitmist, kuid ootamata kõigi nende täitmist määravate tegurite arvutamist (näiteks kui harutingimused või juurdepääsuparameetrid pole veel välja arvutatud). Kui ennustus ei leia kinnitust, siis protsessor loobub spekulatiivse täitmise tulemusest, kuid selle käigus töödeldud andmed jäävad protsessori vahemällu ja neid saab taastada kasutades külgkanalite kaudu vahemälu sisu määramise meetodeid, analüüsides juurdepääsu muutumist. aega vahemällu salvestatud ja vahemällu salvestamata andmetele.
Uue ründe eripäraks on SWAPGS-i käsu spekulatiivsel täitmisel tekkiva lekke kasutamine, mida kasutatakse operatsioonisüsteemides GS-i registri väärtuse asendamiseks, kui juhtimine läheb kasutajaruumist OS-i tuumale (GS-i). kasutajaruumis kasutatav väärtus asendatakse väärtusega, mida kasutatakse tuumas tehtavate toimingute ajal). Linuxi tuumas salvestab GS per_cpu osuti, mida kasutatakse kerneli andmetele juurde pääsemiseks, ja kasutajaruum salvestab viiteid TLS-ile (Thread Local Storage).
Vältimaks SWAPGS-käsu kahekordset väljakutsumist, kui kernelile uuesti kerneli ruumist juurde pääsete või GS-registri muutmist mittevajava koodi käivitamisel tehakse enne käsklust kontroll ja tingimuslik haru. Spekulatiivne täitmismootor jätkab ennetavalt koodi täitmist SWAPGS-käsuga, ootamata kontrolli tulemust, ja kui valitud haru ei kinnitata, tühistab tulemuse. Seega võib tekkida olukord, kui spekulatiivselt valitakse välja haru, mis ei hõlma SWAPGS-i täitmist, kuid spekulatiivse täitmise käigus muudetakse GS-i registri väärtust SWAPGS-käsuga ja seda kasutatakse sõltuvates mäluoperatsioonides, mis jõuavad CPU vahemällu.
Teadlased on välja pakkunud kaks rünnakustsenaariumi, mille jaoks on ette valmistatud prototüübid. Esimene stsenaarium põhineb olukorral, kus SWAPGS-käsku ei täideta spekulatiivselt, kuigi seda tegelikult kasutatakse täitmisel, ja teine on vastupidine, kui SWAPGS-käsku täidetakse spekulatiivselt, kuigi tegelikult ei tohiks seda täita. Iga stsenaariumi puhul on kaks ärakasutamisvõimalust: ründaja saab määrata väärtuse tuumapiirkonna kindlal aadressil ja ründaja saab otsida kindlat väärtust kerneli juhuslikel aadressidel. Rünnaku läbiviimine võtab kaua aega ja ärakasutamine võib lekke lõpuleviimiseks kuluda mitu tundi.
Linuxi tuumas on probleem
Parandus nõuab kerneli värskenduse installimist nii hostsüsteemi kui ka külaliskeskkondadesse, millele järgneb süsteemi taaskäivitamine. Kaitse keelamiseks Linuxis saab kasutada valikut "nospectre_v1", mis keelab ka meetmed SWAPGS-i haavatavuse blokeerimiseks. Parandus on saadaval kujul
Bitdefenderi teadlaste sõnul teavitati Intelit probleemist eelmise aasta augustis. Probleem otsustati lahendada programmiliselt, mille parandamise koordineeritud väljatöötamisse kaasati Microsofti, Google'i ja Linuxi tuuma arendajad. Vanemaid Inteli protsessoreid, Ivy Bridge'i eelseid protsesse, on palju keerulisem rünnata, kuna ärakasutamisel kasutatud WRGSBASE-juhiseid ei toetata. ARM-, POWER-, SPARC-, MIPS- ja RISC-V-süsteeme probleem ei mõjuta, kuna need ei toeta SWAPGS-i juhiseid.
Probleem puudutab peamiselt Inteli protsessorite omanikke -
AMD süsteemides suudeti reprodutseerida ainult teist rünnakustsenaariumit, mis piirdub GS-registri baasväärtuse spekulatiivse töötlemisega, mida saab kasutada juhuslike mälupiirkondade konkreetsete väärtuste otsimiseks. Selle ründevaliku blokeerimiseks
Allikas: opennet.ru