LVI — új támadási osztály a CPU spekulatív végrehajtási mechanizmusa ellen

Közétették az új támadási osztályról LVI (Load Value Injection, CVE-2020-0551) az Intel CPU spekulatív végrehajtási mechanizmusával szemben, amelyeket kulcsok és titkos adatok szivárogtatására lehet használni az Intel SGX enclave-okból és más folyamatokból.

Az új támadási osztály azokkal a mikroarchitektúrai struktúrákkal kapcsolatos, mint a MDS (Microarchitectural Data Sampling), Spectre és Meltdown. Új támadások esetén a meglévő Meltdown, Spectre, MDS és egyéb hasonló támadások elleni védelmi módszerek nem hatékonyak. Az LVI hatékony védelme érdekében hardveres változtatásokra van szükség az CPU-ban. A szoftveres védelem megvalósítása során, a fordító által a memória-ból való betöltés után hozzáadott LFENCE utasítással és a RET utasítás POP, LFENCE és JMP-ra való cserélésével, túl nagy a költség — a kutatók becslése szerint a teljes szoftveres védelem 2-19-szeres teljesítménycsökkenést eredményez.

Részben a probléma blokkolásának nehézsége azzal kompenzálható, hogy a támadás jelenleg inkább elméleti jellegű, mint gyakorlati (a támadás elméletileg lehetséges, de megvalósítása nagyon nehéz, és csak szintetikus tesztjeinkben reprodukálható).
Intel vállalat mérsékelt veszélyességi szintet (5.6 a 10-ből) tulajdonított a problémának, és kiadta firmware- és SDK-frissítést javasolt az SGX környezetben, amelyek megpróbálták blokkolni a támadás megkerülését. Az eddig javasolt támadási módszerek csak az Intel processzorokhoz alkalmazhatók, de nem zárható ki a LVI és más processzorokhoz való alkalmazás lehetősége, amelyeken alkalmazhatók a Meltdown osztályú támadások.

A problémát tavaly áprilisban az állandó-bölcsész kutató, Jo Van Bulck az Leuveni Egyetemen azonosította, aki a más egyetemek 9 kutatójának részvételével öt alapvető támadási módszert dolgozott ki, amelyek mindegyike engedélyezi a specifikusabb változatok. Februárban a Bitdefender cég kutatói szintén felfedezték a hálózaton a Facebook 267 millió felhasználójának neveit, telefonszámait és azonosítóit tartalmazó adatbázist. az LVI támadás egyik változatát, és ezt bejelentették az Intelnek. A támadási változatok különböznek különböző mikroarchitektúrai struktúrák használatában, mint például a tároló puffer (SB, Store Buffer), sor kitöltő puffer (LFB, Line Fill Buffer), FPU kontextusváltó puffer és L1D szintű gyorsítótár, amelyet korábban olyan támadásokban alkalmaztak, mint ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow és Meltdown.

LVI - egy új típusú támadás a CPU spekulatív végrehajtási mechanizmusára

Fő különbsége Az LVI és az MDS támadások között az a különbség, hogy az MDS manipulálja a mikroarchitekturális struktúrák tartalmának meghatározását, amelyek a spekulatív hiba (fault) vagy a load és store műveletek utáni gyorsítótárban maradnak, míg
az LVI támadások lehetővé teszik a támadó számára, hogy adatait behelyettesítse a mikroarchitekturális struktúrákba, hogy hatással legyen a célpont kódjának következő spekulatív végrehajtására. E manipulációk révén a támadó ki tudja nyerni a más folyamatokban található védett adatstruktúrák tartalmát, ha meghatározott kódot hajt végre a cél-CPU magján.

LVI - egy új típusú támadás a CPU spekulatív végrehajtási mechanizmusára

A a probléma kihasználása a célpont folyamat kódjában meg kell jelenjenek speciális kódsorozatok (gadgets), amelyekben a támadó által vezérelt érték kerül betöltésre, és ennek az értéknek a betöltése kiváltja a hibákat (fault, abort vagy assist), amelyek eldobják az eredményt és újra futtatják az utasítást. A hiba kezelésénél spekulatív ablak keletkezik, amely alatt a gadgetben feldolgozott adatok szivárognak. Különösen a processzor spekulatív módban kezdi el végrehajtani a kód egy részét (gadget), majd észleli, hogy a jóslat nem vált valóra, és visszagörgeti a műveleteket az eredeti állapotba, de a spekulatív végrehajtás során feldolgozott adatok a L1D gyorsítótárban és a mikroarchitekturális pufferben maradnak, és elérhetők a már ismert maradékadat- és mellékcsatorna-azonosító módszerekkel.

Az "assist" kivétel, ellentétben a "fault"-tal, a processzoron belül, szoftveres kezelők bevonása nélkül kerül feldolgozásra. Assist például akkor léphet fel, amikor frissíteni kell az A (Accessed) vagy D (Dirty) bitet a memóriacímek lapján. A fő nehézség más folyamatok elleni támadás végrehajtásában a támadó által kezdeményezett assist előidézése a célpont folyamat manipulálásával. Jelenleg nincsenek megbízható módok ennek végrehajtására, de a jövőben ezek felfedezése nem zárható ki. A támadás lehetőségét eddig csak az Intel SGX enclave-ok esetében igazolták, a többi forgatókönyv elméletinek vagy szintetikus körülmények között reprodukálhatónak tekinthető (előírja bizonyos gadgets kódba történő beillesztését).

LVI - egy új típusú támadás a CPU spekulatív végrehajtási mechanizmusára

LVI - egy új típusú támadás a CPU spekulatív végrehajtási mechanizmusára

Lehetséges támadási vektorok:

  • Adatlopás a kernel struktúráiból a felhasználói szintű folyamatokba. A Linux kernelben lévő Spectre 1 típusú támadások ellen védelmet nyújtó mechanizmus, valamint az SMAP (Supervisor Mode Access Prevention) mechanizmus jelentősen csökkenti az LVI támadások valószínűségét. További védelmi mechanizmusok bevezetésére lehet szükség a kernelbe, ha a jövőben egyszerűbb LVI támadási módszereket észlelnek.
  • Adatlopás különböző folyamatok között. A támadáshoz szükséges, hogy az alkalmazásban bizonyos kódfoszlányok legyenek, és meg kell határozni a célfolyamatban az exception keletkezésének módját.
  • Adatlopás a hosztkörnyezetből a vendég rendszerbe. A támadást túl bonyolultnak ítélik, mert különböző nehezen végrehajtható lépéseket és a rendszer aktivitásának előrejelzését igényli.
  • Adatlopás folyamatok között különböző vendég rendszerekben. A támadás iránya hasonló az adatok különböző folyamatok közötti lopásához, de további bonyolult manipulációkat igényel a vendég rendszerek közötti izoláció megkerülésére.

A kutatók közzétettek több prototípust a támadás elméletének bemutatására, de ezek még nem alkalmasak valós támadások végrehajtására. Az első példa lehetővé teszi, hogy a célszámítógépben spekulatív végrehajtásra irányítsuk a kódot, hasonlóan a visszafordított programozáshoz (ROP, Visszafordított Programozás). Ebben a példában a cél egy speciálisan előkészített folyamat, amely tartalmazza a szükséges gadget-eket (valós harmadik fél folyamatok elleni támadás nehézkes). A második példa lehetővé teszi, hogy belépjünk az AES titkosítás számításába az Intel SGX enclave-ban, és adatokat szivárogtassunk el a spekulatív utasításvégrehajtás során a használt titkosítási kulcs értékének helyreállításához.


Videó lejátszása

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster