Rebleed ass en neien Attack op de spekulativen Ausféierungsmechanismus vun Intel an AMD CPUs

Eng Grupp vu Fuerscher vun der ETH Zürich huet en neien Attack op de Mechanismus vun der spekulativer Ausféierung vun indirekten Iwwergäng an der CPU identifizéiert, wat et méiglech mécht Informatioun aus Kernel Memory ze extrahéieren oder en Attack op den Hostsystem vu virtuelle Maschinnen z'organiséieren. D'Schwachstelle si mam Codenumm Retbleed (CVE-2022-29900, CVE-2022-29901) a sinn no an der Natur zu Spectre-v2 Attacken. Den Ënnerscheed kënnt erof op d'Organisatioun vun der spekulativer Ausféierung vum arbiträre Code beim Veraarbechtung vun der "retur" (Retour) Instruktioun, déi d'Adress hëlt fir aus dem Stack ze sprangen, anstatt en indirekten Sprong mat der "jmp" Instruktioun, lued d'Adress vun Erënnerung oder engem CPU Register.

En Ugräifer kann Konditioune fir falsch Iwwergangsprognose erstellen an e geziilten, spekulativen Iwwergang zu engem Codeblock organiséieren deen net vun der Programmausféierungslogik virgesinn ass. Schlussendlech wäert de Prozessor bestëmmen datt d'Brancheprognose net gerechtfäerdegt war a wäert d'Operatioun zréck an hiren ursprénglechen Zoustand zréckrollen, awer d'Donnéeën, déi während der spekulativer Ausféierung veraarbecht ginn, wäerten am Cache an de mikroarchitektonesche Puffer ophalen. Wann e falsch ausgefouerten Block op d'Erënnerung zougitt, da féiert seng spekulativ Ausféierung dozou datt Daten aus der Erënnerung gelies ginn an de gemeinsame Cache deposéiert ginn.

Fir d'Donnéeën ze bestëmmen déi am Cache bleiwen no spekulativen Operatiounen, kann en Ugräifer Side-Channel Technike benotzen fir Reschtdaten ze bestëmmen, wéi zB d'Analyse vun Ännerungen an den Zougangszäiten op cachéiert an netcached Daten. Fir gezielt Informatioun aus Gebidder op engem anere Privilegienniveau ze extrahieren (zum Beispill aus Kernel Memory), ginn "Gadgeten" benotzt - Sequenze vu Kommandoen, déi am Kernel präsent sinn, déi gëeegent sinn fir spekulativ Daten aus der Erënnerung ze liesen ofhängeg vun externe Bedéngungen, déi beaflosst kënne ginn den Ugräifer.

Fir géint klassesch Specter-Klassattacken ze schützen, déi bedingt an indirekt Spranginstruktioune benotzen, benotzen déi meescht Betribssystemer d'"Retpoline" Technik, déi baséiert op d'Ersatz vun indirekten Sprangoperatiounen mat der "ret" Instruktioun, fir déi d'Prozessoren eng separat Stack State Prediction Eenheet benotzen. benotzt net e Brancheprediktiounsblock. Wéi d'Retpoline am Joer 2018 agefouert gouf, gouf gegleeft datt Specter-ähnlech Adressmanipulatiounen net praktesch waren fir spekulativ Verzweigung mat der "ret" Instruktioun.

D'Fuerscher, déi d'Retbleed Attack Method entwéckelt hunn, hunn d'Méiglechkeet bewisen fir mikroarchitektonesch Bedéngungen ze kreéieren fir e spekulativen Iwwergang mat der "ret" Instruktioun ze initiéieren a publizéiert fäerdeg Tools fir Sequenzen vun Instruktiounen (Gadgeten) z'identifizéieren déi gëeegent sinn fir d'Schwachheet am Linux Kernel auszenotzen, an deenen esou Konditiounen sech manifestéieren.

Wärend der Fuerschung gouf en Aarbechtsexploit virbereet, deen et erlaabt, op Systemer mat Intel CPUs, arbiträr Daten aus Kernel Memory aus engem onprivilegéierte Prozess am Benotzerraum mat enger Geschwindegkeet vun 219 Bytes pro Sekonn an 98% Genauegkeet ze extrahieren. Op AMD Prozessoren ass d'Effizienz vun der Exploit vill méi héich - d'Leckrate ass 3.9 KB pro Sekonn. Als praktescht Beispill weisen mir wéi Dir de proposéierten Exploit benotzt fir den Inhalt vun der /etc/shadow Datei ze bestëmmen. Op Systemer mat Intel CPUs ass d'Attack fir de Root Benotzer Passwuert Hash ze bestëmmen an 28 Minutten duerchgefouert, an op Systemer mat AMD CPUs - a 6 Minutten.

D'Attack gouf fir Generatiounen 6-8 vun Intel Prozessoren bestätegt déi virum Q3 2019 verëffentlecht goufen (inklusiv Skylake), an AMD Prozessoren baséiert op Zen 1, Zen 1+ an Zen 2 Mikroarchitekturen déi virum Q2021 3 verëffentlecht goufen. An méi neie Prozessor Modeller wéi AMD ZenXNUMX an Intel Alder Lake, wéi och an ARM Prozessoren, ass de Problem vun bestehend Schutz Mechanismen blockéiert. Zum Beispill, benotzt IBRS (Indirekt Branch Restricted Speculation) Instruktiounen hëlleft géint Attacken ze schützen.

Eng Rei vun Ännerungen gouf virbereet fir de Linux Kernel an den Xen Hypervisor, deen de Problem an der Software op eeler CPUs blockéiert. De proposéierte Patch fir de Linux Kernel ännert 68 Dateien, füügt 1783 Linnen derbäi a läscht 387 Linnen. Leider féiert de Schutz zu bedeitende Overheadkäschten - an den Texter, déi op AMD an Intel Prozessoren duerchgefouert ginn, gëtt d'Performance Ofsenkung vun 14% op 39% geschat. Et ass méi léiwer Schutz ze benotzen baséiert op IBRS Instruktiounen, verfügbar an nei Generatioune vun Intel CPUs an ënnerstëtzt ab dem Linux Kernel 4.19.

Op Intel Prozessoren gëtt d'Adresssubstitutioun fir e spekulativen indirekte Sprong duerchgefouert duerch eng Feature déi erschéngt wann en Iwwerschwemmung duerch déi ënnescht Grenz (Underflow) am Return Stack Buffer geschitt. Wann esou Konditiounen optrieden, fänkt d'"ret" Instruktioun un d'Adressauswiellogik unzewenden ähnlech wéi déi fir normal indirekte Spréng benotzt. Méi wéi dausend Plazen sinn am Linux Kernel fonnt ginn, déi Konditioune kreéieren fir sou e Réckflow ze initiéieren an zougänglech duerch Systemruffen.

Op AMD Prozessoren gëtt spekulativ Ausféierung vun der "ret" Instruktioun duerchgefouert ouni Referenz op e stackspezifesche Puffer (Return Address Stack) an d'Branche Prediction Eenheet betruecht d'"Ret" Instruktioun net als Kontrollretour, awer als indirekte Branche. , an deementspriechend benotzt d'Donnéeën fir indirekt Iwwergäng virzebereeden. Ënnert dëse Bedéngungen kann quasi all "Ret" Operatioun erreechbar iwwer e Systemruff exploitéiert ginn.

Zousätzlech ass en anert Thema och an AMD CPUs identifizéiert ginn (CVE-2022-23825, Branch Type Confusion) am Zesummenhang mat der Ëmsetzung vu fiktiven Filialen - Konditioune fir Brancheprediktioun kënnen och ouni déi néideg Brancheinstruktiounen optrieden, wat et erlaabt de Brancheprediktiounsbuffer ze beaflossen ouni d'Instruktioun "ret". Dës Feature komplizéiert d'Ëmsetzung vum Schutz wesentlech a erfuerdert méi aktiv Reinigung vum Brancheprediktiounsbuffer. Füügt voll Schutz fir de Kärel gëtt erwaart datt d'Overhead ëm 209% eropgeet.

Source: opennet.ru

Setzt e Commentaire