Запропонований Google програмний захист від атаки LVI показав зниження продуктивності в 14 разів.

Zola Bridges із компанії Google запропонував для набору компіляторів LLVM патч з реалізацією захисту SESES (Speculative Execution Side Effect Suppression), що допомагає блокувати атаки на механізм спекулятивного виконання CPU Intel, подібні LVI. Метод захисту реалізований на рівні компілятора та заснований на додаванні компілятором при генерації машинного коду інструкцій LFENCE, які підставляються перед кожною інструкцією читання з пам'яті або запису в пам'ять, а також перед першою інструкцією розгалуження групи інструкцій, що завершує блок.

Інструкція LFENCE очікує фіксації всіх попередніх операцій читання з пам'яті та забороняє попереджувальне виконання наступних після LFENCE інструкцій до завершення фіксації. Застосування LFENCE призводить до суттєвого зниження продуктивності, тому захист пропонується застосовувати у крайніх випадках для особливо критичного коду. Крім повного захисту, патч пропонує три прапори, що дозволяють вибірково відключити певні рівні захисту для зниження негативного впливу на продуктивність.

У проведених тестах застосування захисту SESES для пакету BoringSSL призвело до зниження кількості операцій, що виконуються бібліотекою, в секунду в 14 разів — продуктивність зібраного із захистом варіанта бібліотеки в середньому виявилася всього 7.1% від показників незахищеного варіанту (розкид в залежності від тесту від 4% до 23%). ).

Для порівняння, запропонований раніше для GNU Assembler механізм, що здійснює підстановку LFENCE після кожної операції завантаження з пам'яті та перед деякими інструкціями розгалуження, показав зниження продуктивності приблизно в 5 разів (22% коду без захисту). Метод захисту також запропонований и реалізований інженерами Intel, але результати тестування продуктивності йому поки не опубліковані. Спочатку дослідники, які виявили атаку LVI, прогнозували зниження продуктивності при застосуванні повного захисту у 2-19 разів.

Джерело: opennet.ru

Додати коментар або відгук