Google の LVI 保護ソフトウェアは 14 倍のパフォーマンス ヒットを示しました

Google のゾーラ ブリッジス предложил LLVM コンパイラ セット用の SESES (投機的実行副作用抑制) 保護を実装したパッチ。これは、Intel CPU の投機的実行メカニズムに対する攻撃をブロックするのに役立ちます。 LVI。 保護方法はコンパイラ レベルで実装され、命令のマシン コードを生成する際のコンパイラによる追加に基づいています。 ラフェンスこれらは、メモリからの読み取りまたはメモリへの書き込みを行う各命令の前、およびブロックを終了する命令グループ内の最初の分岐命令の前でも置換されます。

LFENCE 命令は、以前のすべてのメモリ読み取りがコミットされるのを待ち、コミットが完了する前に LFENCE の後続の命令がプリエンプティブに実行されるのを防ぎます。 LFENCE の使用はパフォーマンスの大幅な低下につながるため、特に重要なコードに対して極端な場合に保護を使用することが提案されています。 このパッチには、完全な保護に加えて、パフォーマンスへの悪影響を軽減するために特定のレベルの保護を選択的に無効にすることができる XNUMX つのフラグが用意されています。

実行されたテストでは、BoringSSL パッケージに SESES 保護を使用すると、ライブラリによって 14 秒あたりに実行される操作数が 7.1 分の 4 に減少しました。保護付きでコンパイルされたライブラリ バージョンのパフォーマンスは、保護されていないバージョンの指標からの平均値 (テストに応じた範囲は 23% ~ XNUMX%)。

比較のために、 提案された 以前の GNU アセンブラでは、各メモリ ロード操作の後、一部の分岐命令の前に LFENCE 置換を実行するメカニズムにより、パフォーマンスが約 5 倍低下しました (保護なしのコードの 22%)。 保護方法も 提案された и 実装された Intel のエンジニアによるものですが、そのパフォーマンス テストの結果はまだ公開されていません。 当初、LVI 攻撃を特定した研究者らは、完全な保護を適用するとパフォーマンスが 2 ~ 19 倍低下すると予測していました。

出所: オープンネット.ru

コメントを追加します