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

Ć veitsi Liidumaa TehnikaĂŒlikooli uurimisgrupp avastas uue rĂŒnneteooria, millega on vĂ”imalik rĂŒnnata CPU spekulatiivse tĂ€itmise mehhanismi, mis lubab teavet vĂ€ljavĂ”tmise mĂ€lust vĂ”i rĂŒnnaku korraldamise kohalikust sĂŒsteemist virtuaalmasinatest. Haavatavustel on koodnimi Retbleed (CVE-2022-29900, CVE-2022-29901) ja need sarnanevad Spectre-v2 rĂŒnnetega. Erinevus seisneb spekulatiivse tĂ€itmise korraldamises suvalisest koodist, kui töödeldakse kĂ€su 'ret' (return), mis vĂ€ljavĂ”tab aadressi ĂŒleminekuks virnast, selle asemel et kasutada ĂŒleminekut kĂ€suga 'jmp' aadressi laadimiseks mĂ€lust vĂ”i CPU registrist.

RĂŒndaja vĂ”ib tekitada tingimused vale haruennustuse jaoks ja korraldada sihitud spekulatiivse ĂŒlemineku koodiblokki, mis ei ole ettenĂ€htud programmi tĂ€itmise loogikas. LĂ”ppkokkuvĂ”ttes mÀÀrab protsessor, et haruennustus ei Ă”igustanud ennast ja taastab operatsiooni algses olekus, kuid spekulatiivse tĂ€itmise kĂ€igus töödeldud andmed jÀÀvad vahemĂ€lu ja mikroarhitektuurilistes puhverdesse. Kui vale tĂ€idetud plokk teeb mĂ€lule pöördumise, siis toob selle spekulatiivne tĂ€itmine kaasa andmete jÀÀmise ĂŒldisesse vahemĂ€llu ning mĂ€lust loetud andmed.

KĂ€ivitatud toimingute spekulatiivse tĂ€itmise jĂ€rel jÀÀkide mÀÀramiseks vĂ”ib rĂŒndaja kasutada meetodeid jÀÀkandmete tuvastamiseks kĂŒlgkanalite kaudu, nĂ€iteks analĂŒĂŒsides juurdepÀÀsuaja muutusi vahemĂ€llu salvestatud ja mitte salvestatud andmete vahel. Teise privileegitasandi aladelt (nĂ€iteks tuumamĂ€lust) teabe sihipĂ€raseks eraldamiseks kasutatakse „gadget’e“ — tuumas esinevaid kĂ€sklusjĂ€rjestusi, mis on sobivad spekulatiivsete andmete lugemiseks mĂ€lust sĂ”ltuvalt vĂ€listest tingimustest, millega rĂŒndaja vĂ”ib mĂ”jutada.

Klassikaliste Spectre-rĂŒnnakute kaitsmiseks, kus kasutatakse tingimuslike ja kaudsete ĂŒlekande instruktsioone, kasutatakse enamikus operatsioonisĂŒsteemides tehnikat „retpoline”, mis pĂ”hineb kaudsete ĂŒlekandeoperatsioonide asendamisel kĂ€sklusega „ret”, mille jaoks protsessorites kasutatakse eraldi kuhja seisundi ennustamise plokki, mis ei kasuta ĂŒlekande ennustamise plokki. Kui retpoline 2018. aastal sisse viidi, arvati, et Spectre-sarnased aadressimanipulatsioonid pole praktiliselt rakendatavad spekulatiivsete ĂŒlekannete jaoks kĂ€sklusega „ret”.

Uuringute lĂ€biviijad, kes arendasid vĂ€lja Retbleed-rĂŒnnaku meetodi, demonstreerisid mikroarhitektuursete tingimuste loomise vĂ”imalust spekulatiivsete ĂŒlekannete algatamiseks kĂ€sklusega „ret” ning avaldasid valmis tööriistakomplekti sobivate ekspluateeritavate haavatavuste jĂ€rjestuste (gadgetide) tuvastamiseks Linuxi tuumas, kus sellised tingimused avalduvad.

Uuringu kĂ€igus valmis tööexploit, mis vĂ”imaldab Intel CPU-d kasutavatel sĂŒsteemidel kasutaja ruumiprotsessist vĂ€lja tĂ”mmata juhuslikke andmeid tuuma mĂ€lust kiirusel 219 baiti sekundis ja tĂ€psusega 98%. AMD protsessoritel on exploit'i efektiivsus tunduvalt kĂ”rgem — leke toimub kiirusel 3.9 KB sekundis. Praktilise nĂ€itena on nĂ€idatud, kuidas selle exploit'iga mÀÀrata faili sisu /etc/shadow. Intel CPU-d kasutavatel sĂŒsteemidel viidi rĂŒndetegevus lĂ€bi, et mÀÀrata root kasutaja parooli hash 28 minutiga, samas kui AMD CPU-d kasutavatel sĂŒsteemidel kulus selleks 6 minutit.

Vaata videot

RĂŒndetegevuse vĂ”imalus on kinnitatud 6-8 pĂ”lvkonna Intel protsessorite jaoks, mis toodeti enne 2019. aasta 3. kvartalit (sealhulgas Skylake), ja AMD protsessorite jaoks, mis pĂ”hinevad mikroarhitektuuridel Zen 1, Zen 1+ ja Zen 2, mis toodeti enne 2021. aasta 2. kvartalit. Uuemates protsessorimudelis, nagu AMD Zen3 ja Intel Alder Lake, samuti ARM protsessorites, on probleem blokeeritud olemasolevate kaitsemehhanismidega. NĂ€iteks IBRS (Indirect Branch Restricted Speculation) kĂ€su kasutamine aitab kaitsta rĂŒnnaku eest.

Linuxi ja Xen-hĂŒperviisori jaoks on ette valmistatud muudatuste kogum, mis blokeerib vanematel CPU-del probleemi tarkvaraliselt. Linuxi tuuma jaoks ettepanek muudatus muudab 68 faili, lisab 1783 rida ja eemaldab 387 rida. Kahjuks toob see kaitse kaasa olulisi kulusid — testide pĂ”hjal AMD ja Intel protsessoritel hinnatakse jĂ”udluse langust vahemikus 14% kuni 39%. Eelistatum on rakendada kaitset, mis pĂ”hineb IBRS-i juhistel, mida on saadaval uutes Intel CPU pĂ”lvkondades ja mis on toetatud alates Linuxi tuuma versioonist 4.19.

Intel protsessoritel toimub aadressi sisestamine spekulatiivse kaudse hĂŒppe jaoks tĂ€nu omadusele, mis avaldub, kui toimub alumise piiri ĂŒletĂ€itumine (underflow) tagasipöördumise stendi ennustamise puhvris (Return Stack Buffer). Selliste tingimuste ilmnemisel hakkab „ret“ kĂ€su jaoks rakenduma aadressi valiku loogika, mis on sarnane sellele, mida kasutatakse tavapĂ€rastes kaudsetes hĂŒpetes. Linuxi tuumast on leitud ĂŒle tuhande koha, mis tekitavad tingimusi sarnase tagasipöördumise ĂŒletĂ€itumise algatamiseks ja mis on kĂ€tte saadavad sĂŒsteemi kutsungite kaudu.

AMD protsessoritel toimub spekulatiivne kĂ€skluse "ret" tĂ€itmine ilma erilise seotuseta virna piires oleva pöördćœ°ć€ïŒˆReturn Address Stack ja ĂŒleminekute ennustamise plokk kĂ€sitleb kĂ€sku "ret" mitte kui juhtimise tagastamist, vaid kui kaudset ĂŒleminekut, ning seetĂ”ttu kasutab ta ennustamisel andmeid kaudsete ĂŒleminekute jaoks. Sellistes tingimustes vĂ”ib tegelikult iga "ret" toiming, mis on saavutatud sĂŒsteemikutsumise kaudu, olla Ă€ra kasutatav.

Lisaks on AMD CPU-s tuvastatud veel ĂŒks probleem (CVE-2022-23825, Branch Type Confusion), mis on seotud valeĂŒleminekute tegemisega — ĂŒlemineku ennustamise tingimused vĂ”ivad ilmneda isegi ilma vajaliketa harutamisjuhtide kĂ€sklusteta, mis vĂ”imaldab mĂ”jutada ĂŒleminekute ennustamise puhverdust ilma kĂ€suta "ret". See omadus muudab kaitse rakendamise oluliselt keerulisemaks ja nĂ”uab aktiivsemat ennustuste puhverdust. Oodatakse, et tĂ€ieliku kaitse lisamine tuumale toob kaasa 209% kulude suurenemise.

Allikas: opennet.ru

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