Contents
Spectre&Meltdownとは?
「Spectre」や「Meltdown」は、いずれも2018年初頭に見つかったCPUの脆弱性のこと。
それぞれ
- Spectre(スペクター)
- Meltdown(メルトダウン)
と読む。
Spectreは2つの脆弱性の総称であり、Meltdownは単一の脆弱性を指す呼称である。
Spectre | Variant 1: bounds check bypass (CVE-2017-5753) |
Variant 2: branch target injection (CVE-2017-5715) | |
Meltdown | Variant 3: rogue data cache load (CVE-2017-5754) |
Spectre&Meltdownの「共通点」
SpectreやMeltdownはそれぞれ攻撃の手法は違えども、いずれもCPUの「投機的実行」の仕組みに対する脆弱性であることが共通点。
「投機的実行」とは?
この「投機的実行」の脆弱性を突いて悪意のあるプログラムを実行させると、本来権限が無いはずのプロセスからメモリ上の読めてはいけないデータを読みこめてしまうという不具合が発生する。
Spectre&Meltdownの「違い」
SpectreやMeltdownの違いは、
- 「攻撃対象」
- 「悪意のあるプログラムの実行方法」
などにある。
Spectre | Meltdown | |
攻撃対象 | プロセスのメモリ領域 | カーネルのメモリ領域 |
悪意のあるプログラムの実行方法 | 正常な実行プロセス内に悪意のあるプログラムを埋め込んで実行する | 悪意のあるプログラムをユーザ権限で実行する |
Spectre&Meltdownがなぜここまで騒がれたのか?
騒ぎの規模が大きくなった理由は2つある。※諸説あり
ひとつは、各CPUベンダが秘密裏に解消しようとしていたこの脆弱性を英国メディア「The Register」が正月休み中(1月2日)に公表(リーク)したためと言われている。
もうひとつは、上述の「投機的実行」の仕組みおよび脆弱性はほぼすべてのCPUに組み込まれており、すべてのシステムは例外なく対応を迫られるため。
CPUの換装、またはOSなどへパッチの適用が必要となり、世界各地の稼働中システムに対する影響範囲が非常に大きい。
Spectre&Meltdownへの対応に伴う「性能影響」
「Spectre」&「Meltdown」への対応に伴う性能影響は、REDHAT社の検証がよくまとまっている。
基本的には、I/Oを多く伴う処理ほど性能への影響度が大きい。
逆にいうとI/Oを伴わずCPUのみを使うSPECcpu2006系の演算処理への影響は非常に小さい。