Skip to main content
QUICK REVIEW

[論文レビュー] RV-CURE: A RISC-V Capability Architecture for Full Memory Safety

Yonghae Kim, Anurag Kar|arXiv (Cornell University)|Aug 5, 2023
Security and Verification in ComputingComputer Science被引用数 3
ひとこと要約

RV-CURE は、データポインタタギング(DPT)というコンパイラレベルの技術により、未使用のポインタビットにポインタタグを埋め込み、ハードウェアアクセラレートされた能力チェックを実装することで、完全なメモリセーフティを達成する RISC-V 機械語能力アーキテクチャです。BOOM RISC-V コアに軽量なハードウェア拡張を統合し、SPEC 2017 C/C++ ワークロードで平均 10.8% の遅延増加でフルシステムメモリセーフティを実現しています。

ABSTRACT

Despite decades of efforts to resolve, memory safety violations are still persistent and problematic in modern systems. Various defense mechanisms have been proposed, but their deployment in real systems remains challenging because of performance, security, or compatibility concerns. In this paper, we propose RV-CURE, a RISC-V capability architecture that implements full-system support for full memory safety. For capability enforcement, we first propose a compiler technique, data-pointer tagging (DPT), applicable to protecting all memory types. It inserts a pointer tag in a pointer address and associates that tag with the pointer's capability metadata. DPT enforces a capability check for every memory access by a tagged pointer and thereby prevents illegitimate memory accesses. Furthermore, we investigate and present lightweight hardware extensions for DPT based on the open-source RISC-V BOOM processor. We observe that a capability-execution pipeline can be implemented in parallel with the existing memory-execution pipeline without intrusive modifications. With our seamless hardware integration, we achieve low-cost capability checks transparently performed in hardware. Altogether, we prototype RV-CURE as a synthesized RTL processor and conduct full-system evaluations on FPGAs running Linux OS. Our evaluations show that RV-CURE achieves strong memory safety at a 10.8% slowdown across the SPEC 2017 C/C++ workloads.

研究の動機と目的

  • 現代のシステムにおける継続的なメモリセーフティ違反の課題に取り組み、それがセキュリティ脆弱性の主な原因のままであることを解消すること。
  • 高いパフォーマンスオーバーヘッド、低い互換性、不完全なセキュリティカバレッジといった、従来のソフトウェアおよびハードウェア防御の限界を克服すること。
  • ソースおよびバイナリ互換性を維持しながら、空間的および時間的メモリセーフティの両方を強制する実用的でフルシステムのメモリセーフティソリューションを設計すること。
  • コンパイラとハードウェアの共同設計により、既存のソフトウェアスタックに侵入的な変更を加えずに、効率的で低オーバーヘッドな能力強制を実現すること。

提案手法

  • すべてのメモリタイプ(スタック、ヒープ、グローバル)のポインタの未使用上位ビットに能力メタデータを格納する一般化されたポインタタギング技術、すなわちデータポインタタギング(DPT)を提唱する。
  • オブジェクトごとの能力情報(境界と権限)を含む、ソフトウェア管理の能力メタデータテーブル(CMT)を用意し、ポインタタグにリンクする。
  • メモリ実行パイプラインと並列に動作する原子的能⼒チェックを実行できるように、RISC-V BOOMコアに軽量なハードウェア拡張を統合する。
  • タグ付きポインタを含むすべてのメモリアクセスにおいて能力チェックを強制し、不正なアクセスはハードウェアトラップによって拒否する。
  • オブジェクトの解放時にCMTからメタデータを削除することで、時間的セーフティ(use-after-free)を実現し、ダングリングポインタアクセスが実行時に失敗することを保証する。
  • 既存の RISC-V 指令セットおよびパイプライン構造を活用することで、OS、コンパイラ、ランタイムに変更を加えることなく、シームレスな統合を可能にする。

実験結果

リサーチクエスチョン

  • RQ1ポインタサイズを拡大せずに、スタック、ヒープ、グローバルのすべてのメモリタイプでポインタタギングアプローチが完全なメモリセーフティを達成できるか?
  • RQ2プロセッサパイプラインに侵入的な変更を加えずに、最小限のパフォーマンスオーバーヘッドでハードウェアアクセラレートされた能力チェックを実装できるか?
  • RQ3既存のソフトウェアスタックとのソースおよびバイナリ互換性を維持しながら、完全なメモリセーフティを達成できるか?
  • RQ4ソフトウェアオンリーまたはハードウェアオンリーのソリューションと比較して、ハードウェア最適化・コンパイラ支援の能力システムのパフォーマンスはどの程度か?
  • RQ5提案されたメカニズムは、空間的(境界外アクセス)および時間的(free 後の使用)の両方のメモリセーフティ違反を効果的に防止できるか?

主な発見

  • RV-CURE は、データポインタタギングによるオブジェクトごとの能力チェックを強制することで、スタック、ヒープ、グローバルのすべてのメモリタイプで完全なメモリセーフティを達成しています。
  • DPT のためのハードウェア拡張は、RISC-V BOOM コアにシームレスに統合されており、コアの基本構造を変更せずにメモリパイプラインと並列に能力チェックを実行できるようになっています。
  • SPEC 2017 C/C++ ワークロード全体で平均 10.8% のパフォーマンス遅延増加に抑えられており、AddressSanitizer などのソフトウェアオンリーなソリューション(73% の遅延増加)と比較して顕著に低いです。
  • 命令セットやポインタサイズの変更を避けることで、ソースおよびバイナリ互換性を維持しています。代わりに、コンパイラが挿入するタグとソフトウェア管理の CMT に依存しています。
  • リvokeベースのメタデータスイーピングを用いず、オブジェクトの解放時に CMT からメタデータを削除することで、ダングリングポインタがアクセス時に無効になるように、時間的セーフティが強制されています。
  • CMT がスレッド間で共有され、キャッシュ一貫性メカニズム(例:TSO)がコア間でのメタデータ一貫性を処理するため、マルチスレッド環境に対しても互換性があります。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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