Skip to main content
QUICK REVIEW

[論文レビュー] SpectreRewind: Leaking Secrets to Past Instructions

Jacob Fustos, Michael M. Bechtel|arXiv (Cornell University)|Mar 27, 2020
Security and Verification in Computing参考文献 33被引用数 8
ひとこと要約

SpectreRewindは、1つのハードウェアスレッドから動作する、新しいコン tendationベースのコローセットチャネルを紹介する。この手法は、キャッシュベースの技術ではなく、浮動小数点除算ユニットの競合を利用している。高スルーレート(約100 KB/s)かつ低ノイズ(0.01%未満の誤り率)を実現し、Meltdown攻撃やChromeのJavaScriptサンドボックス内でも効果的なデータ漏洩を可能にし、マイクロアーキテクチャ的状態変更のロールバックに依存する防御を回避する。

ABSTRACT

Transient execution attacks utilize micro-architectural covert channels to leak secrets that should not have been accessible during logical program execution. Commonly used micro-architectural covert channels are those that leave lasting footprints in the microarchitectural state, for example, a cache state change, from which the secret is recovered after the transient execution is completed. In this paper, we present SpectreRewind, a new approach to create contention based covert channels for transient execution attacks. In our approach, a covert channel is established by issuing the necessary instructions logically before the transiently executed victim code. Unlike prior contention based covert channels, which require simultaneous multi-threading (SMT), SpectreRewind supports single hardware thread based covert channels, making it viable on systems where attacker cannot utilize SMT. We show that contention on the floating point division unit on commodity processors can be used to create a high-performance (~100 KB/s), low-noise covert channel for transient execution attacks instead of commonly used flush+reload based cache covert channels. We implement a Meltdown attack utilizing the proposed covert channel showing competitive performance compared to the stateof-the-art cache based covert channel implementation. We also show that the covert channel works in the JavaScript engine of a Chrome browser.

研究の動機と目的

  • 既存の一時的実行攻撃が、コン tendationベースのコローセットチャネルを活用するためには同時マルチスレーディング(SMT)が必要であるという制限を解消すること。
  • SMTが無効化されているか、利用できない環境でも動作可能な、単一スレッド実行コンテキストで機能するコローセットチャネルを開発すること。
  • 特に浮動小数点除算ユニットにおける機能ユニットの競合が、高性能で低ノイズなマイクロアーキテクチャ的コローセットチャネルとして機能できることを示すこと。
  • 実世界の攻撃シナリオ、特にMeltdown風のエクスプロイトおよびブラウザベースのJavaScriptサンドボックス内への統合を実施すること。
  • 状態のロールバックや一時的マイクロアーキテクチャ的状態変更の隠蔽に依存するハードウェア防御を回避できるかを評価すること。

提案手法

  • 著者らは、送信者および受信者の命令を一時的実行のトリガーの論理的前後に配置することで、順序を無視したコア上で同時に実行できるように攻撃を構造化している。
  • この手法は、商用のIntel、AMD、ARMプロセッサにおける浮動小数点除算ユニットの競合を、コローセットチャネルの物理的媒体として利用している。
  • 命令実行時の時間差を利用して秘密のデータを符号化・復号化する方法であり、flush+reloadとは原理的に類似しているが、キャッシュ状態の代わりに機能ユニットの競合に基づいている。
  • コローセットチャネルはMeltdownのプロトタイプ実装に統合され、特権メモリ領域からのエンドツーエンドのデータ漏洩を実証している。
  • 実世界の環境での検証として、Google ChromeのJavaScriptエンジンサンドボックス内にチャネルを実装した。
  • 性能とノイズは、制御された実験により測定され、従来のキャッシュベースのチャネルと比較して伝送速度と誤り率が評価された。

実験結果

リサーチクエスチョン

  • RQ1単一スレッド実行コンテキストにおいて、機能ユニットの競合を用いて、高性能で低ノイズのコローセットチャネルを構築できるか?
  • RQ2このようなチャネルを、スペキュラティブな命令が破棄される前に、一時的実行中に秘密情報を漏洩させることができるか?
  • RQ3提案されたチャネルは、状態のロールバックやマイクロアーキテクチャ的状態変更の隠蔽に依存するハードウェア防御を回避できるか?
  • RQ4ブラウザベースのJavaScriptサンドボックス環境において、このコローセットチャネルを効果的に展開できるか?
  • RQ5機能ユニットベースのチャネルの性能と信頼性は、従来のflush+reloadキャッシュベースのコローセットチャネルと比べてどうか?

主な発見

  • SpectreRewindは、単一スレッド環境において最大100 KB/sのデータ漏洩レートを達成する高性能なコローセットチャネルを成功裏に構築した。
  • チャネルは低ノイズを示し、誤り率が0.01%未満であり、最先端のflush+reloadキャッシュベースのチャネルと同等の性能を示した。
  • この手法により、スペキュラティブな命令が破棄される前にデータ漏洩が可能となり、状態のロールバックや隠蔽に依存する防御を回避できる。
  • コローセットチャネルはGoogle ChromeのJavaScriptサンドボックス内で正常に動作し、実世界のブラウザベース攻撃シナリオにおける実現可能性を示した。
  • このアプローチはIntel、AMD、ARMの商用プロセッサで有効であり、現代のアーキテクチャに広く適用可能であることを示した。
  • 機能ユニットの競合、特に浮動小数点除算ユニットにおける競合が、キャッシュベースのチャネルの代替として実用的かつ高性能であることが実証された。

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

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

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

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