Skip to main content
QUICK REVIEW

[論文レビュー] You Shall Not Bypass: Employing data dependencies to prevent Bounds Check Bypass

Oleksii Oleksenko, Bohdan Trach|arXiv (Cornell University)|May 22, 2018
Security and Verification in Computing参考文献 4被引用数 26
ひとこと要約

本論文では、スペキュラティブ実行を利用したバウンズチェックバイパス(BCB)攻撃を防ぐために、人工的なデータ依存性を用いる手法を提案する。これは、完全なシリアル化を伴わずに脆弱なメモリロードを遅延させることで、攻撃を防ぐ。LFENCEベースの対策が440%のオーバーヘッドを引き起こすのに対し、著者らのデータ依存性技術(例:LAHF、CMOV、引数依存性)は、Phoenixベンチマーク全体で平均60%のオーバーヘッドにまで低減し、CPUの並列性を維持しながらスペキュラティブな漏洩を遮断する。

ABSTRACT

A recent discovery of a new class of microarchitectural attacks called Spectre picked up the attention of the security community as these attacks can circumvent many traditional mechanisms of defense. One of the attacks---Bounds Check Bypass---can neither be efficiently solved on system nor architectural levels and requires changes in the application itself. So far, the proposed mitigations involved serialization, which reduces the usage of CPU resources and causes high overheads. In this report, we explore methods of delaying the vulnerable instructions without complete serialization. We discuss several ways of achieving it and compare them with Speculative Load Hardening, an existing solution based on a similar idea. The solutions of this type cause 60% overhead across Phoenix benchmark suite, which compares favorably to the full serialization causing 440% slowdown.

研究の動機と目的

  • 伝統的なソフトウェアおよびハードウェア保護が無効化される可能性がある、Spectre風のマイクロアーキテクチャ的攻撃の主要な種類であるバウンズチェックバイパス(BCB)攻撃の持続的リスクに対処する。
  • BCBの緩和に際し、完全なシリアル化(例:LFENCE)が引き起こす深刻なパフォーマンスペナルティ(最大440%の実行時間の遅延)を克服する。
  • 命令レベルの並列性を保ちながら、スペキュラティブなメモリロードを遅延させる細粒度の緩和戦略を設計・評価する。
  • Speculative Load Hardening(SLH)などの既存のソリューションと比較して、LAHF、CMOV、引数依存性といった複数のデータ依存性技術の有効性とパフォーマンスを評価する。

提案手法

  • 条件分岐とその後続のメモリロードの間に人工的なデータ依存性を導入し、機密ロードのスペキュラティブ実行を防ぐ。
  • EFLAGSレジスタへの依存性を確立するためにLAHF命令を用い、比較命令の完了後にのみメモリロードが実行されるように保証する。
  • CMOVGEを用いて、比較結果に基づいてマスク値を条件付きで設定し、ロードが結果に依存するようにし、スペキュラティブな値をゼロにする。
  • 入力引数をレジスタ(例:R15)とXOR演算することで依存性を確立し、比較の完了後にのみロードが実行されるように遅延させる。
  • LLVMコンパイラを用いて、HaswellアーキテクチャのIntelプロセッサ上でPhoenixベンチマークスイートを用いて、これらの技術を実装・評価する。
  • 複数のベンチマークにおけるIPC測定値と実行時間のオーバーヘッドを比較することで、スケーラビリティと効率性を評価する。

実験結果

リサーチクエスチョン

  • RQ1完全なシリアル化の高コストを伴わずに、データ依存性に基づく緩和がバウンズチェックバイパス攻撃を防げるか?
  • RQ2LAHF、CMOV、引数依存性といった異なるデータ依存性技術は、パフォーマンスオーバーヘッドとセキュリティ保証の観点でどのように比較できるか?
  • RQ3LFENCEベースのシリアル化と比較して、これらの技術は命令レベルの並列性をどの程度維持できるか?
  • RQ4実世界のワークロードにおいて、スペキュラティブロードハードニング(SLH)は、従来のLFENCE挿入と比較してより優れたパフォーマンスを発揮するか?
  • RQ5タイトループやメモリ集約的なカーネルを有するアプリケーションにおいて、これらの緩和策の影響はどの程度か?

主な発見

  • LFENCEベースの緩和は、Phoenixベンチマーク全体で平均440%のパフォーマンスオーバーヘッドを引き起こし、CPU利用率が著しく低下し、IPCは約2.3から約0.5にまで低下する。
  • 提案されたデータ依存性技術により、平均オーバーヘッドは60%にまで低減され、完全なシリアル化よりも顕著に優れたパフォーマンスを発揮しながらも、強固なセキュリティ保証を維持する。
  • LAHFベースの手法は最小限のオーバーヘッドをもたらすが、レジスタ管理に注意が必要であり、すべてのコンパイラでネイティブにサポートされているわけではない。
  • スペキュラティブロードハードニング(SLH)は、LAHF手法と同等のパフォーマンスを達成するが、マスクに単一のAND命令を用いることで命令数を削減し、効率性が向上する。
  • 引数依存性アプローチは最も単純であるが、ハードウェアの再順序化が発生する可能性があるため、比較が遅延した場合でもスペキュレーションが許容される可能性があるため、厳密な順序保証はない。
  • kmeans や string_match のようなベンチマークでは、タイトループのため、スペキュラティブな並列性が最も重要であり、同時に緩和策によって最も大きく損なわれる。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。