Uus rünne BHI Intel CPU-le, mis võimaldab Linuxi tuumas oleva kaitse ületamist

Amsterdam Free University teadlaste grupp avastas uue rünnaku meetodi „Native BHI“ (CVE-2024-2201), mis võimaldab Intel protsessoritega süsteemides tuvastada Linuxi tuuma mälu sisu, kui ekspluateerimine toimub kasutajaruumi. Virtuaaliseerimise süsteemide rünnakul võib ründaja külalisüsteemist tuvastada hostkeskkonna või teiste külalisüsteemide mälu sisu.

Native BHI meetod pakub BHI (Branch History Injection, CVE-2022-0001) haavatavuse kasutamise jaoks muud tehnikat, mis möödub varem rakendatud kaitsemeetoditest. 2022. aastal ette pandud BHI rünnaku meetod eeldas haavatavuse kasutamist ühe privileegitaseme raames, mille korral eksploit põhines kasutaja poolt tuumas käidustatud eBPF programmi täitmisel. Haavatavuse blokeerimiseks piisab eBPF koodi täitmise juurdepääsu piiramise rakendamisest tavalistele kasutajatele.

Uus Native BHI meetod ei nõua eBPF juurdepääsu ja võimaldab rünnakut teostada vähem privileegitud kasutajana kasutajaruumist. Meetod põhineb tuuma koodis olemasolevate gadget'ide — käskude järjestuste täitmisel, mis põhjustavad spekulatiivsete käsu täitmist. Tuuma sobivate gadget'ide leidmiseks on välja töötatud spetsiaalne tööriist InSpectre Gadget, mis analüüsis 6.6-rc4 tuuma ja leidis 1511 Spectre gadgeti ning 2105 abil gadget'i, mida kasutatakse haldamise jaoks.

Uus rünne BHI Intel CPU-le, mis võimaldab Linuxi tuumas oleva kaitse ületamist

Leitud gadget'id põhjal on teadlased valmistanud eksploidimise, mis võimaldab välja võtta mälu puhvrist root kasutaja parooli räsimärgi, mis on laaditud failist /etc/shadow. Andmete väljavõtmise kiirus tuuma mälu juurest on umbes 3,5 KB sekundis.

Vaata videot

BHI meetod on laiendatud variant Spectre-v2 rünnakust, kus andmete leke saavutatakse lisatud kaitse (Intel eIBRS ja Arm CSV2) möödumise ja väärtuste asendamise kaudu globaalsete harukäikude ajaloo puhvri (Branch History Buffer) kaudu, mida CPU kasutab harukäikude ennustamise täpsuse suurendamiseks, arvestades mineviku harukäikude ajalugu. Rünnaku käigus luuakse harukäikude ajaloo manipuleerimise kaudu tingimused vale harukäigu ennustamiseks ja spekulatiivsete käskude täitmiseks, mille tulemus jääb vahemällu.

Erinevused Spectre-v2 rünnaku ja Native BHI vahel seisnevad harukäikude ajaloo puhvri (Branch History Buffer) kasutamises harukäikude ennustamise puhvri (Branch Target Buffer) asemel. Andmete mälu väljavõtmiseks peab ründaja looma tingimused, kus spekulatiivse operatsiooni täitmisel aadress võetakse alalt, mille sisu tuleb tuvastada. Pärast spekulatiivse kaudse harukäigu täitmist jääb mälu aadressi lugemise tulemus vahemälusse, mille sealt edaspidi saab välja võtta ühe meetodi abil, mis põhineb vahemälu juurdepääsu aja muutuste analüüsil.

Native BHI rünnaku eest ei kaitse Intel IBT (Indirect Branch Tracking) ja Linuxi tuumas rakendatud segamismehhanism FineIBT, mis ühendab IBT põhiga negatiivsete instruktsioonide ja programmi kaitsest (kernel Control Flow Integrity) juhuslike täitmisjärgude rikkumise blokki. FineIBT lubab kaudse hüppe täitmist ainult siis, kui hüpe toimub ENDBR instruktsiooni juurde, mis asub funktsiooni alguses. Täiendavalt (sarnaselt kCFI mehhanismiga) tehakse järgnev kontroll, mis tagab osutajate muutumatuse.

Uue rünnaku variandi kaitseks on Linuxi tuuma lisatud muudatus, mis rakendab täiendavat kaitse režiimi, kasutades Intel'i soovitatud riistvarakaitse (BHI_DIS_S) või alternatiivset programmkaitset, mis on rakendatud hüperviisori kaitseks. KVMHüperviisori Xen arendajad on samuti välja andnud paranduse, mis põhineb BHI_DIS_S režiimi kasutamisel, piirates harukäikude põhjalikule ennustusele juurdepääsu. BHI_DIS_S tugi on saadaval alates Intel Alder Lake’i protsessorites ning serveri CPU-des alates Intel Sapphire Rapids. Saadaval on ka programmkaitse režiim, mis põhineb harukäikude ajaloo puhvri puhastamise jada kasutamisel, kuid see toob kaasa märgatava jõudluse vähenemise.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster