Protegendo máquinas virtuais convidadas contra CVE-2017-5715 (injeção de destino de ramificação)

Esta página fornece detalhes adicionais sobre a proteção de máquinas virtuais em hosts Hyper-V contra CVE-2017-5715 (injeção de destino de ramificação). Para obter orientações gerais do Windows Server, consulte esta página.

As seguintes etapas são necessárias para garantir que as máquinas virtuais estejam protegidas:

  1. Atualizar o sistema operacional do host.
  2. Garantir que o host de virtualização tenha sido atualizado para o firmware que contenha atualizações para CVE-2017-5715.
  3. Garantir que o Hyper-V esteja configurado para expor novos recursos de processador a máquinas virtuais convidadas.
  4. Atualizar o sistema operacional convidado conforme necessário.
  5. Realizar uma inicialização a frio de máquinas virtuais convidadas.

Atualizar o sistema operacional do host

Aplique a atualização do sistema operacional Windows ao host de virtualização. Para obter detalhes sobre como habilitar essa atualização, consulte o artigo 4072699 da Base de Dados de Conhecimento Microsoft.

Garantir que o host de virtualização tenha sido atualizado para o firmware que contenha atualizações para CVE-2017-5715

Atualizações de firmware de seu OEM podem conter novos recursos de processador que podem ser usados para proteger contra CVE-2017-5715 (IBRS, STIBP, IBPB). Depois que o firmware do host de virtualização for atualizado, o hipervisor poderá disponibilizar esses recursos adicionais a máquinas virtuais convidadas após seguir estas etapas.

Garantir que o Hyper-V esteja configurado para expor novos recursos de processador a máquinas virtuais convidadas

Verifique se o Hyper-V está configurado para expor os novos recursos do processador em máquinas virtuais convidadas. Essa configuração baseia-se na versão de VM das máquinas virtuais convidadas.

Se todas as máquinas virtuais no host tiverem a versão de VM 8.0 ou superior, nenhuma configuração será necessária. Essas máquinas virtuais verão os novos recursos de processador após uma inicialização a frio.

Se houver alguma máquina virtual com versão de VM inferior a 8.0, você deverá definir um valor do Registro específico no sistema operacional do host. Isso configurará o Hyper-V para expor os novos recursos de processador a máquinas virtuais convidadas com versões de VM inferiores.

Esse valor do Registro é MinVmVersionForCpuBasedMitigations em HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization. O valor deve ser definido para a versão mínima de VM que precisa de acesso aos recursos do firmware atualizado, no formato “Principal.Secundária”. Para expor o firmware a todas as máquinas virtuais no host (isto é, versão 1.0 e superiores), execute o seguinte comando no host:

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

A VM versão 8.0 foi introduzida com Windows Server 2016 e a Atualização de Aniversário do Windows 10. Os hosts que executam Windows Server 2012 R2 e abaixo devem definir o valor do Registro*

A migração dinâmica falhará entre hosts com o firmware e os hosts atualizados sem o firmware atualizado. A operação de início falhará no estado salvo. Para obter mais detalhes, consulte as perguntas frequentes na parte inferior deste artigo.

Opcional: configurar sistemas Intel pré-Skylake para usar o Retpoline

A configuração de VMs em hosts Intel pré-Skylake para Retpoline bloqueará a migração ao vivo para hosts mais recentes (ou seja, Skylake e além).

Por padrão, as máquinas virtuais em execução em sistemas pré-Skylake são impedidas de usar retpoline. Para permitir que esses sistemas aproveitem mitigações baseadas em retpoline, defina RetsPredictedFromRsbOnly em como 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 reverter essa configuração (ou seja, impedir que as máquinas virtuais aproveitam o repositório), defina RetsPredictedFromRsbOnly como 0.

Atualizar o sistema operacional convidado

Para concluir a proteção contra CVE-2017-5715 nessas máquinas virtuais, o sistema operacional convidado deve ser atualizado e configurado para tirar proveito desses novos recursos. Para sistemas operacionais Microsoft, siga as orientações neste artigo durante a atualização.

Observação: a atualização do sistema operacional convidado pode ocorrer a qualquer momento nesse processo. Pode ocorrer antes da atualização do firmware de host ou após a inicialização a frio da máquina virtual convidada.

Realizar uma inicialização a frio da máquina virtual convidada

Depois da conclusão das três primeiras etapas, as máquinas virtuais devem passar por uma inicialização a frio para ver os novos recursos de processador. Isso significa que as VMs em execução devem ser desligadas completamente antes de serem iniciadas novamente. A reinicialização de dentro do sistema operacional convidado não é suficiente.

Perguntas frequentes

Como isso afeta a migração dinâmica?

A migração dinâmica de uma máquina virtual com os novos recursos de processador falhará ao mudar para hosts Hyper-V sem o firmware atualizado. Para habilitar a migração dinâmica para um host sem o firmware atualizado, interrompa a exposição dos recursos do processador atualizado nessa máquina virtual convidada. A maneira mais fácil de fazer isso é modificando MinVmVersionForCpuBasedMitigations para uma versão de VM superior à da máquina virtual que precisa ser migrada e realizando uma inicialização a frio dessa máquina virtual.

A migração de máquinas virtuais sem os novos recursos de processador terá êxito ao mudar para hosts Hyper-V com o firmware atualizado. No entanto, uma inicialização a frio é necessária para essas convidadas verem os recursos do firmware atualizado.

As máquinas virtuais configuradas para usar o Retpoline em sistemas Intel pré-Skylake falharão ao migrar para famílias de processadores mais recentes (ou seja, Skylake e mais recentes).

E a migração dinâmica de máquinas virtuais de versão 5.0 entre o Windows Server 2012R2 e o Windows Server 2016?

Para garantir o êxito nesse cenário, defina o valor do Registro no sistema do Windows Server 2012R2 e do Windows Server 2016. Depois da migração para o Windows Server 2016, a versão de VM permanecerá sendo 5.0 e, portanto, a chave do Registro será necessária para expor os novos recursos de processador à máquina virtual.

Essa orientação se aplica a máquinas virtuais em execução no VMware?

Não, essa orientação é específica para máquinas virtuais em execução em hosts Hyper-V.

Essa orientação se aplica ao Hyper-V no Windows 10?

Sim, as mesmas etapas se aplicam a máquinas virtuais em execução no Windows Server e Client.

É necessário instalar as atualizações de firmware antes de realizar uma inicialização a frio das máquinas virtuais?

Sim, você precisa atualizar o sistema operacional e o firmware do host antes de realizar uma inicialização a frio de suas máquinas virtuais.

O que posso fazer se meu OEM ainda não fornecer um firmware atualizado?

Confira a Proteção alternativa para hosts Hyper-V do Windows Server 2016 contra as vulnerabilidades de canal de execução especulativa

Como verificar a versão de VM das minhas máquinas virtuais?

Execute o seguinte PowerShell no host Hyper-V:

Get-VM * | Format-Table Name, Version  

Preciso fazer algo diferente para proteger máquinas virtuais em execução no "Modo de compatibilidade de processador"?

Não. Depois que você seguir as instruções nesta página, os novos recursos de processador também serão expostos a máquinas virtuais iniciadas no modo de compatibilidade de processador.

E se apenas metade das máquinas no meu cluster tiver recebido uma atualização de firmware?

Isso afetará a migração dinâmica no seu cluster. As máquinas virtuais com os novos recursos de processador não poderão realizar a migração dinâmica para hosts sem a atualização de firmware.

Como validar se a máquina virtual convidada tem acesso aos novos recursos de processador?

Use o módulo/script do PowerShell "controle de especulação". Consulte esta página para obter instruções detalhadas.

Como isso afeta a operação de início em uma VM com o estado de salvamento?

A operação de início falhará. A maneira mais fácil de fazer isso é modificando MinVmVersionForCpuBasedMitigations para uma versão de VM superior à da máquina virtual que precisa ser migrada e realizando uma inicialização a frio dessa máquina virtual.