Néhány napja itt a blogban beszéltünk az LVI-ről, amely besorolású egy új támadássorozat amelyek csak az Intel CPU-kat érintik, és jellemzi, hogy olyan támadássorozatokról van szó, amelyek ugyanazon mikroarchitekturális struktúrákkal végzett manipulációkon alapulnak, mint az MDS, a Spectre és az Meltdown támadásoknál.
A fő különbség Megtámadom őkets Az LVI és az MDS az, hogy az MDS manipulálja a tartalom meghatározását mikroarchitekturális struktúrák, amelyek spekulatív hibakezelés vagy betöltési és tárolási műveletek után a gyorsítótárban maradnak, míg A támadások Az LVI lehetővé teszi a támadó helyettesítését mikroarchitekturális struktúrákban befolyásolni az áldozat kódjának későbbi spekulatív végrehajtását.
Bár Az Intel megemlíti, hogy megoldáson dolgozik Ehhez megemlítik, hogy ennek a kudarcnak nagy nehézségei vannak a folyamat sikeres lebonyolításában, ezért úgy vélik, hogy több követelménynek kell megfelelni ahhoz, hogy sikeresek legyünk benne, és ezt a kudarc rendkívül nehézségekkel katalogizálta .
Továbbá, Zola áthidal (Google fejlesztő) dolgozott a kérdésen, és nemrégiben ajánlott egy javítást az LLVM fordítóhoz SESES (spekulatív végrehajtási mellékhatások elnyomása) védelemmel, amely segít blokkolni olyan spekulatív végrehajtó motorok elleni támadásokat, amelyek befolyásolják az Intel CPU-kat, például az LVI-t.
A javasolt védelmi módszer fordítói szinten valósul meg, és az LFENCE utasítások hozzáadásán alapul a fordító által a gépi kód előállításakor, amelyet minden egyes olvasási vagy írási utasítás elé beillesztenek a memóriába, valamint a blokkban befejeződő utasításcsoport első elágazási utasítása előtt.
A mérséklés egy fordítói lépésből áll, amely előtte beszúr egy LFENCE-t
minden memória olvasási utasítás, memória írási utasítás és az első
fiókkivonat a terminátorok csoportjáról az a végén
alapblokk.
A LFENCE utasítás azt várja, hogy minden korábbi olvasatot megerősítsen a memóriából és nem teszi lehetővé az LFENCE-t követő utasítások proaktív végrehajtását mielőtt a megerősítés befejeződött.
A LFENCE használata a teljesítmény jelentős csökkenéséhez vezet, És így, javasolt a védelem használata szélsőséges esetekben különösen kritikus kódokhoz. A teljes védelem mellett a javítás három zászlót kínál, amelyek szelektíven letiltják a védelem bizonyos szintjeit a teljesítményre gyakorolt negatív hatások csökkentése érdekében.
Tesztjeink során a SESES védelem használata a BoringSSL csomaghoz a könyvtár másodpercenként 14-szeres csökkenéséhez vezetett: a könyvtár védelemmel összeállított verziójának teljesítménye átlagosan csak a nem védett változat 7.1% -os teljesítménye (a teszttől függően 4% -ról 23% -ra hosszabbítva)
Az enyhítés teljes verzióján kívül ez a javítás három zászlót valósít meg az enyhítés egy részének letiltására.
Ezek a zászlók alapértelmezés szerint le vannak tiltva. A zászlóknak nem célja, hogy az enyhítés biztonságos változatát eredményezzék. A mutatókat azok a felhasználók használják, akik kísérletezni szeretnének a teljesítményük javítására
enyhítése.
Összehasonlításképp, a GNU Assembler számára korábban javasolt mechanizmus, amely LFENCE helyettesítést hajt végre a memóriából történő minden betöltési művelet után és néhány elágazási utasítás előtt, körülbelül ötször csökkent teljesítményt (A kód 22% -a védelem nélkül).
A védelmi módszer is az Intel mérnökei javasolták és valósították meg, de a teljesítménytesztek eredményeit még nem tették közzé. Kezdetben az LVI-támadást észlelő kutatók a teljes védelem alkalmazásakor 2-19-szeres teljesítménycsökkenést jósoltak.
Végül, ha többet szeretne tudni róla, ellenőrizheti a részleteket A következő linken.