Zola Bridges на Google за LLVM компилятори патч с реализация на SESES (Suppression на страничните ефекти от спекулативно изпълнение), помагаща да се блокират атаки върху процесора Intel, свързани с . Методът на защита е реализиран на ниво компилатор и се основава на добавяне на инструкции от компилатора при генериране на машинен код , които се поставят пред всяка инструкция за четене или запис от паметта, а също и пред първата инструкция за разклоняване в групата от инструкции, завършваща блока.
Инструкцията LFENCE очаква приключване на всички предходни операции за четене от паметта и забранява спекулативното изпълнение на следващите инструкции след LFENCE, докато не бъде приключено приключването. Използването на LFENCE води до значително намаляване на производителността, затова защитата се препоръчва да се прилага само в крайни случаи за особено критичен код. В допълнение на пълната защита, патчът предлага три флага, позволяващи селективно изключване на определени нива на защита за намаляване на негативното влияние върху производителността.
В проведените тестове, прилагането на защита SESES за пакета BoringSSL доведе до намаляване на броя на операциите в секунда, извършвани от библиотеката, с 14 пъти - производителността на защитената версия на библиотеката в средно е била само 7.1% от стойностите на незащитената версия (разброс в зависимост от теста от 4% до 23%).
За сравнение, по-рано за GNU Assembler, механизмът, който прилага LFENCE след всяка операция за зареждане от паметта и пред някои инструкции за разклоняване, показа намаление на производителността с около 5 пъти (22% от кода без защита). Методът на защита също и е разработен от инженерите на Intel, но резултатите от тестовете за производителност все още не са публикувани. Първоначално изследователите, открили атаката LVI, прогнозираха намаляване на производителността при прилагане на пълна защита в диапазона от 2 до 19 пъти.
Източник: opennet.ru
