はじめに
2018年に発表された「Spectre」と「Meltdown」は、現代のCPUに潜む設計上の脆弱性を突いたサイドチャネル攻撃の代表例です。
単なる理論的な話ではなく、研究者による実際の攻撃コード(PoC)が公開されている実証済みの脆弱性であり、世界中のOSやクラウドサービスに影響を与えました。
本記事では、Spectre/Meltdownの仕組み・影響・対策を整理します。
1. サイドチャネル攻撃とは
暗号やCPUのアルゴリズム自体を破るのではなく、副次的な情報(処理時間、キャッシュ、電力消費など)を利用して秘密を推測する攻撃を指します。
Spectre/Meltdownは、この「サイドチャネル攻撃」の一種です。
2. Spectre / Meltdown の概要
(1) 投機的実行とは?
CPUは高速化のために「分岐の結果を予測」し、先回りして命令を実行します(投機的実行)。
予測が外れた場合は結果を破棄しますが、キャッシュの痕跡は残ってしまうという問題があります。
(2) Meltdown
- 主にIntel CPUが対象
- 本来アクセスできないカーネルメモリを、投機的実行を経由してユーザープロセスから読み出せてしまう
- 権限分離の崩壊につながる深刻な脆弱性
(3) Spectre
- Intel / AMD / ARM など広範囲のCPUが対象
- 投機的実行をわざと誤誘導し、任意のメモリをキャッシュに読み込ませる
- 他プロセスやサンドボックスを越えてデータを盗み出せる可能性がある
3. 実際に攻撃は起きたのか?
-
PoC(実証コード)は存在
- 研究者が公開したコードにより、秘密情報を読み出すことが可能であることが実証済み
- JavaScript経由でのブラウザ攻撃PoCもGoogleが確認
-
大規模な攻撃事例は未報告
- 当時は「野生環境での攻撃事例」は確認されていない
- ただしPoCが存在する以上、悪用は十分に可能
4. 影響範囲
- PC、スマートフォン、クラウドサーバーを含むほぼすべてのモダンCPUが影響を受ける。
- 特にクラウド環境では「他ユーザの情報が漏洩する」リスクが深刻。
5. 対策
OS / ソフトウェア
- KPTI (Kernel Page Table Isolation) によるカーネルメモリ分離
- コンパイラ修正(投機的実行を制御するバリア命令の挿入)
- ブラウザ側でのタイマー精度の低下や投機実行防止策
ハードウェア
- 新世代CPUでは、投機的実行の管理を改善し対策が組み込まれている
トレードオフ
- 一部の対策では数%〜数十%の性能低下が報告されている
6. 図解(Mermaid)
まとめ
- Meltdown:カーネルメモリを直接読み出す脆弱性(Intel中心)。
- Spectre:投機的実行を誤誘導し、他プロセスからデータを漏洩。
- 研究者によるPoCが存在し「理論ではなく実証済み」の攻撃。
- 大規模攻撃事例は未報告だが、クラウド環境などでは特に注意が必要。