Skip to main content
QUICK REVIEW

[論文レビュー] Towards a Fully Abstract Compiler Using Micro-Policies: Secure Compilation for Mutually Distrustful Components

Yannis Juglaret, Cătălin Hriţcu|arXiv (Cornell University)|Oct 2, 2015
Security and Verification in Computing参考文献 1被引用数 10
ひとこと要約

本論文は、相互に信頼できないコンポonentを対象とした、マイクロポリシー(タグベースのハードウェア強制セキュリティモニタ)を用いた安全で完全に抽象化されたコンパイラを提示する。このモニタは、クラス隔離、メソッド呼び出しのルール、型安全性といった高レベルな抽象化を、任意の低レベル攻撃者に対して保護する。本アプローチは、検証済みでハードウェア最適化された監視フレームワークを用いることで、効率的かつ透明に強力なセキュリティ保証を達成する。

ABSTRACT

Secure compilation prevents all low-level attacks on compiled code and allows for sound reasoning about security in the source language. In this work we propose a new attacker model for secure compilation that extends the well-known notion of full abstraction to ensure protection for mutually distrustful components. We devise a compiler chain (compiler, linker, and loader) and a novel security monitor that together defend against this strong attacker model. The monitor is implemented using a recently proposed, generic tag-based protection framework called micro-policies, which comes with hardware support for efficient caching and with a formal verification methodology. Our monitor protects the abstractions of a simple object-oriented language---class isolation, the method call discipline, and type safety---against arbitrary low-level attackers.

研究の動機と目的

  • 相互に信頼できないコンポonentにおいて、低レベル攻撃者が高レベル抽象化を乗っ取る可能性がある状況下で、完全抽象化の限界を克服すること。
  • 任意の低レベル攻撃に対して、すべてのセキュリティ抽象化が保持されるように、コンパイラチェーン(コンパイラ、リンカ、ローダ)を設計すること。
  • クラス隔離、メソッド呼び出しのルール、型安全性を透明に強制する、ハードウェアアクセcelレートで形式的に検証されたセキュリティモニタ(マイクロポリシー)を統合すること。
  • 最小限のパフォーマンスオーバーヘッドで、効率的かつ透明に、安全なコンパイルを実現するために、タグベース保護フレームワークを活用すること。

提案手法

  • コンパイラは、高レベルのオブジェクト指向言語を中間のスタックマシンを経由して、マイクロポリシー監視機能を拡張したターゲットのシンボリックマイクロポリシーマシンに変換する。
  • マイクロポリシーは、命令実行中にハードウェアモニタが伝搬するワードサイズのメタデータタグを介してセキュリティを強制し、細粒度アクセス制御を可能にする。
  • クラス隔離は、各オブジェクトを個別のメモリセグメントに隔離し、タグによるアクセス制御で実現される。
  • メソッド呼び出しのルールは、メソッドエントリポイント、線形リターン能力、およびレジスタクリーニングを用いて強制され、不正な制御フローフォールバックを防ぐ。
  • 型安全性は、メソッド引数および戻り値に対するタグチェックを動的に実行することで、実行時における型の一貫性を保証する。
  • システムは、プログラム実行をモデル化し、監視下での正しい状態遷移を保証するために継続基盤の意味論を用いる。

実験結果

リサーチクエスチョン

  • RQ1相互に信頼できないコンポonentを想定したモデルにおいて、完全抽象化を、任意の低レベル攻撃者からの保護を考慮して拡張できるか?
  • RQ2強力な低レベル攻撃者を想定した状況下で、安全なコンパイラがクラス隔離、メソッド呼び出しのルール、型安全性をどのように強制できるか?
  • RQ3タグベースハードウェアモニタ(マイクロポリシー)を用いることで、コンパイル済みシステムにおいてこれらの抽象化を効率的かつ透明に強制できるか?
  • RQ4安全なコンパilationパイプラインにマイクロポリシーを適用した場合のパフォーマンスと透明性のトレードオフは何か?
  • RQ5高レベル抽象化を保持しつつ、効率的で監視済みのターゲットコードを生成できるように、コンパイラチェーンをどのように構築できるか?

主な発見

  • 提案されたコンパイラチェーンは、コンポonent間の相互不信を考慮した新しい攻撃者モデル下で完全抽象化を達成し、低レベル攻撃者が高レベル抽象化を乗っ取ることを防ぐ。
  • マイクロポリシーモニタは、オブジェクトのコンパートメント化とタグベースチェックによるクロスコンパートメントアクセス制限により、クラス隔離を成功裏に強制した。
  • エントリポイントと線形リターン能力を用いることで、攻撃者がランタイム環境を制御しても制御フローの乗っ取りが防がれる。
  • 実行時におけるタグ伝搬を用いた動的チェックにより、型安全性が確保され、正しい型の値のみがメソッドに渡される。
  • システムは透明性を示し、悪意のない低レベル環境が変更なしにコンパイル済みコードと正しく相互作用できる。
  • ハードウェアアクセcelレートのタグベース監視により、ソフトウェアオンリーバイナリリライトやランダマイゼーション技術にありがちなオーバーヘッドを回避し、高いパフォーマンスを実現した。

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

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

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

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