Skip to main content
QUICK REVIEW

[論文レビュー] DynSGX: A Privacy Preserving Toolset for Dynamically Loading Functions into Intel(R) SGX Enclaves

Rodolfo Silva, Pedro Barbosa|arXiv (Cornell University)|Oct 31, 2017
Security and Verification in Computing参考文献 12被引用数 4
ひとこと要約

DynSGX は、静的リンクとコード可視性の制限を克服するプライバシー保護型ツールキットであり、Intel SGX エンclaveへの動的ロードおよびアンロードを可能にする。これは、動的ロードされたコードをエンclaveのヒープに格納することで実現され、従来の SGX と比較して最小限のパフォーマンスオーバーヘッドでプライバシーを保持するが、再帰関数ではキャッシュ競合のため顕著な遅延が生じる。

ABSTRACT

Intel(R) Software Guard eXtensions (SGX) is a hardware-based technology for ensuring security of sensitive data from disclosure or modification that enables user-level applications to allocate protected areas of memory called enclaves. Such memory areas are cryptographically protected even from code running with higher privilege levels. This memory protection can be used to develop secure and dependable applications, but the technology has some limitations: ($i$) the code of an enclave is visible at load time, ($ii$) libraries used by the code must be statically linked, and ($iii$) the protected memory size is limited, demanding page swapping to be done when this limit is exceeded. We present DynSGX, a privacy preserving tool that enables users and developers to dynamically load and unload code to be executed inside SGX enclaves. Such a technology makes possible that developers use public cloud infrastructures to run applications based on sensitive code and data. Moreover, we present a series of experiments that assess how applications dynamically loaded by DynSGX perform in comparison to statically linked applications that disregard privacy of the enclave code at load time.

研究の動機と目的

  • Intel SGX の静的コードリンクおよびロード時のコード可視性に関する制限を解消すること。
  • 開発者がエンクラーブ作成後にも関数をロードおよびアンロードできるようにし、メモリ管理を改善すること。
  • 静的バイナリからの解析を防ぐことで、エンクラーブコードのプライバシーを保持すること。
  • セキュリティおよびプライバシーを維持したまま、動的ロードのパフォーマンスオーバーヘッドを評価すること。
  • 信頼できないクラウド環境に機密アプリケーションをデプロイする実用的ソリューションを提供すること。

提案手法

  • DynSGX は、エンクラーブヒープへのコードの動的ロードを可能にするために、Intel SGX PSW を変更する。
  • 独自のローダーを用いて、動的ロードされた関数をエンクラーブの保護されたメモリ領域にマップする。
  • 実行時における関数のロードおよびアンロードをサポートし、オンデマンドでのコード実行を可能にする。
  • Intel SGX のリモートアテステーションを活用して、コードの整合性および真正性を保証する。
  • ヒープベースのコード実行をサポートするように変更された Intel SGX SDK を使用する。
  • ハードウェアで強制される隔離を維持したまま、既存の SGX プログラミングモデルと統合する。

実験結果

リサーチクエスチョン

  • RQ1コードのプライバシーを損なわせることなく、SGX エンクラーブへの関数の動的ロードを実現できるか?
  • RQ2静的リンクされた関数と比較して、動的ロードされた関数のパフォーマンスオーバーヘッドはどの程度か?
  • RQ3再帰ワークロードにおけるメモリ管理およびキャッシュ競合は、DynSGX がどのように処理するか?
  • RQ4信頼できないクラウド環境において、安全かつオンデマンドでのコードデプロイをサポートできるか?
  • RQ5動的エンクラーブ関数ロードにおけるプライバシー、パフォーマンス、スケーラビリティのトレードオフは何か?

主な発見

  • DynSGX は、静的リンクと比較して最小限のパフォーマンスオーバーヘッドで、SGX エンクラーブへの関数の動的ロードおよびアンロードを成功裏に実現した。
  • 反復的アルゴリズムではパフォーマンスオーバーヘッドが中程度であり、純粋な SGX と比較して実行時間が 10-15% 延長された。
  • 再帰関数(例:recursive_fibonacci)は、コードがヒープに格納されている場合、命令キャッシュおよびデータキャッシュの競合により顕著なパフォーマンス劣化を示した。
  • 関数コードが実行時ロードされるため、エンクラーブバイナリの静的解析を防ぎ、コードのプライバシーを保持した。
  • リモートアテステーションは正常に機能し、ロードされたコードが真正かつ改ざんされていないことを保証した。
  • SGX2 は動的メモリ管理をサポートしているが、コードのプライバシーには対応していないため、プライバシーに配慮したワークロードにおいて DynSGX は補完的役割を果たす。

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

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

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

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