SWAPGS — uus haavatavus CPU spekulatiivse tĂ€itmise mehhanismis

Bitdefenderi teadlased tuvastasid uue haavatavuse (CVE-2019-1125) tĂ€napĂ€evaste CPUde spekulatiivse tĂ€itmise mehhanismis, mis sai nimeks SWAPGS, mis viitab probleemile tekitavale protsessorikĂ€sklusele. Haavatavus lubab vĂ”imaldab ebautorisatud rĂŒndajal mÀÀrata tuuma vĂ”i kĂ€ivitatud virtuaalmasinate mĂ€lu alade sisu. Probleem on kinnitatud Intel (x86_64) protsessorites ja osaliselt puudutab AMD protsessorites, mille puhul peamine rĂŒnnakuvektor ei avaldu. Varasemad meetodid Spectre ja Meltdown haavatavuste vastu ei kaitse SWAPGS rĂŒnnaku eest Intel protsessoritel, kuid Linuxi, ChromeOS-i, Androidi ja Windowsi jaoks on juba pakutud parandusi.

Haavatavus kuulub Spectre v1 klassi ja pĂ”hineb ideel taastada andmeid protsessori vahemĂ€lust, mis on jÀÀnud pĂ€rast spetsiifiliste kĂ€skude spekulatiivset tĂ€itmist. Kaasaegsete CPU-de harudeprediktsiooniblokid kasutavad jĂ”udluse suurendamiseks teatud kĂ€skude eelnevate tĂ€itmist, mis tĂ”enĂ€oliselt tĂ€idetakse, kuid ei oota, kuni kĂ”ik tĂ€itmise mÀÀravad tegurid on vĂ€lja arvutatud (nĂ€iteks siis, kui hĂŒppeolud vĂ”i ligipÀÀsu parameetrid pole veel vĂ€lja arvutatud). Kui ennustus ei pea paika, loob protsessor spekulatiivse tĂ€itmise tulemuse, kuid selle kĂ€igus töödeldud andmed jÀÀvad protsessori vahemĂ€lu ja neid saab taastada vahemĂ€lu sisu kindlaksmÀÀrimise meetodite abil, mis analĂŒĂŒsivad aegade muutust juurde pÀÀsemise vahemĂ€llu salvestatud ja mitte salvestatud andmetele.

Uue rĂŒnnaku eripĂ€ra on seotud lekkega, mis tekib spekulatiivse tĂ€itmise kĂ€igus, kus kasutatakse SWAPGS kĂ€sku. See kĂ€sk on operatsioonisĂŒsteemides, et asendada GS registri vÀÀrtus, kui kontrolli suunamine toimub kasutaja ruumist OS-i tuuma (kasutaja ruumis kasutatav GS vÀÀrtus asendatakse tuumaoperatsioonide puhul kasutatava vÀÀrtusega). Linuxi tuumas salvestatakse GS-s per_cpu viit, mida kasutatakse tuumandmete ligipÀÀsuks, samas kui kasutaja ruumis on viidatud TLS-ile (Thread Local Storage).

Kaksikordse SWAPGS-i kĂ€itamise vĂ€listamiseks tuumast vĂ€ljakutse tegemisel tuumaruumi vĂ”i kui tĂ€idetakse koodi, mis ei vaja GS registreerimise vahetamist, tehakse kontroll enne kĂ€sku ja tingimuslik hĂŒpe. Erakordse tĂ€itmise mehhanism hĂŒppab eelnevalt SWAPGS-i kĂ€skluse koodile, ootamata kontrolli tulemuse kohta, ja kui valitud haru ei kinnitu, visatakse tulemus negatiivselt Ă€ra. Nii vĂ”ib tekkida olukord, kus spekulatiivselt valitakse haru, mis ei ole ette nĂ€htud SWAPGS-i tĂ€itmiseks, kuid spekulatiivse tĂ€itmise kĂ€igus muudetakse GS registri vÀÀrtust SWAPGS kĂ€skluse kaudu ning seda kasutatakse sĂ”ltuvates mĂ€luoperatsioonides, mis jÀÀvad CPU vahemĂ€llu.

Uuringud on pakkunud kahte rĂŒnnaku stsenaariumi, mille jaoks on valmistatud prototĂŒĂŒbid eksploitide jaoks. Esimene stsenaarium pĂ”hineb olukorral, kus kĂ€sk SWAPGS ei tĂ€ideta spekulatiivselt, kuigi seda kasutatakse tegeliku tĂ€itmise ajal, ja teine, vastupidi, kui kĂ€sk SWAPGS tĂ€idetakse spekulatiivselt, kuigi see tegelikult ei peaks. Iga stsenaariumi jaoks on ette nĂ€htud kaks ekspluateerimise varianti: rĂŒndaja saab mÀÀrata vÀÀrtuse kindlas aadressis tuumaruumis ja rĂŒndaja vĂ”ib otsida kindlat vÀÀrtust juhuslikes aadressides tuumas. RĂŒnnaku lĂ€biviimine on aeganĂ”udev ja lekke korraldamiseks vĂ”ib eksploiti olla vajalik kĂ€ivitada mitu tundi.

Vaata videot

Linuxi tuumas on probleem eemaldatud SWAPGS-i kĂ€ivitamise loogika muutmise kaudu (spekulatiivse tĂ€itmise blokeerimine), sarnaselt muude Spectre v1 klassi haavatavuste parandamisega. Eeldatakse, et lisatud kaitse mĂ”jutab tĂŒĂŒpiliste töökoormuste jĂ”udlust minimaalselt. Viivitus tekib kasutajaruumi ja kerneliruumi vahetamise etapis, mis vĂ”ib pĂ”hjustada jĂ”udluse langust, nĂ€iteks rakendusest sagedaste sĂŒsteemikutsungite tĂ€itmise vĂ”i NMI ja katkestuste sagedase genereerimise korral.

Parandus nĂ”uab kernelivĂ€rskenduse installimist nii peamisel sĂŒsteemil kui kĂŒlalistel keskkondadel koos jĂ€rgneva sĂŒsteemi taaskĂ€ivitamisega. Linuxis kaitse vĂ€ljalĂŒlitamiseks saab kasutada valikut „nospectre_v1”, mis keelab ka SWAPGS haavatavuse blokeerimise meetmed. Parandus on saadaval patĆĄ Linuxi tuuma jaoks, mis on juba osa versioonidest 4.19.65, 5.2.7, 4.14.137, 4.9.188 ja 4.4.188. Linuxi jaotiste vĂ€rskendused pole veel vĂ€lja antud (Debian, RHEL, Fedora, Arch Linuxis, SUSE/openSUSE, Ubuntu). Windowsis lahendati probleem ilma liigse avalikkuse tĂ€helepanuta juulikuu vĂ€rskenduses. Google valmistas parandus 4.19 tuumale, mis on pakitud ChromeOS-i ja Android.

Bitdefenderi teadlaste sĂ”nul oli Intel probleemist teadlik juba eelmise aasta augustis. Probleem otsustati lahendada tarkvaraliselt, milleks kaasati Microsofti, Google'i ja Linuxi kerneli arendajad. Vanemate Intel'i protsessorite, mis on kuni Ivy Bridge'i pĂ”lvkonnani, rĂŒndamine on oluliselt keerulisem, kuna nad ei toeta WRGSBASE kĂ€sku, mida eksploitis kasutati. ARM, POWER, SPARC, MIPS ja RISC-V sĂŒsteemid ei ole probleemile vastuvĂ”tlikud, kuna nad ei toeta SWAPGS kĂ€sku.

Probleem ohustab peamiselt Intel'i protsessorite omanike huve —
AMD sĂŒsteemides Ă”nnestus reprodutseerida ainult teise rĂŒnnaku stsenaariumi, mis on piiratud spekulatiivse GS registri algvÀÀrtuse töötlemisega, mida saab kasutada teatud vÀÀrtuste leidmiseks juhuslikes mĂ€lualadustes. Selle rĂŒnnakuvĂ”imaluse blokimisel on piisavalt on olemasolevad kaitsemeetodid Spectre v1 haavatavuste vastu.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster