投機的実行サイドチャネル
投機的実行サイドチャネル とは何ですか?
投機的実行サイドチャネル本来実行されるべきでない経路で命令を投機的に実行した結果、CPU がキャッシュや予測器を介してデータを漏らしてしまうマイクロアーキテクチャ脆弱性の総称。
投機的実行サイドチャネルは、現代の CPU が性能向上のために行う分岐予測・順序外実行・投機を悪用します。これらの機構は、アーキテクチャ状態で確定する前に命令を実行し、誤予測時には結果を破棄しますが、キャッシュ、ストアバッファ、予測器には観測可能な痕跡が残り、攻撃者はタイミングオラクルによってこれを読み取れます。Spectre 系(v1、v2、BHI、RSB、Spectre-NG)、Meltdown、MDS、L1TF、Foreshadow、Downfall などはこの原理を用い、プロセス、仮想マシン、ブラウザサンドボックス、エンクレーブをまたいで保護メモリを読み取ります。緩和策には、マイクロコード更新、retpoline/IBRS、KPTI、ブラウザのサイト分離、防御的コーディングなどがあります。
● 例
- 01
Spectre v1:配列境界チェックを迂回し、キャッシュ計時でカーネルデータを漏洩。
- 02
Site Isolation 以前のブラウザで、Spectre PoC がクロスオリジンの機密を読み取った。
● よくある質問
投機的実行サイドチャネル とは何ですか?
本来実行されるべきでない経路で命令を投機的に実行した結果、CPU がキャッシュや予測器を介してデータを漏らしてしまうマイクロアーキテクチャ脆弱性の総称。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
投機的実行サイドチャネル とはどういう意味ですか?
本来実行されるべきでない経路で命令を投機的に実行した結果、CPU がキャッシュや予測器を介してデータを漏らしてしまうマイクロアーキテクチャ脆弱性の総称。
投機的実行サイドチャネル はどのように機能しますか?
投機的実行サイドチャネルは、現代の CPU が性能向上のために行う分岐予測・順序外実行・投機を悪用します。これらの機構は、アーキテクチャ状態で確定する前に命令を実行し、誤予測時には結果を破棄しますが、キャッシュ、ストアバッファ、予測器には観測可能な痕跡が残り、攻撃者はタイミングオラクルによってこれを読み取れます。Spectre 系(v1、v2、BHI、RSB、Spectre-NG)、Meltdown、MDS、L1TF、Foreshadow、Downfall などはこの原理を用い、プロセス、仮想マシン、ブラウザサンドボックス、エンクレーブをまたいで保護メモリを読み取ります。緩和策には、マイクロコード更新、retpoline/IBRS、KPTI、ブラウザのサイト分離、防御的コーディングなどがあります。
投機的実行サイドチャネル からどのように防御しますか?
投機的実行サイドチャネル に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
投機的実行サイドチャネル の別名は何ですか?
一般的な別名: Spectre 系脆弱性, 一過性実行攻撃。
● 関連用語
- vulnerabilities№ 1074
Spectre
CPU の投機的実行を悪用し、キャッシュベースのサイドチャネルを介してセキュリティ境界を越えてデータを漏えいさせるマイクロアーキテクチャ攻撃の総称。
- vulnerabilities№ 665
Meltdown
アウトオブオーダー実行と権限チェックの遅延を悪用し、非特権コードがカーネルメモリを読み出せるようにするマイクロアーキテクチャ脆弱性(CVE-2017-5754)。
- vulnerabilities№ 1038
サイドチャネル攻撃
論理的欠陥ではなく、時間・消費電力・電磁波・キャッシュ・音響など、システムの物理的または実装上の特徴を観測することで秘密情報を回復する攻撃。
- appsec№ 1051
サイト分離
異なるサイトのドキュメントを別々の OS プロセスに割り当て、侵害された描画プロセスからクロスサイトのデータを読み取れないようにする Chromium のセキュリティ機構。
- appsec№ 129
ブラウザサンドボックス
OS レベルの分離層で、ブラウザのレンダラーやヘルパープロセスを閉じ込め、侵害された Web コードがファイルシステムや他アプリへアクセスできないようにする。
- cryptography№ 848
電力解析攻撃
暗号デバイスの動作中の消費電力の変動を測定して秘密鍵を復元するサイドチャネル攻撃。