Como remediar Meltdown (CVE‑2017‑5754) e Spectre v2 (CVE‑2017‑5715) no Windows Server 2016 (Intel) — passo a passo e validação

Scanner marcou Meltdown (CVE‑2017‑5754) e Spectre v2 (CVE‑2017‑5715) em um Windows Server 2016 com CPU Intel? Este guia prático mostra exatamente por onde começar, como aplicar as correções e como verificar se as mitigações realmente ficaram ativas — sem suposições.

Índice

Visão geral do problema

As vulnerabilidades Meltdown e Spectre v2 exploram a execução especulativa dos processadores para vazar memória. No Windows Server 2016 (build 1607) com processadores Intel, a correção efetiva depende de três pilares:

  • Atualizações do sistema (LCUs) que incluem alterações no kernel e rotinas de mitigação;
  • Microcódigo (firmware da CPU), via atualização de BIOS/UEFI do fabricante ou pacotes de microcódigo disponibilizados para o Windows;
  • Chaves de Registro que, no Server 2016, podem manter as mitigações desativadas por padrão para reduzir impacto de desempenho. É preciso habilitá‑las explicitamente.

Se qualquer um desses três componentes faltar (por exemplo, microcódigo ausente ou chaves não configuradas), os scanners de vulnerabilidade continuarão sinalizando os CVEs.

Como corrigir — de alto nível

  1. Aplicar a atualização cumulativa mais recente do Windows 10, versão 1607 / Windows Server 2016.
  2. Atualizar microcódigo Intel via BIOS/UEFI do fabricante do servidor ou, quando aplicável, via pacotes de microcódigo para o Server 2016 (por exemplo, KB4091664, KB4346087, KB4494175; verifique compatibilidade com seu modelo de CPU).
  3. Habilitar as mitigações no Registro (FeatureSettingsOverride/Mask) e, se houver Hyper‑V, configurar a chave do hypervisor.
  4. Reiniciar o servidor para que kernel, microcódigo e políticas passem a valer.
  5. Validar com PowerShell usando o módulo SpeculationControl.

Passo a passo recomendado

Atualize o Windows Server 2016 para a última LCU

Instale a LCU mais recente para Windows 10, versão 1607 / Windows Server 2016 (via Windows Update/WSUS ou Catálogo). Isso consolida todas as correções anteriores de Meltdown/Spectre.

Dicas úteis

  • Confirme que as atualizações de pilha de serviço (SSU) e LCUs foram aplicadas com Get-HotFix ou wmic qfe.
powershell
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10 HotFixID,InstalledOn

Atualize o microcódigo/firmware Intel

Para Spectre v2 (branch target injection), o Windows depende de microcódigo fornecido pela Intel (via BIOS/UEFI do fabricante) ou, em certos cenários, de pacotes de microcódigo para Windows Server 2016 (ex.: KB4091664, KB4346087, KB4494175). Priorize a atualização de BIOS/UEFI pelo fabricante do hardware (Dell, HPE, Lenovo, etc.).

Checklist de microcódigo

  • Identifique CPU e placa‑mãe: Get-CimInstance Win32_Processor | Select-Object Name,Manufacturer e wmic baseboard get product,manufacturer.
  • Se não puder atualizar o BIOS, avalie o uso de pacote de microcódigo para o seu stepping/modelo de CPU no Server 2016.
  • Após atualizar o microcódigo do host Hyper‑V, desligue e ligue (power off/power on) as VMs para propagar o microcódigo ao convidado.

Habilite as mitigações no Registro (Server 2016)

No Windows Server 2016, as mitigações podem não estar habilitadas por padrão. Configure as chaves abaixo para ativar Meltdown e Spectre v2:

cmd
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" ^
    /v FeatureSettingsOverride /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" ^
    /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

Se o host tiver Hyper‑V instalado, inclua também:

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

Por que esses valores? No Server 2016, os bits de FeatureSettingsOverride controlam se o Windows desabilita uma mitigação. Com FeatureSettingsOverride=0 e FeatureSettingsOverrideMask=3, você diz ao Windows para não desabilitar os bits 0 (Spectre v2) e 1 (Meltdown), logo as mitigações permanecem ativas.

Reinicie o servidor

Um reboot completo é obrigatório após atualizar LCU, microcódigo e Registro. Em hosts de virtualização, use desligamento/ligamento (não apenas reinício de convidado) para garantir que as VMs recebam o microcódigo novo.

Valide o estado das mitigações com PowerShell

Use o módulo oficial SpeculationControl para confirmar o status:

powershell
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-Module SpeculationControl -Scope CurrentUser -Force
Import-Module SpeculationControl
Get-SpeculationControlSettings

O que procurar na saída

  • Windows OS support for kernel VA shadow is enabledTrue (Meltdown).
  • Windows OS support for branch target injection mitigation is enabledTrue (Spectre v2).
  • Hardware support for branch target injection mitigation is presentTrue (microcódigo/BIOS correto).

Tabela de referência rápida

ItemComo habilitar/verificarResultado esperado
LCU mais recenteWSUS/Windows Update; Get-HotFixÚltima LCU do 1607/Server 2016 aplicada
Microcódigo IntelBIOS/UEFI do fabricante ou pacote de microcódigo (ex.: KB4091664/KB4346087/KB4494175)Hardware support… = True no SpeculationControl
Registro (mitigações)FeatureSettingsOverride=0 e FeatureSettingsOverrideMask=3Meltdown/Spectre v2 habilitados
Hyper‑VMinVmVersionForCpuBasedMitigations="1.0"Mitigações são expostas a todas as VMs
ValidaçãoGet-SpeculationControlSettingsLinhas críticas com True

Entendendo as chaves do Registro

ChaveCaminhoTipoValorSignificado
FeatureSettingsOverrideHKLM\…\Memory ManagementREG_DWORD0Não desabilita mitigação alguma; permite habilitar Meltdown (bit 1) e Spectre v2 (bit 0)
FeatureSettingsOverrideMaskHKLM\…\Memory ManagementREG_DWORD3Indica que os bits 0 e 1 estão sendo definidos (Spectre v2 e Meltdown)
MinVmVersionForCpuBasedMitigationsHKLM\…\VirtualizationREG_SZ“1.0”Expõe mitigações baseadas em CPU para VMs Hyper‑V com versão de configuração mínima informada

Mapa de bits (para referência):

BitHexControle01
00x1Spectre v2 (BTI)Mitigação habilitadaMitigação desabilitada
10x2Meltdown (KVA Shadow)Mitigação habilitadaMitigação desabilitada

Outras vulnerabilidades relacionadas (ex.: Spectre v4 — SSBD) possuem bits adicionais e políticas próprias. Este guia foca nas duas sinalizadas pelo scanner.

Ambientes com Hyper‑V, VMware e outras virtualizações

  • Ordem de atualização: atualize e reinicie primeiro o host (LCU + BIOS/UEFI), depois os convidados. Sem power cycle o convidado não recebe o microcódigo novo.
  • Hyper‑V: aplique a chave MinVmVersionForCpuBasedMitigations, desligue todas as VMs, inicie novamente e, se aplicável, atualize a versão de configuração de VM para aproveitar recursos mais novos.
  • VMware: garanta o nível de compatibilidade/habilitação de EVC adequado para expor as instruções de mitigação às VMs; após firmware novo, faça desligamento/ligamento das VMs.

Por que o scanner continua marcando mesmo após atualizar?

  1. Mitigações não habilitadas: no Server 2016, as chaves de Registro podem manter as mitigação desativadas por padrão. Sem FeatureSettingsOverride=0 e FeatureSettingsOverrideMask=3, o scanner detectará risco.
  2. Microcódigo ausente: o PowerShell mostra Hardware support… = False. Atualize BIOS/UEFI ou instale um pacote de microcódigo suportado.
  3. Reinício incompleto: faltou reboot do host/VM após aplicar BIOS/UEFI e patches.
  4. VMs sem propagação: convidados não fizeram cold boot após o host ser atualizado.
  5. Assinatura do scanner desatualizada: alguns mecanismos inferem o estado por build/KB e podem exigir uma verificação baseada na saída do SpeculationControl.

Impacto de desempenho (o que esperar)

Habilitar todas as mitigações pode introduzir overhead que varia conforme a carga (E/S intensiva, syscalls, virtualização, banco de dados). Boas práticas:

  • Teste em ambiente de homologação antes de ativar em produção.
  • Monitore latência e throughput (SQL, IIS, file server) antes/depois.
  • Considere janelas de manutenção e planos de rollback (veja abaixo como reverter chaves).

Automatização em escala (GPO, SCCM, script)

Para ambientes com dezenas/centenas de servidores, padronize por GPO ou automação.

Aplicar chaves via PowerShell

powershell
Executar em sessão elevada
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverride -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverrideMask -Type DWord -Value 3

New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" -Force | Out-Null
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" -Name MinVmVersionForCpuBasedMitigations -PropertyType String -Value "1.0" -Force | Out-Null 

Verificar dezenas de servidores

powershell
servers.txt = lista de nomes/IPs
$servers = Get-Content .\servers.txt
$result = foreach($s in $servers){
  try{
    $sc = Invoke-Command -ComputerName $s -ScriptBlock {
      Import-Module SpeculationControl -ErrorAction SilentlyContinue
      if(-not (Get-Module SpeculationControl)){ 
        Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
        Install-Module SpeculationControl -Scope CurrentUser -Force
        Import-Module SpeculationControl
      }
      Get-SpeculationControlSettings
    } -ErrorAction Stop
    [PSCustomObject]@{
      Server = $s
      Meltdown_OS  = ($sc.'Windows OS support for kernel VA shadow is enabled')
      Spectre2_OS  = ($sc.'Windows OS support for branch target injection mitigation is enabled')
      Spectre2_HW  = ($sc.'Hardware support for branch target injection mitigation is present')
    }
  }catch{
    [PSCustomObject]@{ Server=$s; MeltdownOS=$false; Spectre2OS=$false; Spectre2_HW=$false }
  }
}
$result | Format-Table -AutoSize

Rollback rápido (se precisar desativar temporariamente)

Para cenários de contingência/diagnóstico, você pode desativar as mitigações definindo os bits 0 e 1 (sem alterar a máscara):

cmd
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" ^
    /v FeatureSettingsOverride /t REG_DWORD /d 3 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" ^
    /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
shutdown /r /t 0

Atenção: manter mitigações desabilitadas eleva o risco de exposição. Use somente em janelas controladas e documente o motivo.

Boas práticas adicionais

  • Mantenha firmware e drivers do fornecedor atualizados (controladoras de armazenamento/rede também influenciam a estabilidade após patches).
  • Em clusters, aplique patches de forma coordenada, drenando funções antes do reboot.
  • Registre evidências: exporte a saída do Get-SpeculationControlSettings para auditorias.

FAQ — dúvidas comuns

Preciso de ambos: patch de Windows e microcódigo?
Sim. O sistema operacional ativa a lógica de mitigação, mas Spectre v2 requer instruções/fluxos disponibilizados pelo microcódigo da CPU.

É obrigatório reiniciar?
Sim, após atualizar LCU, BIOS/UEFI, chaves de Registro e/ou pacotes de microcódigo.

Como saber se o microcódigo está realmente ativo?
O indicador é a linha Hardware support for branch target injection mitigation is present = True no SpeculationControl.

Por que o Server 2016 não habilita tudo por padrão?
Para mitigar impactos de desempenho em cargas de servidor. Por isso as chaves de Registro são necessárias.

Funciona em VMs?
Sim, desde que o host tenha firmware/microcódigo atualizado e a VM faça cold boot após as mudanças.

Checklist final de execução

  • [ ] Última LCU do Windows Server 2016 instalada.
  • [ ] BIOS/UEFI atualizado ou pacote de microcódigo aplicado e verificado.
  • [ ] FeatureSettingsOverride=0 e FeatureSettingsOverrideMask=3 presentes.
  • [ ] Chave Hyper‑V (MinVmVersionForCpuBasedMitigations="1.0") quando aplicável.
  • [ ] Reboot realizado (host e convidados).
  • [ ] Get-SpeculationControlSettings com True nas linhas de Meltdown e Spectre v2 (incluindo hardware support).

Referências úteis (sem links)

  • KB4072698 — Orientação para mitigar vulnerabilidades de execução especulativa no Windows Server/Azure Stack HCI.
  • KB4093836 — Resumo das atualizações de microcódigo Intel.
  • KB4074629 — Entendendo a saída do script SpeculationControl.
  • Histórico de atualizações do Windows 10, versão 1607 / Windows Server 2016 (LCUs).
  • Exemplos de LCUs (como KB5039214 — exemplo histórico; sempre use a LCU mais recente disponível).
  • Windows Server 2016 — ciclo de vida de suporte (planeje upgrades antes do fim do suporte estendido).

Conclusão

Para resolver os achados de CVE‑2017‑5754 (Meltdown) e CVE‑2017‑5715 (Spectre v2) em Windows Server 2016/Intel, siga a fórmula: atualize o Windows + atualize o microcódigo + habilite as chaves de mitigação + valide com SpeculationControl. Com isso, você zera os falsos positivos do scanner e endurece a postura de segurança da sua frota.

Índice