BHI on uus Spectre klassi haavatavus Inteli ja ARM protsessorites

Amsterdami Vrije Universiteit teadlaste rühm on tuvastanud Inteli ja ARM protsessorite mikroarhitektuursetes struktuurides uue haavatavuse, mis on Spectre-v2 haavatavuse laiendatud versioon, mis võimaldab mööda minna protsessoritele lisatud eIBRS-i ja CSV2-kaitsemehhanismidest. . Haavatavusele on antud mitu nime: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) ja Spectre-BHB (CVE-2022-23960), mis kirjeldavad erinevaid sama probleem (BHI - rünnak, mis mõjutab erinevaid privileegide tasemeid, näiteks kasutaja protsessi ja tuuma, BHB - rünnak samal õigustasemel, näiteks eBPF JIT ja kernel).

Teadlased on näidanud toimivat ärakasutamist, mis võimaldab kasutajaruumist kerneli mälust suvalisi andmeid ekstraheerida. Näiteks näidatakse, kuidas ettevalmistatud exploiti kasutades on võimalik kerneli puhvritest välja võtta string, mis sisaldab failist /etc/shadow laaditud juurkasutaja parooli räsi. Ärakasutamine näitab võimalust kasutada haavatavust ühel privileegi tasemel (tuumadevaheline rünnak), kasutades kasutaja laaditud eBPF programmi. Samuti on võimalik eBPF-i asemel kasutada kerneli koodis olemasolevaid Spectre vidinaid käskude jadasid, mis viivad käskude spekulatiivse täitmiseni.

See haavatavus ilmneb enamikes praegustes Inteli protsessorites, välja arvatud Atomi perekonna protsessorid. ARM-protsessoritest mõjutab probleem Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 ja võib-olla ka mõnda Cortex-R kiipi. Uuringute kohaselt haavatavus AMD protsessorites ei ilmne. Probleemi kõrvaldamiseks on haavatavuse blokeerimiseks välja pakutud mitmeid tarkvarameetodeid, mida saab kasutada enne riistvarakaitse ilmumist tulevastesse protsessorimudelitesse.

Rünnakute blokeerimiseks eBPF-i alamsüsteemi kaudu on soovitatav vaikimisi keelata privilegeerimata kasutajate võimalus eBPF-i programme alla laadida, kirjutades faili “/proc/sys/kernel/unprivileged_bpf_disabled” 1 või käivitades käsu “sysctl -w kernel. unprivileged_bpf_disabled=1”. Vidinarünnakute blokeerimiseks on soovitatav kasutada LFENCE käsku koodipiirkondades, mis võivad viia spekulatiivse täitmiseni. Tähelepanuväärne on, et enamiku Linuxi distributsioonide vaikekonfiguratsioon sisaldab juba vajalikke kaitsemeetmeid, mis on piisavad teadlaste näidatud eBPF-i rünnaku blokeerimiseks. Inteli soovitused privilegeerimata juurdepääsu keelamiseks eBPF-ile on alates Linuxi kerneli versioonist 5.16 ka vaikimisi ja need teisaldatakse varasematesse harudesse.

Põhimõtteliselt on BHI Spectre-v2 rünnaku laiendatud versioon, milles lisakaitsest (Intel eIBRS ja Arm CSV2) möödahiilimiseks ja andmete lekke korraldamiseks kasutatakse haru ajaloo puhvris väärtuste asendamist, mida kasutatakse protsessoris prognoosimise suurendamiseks. hargnemise täpsus, võttes arvesse varasemate üleminekute ajalugu. Rünnaku ajal luuakse üleminekute ajalooga manipuleerides tingimused ülemineku ebaõigeks ennustamiseks ja vajalike juhiste spekulatiivseks täitmiseks, mille tulemus satub vahemällu.

Välja arvatud Branch History puhvri kasutamine haru sihtpuhvri asemel, on uus rünnak identne Spectre-v2-ga. Ründaja ülesanne on luua sellised tingimused, et aadress võetakse spekulatiivse toimingu sooritamisel määratletud andmete piirkonnast. Pärast spekulatiivse kaudse hüppe sooritamist jääb mälust loetud hüppeaadress vahemällu, misjärel saab selle hankimiseks kasutada üht vahemälu sisu määramise meetodit, mis põhineb vahemällu salvestatud ja vahemällu salvestamata juurdepääsuaja muutuste analüüsil. andmeid.

Allikas: opennet.ru

Lisa kommentaar