[論文レビュー] Osiris: Automated Discovery of Microarchitectural Side Channels
Osirisは、機械可読のISA仕様を用いて、CPUにおけるタイミングに基づくマイクロアーキテクチャ的側面漏洩を自動で発見する、ファズィングベースのフレームワークである。このフレームワークは、リセット、トリガー、測定の3つの命令列のトリプルを特定し、IntelおよびAMDプロセッサ上で4つの新しい側面漏洩を発見した。その中には、KASLRの解除を可能にするものや、AWS上での1 kbit/sの高帯域幅のVM間共用チャネルも含まれる。
In the last years, a series of side channels have been discovered on CPUs. These side channels have been used in powerful attacks, e.g., on cryptographic implementations, or as building blocks in transient-execution attacks such as Spectre or Meltdown. However, in many cases, discovering side channels is still a tedious manual process. In this paper, we present Osiris, a fuzzing-based framework to automatically discover microarchitectural side channels. Based on a machine-readable specification of a CPU's ISA, Osiris generates instruction-sequence triples and automatically tests whether they form a timing-based side channel. Furthermore, Osiris evaluates their usability as a side channel in transient-execution attacks, i.e., as the microarchitectural encoding for attacks like Spectre. In total, we discover four novel timing-based side channels on Intel and AMD CPUs. Based on these side channels, we demonstrate exploitation in three case studies. We show that our microarchitectural KASLR break using non-temporal loads, FlushConflict, even works on the new Intel Ice Lake and Comet Lake microarchitectures. We present a cross-core cross-VM covert channel that is not relying on the memory subsystem and transmits up to 1 kbit/s. We demonstrate this channel on the AWS cloud, showing that it is stealthy and noise resistant. Finally, we demonstrate Stream+Reload, a covert channel for transient-execution attacks that, on average, allows leaking 7.83 bytes within a transient window, improving state-of-the-art attacks that only leak up to 3 bytes.
研究の動機と目的
- 現代のCPUにおけるタイミングに基づくマイクロアーキテクチャ的側面漏洩を自動化し、通常は人的作業が伴う手作業による解析によって発見されるものである。
- 低レベルのマイクロアーキテクチャ的リバースエンジニアリングを必要とせずに、顕著なマイクロアーキテクチャ的側面漏洩を引き起こす複雑な命令の相互作用を特定する課題に対処する。
- Spectre や Meltdown などの一時実行攻撃に利用可能な、体系的かつスケーラブルな側面漏洩の検出を可能にする。
- ISA仕様との統合により、CPU設計段階での早期段階での側面漏洩の検出を可能とし、デフォルトでセキュアな設計を実現する。
- コンテンツベースやキャッシュベースの側面漏洩にとどまらず、新規のタイミングベースの側面漏洩を含む、自動化された側面漏洩発見の範囲を拡張する。
提案手法
- マイクロアーキテクチャ的状態変化の体系的モデリングを可能とするために、リセットシーケンス、トリガーシーケンス、測定シーケンスの3つの要素からなるトリプルとして側面漏洩を表現する。
- 機械可読のx86/ARMv8 ISA仕様から、ファズィングに類似した方法で命令列の組み合わせを生成・テストする。
- 特権のないユーザーが実行可能な命令のみを候補に絞ることで、探索空間を実用的かつ関連性の高い組み合わせに制限する。
- 実行時間の差を測定することで、タイミングベースの側面漏洩を検出する。高精度なタイミング測定のため、インラインアセンブリを用いる。
- ファズィングの各イテレーションにおいてマイクロアーキテクチャ的側面漏洩に起因するフィードバック機構を適用し、収束性と安定性を向上させる。
- 将来的に排出ベースの側面漏洩に拡張可能とするために、パフォーマンスカウンターや低レベルインターフェース(例:Intel VISA/ITP-XDP)と統合する。
実験結果
リサーチクエスチョン
- RQ1ISAスペックに基づくファズァーを用いることで、マイクロアーキテクチャ的挙動に関する事前の知識なしに、新規のタイミングベースのマイクロアーキテクチャ的側面漏洩を発見できるか?
- RQ2ISAスペックに基づくファズァーは、コンテンツやキャッシュ排出に依存しない側面漏洩をどの程度特定できるか?
- RQ3このようなフレームワークは、KASLRバイパスや共用チャネルなど、実世界の攻撃で利用可能な側面漏洩を発見できるか?
- RQ4フレームワークは、時間差が100サイクル未満の側面漏洩をどの程度効果的に検出できるか。また、一般コンsumer環境における実用的制限は何か?
- RQ5このフレームワークは、単一命令のタイミングチャネルにとどまらず、複数命令のシーケンスや、その他の側面漏洩タイプに対しても拡張可能か?
主な発見
- Osirisは、IntelおよびAMDプロセッサ上で4つの新規のタイミングベースのマイクロアーキテクチャ的側面漏洩を発見した。そのうち1つは、非一時的ロード(FlushConflict)を用いたKASLRの解除を可能にするもので、Ice LakeおよびComet Lakeで動作する。
- フレームワークにより、メモリサブシステムに依存しないコア間・VM間共用チャネルが実現され、AWS上ですでに1 kbit/sの速度で動作が確認された。
- Stream+Reload攻撃の新バージョンが実証され、一時的ウィンドウあたり平均7.83バイトの漏洩を達成。従来の最先端技術が最大3バイトまでしか漏洩しなかったのに対し、改善が確認された。
- Osirisは、既知の側面漏洩(Flush+Reload や AVX2 側面漏洩)を正常に再発見し、検出能力の妥当性を検証した。
- OSレベルのノイズの影響により100サイクル未満の時間差の検出には限界があるものの、500時間程度の実行時間で、実用的なCPU上で攻撃可能な側面漏洩を同定した。
- フレームワークはARMv8などの他のアーキテクチャへも拡張可能であり、将来的にパフォーマンスカウンターやデバッグインターフェースを統合することで、排出ベースの側面漏洩の検出が可能になる。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。