Meltdown

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

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

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

 概要 
脆弱性の影響を受けるマイクロプロセッサは、インテルの大多数の製品とARMの一部の製品であり、AMDの製品には影響しないとセキュリティ研究者によって考えられているhttps://www.wired.com/story/critical-intel-flaw-breaks-basic-security-for-most-computers/。

CVE番号はCVE-2017-5754、脆弱性通称は"Rogue Data Cache Load"https://pc.watch.impress.co.jp/docs/news/1099687.html。

なお、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）に公開された。
+タイムライン（日付は現地時間）2014年LinuxカーネルのASLR (KASLR) が実装2017年6月セキュリティ研究者によりKASLRに新たな脆弱性が見つかる。それを受け、 (kernel

page-table isolation) が開発された。KPTIは多くの脆弱性を除去することが分かった。この時点で

Meltdownは未発見だったが、Meltdownの脆弱性発見者によりKPTIがその有効な回避策であること

が検証された。2017年7月CyberWTFというウェブサイトで、脆弱性の概要が公表された。?Meltdown脆弱性は複数の研究者によって、Spectreという別の脆弱性と同様に発見された。2018年1月3日MeltdownとSpectreの両脆弱性がマスメディアで報道された。2018年2月1日Meltdown/Spectre脆弱性を突くマルウェアサンプル（実証コード）がAV-TESTにより発見されたhttps://pc.watch.impress.co.jp/docs/news/1104573.html。

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

参考文献：Hisa Ando、『投機実行の隙を突くSpectre/Meltdownの仕組みを知る』マイナビニュースhttps://news.mynavi.jp/article/safespec-1/

 影響 

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

インテルは2018年1月22日時点で影響があると判明しているプロセッサのリストを公表しているhttps://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr。
 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のため同様であるhttps://www.androidauthority.com/meltdown-spectre-kpti-827527/。Raspberry Piも影響を受けないとされているhttps://www.raspberrypi.org/blog/why-raspberry-pi-isnt-vulnerable-to-spectre-or-meltdown/。

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

 その他の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といったコンテナが影響を受けると報告しているhttp://blog.cyberus-technology.de/posts/2018-01-03-meltdown.html。完全に仮想化されたマシンへの攻撃を行うと、ゲストユーザ空間がゲストカーネルメモリを読み込むことができるが、ホストのカーネル空間からはできないと述べている。

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

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

 インテル 
インテルは脆弱性に対処するためCPUのマイクロコードアップデートを、マザーボードおよびエンドユーザー製品メーカー向けに供給したが、予期しない再起動が頻発するために2018年1月22日には当該アップデートの適用を中止するよう促す公報を発表したhttps://newsroom.intel.com/news/root-cause-of-reboot-issue-identified-updated-guidance-for-customers-and-partners/。また、インテルコンパイラで脆弱性をソースコードレベルで回避する方法の例を示しているインテルコンパイラーを使用して投機実行サイドチャネルの問題を緩和 (2024年1月26日)。

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

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

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

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

 macOS 
macOSは10.13.2以降、Meltdown対策が適用されている。なお、1月8日にリリースされた"macOS High Sierra 10.13.2 Supplemental Update" にてSpectre対策が適用されている（同時にSafariもアップデートされる）https://news.mynavi.jp/techplus/article/20180109-meltdown_sol/。

 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：https://www.suse.com/support/kb/doc/?id=7022512 
 Ubuntu：https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown
 Wind River：

 Android 
GoogleはAndroid OSのセキュリティパッチを配信しているhttps://source.android.com/security/bulletin/2018-01-01が、現実の端末へのパッチの互換性は、端末のメーカーあるいは携帯電話事業者の対応に依存する。

 iOS 
iOS 11.2以降、tvOS 11.2以降でMeltdown対策パッチが当てられているhttps://www.gizmodo.jp/2018/01/all-about-meltdown-and-spectre.html。なお、1月8日にリリースされた iOS 11.2.2にてSpectre対策が適用されている。

 Google Chrome 
Meltdownへの直接の回避策ではないが、GoogleはStrict site isolation（厳格なサイト分離）機能を有効にすることを提案しているhttps://blog.google/topics/google-cloud/what-google-cloud-g-suite-and-chrome-customers-need-know-about-industry-wide-cpu-vulnerability/https://support.google.com/chrome/answer/7623121?hl=ja。ブラウザの互換性については多少の問題がある。

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

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

 主要ベンダー・メーカー 
リンク列挙。（英語）
 エイサー：https://us.answers.acer.com/app/answers/detail/a_id/53104
 ASUS：PChttps://www.asus.com/News/YQ3Cr4OYKdZTwnQK、M/B
 デル： PC（日本語）http://www.dell.com/support/article/jp/ja/jpbsd1/sln308587/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5%E3%83%BC%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%89%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E6%94%BB%E6%92%83-cve-2017-5715-cve-2017-5753-cve-2017-5754-%E3%83%87%E3%83%AB%E8%A3%BD%E5%93%81%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF%E9%9F%BF?lang=ja、EMC製品（日本語）http://www.dell.com/support/article/jp/ja/jpbsd1/sln308588/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5%E3%83%BC%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%89%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E6%94%BB%E6%92%83-cve-2017-5715-cve-2017-5753-cve-2017-5754-%E3%83%87%E3%83%ABemc%E8%A3%BD%E5%93%81-dell-enterprise%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E5%8F%8A%E3%81%B3%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AD%E3%83%B3%E3%82%B0-%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF?lang=ja
 富士通：PC（日本語）https://www.fmworld.net/biz/common/info/20180109/、全般（英語）http://www.fujitsu.com/global/support/products/software/security/products-f/jvn-93823979e.html
 Getac：http://intl.getac.com/aboutgetac/activities/activities_2018011042.html

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

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

インテルはクライアントPC向けのベンチマークで第6世代 - 第8世代Coreアーキテクチャについてベンチマーク結果は6 - 8%程度になると発表したhttps://www.itmedia.co.jp/enterprise/articles/1801/12/news051.html。

インプレスは、NVMeやSATAインターフェースのSSDでランダムアクセス性能の一部が大幅に低下するとの実験結果を公表したhttps://akiba-pc.watch.impress.co.jp/docs/sp/1101498.html。

 脚注 

 関連項目 
 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 の記事
 (最新の各ベンダーの情報へのリンクが随時更新されている)

Category:投機的実行のセキュリティ脆弱性
Category:X86アーキテクチャ
Category:ハードウェアバグ