Retbleed — uus rĂŒnnak Intel ja AMD CPU spekuleeriva tĂ€itmise mehhanismi vastu

ZĂŒrichi TehnikaĂŒlikooli teadlaste rĂŒhm avastas uue rĂŒnnaku variandi protsessorite spekulatiivse tĂ€itmise mehhanismile, mis vĂ”imaldab tuvastada teavet tuumamĂ€lu kohta vĂ”i korraldada rĂŒnnakuid host-sĂŒsteemidele virtuaalmasinatest. Rikked on saanud koodinimeks Retbleed (CVE-2022-29900, CVE-2022-29901) ja on olemuselt sarnased Spectre-v2 rĂŒnnakutele. Erinevus seisneb spekulatiivse tĂ€itmise korraldamises juhiseks oleva „ret” (return) kĂ€su töötlemisel, mis otsib aadressi virnast, selle asemel et kasutada aadressi laadimist mĂ€lust vĂ”i CPU registrist instruktsiooniga „jmp”.

RĂŒndaja vĂ”ib luua tingimused vale haruennustuse jaoks ja korraldada sihitud spekulatiivse ĂŒlemineku koodiblokki, mis ei ole programmi tĂ€itmislogikas ette nĂ€htud. LĂ”puks mÀÀrab protsessor, et haruennustus ei olnud Ă”ige ja tagastab operatsiooni esialgsesse olekusse, kuid spekulatiivse tĂ€itmise kĂ€igus töödeldud andmed jÀÀvad mĂ€llu ja mikroarhitektuurilistesse puhverdesse. Kui vale tĂ€idetud plokk pöördub mĂ€lu poole, toob selle spekulatiivne tĂ€itmine kaasa andmete jÀÀmise ĂŒldisesse vahemĂ€llu, sealhulgas mĂ€lu lugemisest saadud andmed.

RĂŒnnaku korraldajad saavad kasutada kĂ”rvalkanalitest jÀÀnud andmete tuvastamise meetodeid, et mÀÀrata, millised andmed jÀÀvad vahemĂ€llu pĂ€rast operatsioonide spekulatiivset tĂ€itmist, nĂ€iteks analĂŒĂŒsides pÀÀsuaegade muudatusi vahemĂ€llu ja mittevahemĂ€llu salvestatud andmete vahel. Sihtotstarbeliseks teabe saamiseks teistest privileegitasemetest (nĂ€iteks tuumamĂ€lust) kasutatakse „gadĆŸeteid” - tuumasse sisalduvaid kĂ€skluste jĂ€rjestusi, mis sobivad spekulatiivsete andmete lugemiseks mĂ€lust sĂ”ltuvalt vĂ€listest tingimustest, millele rĂŒndaja vĂ”ib mĂ”ju avaldada.

Klassikaliste Spectre-tĂŒĂŒpide rĂŒnnakute kaitsmiseks, mis kasutavad tingimuslikke ja kaudseid hĂŒppejuhiseid, rakendatakse enamikus operatsioonisĂŒsteemides tehnoloogiat «retpoline», mille aluseks on kaudsete hĂŒppejuhiste asendamine kĂ€suga «ret», mille jaoks proodeklite sisse on ehitatud eraldi virna ennustade bloke. 2018. aastal retpoline'i juurutamisel arvati, et Spectre'i sarnased aadresside manipulatsioonid pole praktiliselt elujĂ”ulised spekuleerivate hĂŒpete jaoks kĂ€suga «ret».

Uuringu autorid, kes arendasid Retbleedi rĂŒnnakute metoodikat, demonstreerisid mikroarhitektuuriliste tingimuste loomise vĂ”imalust spekuleeriva hĂŒppe algatamiseks kĂ€su «ret» abil ja avaldasid valmis tööriistakomplekti, et tuvastada Linuxi tuumas potentsiaalselt haavatavaid juhiste jĂ€rjestusi (gadgete), milles need tingimused ilmnevad.

Uuringu kĂ€igus valmis töötav eksploit, mis vĂ”imaldab Intel CPU-dega sĂŒsteemides privileege mitte omaval protsessil kasutajaruumi kaudu tuvastada suvalisi andmeid tuuma mĂ€lust kiirusel 219 baiti sekundis ja 98% tĂ€psusega. AMD protsessoritel on eksploidi tĂ”husus palju kĂ”rgem — andmelekke kiirus on 3.9 KB sekundis. Praktilise nĂ€itena on nĂ€idatud, kuidas soovitatud eksploitiga tuvastada faili /etc/shadow sisu. Intel CPU-dega sĂŒsteemides viidi kasutaja root parooli hash-i tuvastamise rĂŒnnak lĂ€bi 28 minutiga, samas kui AMD CPU-dega sĂŒsteemides see kestis 6 minutit.

MĂ€ngi videot

RĂŒnnaku vĂ”imalus on kinnitatud 6-8 pĂ”lvkonna Intel protsessorite jaoks, mis on toodetud enne 2019. aasta kolmandat kvartalit (kaasa arvatud Skylake) ja Zen 1, Zen 1+ ning Zen 2 mikroarhitektuuril pĂ”hinevate AMD protsessorite jaoks, mis on toodetud enne 2021. aasta teist kvartalit. Uuemates protsessorimudelites, nagu AMD Zen3 ja Intel Alder Lake, samuti ARM-i protsessorites, on probleem blokeeritud olemasolevate kaitsemehhanismide abil. NĂ€iteks kĂ€suridade IBRS (Indirect Branch Restricted Speculation) rakendamine aitab kaitsta rĂŒnnaku eest.

Linuxi tuuma ja Xen hĂŒperviisori jaoks on valmis tehtud muudatuste kogum, mis blokeerib probleemid vanematel CPU-del tarkvara kaudu. Linuxi tuuma jaoks esitatud patch muudab 68 faili, lisab 1783 rida ja kustutab 387 rida. Kahjuks toob kaitse kaasa mĂ€rkimisvÀÀrsed kuluĂŒlekanded - testide pĂ”hjal AMD ja Intel protsessorites hinnatakse jĂ”udluse langust vahemikus 14% kuni 39%. Eelistatavam on rakendada kaitset, mis pĂ”hineb IBRS instruktsioonidel, mis on saadaval uutes Intel CPU pĂ”lvkondades ja mida toetatakse alates Linuxi tuuma versioonist 4.19.

Intel protsessoritel toimub aadressi asendamine spekuleeriva kaudse ĂŒlemineku jaoks tĂ€nu omadusele, mis avaldub, kui toimub ĂŒlevool aluses (underflow) steki sisestusbufferis (Return Stack Buffer). Kui sellised tingimused tekivad, hakkab 'ret' instruktsiooni puhul kehtima aadressi valiku loogika, sarnane sellele, mida kasutatakse tavaliste kaudsete ĂŒleminekute puhul. Linuxi tuumas on leitud ĂŒle tuhande koha, kus tekivad tingimused sarnase tagasivoolu algatamiseks ja mis on kergesti ligipÀÀsetavad sĂŒsteemi kutsungite kaudu.

AMD protsessoritel toimub 'ret' instruktsiooni spekuleeriv tĂ€itmine ilma stekile omase bufferita (Return Address Stack), ning ĂŒlemineku ennustusblokki kĂ€sitleb 'ret' kĂ€sk mitte nagu juhtimise tagastamist, vaid nagu kaudset ĂŒleminekut, kasutades vastavalt kaudsete ĂŒleminekute andmeid ennustamisel. Sellistes tingimustes vĂ”ib iga 'ret' operatsioon, mis on saavutatav sĂŒsteemi kutsungite kaudu, olla kasutatav ekspluateerimiseks.

Lisaks on AMD CPU-des tuvastatud veel ĂŒks probleem (CVE-2022-23825, Haru TĂŒĂŒp Segadus), mis on seotud vale ĂŒlemineku lĂ€biviimisega - ĂŒlemineku ennustamise tingimused vĂ”ivad tekkida isegi ilma vajalike harudeinstruktsioonideta, mis vĂ”imaldab mĂ”jutada ĂŒlemineku ennustusbufferit ilma 'ret' instruktsioonita. See omadus teeb kaitse rakendamise oluliselt keerulisemaks ja nĂ”uab aktiivsemat ĂŒleminekuennustusbufferi puhastamist. Oodatakse, et kogu kaitse lisamine tuumale toob kaasa 209% kuluĂŒlekande suurenemise.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster