Az LVI a CPU spekulatív végrehajtási mechanizmusa elleni támadások új osztálya

Közzétett információkat a támadások új osztályáról LVI (Load Value Injection, CVE-2020 0551-).

A támadások egy új osztálya a támadásoknál használt mikroarchitektúra-struktúrák manipulálásán alapul MDS (Mikroarchitektúrális adatmintavétel), Spectre és Meltdown. Ugyanakkor az új támadásokat nem blokkolják a Meltdown, Spectre, MDS és más hasonló támadások elleni védelem meglévő módszerei. A hatékony LVI-védelem hardveres változtatásokat igényel a CPU-n. A védelem programozott megszervezésekor, ha a fordító minden betöltési művelet után hozzáadja az LFENCE utasítást, és a RET utasítást POP-ra, LFENCE-re és JMP-re cseréli, túl sok többletterhelés kerül rögzítésre - a kutatók szerint a teljes szoftveres védelem a terhelés csökkenéséhez vezet. teljesítménye 2-19-szeres.

A probléma blokkolásának nehézségét részben ellensúlyozza az a tény, hogy a támadás jelenleg inkább elméleti, mint gyakorlati jellegű (a támadás elméletileg lehetséges, de nagyon nehezen kivitelezhető, és csak szintetikus tesztekben reprodukálható).
Intel kisajátította a probléma közepesen veszélyes (5.6-ből 10) és megjelent frissítette a firmware-t és az SDK-t az SGX környezethez, amelyben egy kerülő megoldással próbálta blokkolni a támadást. A javasolt támadási módszerek jelenleg csak Intel processzorokra alkalmazhatók, de nem zárható ki annak lehetősége, hogy az LVI-t más processzorokhoz is adaptálják, amelyekre Meltdown-osztályú támadások alkalmazhatók.

A problémát tavaly áprilisban Jo Van Bulck, a Leuveni Egyetem kutatója azonosította, majd 9 más egyetemi kutató részvételével öt alapvető támadási módszert dolgoztak ki, amelyek mindegyike lehetővé teszi a specifikusabb támadások létezését. opciók. Ettől függetlenül ez év februárjában a Bitdefender kutatói is felfedezték az egyik LVI támadásváltozatot, és jelentette az Intelnek. A támadási változatok különbözõ mikroarchitektúrás struktúrák használatával különböztethetők meg, mint például a tárolási puffer (SB, Store Buffer), a kitöltőpuffer (LFB, Line Fill Buffer), az FPU kontextuskapcsoló puffere és az első szintű gyorsítótár (L1D), amelyeket korábban használtak. olyan támadásokban, mint pl ZombieLoad, RIDL, Fallout, LazyFP, Sejtet и Meltdown.

Az LVI a CPU spekulatív végrehajtási mechanizmusa elleni támadások új osztálya

A fő kitüntetéseket Az MDS-támadások elleni LVI az, hogy az MDS manipulálja a gyorsítótárban maradó mikroarchitektúra-struktúrák tartalmának meghatározását spekulatív hibakezelés vagy betöltési és tárolási műveletek után.
Az LVI támadások lehetővé teszik a támadó adatainak mikroarchitektúrákba történő beillesztését, hogy befolyásolják az áldozat kódjának későbbi spekulatív végrehajtását. Ezekkel a manipulációkkal a támadó más folyamatokban kinyerheti a privát adatstruktúrák tartalmát, amikor bizonyos kódot hajt végre a cél CPU magon.

Az LVI a CPU spekulatív végrehajtási mechanizmusa elleni támadások új osztálya

mert kizsákmányolási probléma az áldozati eljárás kódjában találkoznia kellene speciális kódszekvenciák (gadgetek), amelyekben a támadó által vezérelt érték töltődik be, és ennek az értéknek a betöltése kivételek (hiba, megszakítás vagy asszisztens) dobását eredményezi, ami eldobja az eredményt és újra végrehajtja az utasítást. Kivétel feldolgozásakor egy spekulatív ablak jelenik meg, amely során a modulban feldolgozott adatok kiszivárognak. Konkrétan a processzor spekulatív módban kezd végrehajtani egy kódrészletet (gadget), majd megállapítja, hogy az előrejelzés nem volt indokolt, és visszaállítja a műveleteket az eredeti állapotukba, de a spekulatív végrehajtás során feldolgozott adatok az L1D gyorsítótárban helyeződnek el. és mikroarchitektúra pufferek, és elérhető azokból a maradék adatok meghatározásának ismert módszereivel harmadik fél csatornáin keresztül.

A "segítő" kivételt, a "hiba" kivételtől eltérően, a processzor belül kezeli, szoftverkezelők meghívása nélkül. Segítség léphet fel például akkor, ha a memórialaptáblázat A (Hozzáfért) vagy D (Dirty) bitjét frissíteni kell. Más folyamatok elleni támadások végrehajtásának fő nehézsége az, hogy az áldozati folyamat manipulálásával hogyan indítsuk el a segítségnyújtást. Jelenleg nincsenek megbízható módszerek erre, de elképzelhető, hogy a jövőben találni fognak. A támadás végrehajtásának lehetőségét eddig csak az Intel SGX enklávéi esetében erősítették meg, más forgatókönyvek elméletiek vagy szintetikus körülmények között reprodukálhatók (bizonyos kütyük hozzáadása szükséges a kódhoz)

Az LVI a CPU spekulatív végrehajtási mechanizmusa elleni támadások új osztálya

Az LVI a CPU spekulatív végrehajtási mechanizmusa elleni támadások új osztálya

Lehetséges támadási vektorok:

  • Adatszivárgás a kernelstruktúrákból a felhasználói szintű folyamatokba. A Linux kernel védelme a Spectre 1 támadásokkal szemben, valamint a SMAP (Supervisor Mode Access Prevention) védelmi mechanizmus jelentősen csökkenti az LVI támadások valószínűségét. A kernel további védelmére lehet szükség, ha a jövőben egyszerűbb LVI támadási módszereket azonosítanak.
  • Adatszivárgás a különböző folyamatok között. A támadás megköveteli bizonyos kódrészletek jelenlétét az alkalmazásban, és meg kell határozni egy módszert, amellyel kivételt lehet dobni a célfolyamatban.
  • Adatszivárgás a fogadó környezetből a vendégrendszerbe. A támadást túl összetettnek minősítették, és különféle nehezen megvalósítható lépéseket és a rendszer tevékenységének előrejelzését követeli meg.
  • Adatszivárgás a különböző vendégrendszerek folyamatai között. A támadási vektor közel áll a különböző folyamatok közötti adatszivárgás megszervezéséhez, de emellett összetett manipulációkat igényel a vendégrendszerek közötti elkülönítés megkerüléséhez.

Kutatók publikálták néhány prototípusok a támadás végrehajtásának elveinek bemutatásával, de valódi támadások végrehajtására még nem alkalmasak. Az első példa lehetővé teszi a spekulatív kódvégrehajtás átirányítását az áldozati folyamatban, hasonlóan a visszatérés-orientált programozáshoz (R.O.P.,Vissza-orientált programozás). Ebben a példában az áldozat egy speciálisan előkészített folyamat, amely tartalmazza a szükséges modulokat (a támadást valódi harmadik féltől származó folyamatokra nehéz alkalmazni). A második példa lehetővé teszi számunkra, hogy az AES titkosítás során az Intel SGX enklávéban beavatkozzunk a számításokba, és adatszivárgást szervezzünk az utasítások spekulatív végrehajtása során, hogy visszaállítsuk a titkosításhoz használt kulcs értékét.


Forrás: opennet.ru

Hozzászólás