Protección de las máquinas virtuales invitadas frente a CVE-2017-5715 (inserción de destino de bifurcación)Protecting guest virtual machines from CVE-2017-5715 (branch target injection)

En esta página se ofrece información adicional sobre cómo proteger las máquinas virtuales en hosts de Hyper-V frente a CVE-2017-5715 (inserción de destino de bifurcación).This page provides additional detail about protecting virtual machines on Hyper-V hosts from CVE-2017-5715 (branch target injection). Para obtener instrucciones generales sobre Windows Server, consulta esta página.For general Windows Server guidance, please refer to this page.

Debes realizar los siguientes pasos para garantizar la protección de las máquinas virtuales:The following steps are required to ensure that your virtual machines are protected:

  1. Actualizar el sistema operativo del host.Update the host operating system.
  2. Asegurarse de que el host de virtualización se ha actualizado al firmware que incluye las actualizaciones de CVE-2017-5715.Ensure the virtualization host has been updated to firmware which contains updates for CVE-2017-5715.
  3. Asegurarse de que Hyper-V está configurado para mostrar las nuevas funcionalidades del procesador a las máquinas virtuales invitadas.Ensure Hyper-V is configured to expose new processor capabilities to guest virtual machines.
  4. Actualizar el sistema operativo invitado según sea necesario.Update the guest operating system as required.
  5. Realizar un arranque en frío de las máquinas virtuales invitadas.Perform a cold boot of guest virtual machines.

Actualizar el sistema operativo del hostUpdate the host operating system

Aplica la actualización del sistema operativo Windows al host de virtualización.Apply the Windows operating system update to the virtualization host. Para obtener más información sobre cómo habilitar esta actualización, consulta el Artículo 4072699 de Microsoft Knowledge Base.For details about how to enable this update, see Microsoft Knowledge Base article 4072699.

Asegurarse de que el host de virtualización se ha actualizado al firmware que incluye las actualizaciones de CVE-2017-5715Ensure the virtualization host has been updated to firmware which contains updates for CVE-2017-5715

Las actualizaciones de firmware de tu OEM pueden incluir nuevas funcionalidades del procesador que pueden usarse para protegerse frente a 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). Una vez que el firmware del host de virtualización se ha actualizado, el hipervisor puede poner a disposición de las máquinas virtuales invitadas estas funcionalidades adicionales después de realizar los siguientes pasos.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.

Asegurarse de que Hyper-V está configurado para mostrar las nuevas funcionalidades del procesador a las máquinas virtuales invitadas.Ensure Hyper-V is configured to expose new processor capabilities to guest virtual machines

Asegúrese de que Hyper-V está configurado para exponer las nuevas capacidades del procesador en las máquinas virtuales invitadas.Ensure that Hyper-V is configured to expose the new processor capabilities into guest virtual machines. Esta configuración se basa en la Versión de la máquina virtual de las máquinas virtuales invitadas.This configuration is based on the VM version of the guest virtual machines.

Si la versión de todas las máquinas virtuales en el host es la versión 8.0 o superior, no se necesita realizar ninguna configuración.If all of the virtual machines on the host are VM version 8.0 or higher, then no configuration is required. Estas máquinas virtuales verán las nuevas funcionalidades del procesador después de un arranque en frío.These virtual machines will see the new processor capabilities after a cold boot.

Si hay alguna máquina virtual con una versión inferior a 8.0, debes establecer un valor del Registro específico en el sistema operativo del host.If there are any virtual machines with VM version below 8.0, you must set a specific registry value on the host operating system. Esto configurará Hyper-V para mostrar las nuevas funcionalidades del procesador en las máquinas virtuales invitadas con versiones de VM inferiores.This will configure Hyper-V to expose the new processor capabilities into guest virtual machines with lower VM versions.

El valor del Registro es MinVmVersionForCpuBasedMitigations en HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization.That registry value is MinVmVersionForCpuBasedMitigations under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization. El valor debe establecerse en la versión mínima de máquina virtual que necesita acceso a las funcionalidades de firmware actualizado, en el formato "Major.Minor".The value should be set to the minimum VM version that needs access to the updated firmware capabilities, in the format “Major.Minor”. Para mostrar el firmware a todas las máquinas virtuales en el host (es decir, versión 1.0 y superior), ejecuta el siguiente comando en el host: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

Nota: la versión 8,0 de la máquina virtual se presentó con Windows Server 2016 y la actualización de aniversario de Windows 10. Los hosts que ejecutan Windows Server 2012 R2 y versiones anteriores deben establecer el valor del registroNote: 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

ADVERTENCIA: se producirá un error en la migración en vivo entre los hosts con el firmware actualizado y los hosts sin el firmware actualizado. Para obtener más información, consulte las preguntas más frecuentes en la parte inferior de este documento.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.

Opcional: configuración de sistemas Intel anteriores a Skylake para usar RetpolineOptional: Configure pre-Skylake Intel systems to use Retpoline

ADVERTENCIA: la configuración de máquinas virtuales en hosts de Intel preSkylake para Retpoline bloqueará la migración en vivo a los hosts más recientes (es decir, Skylake y versiones posteriores).Warning: configuring VMs on pre-Skylake Intel hosts for Retpoline will block live migration to newer hosts (i.e. Skylake and beyond).

De forma predeterminada, las máquinas virtuales que se ejecutan en sistemas preSkylakes no pueden usar retpoline.By default, virtual machines running on pre-Skylake systems are prevented from using retpoline. Para permitir que estos sistemas aprovechen las mitigaciones basadas en retpoline, establezca RetsPredictedFromRsbOnly en HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization en 1.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

Para invertir esta configuración (es decir, impedir que las máquinas virtuales aprovechen retpoline), establezca RetsPredictedFromRsbOnly en 0.To reverse this configuration (i.e. prevent virtual machines from leveraging retpoline), set RetsPredictedFromRsbOnly to 0.

Actualizar el sistema operativo invitadoUpdate the guest operating system

Para completar la protección frente a CVE-2017-5715 en estas máquinas virtuales, el sistema operativo invitado debe actualizarse y configurarse para sacar partido de estas nuevas funcionalidades.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. En el caso de sistemas operativos de Microsoft, sigue las instrucciones indicadas en este artículo al realizar la actualización.For Microsoft operating systems, please follow the guidance in this article when updating.

Nota: la actualización del sistema operativo invitado puede producirse en cualquier momento de este proceso. Puede producirse antes de actualizar el firmware del host o después de arrancar en frío la máquina virtual invitada.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.

Realizar un arranque en frío de las máquinas virtuales invitadasPerform a cold boot of the guest

Después de completar los tres primeros pasos, las máquinas virtuales deben someterse a un arranque en frío para ver las nuevas funcionalidades del procesador.After completing the first three steps, virtual machines must go through a cold boot to see the new processor capabilities. Esto significa que las máquinas virtuales en ejecución deben apagarse por completo antes de iniciarse de nuevo.This means the running VMs must completely power off before starting again. Reiniciar desde el sistema operativo invitado no es suficiente.Rebooting from inside the guest operating system is not sufficient.

Preguntas más frecuentesFrequently Asked Questions

¿Cómo afecta esto a la migración en vivo?How does this impact live migration?

Se producirá un error en la migración en vivo de una máquina virtual con las nuevas funcionalidades del procesador al migrar a hosts de Hyper-V sin el firmware actualizado.Live migration of a virtual machine with the new processor capabilities will fail when moving to Hyper-V hosts without updated firmware. Para habilitar la migración en vivo a un host sin el firmware actualizado, deja de mostrar las funcionalidades actualizadas del procesador en dicha máquina virtual invitada.To enable live migration to a host without updated firmware, stop exposing the updated processor capabilities within that guest virtual machine. La forma más sencilla es modificar MinVmVersionForCpuBasedMitigations a una versión de máquina virtual (VM) superior a la de la máquina virtual que necesita migrar y realizar un arranque en frío de dicha máquina virtual.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.

La migración de máquinas virtuales sin las nuevas funcionalidades del procesador se realizará correctamente al migrar a hosts de Hyper-V con el firmware actualizado.Migration of virtual machines without the new processor capabilities will succeed when moving to Hyper-V hosts with updated firmware. Sin embargo, es necesario realizar un arranque en frío para que estas máquinas virtuales invitadas vean las funcionalidades de firmware actualizadas.However, a cold boot is required for these guests to see the updated firmware capabilities.

Las máquinas virtuales configuradas para usar Retpoline en sistemas de Intel de preSkylake no se podrán migrar a familias de procesadores más recientes (es decir, Skylake y versiones más recientes).Virtual machines configured to use Retpoline on pre-Skylake Intel systems will fail to migrate to newer processor families (i.e. Skylake and newer).

¿Qué sucede con la migración en vivo de las máquinas virtuales con la versión 5.0 entre Windows Server 2012 R2 y Windows Server 2016?What about live migration of version 5.0 virtual machines between Windows Server 2012R2 and Windows Server 2016?

Para garantizar una migración correcta en este escenario, el valor del Registro debe establecerse tanto en el sistema Windows Server 2012 R2 como en el sistema 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. Después de migrar a Windows Server 2016, la versión de la máquina virtual seguirá siendo 5.0 y, por tanto, se necesita la clave de registro para mostrar las nuevas funcionalidades del procesador a la máquina virtual.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.

¿Estas instrucciones se aplican a las máquinas virtuales que se ejecutan en VMWare?Does this guidance apply to virtual machines running on VMWare?

No, estas instrucciones están destinadas específicamente a las máquinas virtuales que se ejecutan en hosts de Hyper-V.No, this guidance is specific to virtual machines running on Hyper-V hosts.

¿Estas instrucciones se aplican a Hyper-V en Windows 10?Does this guidance apply to Hyper-V on Windows 10?

Sí, se aplican los mismos pasos a las máquinas virtuales que se ejecutan tanto en Windows Server como en Client.Yes, the same steps apply for virtual machines running on both Windows Server and Client.

¿Necesito instalar las actualizaciones de firmware antes de realizar un arranque en frío de las máquinas virtuales?Do I need to install the firmware updates before performing a cold boot of the virtual machines?

Sí, debes actualizar el firmware y sistema operativo del host antes de realizar un arranque en frío de las máquinas virtuales.Yes, you need to update the host operating system and firmware before cold booting your virtual machines.

¿Qué puedo hacer si mi OEM no ofrece aún un firmware actualizado?What can I do if my OEM does not yet provide an updated firmware?

Echa un vistazo a Protecciones alternativas para hosts de Hyper-V de Windows Server 2016 frente a vulnerabilidades de canal lateral de ejecución especulativaPlease check out the Alternative protections for Windows Server 2016 Hyper-V Hosts against the speculative execution side-channel vulnerabilities

¿Cómo compruebo la versión de mis máquinas virtuales?How do I check the VM version for my virtual machines?

Ejecuta el siguiente PowerShell en el host de Hyper-V:Run the following PowerShell on the Hyper-V host:

Get-VM * | Format-Table Name, Version  

¿Necesito hacer algo diferente para proteger las máquinas virtuales que se ejecutan en el "Modo de compatibilidad de procesador"?Do I need to do something different to protect virtual machines running under "Processor Compatibility Mode"?

No.No. Después de seguir las instrucciones de esta página, las nuevas funcionalidades del procesador también se mostrarán a las máquinas virtuales que se inicien en el modo de compatibilidad de procesador.After following the instructions on this page, the new processor capabilities will also be exposed to virtual machines started in processor compatibility mode.

¿Qué ocurre si solo la mitad de las máquinas de mi clúster han recibido una actualización de firmware?What if only half of the machines in my cluster have received a firmware update?

Esto afectará a la migración en vivo en el clúster.This will impact live migration within your cluster. Las máquinas virtuales con las nuevas funcionalidades del procesador ya no podrán migrar en vivo a hosts sin la actualización de firmware.Virtual machines with the new processor capabilities will not be able to live migrate to hosts without the firmware update.

¿Cómo puedo comprobar que la máquina virtual invitada tiene acceso a las nuevas características del procesador?How can I validate that the guest virtual machine has access to the new processor features?

Usa el módulo/script de PowerShell "control de especulación".Use the "speculation control" PowerShell module/script. Consulta esta página para obtener instrucciones detalladas.See this page for detailed instructions.