[論文レビュー] MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols
この論文は、マイクロアーキテクチャ対応のプログラムを合成する自動化ツールを提示し、セキュリティ・リトマス試験を作成、MeltdownPrimeとSpectrePrimeを暴露—Prime+Probe バリアントはコヒーレンスプロトコルにおけるキャッシュの無効化を利用する。実機での概念検証は、元のMeltdown/Spectreとほぼ同等の精度を示す。
The recent Meltdown and Spectre attacks highlight the importance of automated verification techniques for identifying hardware security vulnerabilities. We have developed a tool for synthesizing microarchitecture-specific programs capable of producing any user-specified hardware execution pattern of interest. Our tool takes two inputs: a formal description of (i) a microarchitecture in a domain-specific language, and (ii) a microarchitectural execution pattern of interest, e.g. a threat pattern. All programs synthesized by our tool are capable of producing the specified execution pattern on the supplied microarchitecture. We used our tool to specify a hardware execution pattern common to Flush+Reload attacks and automatically synthesized security litmus tests representative of those that have been publicly disclosed for conducting Meltdown and Spectre attacks. We also formulated a Prime+Probe threat pattern, enabling our tool to synthesize a new variant of each---MeltdownPrime and SpectrePrime. Both of these new exploits use Prime+Probe approaches to conduct the timing attack. They are both also novel in that they are 2-core attacks which leverage the cache line invalidation mechanism in modern cache coherence protocols. These are the first proposed Prime+Probe variants of Meltdown and Spectre. But more importantly, both Prime attacks exploit invalidation-based coherence protocols to achieve the same level of precision as a Flush+Reload attack. While mitigation techniques in software (e.g., barriers that prevent speculation) will likely be the same for our Prime variants as for original Spectre and Meltdown, we believe that hardware protection against them will be distinct. As a proof of concept, we implemented SpectrePrime as a C program and ran it on an Intel x86 processor, averaging about the same accuracy as Spectre over 100 runs---97.9% for Spectre and 99.95% for SpectrePrime.
研究の動機と目的
- マイクロアーキテクチャ最適化に起因するハードウェアのセキュリティ脆弱性を特定するための自動検証を促進する。
- マイクロアーキテクチャの記述と脅威パターンから実装を意識したアセンブリプログラムを合成するツールを導入する。
- Meltdown/Spectreに類する攻撃のセキュリティリトマス試験の合成を実証し、Prime+Probe バリアントを導出する。
- 無効化ベースのキャッシュコヒーレンスプロトコルを悪用する二核 MeltdownPrime/SpectrePrime 攻撃を紹介する。
提案手法
- μ spec と脅威パターンを記述するドメイン特化言語を用いて、所望の実行パターンを符号化する。
- 関係モデル探索(Alloy/Kodkod)を適用して、セキュリティ経路を表すプログラムグラフを合成する。
- Value in Cache Lifetime (ViCL) 抽象を用いてマイクロアーキテクチャイベントをモデル化し、キャッシュ占有ダイナミクスを捉える。
- 攻撃者/被害者プロセス、プライベート/共有スペース、照合/推測、コヒーレンスメッセージを含む Check モデリングを拡張する。
- コヒーレンスプロトコルの無効化を利用した二核 Prime+Probe バリアント(MeltdownPrime/SpectrePrime)を合成する。
- Intel x86 ハードウェア上で SpectrePrime を実装し、元の Spectre との精度を比較して検証する。
実験結果
リサーチクエスチョン
- RQ1自動合成は、与えられたマイクロアーキテクチャ上で、ユーザー定義の脅威パターンに一致するセキュリティ攻撃を生成できるか?
- RQ2無効化ベースのコヒーレンスプロトコルを利用する Prime+Probe バリアントは、Flush+Reload ベースの攻撃と同等の精度を達成するか?
- RQ3セキュリティリトマス試験は Meltdown/Spectre の悪用を抽象的に表現でき、完全な攻撃へ拡張できるか?
- RQ4これらの Prime バリアントに対して、ソフトウェアレベルの防御と比較して、どのハードウェア対策が効果的か?
主な発見
- 自動合成により、Meltdown/Spectreに類似したパターンのセキュリティリトマス試験を生成できる。
- MeltdownPrimeとSpectrePrimeは、キャッシュコヒーレンスの無効化を用いて高精度なタイミングベースの情報漏えいを達成する二核攻撃である。
- SpectrePrime は 2.4 GHz Intel Core i7 上で 100 回の実行で平均精度 99.95%、同じハードウェア上の Spectre の 97.9% と一致。
- SpectrePrime は MacBook ハードウェアで、コヒーレンス無効化ベースの Prime+Probe 攻撃の実現性を示している。
- mfence/lfence バリアのような対策は実験で Spectre と SpectrePrime の双方を緩和し、Prime バリアントにはソフトウェア防御が十分である可能性を示唆する一方、ハードウェア特有の対策は異なる可能性がある。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。