Výskumníci zo Slobodnej univerzity v Amsterdame oznámené nedávno jeden našiel nová zraniteľnosť, ktorá je rozšírenou verziou zraniteľnosti Spectre-v2 na procesoroch Intel a ARM.
Táto nová zraniteľnosť, ku ktorej pokrstili ako BHI (Injekcia histórie pobočky, CVE-2022-0001), bhb (Pamäť histórie pobočky, CVE-2022-0002) a Spectre-BHB (CVE-2022-23960) sa vyznačuje tým, že umožňuje obchádzanie ochranných mechanizmov eIBRS a CSV2 pridaných k procesorom.
Zraniteľnosť je opísaná v rôznych prejavoch toho istého problému, keďže BHI je útok, ktorý ovplyvňuje rôzne úrovne privilégií, napríklad používateľský proces a jadro, zatiaľ čo BHB je útok na rovnakej úrovni privilégií, napríklad eBPF JIT a jadro.
O zraniteľnosti
Koncepčne, BHI je rozšírený variant útoku Spectre-v2, v ktorom sa obíde dodatočná ochrana (Intel eIBRS a Arm CSV2) a zorganizuje únik dát, nahradenie hodnôt vo vyrovnávacej pamäti globálnou históriou vetvy (Branch History Buffer), ktorá sa používa v CPU na zlepšenie presnosti predikcie vetvy. zohľadnením histórie minulých prechodov.
V priebehu útoku prostredníctvom manipulácií s históriou prechodov, sú vytvorené podmienky pre nesprávnu predpoveď prechodu a špekulatívne vykonávanie potrebných pokynov, ktorých výsledok sa uloží do vyrovnávacej pamäte.
S výnimkou použitia vyrovnávacej pamäte histórie verzií namiesto vyrovnávacej pamäte cieľovej verzie je nový útok identický so Spectre-v2. Úlohou útočníka je vytvoriť také podmienky, aby adresa, pri vykonávaní špekulatívnej operácie sa berie z oblasti údajov, ktoré sa zisťujú.
Po vykonaní špekulatívneho nepriameho skoku zostane adresa skoku načítaná z pamäte vo vyrovnávacej pamäti, po ktorej možno použiť jednu z metód na určenie obsahu vyrovnávacej pamäte na jej získanie na základe analýzy zmeny času prístupu do vyrovnávacej pamäte a bez vyrovnávacej pamäte. údajov.
Výskumníci preukázali funkčný exploit, ktorý umožňuje užívateľskému priestoru extrahovať ľubovoľné dáta z pamäte jadra.
Napríklad ukazuje, ako je možné pomocou pripraveného exploitu extrahovať z kernel bufferov reťazec s hashom hesla užívateľa root, načítaný zo súboru /etc/shadow.
Využitie demonštruje schopnosť zneužiť zraniteľnosť v rámci jednej úrovne privilégií (útok z jadra na jadro) pomocou programu eBPF načítaného používateľom. Nie je vylúčená ani možnosť použitia existujúcich gadgetov Spectre v kóde jadra, skriptov, ktoré vedú k špekulatívnemu vykonávaniu pokynov.
Zraniteľnosť sa vyskytuje na väčšine súčasných procesorov Intel, s výnimkou procesorov rodiny Atom a vo viacerých procesoroch ARM.
Podľa výskumu sa zraniteľnosť neprejavuje na procesoroch AMD. Na vyriešenie problému bolo navrhnutých niekoľko metód. softvér na zablokovanie zraniteľnosti, ktorý možno použiť pred objavením sa hardvérovej ochrany v budúcich modeloch CPU.
Na blokovanie útokov cez subsystém eBPF, sPredvolene sa odporúča zakázať možnosť načítania programov eBPF neprivilegovanými používateľmi zapísaním 1 do súboru „/proc/sys/kernel/unprivileged_bpf_disabled“ alebo spustením príkazu „sysctl -w kernel .unprivileged_bpf_disabled=1“.
Ak chcete blokovať útoky prostredníctvom modulov gadget, odporúča sa použiť inštrukciu LFENCE v častiach kódu, ktoré potenciálne vedú k špekulatívnemu vykonávaniu. Je pozoruhodné, že predvolená konfigurácia väčšiny distribúcií Linuxu už obsahuje potrebné ochranné opatrenia postačujúce na zablokovanie útoku eBPF preukázaného výskumníkmi.
Odporúčania Intelu zakázať neprivilegovaný prístup k eBPF sa tiež štandardne vzťahujú na jadro Linuxu 5.16 a budú prenesené do starších pobočiek.
Nakoniec, ak máte záujem dozvedieť sa o ňom viac, podrobnosti si môžete prečítať v nasledujúci odkaz.