NjĂ« grup hulumtuesish nga Politechnika e ZvicrĂ«s identifikuan njĂ« variant tĂ« ri sulmi nĂ« mekanizmin e ekzekutimit spekulativ tĂ« kalimeve tĂ« tĂ«rthorta nĂ« CPU, i cili lejon nxjerrjen e informacionit nga memoria e bĂ«rthamĂ«s ose organizimin e njĂ« sulmi nĂ« sistemin mikpritĂ«s nga makina virtuale. ĂshtĂ«llimet e kĂ«saj cenueshmĂ«rie morĂ«n emrin kodor Retbleed (CVE-2022-29900, CVE-2022-29901) dhe janĂ« tĂ« ngjashme nĂ« natyrĂ« me sulmet Spectre-v2. Dallimi qĂ«ndron nĂ« organizimin e ekzekutimit spekulativ tĂ« kodit tĂ« rastĂ«sishĂ«m gjatĂ« pĂ«rpunimit tĂ« instruksionit âretâ (kthehu), i cili nxjerr adresĂ«n pĂ«r kalim nga stack, nĂ« vend tĂ« kalimit tĂ« tĂ«rthortĂ« pĂ«rmes instruksionit âjmpâ qĂ« ngarkon adresĂ«n nga memoria ose regjistri i CPU.
Sulmuesi mund të krijojë kushte për parashikim të pasaktë të kalimit dhe të organizojë një kalim spekulativ të qëllimtë në një bllok kodi që nuk parashikohet nga logjika e ekzekutimit të programit. Në fund të fundit, procesori do të përcaktojë se parashikimi i kalimit nuk është realizuar dhe do ta rikthejë operacionin në gjendjen e tij fillestare, por të dhënat e përpunuara në procesin e ekzekutimit spekulativ do të mbeten në cache dhe të dhëna mikroarkitekturore. Nëse blloku i ekzekutuar gabimisht bën një kërkesë në memorie, ekzekutimi i tij spekulativ do të çojë në nguljen në cache të përgjithshëm dhe të dhënave të lexuara nga memoria.
PĂ«r tĂ« identifikuar tĂ« dhĂ«nat qĂ« mbeten nĂ« cache pas ekzekutimit spekulativ tĂ« operacioneve, sulmuesi mund tĂ« pĂ«rdorĂ« metoda pĂ«r definimin e tĂ« dhĂ«nave tĂ« mbetura nĂ«pĂ«rmjet kanaleve anĂ«sore, pĂ«r shembull, duke analizuar ndryshimet nĂ« kohĂ«n e qasjes nĂ« tĂ« dhĂ«nat e cache tĂ« ruajtura dhe ato qĂ« nuk janĂ« ruajtur nĂ« cache. PĂ«r nxjerrjen e qĂ«llimtĂ« tĂ« informacionit nga zona nĂ« njĂ« nivel tjetĂ«r privilegji (p.sh., nga memoria e bĂ«rthamĂ«s) pĂ«rdoren âgadgetsâ â sekuenca komandash tĂ« pranishme nĂ« bĂ«rthamĂ« qĂ« janĂ« tĂ« pĂ«rshtatshme pĂ«r leximin spekulativ tĂ« tĂ« dhĂ«nave nga memoria nĂ« varĂ«si tĂ« kushteve tĂ« jashtme, tĂ« cilat mund tĂ« ndikojnĂ« nga sulmuesi.
PĂ«r mbrojtjen nga sulmet klasike tĂ« klasĂ«s Spectre, tĂ« cilat pĂ«rdorin instruksione tĂ« kalimit tĂ« kushtĂ«zuar dhe tĂ« tĂ«rthortĂ«, shumica e sistemeve operative pĂ«rdorin teknikĂ«n âretpolineâ, e cila bazohet nĂ« zĂ«vendĂ«simin e operacioneve tĂ« kalimit tĂ« tĂ«rthortĂ« me instruksionin âretâ, pĂ«r tĂ« cilin procesorĂ«t pĂ«rdorin njĂ« bllok tĂ« veçantĂ« parashikimi tĂ« gjendjes sĂ« stack, qĂ« nuk pĂ«rdor bllokun e parashikimit tĂ« kalimeve. Kur u shpik retpoline nĂ« vitin 2018, u mendua se manipulimet e ngjashme me Spectre mbi adresat nuk ishin tĂ« aplikueshme nĂ« praktikĂ« pĂ«r kalimin spekulativ duke pĂ«rdorur instruksionin âretâ.
Hulumtuesit qĂ« zhvilluan metodĂ«n e sulmit Retbleed demonstruan mundĂ«sinĂ« e krijimit tĂ« kushteve mikroarkitekturore pĂ«r iniciimin e kalimit spekulativ duke pĂ«rdorur instruksionin âretâ dhe publikuan njĂ« set mjetesh pĂ«r identifikimin nĂ« bĂ«rthamĂ«n Linux tĂ« sekuencave instruksionesh tĂ« pĂ«rshtatshme pĂ«r shfrytĂ«zimin e cenueshmĂ«risĂ« (gadgets), nĂ« tĂ« cilat shfaqen kĂ«to kushte.
GjatĂ« hulumtimit, u pĂ«rgatit njĂ« eksploit funksional, i cili nĂ« sistemet me CPU Intel nga njĂ« proces i papranueshĂ«m nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit lejon nxjerrjen e tĂ« dhĂ«nave tĂ« rastĂ«sishme nga memoria e bĂ«rthamĂ«s me njĂ« shpejtĂ«si prej 219 byte nĂ« sekondĂ« dhe njĂ« saktĂ«si prej 98%. NĂ« procesorĂ«t AMD, efikasiteti i eksploitit Ă«shtĂ« shumĂ« mĂ« i lartĂ« â shpejtĂ«sia e rrjedhjes arrin 3.9 KB nĂ« sekondĂ«. Si njĂ« shembull praktik, u tregua se si me anĂ« tĂ« eksploitit tĂ« propozuar tĂ« pĂ«rcaktohet pĂ«rmbajtja e skedarit /etc/shadow. NĂ« sistemet me CPU Intel, sulmi pĂ«r pĂ«rcaktimin e hashes tĂ« fjalĂ«kalimit tĂ« pĂ«rdoruesit root u zhvillua pĂ«r 28 minuta, ndĂ«rsa nĂ« sistemet me CPU AMD â pĂ«r 6 minuta.

Mundësia e kryerjes së sulmit është konfirmuar për brezat 6-8 të procesorëve Intel, të cilët janë prodhuar deri në tremujorin e tretë të vitit 2019 (duke përfshirë Skylake), dhe procesorët AMD të bazuar në mikroarkitekturën Zen 1, Zen 1+ dhe Zen 2, të cilat janë prodhuar deri në tremujorin e dytë të vitit 2021. Në modelet më të reja të procesorëve, si AMD Zen3 dhe Intel Alder Lake, si dhe në procesorët ARM, problemet bllokohen nga mekanizmat e mbrojtjes të pranishëm. Për shembull, përdorimi i instruksioneve IBRS (Indirect Branch Restricted Speculation) ndihmon në mbrojtjen nga sulmi.
PĂ«r bĂ«rthamĂ«n Linux dhe hipervizorin Xen, Ă«shtĂ« pĂ«rgatitur njĂ« set ndryshimesh, tĂ« cilat pĂ«r CPU tĂ« vjetĂ«r bllokojnĂ« problemin nĂ« mĂ«nyrĂ« programore. Patch-i i propozuar pĂ«r bĂ«rthamĂ«n Linux ndryshon 68 skedarĂ«, shton 1783 rrjeshta dhe fshin 387 rrjeshta. FatkeqĂ«sisht, mbrojtja sjell njĂ« ngarkesĂ« tĂ« konsiderueshme â nĂ« testimet e kryera nĂ« procesorĂ«t AMD dhe Intel, rĂ«nia e performancĂ«s vlerĂ«sohet nga 14% nĂ« 39%. MĂ« e preferuar Ă«shtĂ« pĂ«rdorimi i mbrojtjes tĂ« bazuar nĂ« instruksionet IBRS, tĂ« cilat janĂ« tĂ« disponueshme nĂ« gjeneratat mĂ« tĂ« reja tĂ« CPU Intel dhe mbĂ«shteten qĂ« nga bĂ«rthama Linux 4.19.
Në procesorët Intel, zëvendësimi i adresës për kalimet indirekte spekulative realizohet falë një veçorie që shfaqet gjatë mbushjes përposht (underflow) në buferrin e parashikimit të përmbajtjes së skelës (Return Stack Buffer). Kur ndodhin kushte të tilla për instrukcionin "ret", fillon të aplikohet logjika e zgjedhjes së adresës, e cila është e ngjashme me atë që përdoret për kalimet indirekte të zakonshme. Në kernelin Linux janë gjetur më shumë se një mijë vende që krijojnë kushte për iniciimin e këtij nënmbushjeje dhe janë të accesueshme përmes thirrjeve të sistemit.
Në procesorët AMD, ekzekutimi spekulativ i instrukcionit "ret" realizohet pa u lidhur me buferrin specifik të skelës (Return Address Stack) dhe bloku i parashikimit të kalimeve e konsideron instrukcionin "ret" jo si një kthim të kontrollit, por si një kalim indirekt dhe, për rrjedhojë, përdor të dhënat për kalime indirekte në parashikim. Nën kushte të tilla, praktikisht çdo operacion "ret", i arritshëm përmes një thirrje sistemi, mund të përdoret për shfrytëzim.
PĂ«r mĂ« tepĂ«r, nĂ« CPU-tĂ« AMD gjithashtu Ă«shtĂ« zbuluar njĂ« problem tjetĂ«r (CVE-2022-23825, Branch Type Confusion), i lidhur me realizimin e kalimeve tĂ« rreme â kushtet pĂ«r parashikimin e kalimit mund tĂ« ndodhin edhe pa instrukcione tĂ« nevojshme degĂ«zimi, gjĂ« qĂ« lejon tĂ« ndikosh nĂ« buferrin e parashikimit tĂ« kalimeve pa instrukcionin "ret". Kjo veçori e bĂ«n implementimin e mbrojtjes shumĂ« mĂ« tĂ« komplikuar dhe kĂ«rkon njĂ« pastrim mĂ« aktiv tĂ« buferrit tĂ« parashikimit tĂ« kalimeve. Pritet qĂ« shtimi i mbrojtjes sĂ« plotĂ« nĂ« kernel tĂ« çojĂ« nĂ« rritjen e shpenzimeve me 209%.
Burimi: opennet.ru
