スポンサーリンク
2018年1月から大きな話題となっているCPU脆弱性「Meltdown/Spectre」の影響を緩和するためのWindows Updateが提供されました。最新のWindows 10 (Fall Creators Update済み)に対応するWindows Updateは「KB4056892」ですが、このアップデートが適用済みかどうかを確認したときの手順を紹介します。
目次
スポンサーリンク
CPU脆弱性に対応するWindows Updateが適用済みか確認する手順
ここから、3種類の確認方法を紹介します。
冒頭の2つの方法が手軽にできる方法で、3番目はコマンドラインを利用する、少し高度な方法です。
方法1:「更新プログラムのインストール履歴を表示」を使う方法
まず、画面左下の「スタート」ボタン→「設定(歯車)」とクリックして、設定画面を表示します(Win+Xを押した後にN、も便利)。
次に、設定項目一覧の中の一番最後にある「更新とセキュリティ」をクリックします。
すると「Windows Update」の画面が表示されるので(別のタブが表示されていたら、左の一覧から「Windows Update」を選択)、「更新プログラムのインストール履歴を表示」をクリックします。
すると「更新プログラムのインストール履歴を表示」画面が表示されます。この画面の下段にある「品質更新プログラム」の中に、「KB4056892」というものがあれば、適用済みです(Windowsのバージョンによって、「KB4056890」や「KB4056891」の場合があるものの、最新のWindows 10には「KB4056892」)。
※画像には、「2018-01 x64 ベース システム用 Windows 10 Version 1709 の累積更新プログラム (KB4056892)」とあるが、ここの「Version 1709」が、現在最新の「Windows 10 Fall Creators Update」向けであることを指す。
方法2:「インストールされた更新プログラム」を使う方法
その画面の場合、表示されるアップデート数が少ないので、場合によっては「インストールされた更新プログラム」という画面から確認した方が良い場合もあります。
まず、画面左下の「スタート(Windowsロゴ)」ボタンを右クリックしてから「アプリと機能」を選択します。
そして、画面右にある「プログラムと機能」をクリックします。
「プログラムのアンインストールまたは変更」が表示されるので、左のメニューから「インストールされた更新プログラムを表示」をクリックします。
すると、ここでも(先ほどの画面より少し詳細な)更新プログラムの一覧を確認することができます:
方法3:PowerShellから「Get-SpeculationControlSettings」を使う方法
まったく別の方法として、PowerShellから「Get-SpeculationControlSettings」コマンド(Microsoftの英語マニュアル)を利用して、CPU脆弱性「Spectre」の対応状況を調べる方法が利用可能です。
まず、管理者としてPowerShellを起動します(スタートボタンを右して「Windows PowerShell(管理者)」を選択)。
実行するコマンド
そして、以下のコマンドを順番に実行します。
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> Install-Module SpeculationControl PS C:\WINDOWS\system32> $SaveExecutionPolicy = Get-ExecutionPolicy PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned -Scope Currentuser PS C:\WINDOWS\system32> Import-Module SpeculationControl PS C:\WINDOWS\system32> Get-SpeculationControlSettings PS C:\WINDOWS\system32> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
最後から2番目の「Get-SpeculationControlSettings」コマンドの結果が最終的に知りたい情報で、その前後は事前準備と事後処理(元に戻す処理)となります。
コマンドの実行結果
これらのコマンドの実行結果がこちらです:
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> Install-Module SpeculationControl 続行するには NuGet プロバイダーが必要です PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または 'C:\Users\did2\AppData\Local\PackageManagement\ProviderAssemblies' に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y 信頼されていないリポジトリ 信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery' からモジュールをインストールしますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y PS C:\WINDOWS\system32> $SaveExecutionPolicy = Get-ExecutionPolicy PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned -Scope Currentuser 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y PS C:\WINDOWS\system32> Import-Module SpeculationControl PS C:\WINDOWS\system32> Get-SpeculationControlSettings Speculation control settings for CVE-2017-5715 [branch target injection] Hardware support for branch target injection mitigation is present: False Windows OS support for branch target injection mitigation is present: True Windows OS support for branch target injection mitigation is enabled: False Windows OS support for branch target injection mitigation is disabled by system policy: False Windows OS support for branch target injection mitigation is disabled by absence of hardware support: True Speculation control settings for CVE-2017-5754 [rogue data cache load] Hardware requires kernel VA shadowing: True Windows OS support for kernel VA shadow is present: True Windows OS support for kernel VA shadow is enabled: True Windows OS support for PCID performance optimization is enabled: True [not required for security] Suggested actions * Install BIOS/firmware update provided by your device OEM that enables hardware support for the branch target injection mitigation. BTIHardwarePresent : False BTIWindowsSupportPresent : True BTIWindowsSupportEnabled : False BTIDisabledBySystemPolicy : False BTIDisabledByNoHardwareSupport : True KVAShadowRequired : True KVAShadowWindowsSupportPresent : True KVAShadowWindowsSupportEnabled : True KVAShadowPcidEnabled : True PS C:\WINDOWS\system32> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y PS C:\WINDOWS\system32>
結果の見方
コマンドの出力結果に水色で表示されている見出し「Speculation control settings for CVE-2017-5715 [branch target injection]」のセクションと「Speculation control settings for CVE-2017-5754 [rogue data cache load]」のセクションの赤色表示がなく、全て緑色で表示された場合にSpectreに対する保護が完全に有効、と判断してよいようなのですが、ここではまだ赤い出力が4つ残っています。
しかし、こちらの記事で紹介されているとおり、Windows Updateを適用してはじめて「Windows OS support for branch target injection mitigation is present: True」という緑色の行が現れるため、ここだけを見てひとまず「Windows Update済みだ」ということは判定できる模様です(※全てを緑色にするには、Microsoftではなく、ハードウェアベンダーが提供するファームウェアアップデートが必要)。
「KB4056892」の表示の今後について
今後の大型アップデートなどにより、「KB4056892」とは表示されなくなったり、別のアップデートプログラムにだいたいされたりして、「対策が実施済み」であることと、「KB4056892が表示されること」が一致しなくなる可能性もあります。
つまり、「KB4056892と表示されれば、対応アップデート済み」というのは確かですが、「KB4056892と表示されないから、対応アップデートが絶対にされていないんだ」ということは今後崩れていくものと思われます。
スポンサーリンク
スポンサーリンク