az új támadási osztályról (Load Value Injection, ) 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 (Microarchitectural Data Sampling), . Ú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 és 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 . Februárban a Bitdefender cég kutatói szintén felfedezték 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 , , , , és .
Fő 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.
A a célpont folyamat kódjában 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).
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 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 (, 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.

Forrás: opennet.ru
