A BHI egy új, Spectre osztályú sebezhetőség az Intel és ARM processzorokban

A Vrije Universiteit Amsterdam kutatóinak egy csoportja új sebezhetőséget azonosított az Intel és ARM processzorok mikroarchitektúra struktúrájában, amely a Spectre-v2 sebezhetőség kiterjesztett változata, amely lehetővé teszi a processzorokhoz hozzáadott eIBRS és CSV2 védelmi mechanizmusok megkerülését. . A sérülékenység több nevet is kapott: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) és Spectre-BHB (CVE-2022-23960), amelyek a ugyanaz a probléma (BHI - egy támadás, amely különböző szintű jogosultságokat érint, például a felhasználói folyamatot és a kernelt, BHB - egy azonos jogosultsági szintű támadás, például eBPF JIT és a kernel).

A kutatók olyan működő exploitot mutattak be, amely lehetővé teszi tetszőleges adatok kinyerését a kernel memóriájából a felhasználói térből. Például bemutatjuk, hogy egy előkészített exploit segítségével hogyan lehet a rendszermag puffereiből kivonni egy karakterláncot a /etc/shadow fájlból betöltött root felhasználói jelszó hash-ével. Az exploit bemutatja a sebezhetőség kihasználásának lehetőségét egy jogosultsági szinten (kernel-kernel támadás) egy felhasználó által betöltött eBPF programmal. Az is lehetséges, hogy az eBPF helyett a kernelkódban meglévő Spectre modulokat használjunk olyan parancssorokat, amelyek az utasítások spekulatív végrehajtásához vezetnek.

A biztonsági rés a legtöbb jelenlegi Intel processzorban megjelenik, kivéve az Atom családból származó processzorokat. Az ARM processzorok közül a Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 és esetleg néhány Cortex-R chipet érint a probléma. A kutatások szerint a sérülékenység nem jelenik meg az AMD processzorokban. A probléma kiküszöbölésére számos szoftveres módszert javasoltak a sérülékenység blokkolására, amelyek a hardvervédelem megjelenése előtt használhatók a jövőbeni CPU-modellekben.

Az eBPF alrendszeren keresztüli támadások blokkolásához ajánlott alapértelmezés szerint letiltani a jogosulatlan felhasználóknak az eBPF-programok letöltésének lehetőségét. Ehhez írjon 1-et a „/proc/sys/kernel/unprivileged_bpf_disabled” fájlba, vagy futtassa a „sysctl -w kernel” parancsot. unprivileged_bpf_disabled=1”. A modultámadások blokkolásához javasolt az LFENCE utasítás használata a kód azon területein, amelyek spekulatív végrehajtáshoz vezethetnek. Figyelemre méltó, hogy a legtöbb Linux disztribúció alapértelmezett konfigurációja már tartalmazza a szükséges védelmi intézkedéseket, amelyek elegendőek a kutatók által bemutatott eBPF támadás blokkolásához. Az Intelnek az eBPF-hez való jogosulatlan hozzáférés letiltására vonatkozó ajánlásai szintén alapértelmezettek a Linux kernel 5.16 óta, és a korábbi ágakba kerülnek visszaportolásra.

Elméletileg a BHI a Spectre-v2 támadás kiterjesztett változata, amelyben a hozzáadott védelem (Intel eIBRS és Arm CSV2) megkerülésére és az adatszivárgás megszervezésére értékhelyettesítést használnak a Branch History Bufferben, amelyet a CPU-ban használnak az előrejelzés növelésére. pontosságú elágazás a múltbeli átmenetek történetének figyelembevételével. A támadás során az átmenetek történetével végzett manipulációk révén feltételeket teremtenek az átmenet helytelen előrejelzéséhez és a szükséges utasítások spekulatív végrehajtásához, amelynek eredménye a gyorsítótárban végzi.

A Branch History Buffer használata kivételével az új támadás megegyezik a Spectre-v2-vel. A támadó feladata olyan feltételek megteremtése, hogy a címet egy spekulatív művelet végrehajtásakor a meghatározott adatok területéről vegyék le. A spekulatív indirekt ugrás végrehajtása után a memóriából kiolvasott ugrási cím a gyorsítótárban marad, majd a gyorsítótár tartalmának meghatározásának egyik módszerével visszakereshető a gyorsítótárazott és gyorsítótárazott hozzáférési idő változásának elemzése alapján. adat.

Forrás: opennet.ru

Hozzászólás