BHI: naujas Spectre klasės pažeidžiamumas, turintis įtakos Intel ir ARM

Amsterdamo laisvojo universiteto mokslininkai paskelbta neseniai rado vieną naujas pažeidžiamumas, kuris yra išplėstinė Spectre-v2 pažeidžiamumo versija „Intel“ ir ARM procesoriuose.

Šis naujas pažeidžiamumas, į kurį pasikrikštijo kaip BHI (filialo istorijos injekcija, CVE-2022-0001), BHB (Atšakos istorijos buferis, CVE-2022-0002) ir Spectre-BHB (CVE-2022-23960), pasižymi tuo, kad leidžia apeiti prie procesorių pridėtus eIBRS ir CSV2 apsaugos mechanizmus.

Pažeidžiamumas aprašomas skirtingomis tos pačios problemos apraiškomis, nes BHI yra ataka, paveikianti skirtingus privilegijų lygius, pavyzdžiui, vartotojo procesą ir branduolį, o BHB yra to paties privilegijų lygio ataka, pavyzdžiui, eBPF JIT ir branduolys.

Apie pažeidžiamumą

Konceptualiai, BHI yra išplėstinis Spectre-v2 atakos variantas, kuriame būtų galima apeiti papildomą apsaugą („Intel eIBRS“ ir „Arm CSV2“) ir sureguliuoti duomenų nutekėjimą, buferio reikšmių pakeitimą pasauline šakos istorija (Branch History Buffer), kuri naudojama CPU siekiant pagerinti šakų numatymo tikslumą. atsižvelgiant į praeities perėjimų istoriją.

Atakos metu manipuliuojant perėjimų istorija, sudaromos sąlygos neteisingai prognozuoti perėjimą ir spekuliacinį vykdymą būtinų instrukcijų, kurių rezultatas saugomas talpykloje.

Išskyrus versijos istorijos buferio naudojimą vietoj versijos tikslinio buferio, nauja ataka yra identiška Spectre-v2. Užpuoliko užduotis yra sukurti tokias sąlygas, kad adresas, atliekant spekuliacinę operaciją, ji paimama iš nustatomų duomenų srities.

Atlikus spekuliatyvų netiesioginį šuolį, iš atminties nuskaitytas šuolio adresas lieka talpykloje, o po to vienu iš talpyklos turinio nustatymo metodų galima jį nuskaityti remiantis talpyklos prieigos laiko pokyčio analize ir neišsaugota talpykloje. duomenis.

Tyrėjai pademonstravo funkcinį išnaudojimą, leidžiantį vartotojui erdvę išgauti savavališkus duomenis iš branduolio atminties.

Pavyzdžiui, parodoma, kaip naudojant paruoštą eksploataciją iš branduolio buferių galima išgauti eilutę su pagrindinio vartotojo slaptažodžio maiša, įkelta iš failo /etc/shadow.

Išnaudojimas demonstruoja galimybę išnaudoti pažeidžiamumą per vieną privilegijų lygį (branduolio-kernel ataka), naudojant vartotojo įkeltą eBPF programą. Taip pat neatmetama galimybė branduolio kode panaudoti esamas Spectre programėles, scenarijus, vedančius į spekuliatyvų instrukcijų vykdymą.

Pažeidžiamumas pasirodo daugelyje dabartinių „Intel“ procesorių, išskyrus Atom šeimos procesorių ir kelis ARM procesorius.

Remiantis tyrimais, pažeidžiamumas nepasireiškia AMD procesoriuose. Siekiant išspręsti problemą, buvo pasiūlyta keletas būdų. programinė įranga, skirta blokuoti pažeidžiamumą, kuri gali būti naudojama prieš pasirodant aparatinės įrangos apsaugai būsimuose CPU modeliuose.

Norėdami blokuoti atakas per eBPF posistemį, sPagal numatytuosius nustatymus rekomenduojama išjungti galimybę įkelti eBPF programas neprivilegijuotiems vartotojams, įrašydami 1 į failą „/proc/sys/kernel/unprivileged_bpf_disabled“ arba paleisdami komandą „sysctl -w kernel .unprivileged_bpf_disabled=1“.

Norėdami blokuoti atakas per programėles, rekomenduojama naudoti LFENCE instrukciją kodo dalyse, kurios gali sukelti spekuliacinį vykdymą. Pastebėtina, kad daugumos Linux platinimų numatytoji konfigūracija jau turi būtinų apsaugos priemonių, kurių pakanka blokuoti tyrėjų parodytą eBPF ataką.

„Intel“ rekomendacijos išjungti neprivilegijuotą prieigą prie eBPF taip pat taikomos pagal numatytuosius nustatymus, pradedant nuo 5.16 „Linux“ branduolio ir bus perkeltos į ankstesnes šakas.

Galiausiai, jei jus domina galimybė apie tai sužinoti daugiau, išsamią informaciją galite rasti sekanti nuoroda.