Az Intel processzorainak sebezhetősége, amely harmadik felek csatornáin keresztüli adatszivárgáshoz vezet

Kínai és amerikai egyetemeken dolgozó kutatók egy csoportja új sérülékenységet azonosított az Intel processzoraiban, amely a spekulatív műveletek eredményéről szóló információk kiszivárgásához vezet harmadik felek csatornáin keresztül, amelyek például egy rejtett kommunikációs csatorna megszervezésére használhatók. folyamatok között, vagy szivárgások észlelése Meltdown támadások során.

A sérülékenység lényege, hogy az EFLAGS processzor regiszterében az utasítások spekulatív végrehajtása következtében bekövetkezett változás befolyásolja a JCC utasítások későbbi végrehajtási idejét (meghatározott feltételek teljesülése esetén ugrás). A spekulatív műveletek nem fejeződnek be, és az eredmény eldobásra kerül, de az elvetett EFLAGS változás a JCC utasítások végrehajtási idejének elemzésével meghatározható. A spekulatívan végrehajtott ugrás előtti összehasonlítási műveletek, ha az összehasonlítás sikeres, kis késést eredményeznek, amely mérhető és a tartalom egyeztetésére szolgáló funkcióként használható.

Az Intel processzorainak sebezhetősége, amely harmadik felek csatornáin keresztüli adatszivárgáshoz vezet

Ellentétben más hasonló, harmadik felek csatornáin keresztül végrehajtott támadásokkal, az új módszer nem elemzi a gyorsítótárazott és nem gyorsítótárazott adatok elérési idejének változását, és nem igényli az EFLAGS regiszter visszaállítását a kezdeti állapotba, ami megnehezíti a észleli és blokkolja a támadást. A kutatók demonstrációként a Meltdown támadás egy változatát valósították meg, abban egy új módszerrel szereztek információkat egy spekulatív művelet eredményéről. Az információszivárgás megszervezésére szolgáló módszer működését a Meltdown támadás során sikeresen demonstrálták Intel Core i7-6700 és i7-7700 CPU-kkal rendelkező rendszereken Ubuntu 22.04 és Linux 5.15 kernellel. Intel i9-10980XE CPU-val rendelkező rendszeren a támadás csak részben volt sikeres.

A Meltdown sérülékenység hátterében az áll, hogy az utasítások spekulatív végrehajtása során a processzor hozzáférhet egy privát adatterülethez, majd az eredményt eldobhatja, mivel a beállított jogosultságok megtiltják az ilyen hozzáférést a felhasználói folyamattól. A programban a spekulatívan végrehajtott blokkot a fő kódtól egy feltételes ugrással választják el, ami valós körülmények között mindig elindul, de abból kifolyólag, hogy a feltételes utasítás olyan számított értéket használ, amelyet a processzor nem ismer a megelőző kódolás során. végrehajtás, minden elágazási opció spekulatív módon végrehajtódik.

A Meltdown klasszikus verziójában, mivel ugyanazt a gyorsítótárat használják a spekulatívan végrehajtott műveletekhez, mint a normálisan végrehajtott utasításokhoz, a spekulatív végrehajtás során lehetőség van a gyorsítótárban olyan markereket beállítani, amelyek egy zárt memóriaterületen lévő egyes bitek tartalmát tükrözik, majd a normálisan végrehajtott kódban, hogy meghatározzák a jelentésüket a gyorsítótárazott és nem gyorsítótárazott adatok elérési idejének elemzésével. Az új változat az EFLAGS regiszter változását használja a szivárgás jelzőjeként. A Covert Channel demóban az egyik folyamat modulálta az elküldött adatokat az EFLAGS regiszter tartalmának megváltoztatása érdekében, egy másik folyamat pedig a JCC utasítás végrehajtási idejének változását elemezte, hogy újra létrehozza az első folyamat által küldött adatokat.

Forrás: opennet.ru

Hozzászólás