Protección de las máquinas virtuales invitadas frente a CVE-2017-5715 (inserción de destino de bifurcación)
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). Para obtener instrucciones generales sobre Windows Server, consulta esta página.
Debes realizar los siguientes pasos para garantizar la protección de las máquinas virtuales:
- Actualizar el sistema operativo del host.
- Asegurarse de que el host de virtualización se ha actualizado al firmware que incluye las actualizaciones de CVE-2017-5715.
- Asegurarse de que Hyper-V está configurado para mostrar las nuevas funcionalidades del procesador a las máquinas virtuales invitadas.
- Actualizar el sistema operativo invitado según sea necesario.
- Realizar un arranque en frío de las máquinas virtuales invitadas.
Actualizar el sistema operativo del host
Aplica la actualización del sistema operativo Windows al host de virtualización. Para obtener más información sobre cómo habilitar esta actualización, consulta el Artículo 4072699 de Microsoft Knowledge Base.
Asegurarse de que el host de virtualización se ha actualizado al firmware que incluye las actualizaciones de 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). 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.
Asegurarse de que Hyper-V está configurado para mostrar las nuevas funcionalidades del procesador a las máquinas virtuales invitadas.
Asegúrese de que Hyper-V está configurado para exponer las nuevas funcionalidades de procesador en máquinas virtuales invitadas. Esta configuración se basa en la Versión de la máquina virtual de las máquinas virtuales invitadas.
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. Estas máquinas virtuales verán las nuevas funcionalidades del procesador después de un arranque en frío.
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. Esto configurará Hyper-V para mostrar las nuevas funcionalidades del procesador en las máquinas virtuales invitadas con versiones de VM inferiores.
El valor del Registro es MinVmVersionForCpuBasedMitigations en 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". 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:
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 máquina virtual se incluyó en Windows Server 2016 y en la Actualización de aniversario de Windows 10. Los hosts que ejecutan Windows Server 2012 R2 y versiones inferiores deben establecer el valor del Registro
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, consulta las Preguntas más frecuentes en la parte inferior de este documento.
Opcional: Configuración de sistemas Intel anteriores a Skylake para usar Retpoline
Advertencia: la configuración de máquinas virtuales en hosts de Intel anteriores a Skylake para Retpoline bloqueará la migración en vivo a hosts más recientes (es decir, Skylake y versiones posteriores).
De forma predeterminada, las máquinas virtuales que se ejecutan en sistemas anteriores a Skylake no pueden usar retpoline. Para permitir que estos sistemas aprovechen las mitigaciones basadas en retpoline, establezca RetsPredictedFromRsbOnly en HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization1.
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 la retpoline), establezca en RetsPredictedFromRsbOnly0.
Actualizar el sistema operativo invitado
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. En el caso de sistemas operativos de Microsoft, sigue las instrucciones indicadas en este artículo al realizar la actualización.
Nota: La actualización del sistema operativo invitado puede producirse en cualquier momento durante este proceso. Puede producirse antes de actualizar el firmware del host o después de arrancar en frío la máquina virtual invitada.
Realizar un arranque en frío de las máquinas virtuales invitadas
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. Esto significa que las máquinas virtuales en ejecución deben apagarse por completo antes de iniciarse de nuevo. Reiniciar desde el sistema operativo invitado no es suficiente.
Preguntas más frecuentes
¿Cómo afecta esto a la migración en vivo?
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. 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. 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.
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. Sin embargo, es necesario realizar un arranque en frío para que estas máquinas virtuales invitadas vean las funcionalidades de firmware actualizadas.
Las máquinas virtuales configuradas para usar Retpoline en sistemas Intel anteriores a Skylake no se migrarán a familias de procesadores más recientes (es decir, Skylake y versiones más recientes).
¿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?
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. 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.
¿Estas instrucciones se aplican a las máquinas virtuales que se ejecutan en VMWare?
No, estas instrucciones están destinadas específicamente a las máquinas virtuales que se ejecutan en hosts de Hyper-V.
¿Estas instrucciones se aplican a Hyper-V en Windows 10?
Sí, se aplican los mismos pasos a las máquinas virtuales que se ejecutan tanto en Windows Server como en Client.
¿Necesito instalar las actualizaciones de firmware antes de realizar un arranque en frío de las máquinas virtuales?
Sí, debes actualizar el firmware y sistema operativo del host antes de realizar un arranque en frío de las máquinas virtuales.
¿Qué puedo hacer si mi OEM no ofrece aún un firmware actualizado?
Echa un vistazo a Protecciones alternativas para hosts de Hyper-V de Windows Server 2016 frente a vulnerabilidades de canal lateral de ejecución especulativa
¿Cómo compruebo la versión de mis máquinas virtuales?
Ejecuta el siguiente PowerShell en el host de Hyper-V:
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"?
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.
¿Qué ocurre si solo la mitad de las máquinas de mi clúster han recibido una actualización de firmware?
Esto afectará a la migración en vivo en el clúster. 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.
¿Cómo puedo comprobar que la máquina virtual invitada tiene acceso a las nuevas características del procesador?
Usa el módulo/script de PowerShell "control de especulación". Consulta esta página para obtener instrucciones detalladas.