Retbleed — njĂ« sulm i ri ndaj mekanizmit tĂ« ekzekutimit spekulativ tĂ« CPU-ve Intel dhe AMD

Një grup hulumtuesish nga Politeknika e Cyrihut identifikoi një variant të ri sulmi mbi mekanizmin e ekzekutimit spekulativ të kalimeve indirecte në CPU, i cili lejon nxjerrjen e informacionit nga memorie e bërthamës ose organizimin e një sulmi mbi sistemin e hostit nga makina virtuale. Ky vulnerabilitet mori emrin kodues Retbleed (CVE-2022-29900, CVE-2022-29901) dhe është i ngjashëm 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" (kthim), që nxjerr adresën për kalimin nga steka, në vend të kalimit indirekt duke përdorur instruksionin "jmp" me ngarkimin e adresës nga memoria ose regjistri i CPU.

Sulmuesi mund të krijojë kushte për parashikimin e gabuar të kalimit dhe të organizojë një kalim spekulativ të targetuar në një bllok kodi, që nuk parashihet nga logjika e ekzekutimit të programit. Në fund, procesori do të përcaktojë se parashikimi i degës nuk ka qenë i saktë dhe do të tërheqë operacionin në gjendjen fillestare, por të dhënat e përpunuara gjatë procesit të ekzekutimit spekulativ do të mbesin në memorie dhe buffers mikroarkitektonike. Nëse blloku që është ekzekutuar gabimisht bën akses në memorie, atëherë ekzekutimi i tij spekulativ do të sjellë vendosjen e të dhënave në memorien e përbashkët.

PĂ«r tĂ« pĂ«rcaktuar tĂ« dhĂ«nat qĂ« kanĂ« mbetur nĂ« memorie pas ekzekutimit spekulativ tĂ« operacioneve, sulmuesi mund tĂ« pĂ«rdorĂ« metoda pĂ«r identifikimin e tĂ« dhĂ«nave mbetĂ«se pĂ«rmes kanaleve anĂ«sore, pĂ«r shembull, duke analizuar ndryshimet nĂ« kohĂ«n e aksesit nĂ« tĂ« dhĂ«na tĂ« ruajtura dhe tĂ« pa ruajtura. PĂ«r tĂ« nxjerrĂ« informacion tĂ« targetuar nga zona nĂ« njĂ« nivel tjetĂ«r privilegjesh (pĂ«r shembull, nga memoria e bĂ«rthamĂ«s), pĂ«rdoren "gadgets" — sekuenca instrukcionesh tĂ« pranishme nĂ« bĂ«rthamĂ«, tĂ« pĂ«rshtatshme pĂ«r leximin spekulativ tĂ« tĂ« dhĂ«nave nga memoria nĂ« varĂ«si tĂ« kushteve tĂ« jashtme, mbi tĂ« cilat sulmuesi mund tĂ« ndikojĂ«.

Për të mbrojtur nga sulmet klasike të klasës Spectre, të cilat përdorin instruksione të kalimeve të kushtëzuara dhe të tërthorta, shumica e sistemeve operative aplikojnë teknikën "retpoline", e cila bazohet në zëvendësimin e operacioneve të tërthorta me instrukcionin "ret", për të cilin në procesorë përdoret një bllok i veçantë për parashikimin e gjendjes së stack-ut, i cili nuk përdor bllokun e parashikimit të kalimeve. Kur u shpik retpoline në vitin 2018, u konsiderua se manipulimet e ngjashme me Spectre me adresat nuk ishin të aplikueshme në praktikë për kalim spekullativ përmes instruksionit "ret".

Kërkuesit që zhvilluan metodën e sulmit Retbleed treguan mundësinë e krijimit të kushteve mikroarkitekturale për të iniciuar një kalim spekullativ përmes instruksionit "ret" dhe publikuan një vegël të gatshme për identifikimin në kernelin Linux të sekuencave të instrukcioneve të dobëta për shfrytëzim (gadgets), në të cilat shfaqen kushte të tilla.

Në kuadër të hulumtimit u përgatit një eksploit funksional që lejon në sistemet me CPU Intel nga një proces i papriviligjuar në hapësirën e përdoruesit të nxjerrë të dhëna të rastësishme nga memorja e kernelit me një shpejtësi prej 219 byte për sekondë dhe saktësi prej 98%. Në procesorët AMD efikasiteti i eksploitit është shumë më i lartë - shpejtësia e rrjedhjes arrin në 3.9 KB për sekondë. Si një shembull praktik, tregohet se si përmes eksploitit të propozuar mund të përcaktohet përmbajtja e skedarit /etc/shadow. Në sistemet me CPU Intel, sulmi për të përcaktuar hash-in e fjalëkalimit të përdoruesit root u krye për 28 minuta, ndërsa në sistemet me CPU AMD në 6 minuta.

Luaj videon

Mundësia për kryerjen e 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 (përfshirë Skylake), dhe për procesorët AMD të bazuar në mikroarkitekturën Zen 1, Zen 1+ dhe Zen 2, të cilët 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, problemi bllokohet nga mekanizmat ekzistues të mbrojtjes. Për shembull, përdorimi i instrukcioneve IBRS (Parashikimi i Kalimeve të Tërthorta të Kufizuara) ndihmon për t'u mbrojtur nga sulmi.

PĂ«r bĂ«rthamĂ«n Linux dhe hypervizorin Xen Ă«shtĂ« pĂ«rgatitur njĂ« grup ndryshimesh pĂ«r CPU tĂ« vjetra qĂ« parandalojnĂ« problemin pĂ«rmes njĂ« programi. Patch-i i propozuar pĂ«r bĂ«rthamĂ«n Linux ndryshon 68 skedarĂ«, shton 1783 rreshta dhe heq 387 rreshta. FatkeqĂ«sisht, mbrojtja shkakton shpenzime tĂ« konsiderueshme — nĂ« testet e kryera nĂ« procesorĂ«t AMD dhe Intel, rĂ«nia e performancĂ«s vlerĂ«sohet nga 14% nĂ« 39%. PĂ«rdorimi i mbrojtjes nĂ« bazĂ« tĂ« instrukcioneve IBRS Ă«shtĂ« mĂ« i preferuar, tĂ« cilat janĂ« tĂ« disponueshme nĂ« gjeneratat e 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 kalimin speculativ të të dhënave bëhet falë një veçorie që shfaqet gjatë mbushjes së poshtme (underflow) në tamponin e parashikimit të përmbajtjes së pritjes (Return Stack Buffer). Kur ndodhin kushte të tilla, për instrukcionin "ret" fillon të aplikohet logjika e zgjedhjes së adresës, e ngjashme me atë që përdoret për kalimet normale. Në bërthamën Linux janë gjetur më shumë se një mijë vende që krijojnë kushte për iniciimin e këtij lloj mbushjeje mbrapa dhe janë të aksesueshme përmes thirrjeve të sistemit.

Në procesorët AMD, ekzekutimi speculativ i instrukcionit "ret" bëhet pa u lidhur me tamponin specifik për pritjen (Return Address Stack) dhe blloku i parashikimit të kalimeve e sheh instrukcionin "ret" jo si një rikthim të kontrollit, por si një kalim të ndërsjellë, dhe për pasojë, përdor të dhënat për kalimet e ndërsjellta gjatë parashikimit. Në kushte të tilla, pothuajse çdo operacion "ret", i arritshëm përmes thirrjes së sistemit, mund të përdoret për shfrytëzim.

PĂ«r mĂ« tepĂ«r, nĂ« CPU-tĂ« AMD u identifikua njĂ« problem tjetĂ«r (CVE-2022-23825, Branch Type Confusion), i lidhur me kryerjen e kalimeve tĂ« rreme — kushtet pĂ«r parashikimin e kalimit mund tĂ« lindin madje edhe pa instrukcione tĂ« nevojshme pĂ«r degĂ«zim, duke lejuar qĂ« tĂ« ndikoni nĂ« tamponin e parashikimit tĂ« kalimeve pa instrukcionin "ret". Kjo veçori komplikon ndjeshĂ«m realizimin e mbrojtjes dhe kĂ«rkon njĂ« pastrim mĂ« aktiv tĂ« tamponit tĂ« parashikimit tĂ« kalimeve. Pritet qĂ« shtimi i mbrojtjes sĂ« plotĂ« nĂ« bĂ«rthamĂ« do tĂ« çojĂ« nĂ« rritje tĂ« shpenzimeve me 209%.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster