„Google“ LVI apsaugos programinė įranga parodė 14 kartų didesnį našumą

Zola tiltai iš Google pasiūlė LLVM kompiliatorių rinkiniui – pataisa su įdiegta SESES (Spekulatyvaus vykdymo šalutinio poveikio slopinimo) apsauga, kuri padeda blokuoti atakas prieš spekuliacinį vykdymo mechanizmą Intel procesoriuose, pvz. LVI. Apsaugos metodas yra įdiegtas kompiliatoriaus lygiu ir yra pagrįstas kompiliatoriaus pridėjimu generuodamas mašininį instrukcijų kodą ATVARA, kurie pakeičiami prieš kiekvieną nurodymą skaityti iš atminties arba rašyti į atmintį, taip pat prieš pirmą šakos komandą komandų grupėje, kuri baigia bloką.

LFENCE instrukcija laukia, kol bus įvykdyti visi ankstesni atminties nuskaitymai, ir neleidžia prevenciniam tolesnių komandų vykdymui po LFENCE prieš baigiant įvykdymą. Naudojant LFENCE smarkiai sumažėja našumas, todėl apsaugą siūloma naudoti kraštutiniais atvejais ypač kritiniam kodui. Be visiškos apsaugos, pleistras siūlo tris vėliavėles, kurios leidžia pasirinktinai išjungti tam tikrus apsaugos lygius, kad sumažintumėte neigiamą poveikį našumui.

Atliekant bandymus, naudojant SESES apsaugą „BoringSSL“ paketui, bibliotekos atliekamų operacijų skaičius per sekundę sumažėjo 14 kartų - su apsauga sudarytos bibliotekos versijos našumas pasirodė esąs tik 7.1 proc. vidurkis nuo neapsaugotos versijos rodiklių (diapazonas, priklausomai nuo testo, yra nuo 4% iki 23%).

Palyginimui, pasiūlė Anksčiau GNU Assembler atveju mechanizmas, kuris atlieka LFENCE pakeitimą po kiekvienos atminties įkėlimo operacijos ir prieš kai kurias šakų instrukcijas, rodė našumo sumažėjimą maždaug 5 kartus (22 % kodo be apsaugos). taip pat apsaugos metodas pasiūlė и įgyvendinta „Intel“ inžinierių, tačiau jo našumo testavimo rezultatai dar nepaskelbti. Iš pradžių tyrėjai, nustatę LVI ataką, numatė 2–19 kartų našumo sumažėjimą taikant visą apsaugą.

Šaltinis: opennet.ru

Добавить комментарий