谷歌的 LVI 保護軟件表現出 14 倍的性能損失

來自 Google 的 Zola Bridges предложил 對於 LLVM 編譯器集,一個補丁實現了 SESES(推測執行副作用抑制)保護,這有助於阻止對 Intel CPU 中推測執行機制的攻擊,例如 低電壓指數. 保護方式在編譯器層面實現,基於編譯器在生成指令機器碼時添加 LFENCE,它們在每條從內存讀取或寫入內存的指令之前,以及結束該塊的指令組中的第一條分支指令之前被替換。

LFENCE 指令等待所有先前的內存讀取被提交,並防止在提交完成之前搶先執行 LFENCE 之後的後續指令。 使用LFENCE會導致性能顯著下降,因此建議在極端情況下對特別關鍵的代碼使用保護。 除了全面保護之外,該補丁還提供了三個標誌,允許您有選擇地禁用某些級別的保護,以減少對性能的負面影響。

在執行的測試中,對 BoringSSL 包使用 SESES 保護導致庫每秒執行的操作次數減少了 14 倍——使用保護編譯的庫版本的性能結果僅為 7.1%未受保護版本指標的平均值(取決於測試的範圍是 4% 到 23% )。

為了比較, 建議的 以前對於 GNU 彙編程序,在每次內存加載操作之後和某些分支指令之前執行 LFENCE 替換的機制顯示性能下降了大約 5 倍(22% 的代碼沒有保護)。 保護方法也 建議 и 實施的 由英特爾工程師開發,但其性能測試結果尚未公佈。 最初,發現 LVI 攻擊的研究人員預測,在應用全面保護時,性能會下降 2 到 19 倍。

來源: opennet.ru

添加評論