[論文レビュー] HardScope: Thwarting DOP with Hardware-assisted Run-time Scope Enforcement
HardScopeは、C や C++ のようなメモリ安全でない言語におけるデータ指向プログラミング(DOP)攻撃を防ぐために、実行時スコープ強制(RSE)をハードウェア支援で実現する。6つの新しいRISC-V命令を用いて実行時にコンパイル時変数可視性ルールを動的に強制することで、すべての既知のDOP攻撃を3.2%のパフォーマンスオーバーヘッドで緩和する。
Widespread use of memory unsafe programming languages (e.g., C and C++) leaves many systems vulnerable to memory corruption attacks. A variety of defenses have been proposed to mitigate attacks that exploit memory errors to hijack the control flow of the code at run-time, e.g., (fine-grained) randomization or Control Flow Integrity. However, recent work on data-oriented programming (DOP) demonstrated highly expressive (Turing-complete) attacks, even in the presence of these state-of-the-art defenses. Although multiple real-world DOP attacks have been demonstrated, no efficient defenses are yet available. We propose run-time scope enforcement (RSE), a novel approach designed to efficiently mitigate all currently known DOP attacks by enforcing compile-time memory safety constraints (e.g., variable visibility rules) at run-time. We present HardScope, a proof-of-concept implementation of hardware-assisted RSE for the new RISC-V open instruction set architecture. We discuss our systematic empirical evaluation of HardScope which demonstrates that it can mitigate all currently known DOP attacks, and has a real-world performance overhead of 3.2% in embedded benchmarks.
研究の動機と目的
- 従来の制御フロー防御を回避するデータの改ざんによって任意の計算を達成する、増大するデータ指向プログラミング(DOP)攻撃の脅威に対処する。
- メモリアクセスの完全なメディエーションを欠く、または高いパフォーマンスおよびメモリオーバーヘッドを伴う既存の防御の限界を克服する。
- 全プログラム解析やアプリケーションレベルの再設計を必要とせず、実行時に効率的で細粒度のメモリ隔離を実現する。
- 実行時スコープ強制(RSE)が、動的に名前空間スコープルールを強制することで、通常のプログラムにおいてDOP攻撃を効果的に防げるかどうかを示す。
提案手法
- 実行時のメモリアクセスポリシーを強制するために、6つの新しいRISC-V命令を用いたハードウェア支援によるRSEメカニズムを導入する。
- GCCプラグインを介してCプログラムをインストルメントし、HardScope命令を挿入することで、メモリアクセスのためのスコープルールを動的に作成・管理する。
- アクティブなスコープルールをスタックとして保持し、現在の実行コンテキストに適用可能なすべてのルールを最上位に保ち、効率的なチェックを可能にする。
- オンチップキャッシュを用いてアクティブなルールを保持することで、メモリ操作中の暗黙的でゼロオーバーヘッドのアクセスチェックを実現する。
- コンテキスト固有のメモリ隔離をサポートするようにシステムを設計し、同じ関数の異なる呼び出しにおいて異なるアクセスポリシーを可能にする。
- ハードウェア支援によりメタデータのストレージを最小限に抑え、ソフトウェアオンリーや静的アプローチと比較して実行時強制コストを低減する。
実験結果
リサーチクエスチョン
- RQ1実行時スコープ強制(RSE)は、動的に名前空間スコープルールを強制することで、すべての既知のDOP攻撃を効果的に防げるか?
- RQ2実行時スコープ強制(RSE)を実世界の組み込みワークロードに適用した際のパフォーランスオーバーヘッドはどの程度か?
- RQ3RSEは、オーバーヘッド、スケーラビリティ、および動的かつコンテキスト固有のアクセスポリシーのサポートという観点で、既存の防御と比較してどうか?
- RQ4RSEは、最小限のハードウェア変更で実装可能であり、アプリケーションレベルの再設計を必要としないか?
- RQ5一般用途のRISC-Vコアに、受け入れ可能なパフォーマンスとメモリフットプリントでRSEを統合するのは現実的か?
主な発見
- HardScopeは、ハードウェア支援による命令セット拡張を用いて実行時に名前空間スコープルールを強制することで、現在知られているすべてのDOP攻撃を効果的に緩和した。
- 実験的評価により、組み込みベンチマーク上で実際のパフォーランスオーバーヘッドがわずか3.2%にとどまり、先行するソフトウェアベースの防御と比較して顕著に低いことが示された。
- HardScopeは、アクティブな実行コンテキストにのみ注目することで、実行時メタデータのストレージを削減し、スコープルールの効率的なオンチップキャッシュを可能にした。
- システムはコンテキスト固有のメモリ隔離をサポートしており、同じ関数の異なる呼び出しにおいて異なるアクセスポリシーを再コンパイルなしで実現できる。
- ハードウェア支援による強制により、明示的なチェックを必要とするソフトウェアベースの方式とは異なり、暗黙的で測定可能なオーバーヘッドのないアクセスチェックが可能になった。
- このアプローチは、変更のないCプログラムと互換性があり、全プログラム解析やアプリケーションレベルの再設計を必要としない。これはCHERI や SoftBound とは異なり、より柔軟である。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。