Ekipa raziskovalcev z Univerze Vrije v Amsterdamu je odkrila novo ranljivost v mikroarhitekturi procesorjev Intel in ARM. Ta ranljivost je razširjena različica Spectre-v2, ki omogoča obhod zaščitnih mehanizmov eIBRS in CSV2, dodanih procesorjem. Ranljivost je dobila več imen: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) in Spectre-BHB (CVE-2022-23960), ki opisujejo različne manifestacije iste težave (BHI je napad, ki vpliva na različne ravni privilegijev, kot sta uporabniški proces in jedro, medtem ko je BHB napad na eno samo raven privilegijev, kot sta eBPF JIT in jedro).
Raziskovalci so predstavili delujočo ranljivost, ki omogoča pridobivanje poljubnih podatkov iz uporabniškega prostora iz pomnilnika jedra. Na primer, prikazujejo, kako se lahko pripravljena ranljivost uporabi za pridobivanje niza, ki vsebuje zgoščeno vrednost gesla uporabnika root, naloženo iz datoteke /etc/shadow, iz medpomnilnikov jedra. Ranljivost prikazuje možnost izkoriščanja ranljivosti znotraj ene same ravni privilegijev (napad jedro-jedro) z uporabo programa eBPF, ki ga prenese uporabnik. Namesto eBPF je mogoče uporabiti tudi obstoječe pripomočke Spectre, zaporedja ukazov, ki vodijo do špekulativnega izvajanja ukazov.

Ranljivost prizadene večino trenutnih Intelovih procesorjev, z izjemo družine Atom. Med procesorji ARM težava prizadene Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 in morda nekatere čipe Cortex-R. Raziskave kažejo, da procesorji AMD niso ranljivi. Predlaganih je bilo več programskih ukrepov za zmanjšanje ranljivosti, ki jih je mogoče uporabljati, dokler v prihodnjih modelih procesorjev ne bo uvedena strojna zaščita.
Za blokiranje napadov prek podsistema eBPF je priporočljivo, da neprivilegiranim uporabnikom onemogočite možnost privzetega nalaganja programov eBPF tako, da v datoteko "/proc/sys/kernel/unprivileged_bpf_disabled" zapišete vrednost 1 ali zaženete ukaz "sysctl -w kernel.unprivileged_bpf_disabled=1". Za blokiranje napadov prek pripomočkov je priporočljivo uporabiti ukaz LFENCE v delih kode, ki lahko vodijo do špekulativnega izvajanja. Omeniti velja, da je privzeta konfiguracija večine distribucij Linux Potrebni varnostni ukrepi so že vzpostavljeni in zadostujejo za blokiranje napada eBPF, ki so ga predstavili raziskovalci. Intelova priporočila za onemogočanje neprivilegiranega dostopa do eBPF se prav tako uporabljajo privzeto, začenši v jedru. Linux 5.16 in bo prenesena nazaj v prejšnje veje.
Konceptualno je BHI razširjena različica napada Spectre-v2, ki zaobide dodatne zaščite (Intel eIBRS in Arm CSV2) in pušča podatke z zamenjavo vrednosti v Branch History Buffer, globalni medpomnilnik zgodovine vej, ki se uporablja v procesorjih za izboljšanje natančnosti napovedovanja vej z upoštevanjem zgodovine preteklih vej. Napad z manipulacijo zgodovine vej ustvarja pogoje za napačno napovedovanje vej in špekulativno izvajanje potrebnih navodil, katerih rezultati so shranjeni v predpomnilniku.
Z izjemo uporabe medpomnilnika zgodovine podružnic namesto medpomnilnika cilja podružnic je novi napad enak napadu Spectre-v2. Cilj napadalca je ustvariti pogoje, pri katerih se naslov, vzet med špekulativno operacijo, vzame iz ciljnega podatkovnega območja. Po izvedbi špekulativnega posrednega skoka naslov skoka, prebran iz pomnilnika, ostane v predpomnilniku, nato pa ga je mogoče pridobiti z eno od metod za določanje vsebine predpomnilnika, ki temelji na analizi razlik v času dostopa med predpomnjenimi in nepredpomnjenimi podatki.
Vir: opennet.ru
