【すぺくたー】

Spectre(CPU脆弱性) とは?

最終更新:
💡 CPUの「先読み」の癖を突いて盗み見る幽霊のような脆弱性。

CPUの分岐予測や投機的実行の副作用を利用し、メモリ上の秘密情報を推測するサイドチャネル攻撃の一群。

📌 このページのポイント
投機的実行の副作用から秘密を推測 ① 予測を悪用 先回りして実行 ② 秘密にアクセス 投機的な経路で ③ キャッシュ等 に影響が残る ④ 時間差等を測る 秘密の値を推測 実行結果の取消し ≠ 副作用の消去
キャッシュを使う攻撃の概念例。影響と緩和策はCPUや攻撃の種類により異なる。
ひよこ ひよこ
Spectreって、どうして幽霊という名前なの?
ペンギン先生 ペンギン先生
研究者は、原因のspeculative execution(投機的実行)と、修正が難しく長く付きまといそうなことに由来すると説明しているよ。「痕跡がないから」という意味ではないんだ。
ひよこ ひよこ
投機的実行って何なの?
ペンギン先生 ペンギン先生
CPUが「たぶんこっちに分岐するだろう」と予測して、先回りして処理を進めておく高速化のテクニックだよ。
ひよこ ひよこ
予測が外れたらどうするの?
ペンギン先生 ペンギン先生
予測が外れた実行結果は取り消されるけれど、キャッシュなどへの影響が残る場合がある。攻撃者がその影響による時間差などを測って、秘密の値を推測する。これがサイドチャネル攻撃なんだ。
ひよこ ひよこ
それって怖いね。ソフトを直せば防げるの?
ペンギン先生 ペンギン先生
既知の攻撃に対して、ソフトウェアの修正で緩和できる場合もあるよ。CPUの種類と攻撃の種類に応じて、OS、ブラウザーなどのソフトウェア、ファームウェアやマイクロコードの更新を組み合わせる。単に「ソフトでは防げない」とは言えないんだ。
ひよこ ひよこ
どれくらいのCPUが影響を受けたの?
ペンギン先生 ペンギン先生
Intel・AMD・Armなど、広い範囲のCPUで研究者が確認しているよ。ただし、今使っているCPUの影響や緩和状態は製品と攻撃の種類による。メーカーの案内を確認しよう。Linuxでは脆弱性の状態を確認する仕組みもあるよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Spectre」って出てきたら「CPUの先読み機能を悪用してメモリを盗み見る攻撃」と思えればだいたいOK!
📖 おまけ:英語の意味
「Spectre」 = 幽霊・亡霊
💬 研究者によれば名前は原因のspeculative execution(投機的実行)に由来し、修正が難しく長く付きまといそうなことを幽霊に重ねているよ。

参考資料

← 用語集にもどる