Një grup hulumtuesish nga Universiteti i Lirë i Amsterdamit ka zbuluar një mënyrë të re sulmi të quajtur "Native BHI" (CVE-2024-2201), që i lejon në sisteme me procesorë Intel të përcaktojnë përmbajtjen e memories së bërthamës Linux gjatë ekzekutimit të një eksploiti në hapësirën e përdoruesit. Në rastin e aplikimit të sulmit në sistemet e virtualizimit, sulmuesi nga sistemi mysafir mund të përcaktojë përmbajtjen e memories së ambientit host ose sistemeve të tjera mysafire.
Metoda Native BHI ofron njĂ« teknikĂ« tĂ« ndryshme pĂ«r shfrytĂ«zimin e dobĂ«sisĂ« BHI (Branch History Injection, CVE-2022-0001), e cila shmang mĂ«nyrat e mbrojtjes tĂ« zbatuara mĂ« parĂ«. Metoda e sulmit BHI e propozuar nĂ« vitin 2022 pĂ«rfshinte shfrytĂ«zimin e dobĂ«sisĂ« nĂ« kuadĂ«r tĂ« njĂ« niveli privilegji, pĂ«r çka eksploiti bazohej nĂ« ekzekutimin e njĂ« programi eBPF tĂ« ngarkuar nga pĂ«rdoruesi nĂ« bĂ«rthamĂ«. PĂ«r t'u bllokuar dobĂ«sia, ishte e mjaftueshme tĂ« kufizohej q ĐŽĐŸŃŃŃпа pĂ«r ekzekutimin e kodit eBPF pĂ«r pĂ«rdoruesit e zakonshĂ«m.
Metoda e re Native BHI nuk kĂ«rkon akses nĂ« eBPF dhe lejon njĂ« sulmues tĂ« pa privilegjuar tĂ« sulmojĂ« nga hapĂ«sira e pĂ«rdoruesit. Metoda bazohet nĂ« ekzekutimin e gadgeteve ekzistuese nĂ« kodin e bĂ«rthamĂ«s â sekuencave komandash qĂ« çojnĂ« nĂ« ekzekutimin spekulativ tĂ« instrukcioneve. PĂ«r tĂ« kĂ«rkuar gadgete tĂ« pĂ«rshtatshme nĂ« bĂ«rthamĂ«, Ă«shtĂ« zhvilluar njĂ« mjet i veçantĂ« InSpectre Gadget, i cili gjatĂ« analizĂ«s sĂ« bĂ«rthamĂ«s 6.6-rc4 identifikoi 1511 gadgete Spectre dhe 2105 gadgete ndihmĂ«se pĂ«r menaxhim.

Bazuar në gadgetet e gjetura, hulumtuesit kanë përgatitur një eksploit që jep mundësinë për të nxjerrë nga bufferat e bërthamës një varg me hashin e fjalëkalimit të përdoruesit root, të ngarkuar nga skedari /etc/shadow. Shpejtësia e nxjerrjes së të dhënave nga memoria e bërthamës është afërsisht 3.5 Kb në sekondë.

Metoda BHI është një variant i zgjeruar i sulmit Spectre-v2, në të cilin për të anashkaluar mbrojtjen e shtuar (Intel eIBRS dhe Arm CSV2) dhe për të organizuar rrjedhjen e të dhënave përdoret zëvendësimi i vlerave në bufferin e historisë globale të kalimeve (Branch History Buffer), i përdorur në CPU për të përmirësuar saktësinë e parashikimit të kalimeve duke marrë parasysh historinë e kalimeve të mëparshme. Gjatë sulmit, përmes manipulimeve me historinë e kalimeve krijohen kushte për parashikimin e gabuar të kalimit dhe ekzekutimin spekulativ të instrukcioneve të nevojshme, rezultati i të cilave mbetet në cache.
Dallimet nga sulmi Spectre-v2 përfshijnë përdorimin e një tamponi me histori të kalimeve (Branch History Buffer) në vend të tamponit të parashikimit të degëve (Branch Target Buffer). Për të nxjerrë të dhëna nga memoria, sulmuesi duhet të krijojë kushte të tilla që, kur kryhet një operacion spekulativ, adresa do të merret nga një zonë që duhet të përcaktohet. Pas kryerjes së kalimit spekulativ të të dhënave, adresa e lexuar nga memoria mbetet në cache, pas së cilës mund të përdoren një nga metodat për të përcaktuar përmbajtjen e caches në bazë të analizës së ndryshimit të kohës së qasjes në të dhënat e cache-uar dhe jo të cache-uar.
Sulmimi Native BHI nuk mbron përdorimin e instrukcioneve Intel IBT (Indirect Branch Tracking) dhe mekanizmi hibrid i mbrojtjes së rrjedhës së ekzekutimit FineIBT të implementuar në bërthamat Linux, i cili kombinon përdorimin e instrukcioneve harduerike IBT dhe mbrojtjen software kCFI (kernel Control Flow Integrity) për të bllokuar shkeljen e rendit normal të ekzekutimit (control flow). FineIBT lejon ekzekutimin përmes një kalimi indirekt vetëm në rast se kalimi është në një instrukcion ENDBR, i vendosur në fillim të funksionit. Për më tepër (në analogji me mekanizmin kCFI), pas kësaj, kryhet një verifikim i hashes që garanton të pandryshueshmërinë e treguesve.
Për mbrojtje ndaj variantit të ri të sulmit, në bërthamën Linux është shtuar një ndryshim me implementimin e një modaliteti të ri mbrojtës, i cili përdor burime mbrojtëse harduerike të propozuara nga Intel (BHI_DIS_S) ose një mbrojtje alternativë software, e cila është implementuar për mbrojtjen e hipervizorit. KVM. Zhvilluesit e hipervizorit Xen gjithashtu lëshuan një korrigjim që bazohet në përdorimin e modalitetit BHI_DIS_S, duke kufizuar parashikimet në bazë të historisë së kalimeve. Mbështetje për BHI_DIS_S është e disponueshme në procesorët, duke filluar nga Intel Alder Lake, si dhe CPU server, duke filluar nga Intel Sapphire Rapids. Ka dhe një mod të mbrojtjes software, i cili bazohet në përdorimin e sekuencave për pastrimin e tamponit të historisë së kalimeve, por ai çon në një rënie më të dukshme të performancës.
Burimi: opennet.ru
