CVE-2017-5715 (分岐先インジェクション) からのゲスト仮想マシンの保護Protecting guest virtual machines from CVE-2017-5715 (branch target injection)

このページでは、CVE-2017-5715 (分岐先インジェクション) から Hyper-V ホスト上の仮想マシンを保護する際の詳細について説明します。This page provides additional detail about protecting virtual machines on Hyper-V hosts from CVE-2017-5715 (branch target injection). Windows Server の一般的なガイダンスについては、このページを参照してください。For general Windows Server guidance, please refer to this page.

仮想マシンが保護されていることを確認するには、次の手順を実行する必要があります。The following steps are required to ensure that your virtual machines are protected:

  1. ホスト オペレーティング システムを更新します。Update the host operating system.
  2. 仮想化ホストが CVE-2017-5715 に対応した更新プログラムを含むファームウェアに更新されていることを確認します。Ensure the virtualization host has been updated to firmware which contains updates for CVE-2017-5715.
  3. ゲスト仮想マシンに新しいプロセッサの機能を公開するように Hyper-V が構成されていることを確認します。Ensure Hyper-V is configured to expose new processor capabilities to guest virtual machines.
  4. 必要に応じて、ゲスト オペレーティング システムを更新します。Update the guest operating system as required.
  5. ゲスト仮想マシンのコールド ブートを実行します。Perform a cold boot of guest virtual machines.

ホスト オペレーティング システムを更新するUpdate the host operating system

仮想化ホストに Windows オペレーティング システムの更新プログラムを適用します。Apply the Windows operating system update to the virtualization host. この更新プログラムを有効にする方法については、マイクロソフト サポート技術情報 4072699 を参照してください。For details about how to enable this update, see Microsoft Knowledge Base article 4072699.

仮想化ホストが CVE-2017-5715 に対応した更新プログラムを含むファームウェアに更新されていることを確認するEnsure the virtualization host has been updated to firmware which contains updates for CVE-2017-5715

OEM から提供されるファームウェアの更新プログラムに、CVE-2017-5715 (IBRS、STIBP、IBPB) からの保護に使用できる新しいプロセッサの機能が含まれている可能性があります。Firmware updates from your OEM may contain new processor capabilities that can be used to protect against CVE-2017-5715 (IBRS, STIBP, IBPB). 仮想化ホストのファームウェアを更新した後、ハイパーバイザーで次の手順を実行すると、これらの追加機能をゲスト仮想マシンで利用できるようになります。Once the virtualization host's firmware has been updated, the hypervisor can make these additional capabilities available to guest virtual machines after taking the following steps.

ゲスト仮想マシンに新しいプロセッサの機能を公開するように Hyper-V が構成されていることを確認するEnsure Hyper-V is configured to expose new processor capabilities to guest virtual machines

新しいプロセッサ機能をゲスト仮想マシンに公開するように Hyper-v が構成されていることを確認します。Ensure that Hyper-V is configured to expose the new processor capabilities into guest virtual machines. この構成は、ゲスト仮想マシンの VM バージョンに基づいています。This configuration is based on the VM version of the guest virtual machines.

ホスト上のすべての仮想マシンが VM バージョン 8.0 以降である場合、構成は必要ありません。If all of the virtual machines on the host are VM version 8.0 or higher, then no configuration is required. これらの仮想マシンでは、コールド ブート後に、プロセッサの新機能が認識されます。These virtual machines will see the new processor capabilities after a cold boot.

VM バージョン 8.0 未満の仮想マシンがある場合は、ホスト オペレーティング システムで特定のレジストリ値を設定する必要があります。If there are any virtual machines with VM version below 8.0, you must set a specific registry value on the host operating system. これによって、以前の VM バージョンのゲスト仮想マシンに新しいプロセッサの機能を公開するように Hyper-V が構成されます。This will configure Hyper-V to expose the new processor capabilities into guest virtual machines with lower VM versions.

このレジストリ値は、MinVmVersionForCpuBasedMitigations の下にある HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization です。That registry value is MinVmVersionForCpuBasedMitigations under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization. 値は、最新のファームウェア機能にアクセスする必要がある最低限の VM バージョン (メジャー.マイナー形式) に設定する必要があります。The value should be set to the minimum VM version that needs access to the updated firmware capabilities, in the format “Major.Minor”. ホスト上のすべての仮想マシンにファームウェア (つまりバージョン 1.0 以上) を公開するには、ホストで次のコマンドを実行します。To expose the firmware to all virtual machines on the host (i.e. version 1.0 and above), run the following command on the host:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

注: VM バージョン8.0 は、Windows Server 2016 と Windows 10 記念日更新プログラムで導入されました。 Windows Server 2012 R2 以降を実行しているホストでは、レジストリ値を設定する必要がありますNote: VM Version 8.0 was introduced with Windows Server 2016 and the Windows 10 Anniversary Update. Hosts running Windows Server 2012 R2 and below must set the registry value

警告: 更新されたファームウェアとホストの間でライブマイグレーションが更新され、ファームウェアが更新されることはありません。 詳細については、このドキュメントの下部にある FAQ を参照してください。Warning: live migration will fail between hosts with the updated firmware and hosts without the updated firmware. For more details, see the FAQ at the bottom of this document.

省略可能: Skylake Intel Systems が retpoline を使用するように構成するOptional: Configure pre-Skylake Intel systems to use Retpoline

警告: Retpoline の Skylake Intel ホストで Vm を構成すると、新しいホストへのライブマイグレーション (つまり Skylake 以降) がブロックされます。Warning: configuring VMs on pre-Skylake Intel hosts for Retpoline will block live migration to newer hosts (i.e. Skylake and beyond).

既定では、Skylake システム上で実行されている仮想マシンは、retpoline を使用できません。By default, virtual machines running on pre-Skylake systems are prevented from using retpoline. これらのシステムが retpoline ベースの軽減策を利用できるようにするには、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization の下に RetsPredictedFromRsbOnly1に設定します。To allow these systems to leverage retpoline based mitigations, set RetsPredictedFromRsbOnly under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization to 1.

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v RetsPredictedFromRsbOnly /t REG_DWORD /d 1 /f

この構成を逆にする (つまり、仮想マシンが retpoline を利用できないようにする) には、RetsPredictedFromRsbOnly0に設定します。To reverse this configuration (i.e. prevent virtual machines from leveraging retpoline), set RetsPredictedFromRsbOnly to 0.

ゲスト オペレーティング システムを更新するUpdate the guest operating system

これらの仮想マシン内で CVE-2017-5715 に対する保護を完了するには、ゲスト オペレーティング システムを更新してこれらの新機能を利用するように構成する必要があります。To complete protection against CVE-2017-5715 within these virtual machines, the guest operating system must be updated and configured to take advantage of these new capabilities. Microsoft のオペレーティング システムの場合は、更新時にこの記事のガイダンスに従ってください。For Microsoft operating systems, please follow the guidance in this article when updating.

注: ゲストオペレーティングシステムの更新は、このプロセスでいつでも実行できます。 ホストのファームウェアを更新する前、またはゲストバーチャルマシンをコールドブートした後に発生する可能性があります。Note: updating the guest operating system can occur at any time in this process. It can occur before updating the host firmware or after cold booting the guest virtual machine.

ゲストのコールド ブートを実行するPerform a cold boot of the guest

最初の 3 つの手順を完了した後、新しいプロセッサ機能を参照するには仮想マシンのコールド ブートを実行する必要があります。After completing the first three steps, virtual machines must go through a cold boot to see the new processor capabilities. つまり、実行中の VM を完全に電源オフの状態にしてから、もう一度開始する必要があります。This means the running VMs must completely power off before starting again. ゲスト オペレーティング システム内から再起動するだけでは不十分です。Rebooting from inside the guest operating system is not sufficient.

よく寄せられる質問Frequently Asked Questions

これはライブ マイグレーションにどのように影響しますか。How does this impact live migration?

新しいプロセッサ機能を備えた仮想マシンのライブ マイグレーションは、ファームウェアが更新されていない Hyper-V ホストに移行するときに失敗します。Live migration of a virtual machine with the new processor capabilities will fail when moving to Hyper-V hosts without updated firmware. ファームウェアが更新されていないホストへのライブ マイグレーションを有効にするには、ゲスト仮想マシン内で更新されたプロセッサ機能を公開することを停止します。To enable live migration to a host without updated firmware, stop exposing the updated processor capabilities within that guest virtual machine. これを行う最も簡単な方法は、MinVmVersionForCpuBasedMitigations を、移行する必要がある仮想マシンの VM バージョンよりも大きい値に変更し、その仮想マシンのコールド ブートを実行することです。The easiest way to do this is to modify MinVmVersionForCpuBasedMitigations to a VM version above that of the virtual machine that needs to migrate, and perform a cold boot of that virtual machine.

新しいプロセッサ機能を備えていない仮想マシンの移行は、ファームウェアが更新されている Hyper-V ホストに移行する場合は成功します。Migration of virtual machines without the new processor capabilities will succeed when moving to Hyper-V hosts with updated firmware. ただし、これらのゲストで更新されたファームウェア機能を確認するには、コールド ブートを実行する必要があります。However, a cold boot is required for these guests to see the updated firmware capabilities.

Skylake の Intel システムで Retpoline を使用するように構成された仮想マシンは、新しいプロセッサファミリ (つまり、Skylake 以降) に移行できません。Virtual machines configured to use Retpoline on pre-Skylake Intel systems will fail to migrate to newer processor families (i.e. Skylake and newer).

Windows Server 2012R2 と Windows Server 2016 の間で、バージョン 5.0 の仮想マシンのライブ マイグレーションを実行するとどうなりますか。What about live migration of version 5.0 virtual machines between Windows Server 2012R2 and Windows Server 2016?

このシナリオを成功させるには、Windows Server 2012R2 システムと Windows Server 2016 システムの両方でレジストリ値を設定する必要があります。To ensure success in this scenario, the registry value must set on both the Windows Server 2012R2 system and the Windows Server 2016 system. Windows Server 2016 に移行した後も、VM バージョンは 5.0 のままであるため、仮想マシンに新しいプロセッサ機能を公開するにはレジストリ キーが必要です。After migrating onto Windows Server 2016, the VM version will remain 5.0, and thus the registry key is required to expose the new processor capabilities to the virtual machine.

このガイダンスは、VMware で実行される仮想マシンに適用されますか。Does this guidance apply to virtual machines running on VMWare?

いいえ。このガイダンスは、Hyper-V ホストで実行されている仮想マシンに固有です。No, this guidance is specific to virtual machines running on Hyper-V hosts.

このガイダンスは、Windows 10 の Hyper-V に適用されますか。Does this guidance apply to Hyper-V on Windows 10?

はい。Windows Sever とクライアントの両方で実行される仮想マシンに同じ手順が適用されます。Yes, the same steps apply for virtual machines running on both Windows Server and Client.

仮想マシンのコールド ブートを実行する前に、ファームウェア更新プログラムをインストールする必要がありますか。Do I need to install the firmware updates before performing a cold boot of the virtual machines?

はい。仮想マシンのコールド ブートを実行する前に、ホスト オペレーティング システムとファームウェアを更新する必要があります。Yes, you need to update the host operating system and firmware before cold booting your virtual machines.

まだ OEM が更新されたファームウェアを提供していない場合は、どうすればよいですか。What can I do if my OEM does not yet provide an updated firmware?

投機的実行のサイドチャネルの脆弱性から Windows Server 2016 Hyper-V ホストを保護するための代替手段」を参照してください。Please check out the Alternative protections for Windows Server 2016 Hyper-V Hosts against the speculative execution side-channel vulnerabilities

仮想マシンの VM バージョンを確認する方法を教えてください。How do I check the VM version for my virtual machines?

Hyper-V ホスト上で次の PowerShell コマンドを実行します。Run the following PowerShell on the Hyper-V host:

Get-VM * | Format-Table Name, Version  

"プロセッサ互換性モード" で実行されている仮想マシンを保護するために、何か異なる処理を行う必要がありますか。Do I need to do something different to protect virtual machines running under "Processor Compatibility Mode"?

No:No. このページで説明した手順に従うと、プロセッサ互換性モードで起動された仮想マシンにも新しいプロセッサ機能が公開されます。After following the instructions on this page, the new processor capabilities will also be exposed to virtual machines started in processor compatibility mode.

クラスター内の半分のコンピューターにのみファームウェアの更新プログラムが適用されている場合はどうなりますか。What if only half of the machines in my cluster have received a firmware update?

これは、クラスター内のライブ マイグレーションに影響します。This will impact live migration within your cluster. 新しいプロセッサ機能を備えている仮想マシンは、ファームウェアが更新されていないホストへのライブ マイグレーションを実行できません。Virtual machines with the new processor capabilities will not be able to live migrate to hosts without the firmware update.

ゲスト仮想マシンが新しいプロセッサ機能にアクセスできることを検証する方法を教えてください。How can I validate that the guest virtual machine has access to the new processor features?

"投機実行の制御" に関連する PowerShell モジュール/スクリプトを使用します。Use the "speculation control" PowerShell module/script. 詳細な手順については、このページを参照してください。See this page for detailed instructions.