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