Skip to main content
QUICK REVIEW

[論文レビュー] KLEESPECTRE: Detecting Information Leakage through Speculative Cache Attacks via Symbolic Execution

Guanhua Wang, Sudipta Chattopadhyay|arXiv (Cornell University)|Sep 2, 2019
Security and Verification in Computing参考文献 19被引用数 9
ひとこと要約

KLEESpectreは、スペクティブ実行およびキャッシュ動作のマイクロアーキテクチャ的モデル化をKLEEに拡張した記号実行フレームワークであり、Spectre風攻撃によるサイドチャnel情報漏洩を検出することを目的としている。記号的キャッシュ競合のモデル化と、スペクティブな破棄後に秘密データがキャッシュに保持されるかどうかの追跡により、従来の記号実行よりも精度の高いキャッシュサイドチャネル脆弱性の検出を可能にする。

ABSTRACT

Spectre attacks disclosed in early 2018 expose data leakage scenarios via cache side channels. Specifically, speculatively executed paths due to branch mis-prediction may bring secret data into the cache which are then exposed via cache side channels even after the speculative execution is squashed. Symbolic execution is a well-known test generation method to cover program paths at the level of the application software. In this paper, we extend symbolic execution with modelingof cache and speculative execution. Our tool KLEESPECTRE, built on top of the KLEE symbolic execution engine, can thus provide a testing engine to check for the data leakage through cache side-channel as shown via Spectre attacks. Our symbolic cache model can verify whether the sensitive data leakage due to speculative execution can be observed by an attacker at a given program point. Our experiments show that KLEESPECTREcan effectively detect data leakage along speculatively executed paths and our cache model can further make the leakage detection much more precise.

研究の動機と目的

  • スペクティブ実行およびキャッシュサイドチャネル行動をモデル化できない記号実行ツールのギャップを埋める。
  • スプライシング実行パスを介した情報漏洩を検出する。特に、機密データがキャッシュに読み込まれ、破棄後に残存する可能性がある状況を対象とする。
  • 正確なキャッシュモデルを記号実行に統合し、マイクロアーキテクチャ的脆弱性の検出精度を向上させる。
  • 実世界のソフトウェアにおけるスプライシングキャッシュサイドチャネル脆弱性の検出および分析を可能にする再現可能でオープンソースのフレームワークを提供する。
  • スプライシング実行がロールバックされた後、秘密データがキャッシュサイドチャネルを介して漏洩可能かどうかを自動的に検証できるようにする。

提案手法

  • 分岐の4通りの結果(実行/正しく予測、実行/誤予測、非実行/正しく予測、非実行/誤予測)を扱い、キャッシュサイドチャネルリスクの観点から誤予測パスに焦点を当てる。
  • メモリアクセスを実アドレスまたは記号的アドレスとして追跡することで、キャッシュ動作を記号的にモデル化し、キャッシュセット競合を記号的論理式として捉える。
  • 制約解決を用いて、スペクティブ実行中に読み込まれた秘密データが破棄後にキャッシュに残存するかどうかを特定し、サイドチャネル漏洩の可能性を示す。
  • 記号的キャッシュモデルをKLEE記号実行エンジンに統合し、マイクロアーキテクチャ的意味論を伴うパス探索を可能にする。
  • キャッシュアクセスパターンのタイミング差を介して秘密データが観測可能かどうかを分析することで、キャッシュサイドチャネル漏洩を検出する。
  • 記号実行を用いて、スペクティブパスを探索し、機密データのキャッシュ内保持を検証するテスト入力を生成する。

実験結果

リサーチクエスチョン

  • RQ1記号実行を拡張してスペクティブ実行およびキャッシュ動作をモデル化し、サイドチャネル脆弱性を検出可能か?
  • RQ2記号的にキャッシュ競合をモデル化することで、Spectre風情報漏洩の検出精度が向上するか?
  • RQ3提案されたフレームワークは、実世界の暗号ソフトウェアでキャッシュサイドチャネル漏洩を検出可能か?
  • RQ4スペクティブ実行およびキャッシュモデル化の統合は、従来の記号実行と比較して検出精度にどのように影響するか?
  • RQ5記号的キャッシュモデルは、スペクティブな破棄後にキャッシュに残存する秘密データを特定するのにどの程度効果的か?

主な発見

  • KLEESpectreは、合成的なリトミステストおよび実世界の暗号ライブラリ(libTomCrypt、OpenSSL、hpn-ssh)において、スペクティブキャッシュサイドチャネルを介した情報漏洩を正常に検出できた。
  • 記号的キャッシュモデルにより、スペクティブ実行が破棄された後も秘密データがキャッシュに保持されるかどうかを特定できるため、検出精度が著しく向上した。
  • 従来の記号実行ツールではマイクロアーキテクチャ的モデル化が行われていないため見逃されていた脆弱性を、KLEESpectreは検出できた。
  • 秘密データがスペクティブに読み込まれ、破棄後もキャッシュタイミングサイドチャネルを介してアクセス可能であるプログラムにおいて、キャッシュサイドチャネル漏洩を検出できた。
  • 評価の結果、スペクティブ実行やキャッシュ動作をモデル化しない先行研究と比較して、KLEESpectreはSpectre風攻撃の検出精度がより高いことが示された。
  • 実装およびすべてのベンチマークは https://github.com/winter2020/kleespectre で公開されており、再現性とさらなる研究を可能としている。

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

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

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

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