Meltdown

**Meltdown**（メルトダウン）とは、コンピュータ、スマートフォン、IoT家電など、マイクロプロセッサ（CPUなど）を使用する電子機器に幅広く存在するハードウェアレベルの脆弱性のひとつである。

本来マイクロプロセッサが実行するソフトウェアには、それぞれの種類に応じて特権レベルと呼ばれる権限階層が割り当てられており、OSの中枢であるカーネルやドライバには高い権限が、利用者がダウンロードしたアプリなどには低い権限が与えられ、低い権限のアプリが中枢機能の動作に支障しないように制御されている。

この脆弱性を利用すると、正当な権限のないプロセスが、ドライバやカーネルなどより高い特権レベルのメモリにアクセスすることが可能になる。

## 概要
脆弱性の影響を受けるマイクロプロセッサは、インテルの大多数の製品とARMの一部の製品であり、AMDの製品には影響しないとセキュリティ研究者によって考えられている。

CVE番号はCVE-2017-5754、脆弱性通称は"Rogue Data Cache Load"。

なお、Spectreという別の脆弱性（CVE-2017-5753:"Bounds Check Bypass"、"CVE-2017-5715":"Branch Target Injection"）もMeltdownと同時に発表されたが、こちらはインテルだけでなくAMDやARMの製品にも存在すると指摘されている。

## 経緯
Meltdownは、GoogleのProject ZeroとCyberus Technologyと グラーツ大学の研究者らによって別々に発見され、Spectreという別の脆弱性とともに、2018年1月4日（JST）に公開された。

## 詳細
Meltdown Paper（PDF、英語）を参照のこと。

参考文献：Hisa Ando、『投機実行の隙を突くSpectre/Meltdownの仕組みを知る』マイナビニュース

## 影響

### インテル
研究者によれば、原理的に、アウト・オブ・オーダー実行（投機的実行を含む）を実装しているインテル製プロセッサに潜在的影響があると指摘されている。Googleは1995年以降のプロセッサ全て（Intel Itaniumおよび2013年以前のIntel Atomを除く）が潜在的に影響を受けるとし 、インテルはIA-32アーキテクチャのPentium Pro以降だとしている。もっとも、全てのCPUについて研究者による実証実験が実施された訳ではない。

インテルは2018年1月22日時点で影響があると判明しているプロセッサのリストを公表している。
* Nehalem世代のCore i3/i5/i7/M （32nm - 45nmプロセスルール）
* 第2世代 - 第8世代Coreプロセッサ
* Core X for Intel X99/X299
* Xeon 3400/3600/5500/5600/6500/7500/E3/E3 v2 - v6/E5/E5 v2 - v4/E7/E7 v2 - v4
* Xeon Scalable/Phi 3200/5200/7200
* Atom C/E/A/x3/Z
* Celeron J/N (Bay Trail-D/M)
* Pentium J/N (Bay Trail-D/M)

### AMD
2018年1月5日時点で、AMDのCPUがMeltdownの影響を受けたとするテスト結果は報告されていない。

### ARM
ARMは、Cortex-**R7**/**R8**/**A8**/**A9**/**A15**/**A17**/**A57**/**A72**/**A73**/**A75**はSpectreの影響を受け、これに加えてCortex-**A75**はMeltdownの影響を受ける事を認めた。

ミドルレンジAndroid携帯電話端末の多数に使用されるオクタコアのARM Cortex-**A53**/**A55**はアウト・オブ・オーダー実行をしないため、MeltdownやSpectreのいずれの脆弱性の影響も受けないとされている。Qualcomm Snapdragon **630**/**626**/**625**/**4xx**もベースコアがCortex-**A53**/**A55**のため同様である。Raspberry Piも影響を受けないとされている。

### POWER / IBM Z
IBMは、POWERファミリーは当脆弱性の影響を受け、IBM Zの情報はIBM Z Portalで公開されると発表した。

### その他のCPUおよびベンダー
Meltdown and Spectre: Which systems are affected by Meltdown?（英語）を参照のこと。

### システム
本脆弱性は、Amazon Web Services（AWS）、Microsoft Azureや、Google Cloud Platform など主要なクラウドプロバイダへの影響が見込まれている。クラウドプロバイダは、構造上、重要なデータが保存されているのと同一の物理サーバ上でユーザーにプログラムを実行させており、重要なデータが保存されている特権メモリのロケーションへの不正なアクセスを防ぐ措置をCPUによるセーフガードに委ねているが、このセーフガードはMeltdown脆弱性により回避可能であるとされている。

論文の著者の1人は、準仮想化（Xen）や、Docker、LXC、OpenVZといったコンテナが影響を受けると報告している。完全に仮想化されたマシンへの攻撃を行うと、ゲストユーザ空間がゲストカーネルメモリを読み込むことができるが、ホストのカーネル空間からはできないと述べている。

## 回避策、アップデート
（本見出し中の日付は特記ない場合2018年）

Meltdownは、Spectreと同様にCPUのハードウェアレベルの脆弱性であるため、オペレーティングシステム（OS）側で回避策が取られつつある。また、（kernel page-table isolation）パッチはMeltdownに有効、Spectreには無効であるが、多くのベンダーはパッチがMeltdownとSpectreのどちらか（または双方）を回避、緩和するのか明確にしていない。

### インテル
インテルは脆弱性に対処するためCPUのマイクロコードアップデートを、マザーボードおよびエンドユーザー製品メーカー向けに供給したが、予期しない再起動が頻発するために2018年1月22日には当該アップデートの適用を中止するよう促す公報を発表した。また、インテルコンパイラで脆弱性をソースコードレベルで回避する方法の例を示している。

### Windows
マイクロソフトは、2018年1月3日（現地時間）に、本脆弱性に対処する緊急アップデートをWindows 10/8.1/7 SP1向けおよびServer製品やPosReady製品向けにリリースした 。

このアップデートは、一部のサードパーティー製アンチウイルス製品と互換性が無く、BSODを引き起こすことが知られている。Windows DefenderとMicrosoft Security Essentialsは互換性があるとされている。

アンチウイルス製品メーカー側の対応が完了するまでは、レジストリが設定されないので、このアップデートはダウンロードされないようになっている。アンチウイルス製品側が対応完了・アップデートされた場合は、自動的にレジストリが設定され、このアップデートがダウンロード、適用されるとしている。

また、上記アップデートはAMD Athlon X2 6000+ユーザーにも異常を引き起こすことが分かったが詳細な原因は不明である。

### macOS
macOSは10.13.2以降、Meltdown対策が適用されている。なお、1月8日にリリースされた"macOS High Sierra 10.13.2 Supplemental Update" にてSpectre対策が適用されている（同時にSafariもアップデートされる）。

### Linux
Linuxカーネルの開発者は、と名付けたパッチ群を2018年初頭にカーネル4.15でリリースし、 これはカーネル4.9.75/4.14.11ではバックポートとしてリリースされた。

#### レッドハット
Red Hat Enterprise Linux のディストリビューション Ver.6および Ver.7でカーネルアップデートが実施された。 

#### CentOS
CentOS-6 / CentOS-7でカーネルアップデートがリリースされている。

#### その他
リンク列挙。（英語）
* SUSE： 
* Ubuntu：
* Wind River：

### Android
GoogleはAndroid OSのセキュリティパッチを配信しているが、現実の端末へのパッチの互換性は、端末のメーカーあるいは携帯電話事業者の対応に依存する。

### iOS
iOS 11.2以降、tvOS 11.2以降でMeltdown対策パッチが当てられている。なお、1月8日にリリースされた iOS 11.2.2にてSpectre対策が適用されている。

### Google Chrome
Meltdownへの直接の回避策ではないが、GoogleはStrict site isolation（厳格なサイト分離）機能を有効にすることを提案している。ブラウザの互換性については多少の問題がある。

### シスコ
シスコはルーター、アプライアンス製品やソフトウェアに脆弱性がある事を認めたが、他社製品上で動作するソフトウェアを除き、ルーター製品等でソフトウェアを自由に実行できないので攻撃の恐れは小さいとしている。脆弱性のある製品リストは次のサイトで公開されている。

### POWER
IBMは、POWERファミリーは当脆弱性の影響を受け、パッチはファームウェアおよびOSに必要と発表した。
* ファームウェアに対するパッチは、POWER9用、POWER8用、POWER7+用、POWER7用がリリース済。
* オペレーティングシステムに対するパッチは、Power版Linuxは各ディストリビューターよりリリース済。IBM iおよびAIXはリリース済。

### 主要ベンダー・メーカー
リンク列挙。（英語）
* エイサー：
* ASUS：PC、M/B
* デル： PC（日本語）、EMC製品（日本語）
* 富士通：PC（日本語）、全般（英語）
* Getac：

### その他の対象CPU組み込み製品
メーカー等の対応に依存する。

### 副作用
一部のケースでは、パッチが適用されたコンピュータのパフォーマンスが30%低下するとされたり、PhoronixはLinuxのゲーム性能には影響しないと声明を出しているが、十分に検証されていない。クライアント、サーバ、ホスティングサービスなど環境によっても減少幅は異なると考えられる。

インテルはクライアントPC向けのベンチマークで第6世代 - 第8世代Coreアーキテクチャについてベンチマーク結果は6 - 8%程度になると発表した。

インプレスは、NVMeやSATAインターフェースのSSDでランダムアクセス性能の一部が大幅に低下するとの実験結果を公表した。

## 脚注

## 関連項目
* Spectre - 同時に発表された別の脆弱性
* Pentium FDIV bug
* Pentium F00F bug
* Row hammer – an unintended side effect in dynamic random-access memory causing memory cells to interact electrically

## 外部リンク
* MeltdownとSpectre脆弱性の公式ウェブサイト
* Meltdownの論文
* Google Project Zero の記事
* (最新の各ベンダーの情報へのリンクが随時更新されている)