Linux 6.2 branduolio pažeidžiamumas, leidžiantis apeiti apsaugą nuo Spectre v2 atakų

Linux branduolyje 6.2 buvo nustatytas pažeidžiamumas (CVE-2023-1998), kuris išjungia apsaugą nuo Spectre v2 atakų, kurios leidžia pasiekti kitų procesų, veikiančių skirtingose ​​SMT arba Hyper Threading gijose, bet tame pačiame fiziniame procesoriuje, atminties. šerdis. Pažeidžiamumas, be kita ko, gali būti naudojamas duomenų nutekėjimui tarp virtualių mašinų debesų sistemose. Problema paliečia tik Linux 6.2 branduolį ir kyla dėl netinkamo optimizavimo, skirto sumažinti Spectre v2 apsaugos taikymo išlaidas. Pažeidžiamumas buvo ištaisytas eksperimentinėje Linux 6.3 branduolio šakoje.

Vartotojo erdvėje, norėdami apsisaugoti nuo Spectre atakų, procesai gali pasirinktinai išjungti spekuliacinį instrukcijų vykdymą naudodami prctl PR_SET_SPECULATION_CTRL arba naudoti sistemos skambučių filtravimą, pagrįstą seccomp mechanizmu. Pasak mokslininkų, kurie nustatė problemą, neteisingai optimizavus branduolį 6.2, mažiausiai vieno pagrindinio debesų tiekėjo virtualios mašinos liko be tinkamos apsaugos, nepaisant to, kad buvo įtrauktas spektro PTI atakų blokavimo režimas per prctl. Pažeidžiamumas taip pat atsiranda įprastuose serveriuose su 6.2 branduoliu, juos įkeliant naudojamas „spectre_v2=ibrs“ nustatymas.

Pažeidžiamumo esmė ta, kad renkantis IBRS arba eIBRS apsaugos režimus, įvesti optimizavimai neleido naudoti STIBP (Single Thread Indirect Branch Predictors) mechanizmo, kuris yra būtinas blokuoti nuotėkius naudojant vienalaikę kelių gijų technologiją (SMT arba Hyper- Sriegimas). Tačiau tik eIBRS režimas užtikrina apsaugą nuo nutekėjimo tarp gijų, bet ne IBRS režimą, nes tokiu atveju IBRS bitas, užtikrinantis apsaugą nuo nuotėkio tarp loginių branduolių, išvalomas dėl našumo priežasčių, kai valdymas grįžta į vartotojo erdvę, todėl gijos vartotojo erdvėje neapsaugotos nuo Spectre v2 atakų.

Šaltinis: opennet.ru

Добавить комментарий