Az Amszterdami Szabad Egyetem kutatói ismertté tették nemrég találtam egyet új biztonsági rés, amely a Spectre-v2 biztonsági résének kiterjesztett változata Intel és ARM processzorokon.
Ez az új sebezhetőség, amelyre BHI néven keresztelkedtek meg (Branch History Injection, CVE-2022-0001), bhb (Branch History Buffer, CVE-2022-0002) és Spectre-BHB (CVE-2022-23960), jellemzője, hogy lehetővé teszi a processzorokhoz hozzáadott eIBRS és CSV2 védelmi mechanizmusok megkerülését.
A sebezhetőséget ugyanannak a problémának különböző megnyilvánulásai írják le, mivel a BHI egy támadás, amely különböző jogosultsági szinteket érint, például egy felhasználói folyamatot és a kernelt, míg a BHB egy azonos jogosultsági szintű támadás, például eBPF JIT és a kernel.
A sebezhetőségről
Fogalmilag A BHI a Spectre-v2 támadás kiterjesztett változata, amelyben a kiegészítő védelem (Intel eIBRS és Arm CSV2) megkerülésére és az adatszivárgás megszervezésére, a pufferben lévő értékek globális elágazási előzményekkel való helyettesítésére (Branch History Buffer), amelyet a CPU-ban használnak az elágazás előrejelzési pontosságának javítására. a múltbeli átmenetek történetének figyelembevételével.
Egy támadás során az átmenetek történetével kapcsolatos manipulációk révén, feltételeket teremtenek az átmenet helytelen előrejelzéséhez és a spekulatív végrehajtáshoz a szükséges utasításokat, amelyek eredménye a gyorsítótárban tárolódik.
A verzióelőzmény-puffer használata kivételével a verziócél puffer helyett, az új támadás megegyezik a Spectre-v2-vel. A támadó feladata olyan feltételek megteremtése, hogy a cím, spekulatív művelet végrehajtásakor a meghatározandó adatok területéről veszik.
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ár hozzáférési idejének változásának elemzése és a gyorsítótár nélküli adat.
A kutatók olyan funkcionális kizsákmányolást mutattak be, amely lehetővé teszi a felhasználók számára tetszőleges adatok kinyerését a kernel memóriájából.
Például bemutatja, hogy az előkészített exploit segítségével hogyan lehet a rendszermag puffereiből kivonni egy karakterláncot a root felhasználó jelszavának kivonatával, amelyet az /etc/shadow fájlból töltenek be.
Az exploit bemutatja a biztonsági rést egyetlen jogosultsági szinten (kernel-kernel támadás) kihasználni egy felhasználó által betöltött eBPF programmal. Nem kizárt annak a lehetősége sem, hogy a kernelkódban meglévő Spectre modulokat használjunk, vagyis olyan szkripteket, amelyek az utasítások spekulatív végrehajtásához vezetnek.
Sebezhetőség a legtöbb jelenlegi Intel processzoron megjelenik, az Atom processzorcsalád és több ARM processzor kivételével.
A kutatások szerint a sérülékenység az AMD processzorokon nem nyilvánul meg. A probléma megoldására többféle módszert javasoltak. szoftver a sérülékenység blokkolására, amely felhasználható a hardvervédelem megjelenése előtt a jövőbeli CPU-modellekben.
Az eBPF alrendszeren keresztüli támadások blokkolásához sJavasoljuk, hogy alapértelmezés szerint tiltsa le az eBPF programok betöltésének lehetőségét jogosulatlan felhasználók 1-et írva a „/proc/sys/kernel/unprivileged_bpf_disabled” fájlba vagy a „sysctl -w kernel .unprivileged_bpf_disabled=1” parancs futtatásával.
A kütyükön keresztüli támadások blokkolásához javasolt az LFENCE utasítás használata a kód olyan szakaszaiban, amelyek potenciálisan 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 Intel azon ajánlásai, hogy tiltsák le az eBPF-hez való jogosulatlan hozzáférést, szintén alapértelmezés szerint érvényesek az 5.16-os Linux kerneltől kezdve, és átkerülnek a korábbi ágakra.
Végül, ha többet szeretne megtudni róla, tájékozódhat a részletekről a következő link.