脆弱性
Spectre
別称: 投機実行攻撃
定義
CPU の投機的実行を悪用し、キャッシュベースのサイドチャネルを介してセキュリティ境界を越えてデータを漏えいさせるマイクロアーキテクチャ攻撃の総称。
2018 年 1 月に公表された Spectre(CVE-2017-5753 v1、CVE-2017-5715 v2、その後の派生多数)は、現代のアウトオブオーダー CPU が分岐や間接ジャンプの予測ミス後にも命令を投機的に実行する点を利用します。これらの一過性命令はキャッシュに痕跡を残し、精密なタイミング測定によって攻撃者が読み取ることができます。投機結果がアーキテクチャ的にコミットされなくても情報が漏れます。Spectre は Intel・AMD・ARM など広範に及び、プロセス/VM 分離を破ることがあり、完全な修正が困難です。緩和策にはコンパイラのバリア(retpoline、LFENCE、speculative load hardening)、マイクロコード更新(IBRS、IBPB、STIBP、eIBRS)、プロセス分離、ブラウザのサイト分離、新世代 CPU の設計見直しなどがあります。
例
- Spectre v1(Bounds Check Bypass):ユーザープロセスからカーネルメモリを漏えい。
- Spectre v2(Branch Target Injection):クラウド環境で VM 境界を越境。
関連用語
Meltdown
アウトオブオーダー実行と権限チェックの遅延を悪用し、非特権コードがカーネルメモリを読み出せるようにするマイクロアーキテクチャ脆弱性(CVE-2017-5754)。
サイドチャネル攻撃
論理的欠陥ではなく、時間・消費電力・電磁波・キャッシュ・音響など、システムの物理的または実装上の特徴を観測することで秘密情報を回復する攻撃。
タイミング攻撃
入力ごとに処理にかかる時間の差を測定することで秘密情報を回復するサイドチャネル攻撃。
Rowhammer
DRAM のハードウェア脆弱性。あるメモリ行を繰り返し活性化することで物理的に隣接する行のビットが反転し、メモリの整合性を損なう。
脆弱性
システム、アプリケーション、または運用プロセスに存在する弱点で、攻撃者が機密性・完全性・可用性を侵害するために悪用できるもの。
CVE(共通脆弱性識別子)
公開された各ソフトウェア・ハードウェア脆弱性に一意の識別子を付与し、業界全体で曖昧さなく参照できるようにする公的カタログ。