2018年初頭に明らかになったCPU脆弱性「Meltdown」と「Spectre」への対応で慌ただしい1月となった。これら2つの脆弱性の詳細については、関連記事で把握していただきたいが、Intel/AMD/ARMといった各メーカーのCPUが対象で、PCはもちろんスマートフォン、IoT機器など幅広いデバイスに影響が及ぶ。この脆弱性を悪用した攻撃も確認されはじめている。

  • 2018年初頭は2つのCPU脆弱性で混乱が生じた

    2018年初頭は2つのCPU脆弱性で混乱が生じた

  • 2018年1月3日にIntelが公開した声明

    2018年1月3日にIntelが公開した声明

問題が明らかとなって以降は、早いものではその週内からパッチがリリースされており、ユーザーとしては早めに対策をとる必要がある。

ここからはPCを中心に話を進める。今回のパッチを適用する際に次の3点が懸念となっている。

  1. パッチによってシステムが不安定になるおそれがある
  2. パッチによってシステムパフォーマンスが低下するおそれがある
  3. パッチがキャンセルされるなど混乱を招いている

1については、旧環境で影響が大きいが、Kaby LakeやSkylakeなどのまだ新しい世代でも話題に上がっている。Haswell/Broadwell以前のDDR3メモリを用いる世代については、おそらくハードウェアに起因する問題だろう。

一方でKaby Lake/Skylake世代については、筆者も1回目はトラブルが生じたが2回目はノートラブル(パフォーマンスの低下は感じられる)といったところで、パッチによるものかそもそもシステムが不安定なところにトドメを刺されたかの切り分けが難しい。

2については、多くの方が気になるところだろう。使っているPCの使い勝手、快適度がガラリと変わってはたまらない。今回の脆弱性は、CPUの投機的実行という特定の条件下に起こるため、利用シーンに応じて影響の大小が起こる。Intelのベンチマークである程度把握できるが、今回は、それをもう少し身近なシチュエーションに即して検証してみようと思う。

最後の3については、メーカーの努力を願うほかない。Intelが提供するマイクロコードを導入したところ、再起動が繰り返されるなどの問題が発生するとの報告があった。

Intelはこのマイクロコードの導入をやめるように推奨したほか、MicrosoftはIntelのSpectre対策を無効とするパッチをリリースするなど混乱が生じている。できるだけ早く、安定版が再リリースされることを願うほかない。

  • Intelは2018年1月22日に脆弱性に対応したマイクロコードの導入中止を呼びかけ

    Intelは2018年1月22日に脆弱性に対応したマイクロコードの導入中止を呼びかけ

脆弱性の穴を埋めるためには複数の作業が必要

今回の脆弱性の穴を埋めるためには、Windows PCでは、2~3つの作業が必要となる。まずWindowsアップデート、続いてCPU(マザーボード)のファームウェア(UEFI/BIOS)、そしてGPUのドライバもアップデートが必要となる場合がある。今回は以下の検証環境を例に進める。

CPU Intel Core i7-8700K
マザーボード MSI Z370 GAMING PRO CARBON(Intel Z370)
メモリ Kingston HyperX Fury DDR4 HX424C15FB2K2/16
(PC4-19200 DDR4 SDRAM、8GB×2)
グラフィックスカード NVIDIA GeForce GTX 1070
システムSSD Micron Crucial MX300 CT750MX300SSD1
(Serial ATA 3.0、3D TLC、750GB)
データSSD Micron Crucial MX300 CT1050MX300SSD1
(Serial ATA 3.0、3D TLC、1050GB)
OS Microsoft Windows 10 Pro 64bit

作業の流れとしては、マザーボード、Windows、グラフィックスカードの順にアップデートを適用すればよいだろう。マザーボードの作業は、まずメーカーの製品サポートサイトのBIOS欄を確認する。

今回の「Z370 GAMING PRO CARBON」であれば、マイクロコードの更新があった2017年12月25日付の7B45vA3をダウンロード、USBメモリに展開する。その後に再起動を行い、その際Deleteキーを押してUEFIセットアップ画面を呼び出す。

  • Z370 GAMING PRO CARBONは2017年12月25日付で対策

    Z370 GAMING PRO CARBONは2017年12月25日付でリリースされたBIOSで「Update Intel Micro Code for security vulnerabilities.」と記載されている

ここからはマザーボード製品毎に異なるが、MSI製品の場合は、UEFI画面上の「M-FLASH」から行う。M-FLASHをクリックすると再起動し、更新するBIOSファイルを選択する画面が表示されるので、USBメモリに保存した7B45vA3版のファイルを選択する。

ただし、前述した通り、Intelプラットフォームにおいて、UEFIのマイクロコード更新後に再起動が繰り返されることが確認されており、そうしたPCでは、マイクロコードの更新を「待った」方がよいとされている。

AMD CPUについても、アップデートが提供されている。こちらも、自作PCの場合はマザーボードメーカーの製品サポートサイトを、完成PCの場合はメーカーの製品サポートサイトをよく確認しておく必要があるだろう。

マザーボードのUEFIの更新後、続いてはWindowsを起動しWindowsアップデートをかける。「KB4056892」によって脆弱性対策が施されているが、その後一部のプラットフォームにおいて再起動が繰り返される不具合があったため、「KB4073290」が提供された。

  • Microsoftはこれを無効とするアップデートを配信

    脆弱性対策をほどこしたマイクロコードでシステムの再起動が繰り返されるため、Microsoftはこれを無効とするアップデートを配信

その後、「KB4078130」がIntelのマイクロコードの脆弱性対策を無効化する緊急パッチとしてリリースされている。基本的に、Windowsアップデート側は、最新の状態まで上げておくのがよいだろう。

最後にグラフィックスカードだ。VIDIAの場合、2018年1月8日付のVersion 390.65で対策が施されたので、それ以降のバージョンに上げよう。AMDのRadeonについては、Meltdown / Spectreともに影響がないとアナウンスされているが、今後の動向を注視すべきだ。

  • NVIDIAのサポートページではVersion 390.65で対策済み

    NVIDIAのサポートページではVersion 390.65で対策済みとしている

アップデートを行った後は、念のため脆弱性の穴を塞げているかを確認するとよい。セキュリティ関連会社のAshampooから、「Ashampoo Spectre Meltdown CPU Checker」が無償提供されているので、これで確認するのが手軽だろう。あくまでCPUが対象のようなので、グラフィックスカードドライバはGPU-Zなどのハードウェア情報確認ツールを用いるのが安心だ。