Skip to main content
QUICK REVIEW

[論文レビュー] SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution.

Guoxing Chen, Sanchuan Chen|arXiv (Cornell University)|Feb 25, 2018
Security and Verification in Computing参考文献 61被引用数 85
ひとこと要約

この論文は、CPUの予測実行の脆弱性を悪用してIntel SGXエンドループから秘密情報を漏洩させるSgxPectre攻撃を紹介する。外部プログラムによる分岐予測の操作を通じて、予測実行を誘発させることで制御フローを変更し、観察可能なキャッシュ状態の変化を引き起こす。これにより、エンドループのメモリやレジスタ内容が漏洩し、一般的なランタイム環境においてSGXの機密性保証が破られる。

ABSTRACT

This paper presents SgxPectre Attacks that exploit the recently disclosed CPU bugs to subvert the confidentiality of SGX enclaves. Particularly, we show that when branch prediction of the enclave code can be influenced by programs outside the enclave, the control flow of the enclave program can be temporarily altered to execute instructions that lead to observable cache-state changes. An adversary observing such changes can learn secrets inside the enclave memory or its internal registers, thus completely defeating the confidentiality guarantee offered by SGX. To demonstrate the practicality of our SgxPectre Attacks, we have systematically explored the possible attack vectors of branch target injection, approaches to win the race condition during enclave's speculative execution, and techniques to automatically search for code patterns required for launching the attacks. Our study suggests that any enclave program could be vulnerable to SgxPectre Attacks since the desired code patterns are available in most SGX runtimes (e.g., Intel SGX SDK, Rust-SGX, and Graphene-SGX).

研究の動機と目的

  • 予測実行の脆弱性がIntel SGXエンドループの機密性保証を覆すために利用可能かどうかを調査すること。
  • 外部プログラムがエンドループの分岐予測に影響を与え、予測実行を引き起こす実用的な攻撃ベクトルを特定すること。
  • エンドループ環境における予測実行中のレースコンディションに勝つための技術を開発すること。
  • 予測実行がキャッシュ側帯漏洩を可能にするコードパターンを自動的に発見する技術を開発すること。
  • Intel SGX SDK、Rust-SGX、Graphene-SGXを含む既存のSGXランタイムの脆弱性表面を評価すること。

提案手法

  • 分岐ターゲットインジェクションを活用して分岐予測器を操作し、SGXエンドループ内での予測実行を再配列すること。
  • 予測実行中のキャッシュ状態変化を確実に観察するためのレースコンディション技術を設計すること。
  • 予測実行がキャッシュ側帯漏洩を可能にするSGXランタイム内のコードパターンを自動的に探索すること。
  • 外部プログラムを用いて分岐予測器を制御し、機密データにアクセスする予測実行パスを誘発すること。
  • 側帯分析を介してキャッシュ状態の変化をモニタリングし、エンドループメモリやレジスタからの秘密情報を抽出すること。
  • 攻撃の実行可能性を複数のSGXランタイムで検証し、広範な影響を評価すること。

実験結果

リサーチクエスチョン

  • RQ1SGXエンドループの隔離保証があるにもかかわらず、予測実行の脆弱性がエンドループからの秘密情報漏洩に利用可能かどうか。
  • RQ2SGXランタイム内の特定のコードパターンが、予測実行によって観察可能な側帯漏洩を引き起こす仕組みは何か。
  • RQ3外部プログラムがどのようにエンドループの分岐予測に影響を与え、制御可能な結果を得る予測実行を誘発できるか。
  • RQ4予測実行と実際の実行の間のレースコンディションに勝つために使用可能な技術は何か。
  • RQ5既存のSGXランタイムがこのような予測実行側帯攻撃に対してどの程度脆弱であるか。

主な発見

  • 一般的なSGXランタイムに存在する攻撃可能なコードパターンのため、任意のエンドループプログラムがSgxPectre攻撃の対象となる可能性がある。
  • Intel SGX SDK、Rust-SGX、Graphene-SGXのすべてに、予測実行がキャッシュ側帯漏洩を引き起こすコードパターンが存在する。
  • 外部プログラムからの分岐ターゲットインジェクションにより、予測実行中のエンドループ制御フローを成功裏に操作できる。
  • 予測実行によって引き起こされるキャッシュ状態の変化は観察可能であり、エンドループメモリやレジスタからの秘密情報抽出に利用可能である。
  • 攻撃は実用的であり、ハードウェアの改造や標準のユーザーレベル実行を超える特権アクセスを必要としない。
  • 本研究では、予測実行の側帯がSGXエンドループの機密性保証を完全に無効にできることを確認した。

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

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

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

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