A Google LVI védelmi szoftvere 14-szeres teljesítményt mutatott

Zola Bridges a Google-tól felajánlotta az LLVM fordítókészlethez egy SESES (Speculative Execution Side Effect Suppression) védelmet megvalósító javítás, amely segít blokkolni az Intel CPU-k spekulatív végrehajtási mechanizmusai elleni támadásokat, mint pl. LVI. A védelmi módszert fordítói szinten valósítják meg, és a fordító által a gépi kód generálásakor utasításokat ad hozzá. KERÍTÉS, amelyek minden memóriaolvasási vagy -írási utasítás elé, valamint a blokkot lezáró utasításcsoport első águtasítása elé kerülnek be.

Az LFENCE utasítás megvárja az összes korábbi memóriaolvasást a véglegesítéshez, és letiltja az LFENCE után következő utasítások elővételét, amíg a véglegesítés be nem fejeződik. Az LFENCE használata a teljesítmény jelentős csökkenéséhez vezet, ezért a különösen kritikus kódok esetében szélsőséges esetekben javasolt a védelem alkalmazása. A teljes védelem mellett a javítás három jelzőt kínál, amelyek lehetővé teszik bizonyos védelmi szintek szelektív letiltását a teljesítményre gyakorolt ​​negatív hatások csökkentése érdekében.

Az elvégzett tesztek során a SESES védelem használata a BoringSSL csomaghoz 14-szeresére csökkentette a könyvtár által másodpercenként végrehajtott műveletek számát - a könyvtár védett verziójának teljesítménye átlagosan csak 7.1%-a volt a könyvtárnak. védelem nélküli változat (a teszttől függően 4% és 23% között változik).

Összehasonlításképp, javasolt Korábban a GNU Assembler esetében az LFENCE helyettesítést végrehajtó mechanizmus minden memóriabetöltési művelet után és néhány elágazás előtt körülbelül ötszörös teljesítménycsökkenést mutatott (a kód 5%-a védelem nélkül). Védelmi módszer is javasolta и megvalósítani az Intel mérnökei, de a teljesítményteszt eredményeit még nem tették közzé. Kezdetben az LVI-támadást azonosító kutatók 2-19-szeres teljesítménycsökkenést jósoltak teljes védelem alkalmazásakor.

Forrás: opennet.ru

Hozzászólás