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.
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
- Aplicar a atualização cumulativa mais recente do Windows 10, versão 1607 / Windows Server 2016.
- 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).
- Habilitar as mitigações no Registro (FeatureSettingsOverride/Mask) e, se houver Hyper‑V, configurar a chave do hypervisor.
- Reiniciar o servidor para que kernel, microcódigo e políticas passem a valer.
- 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
ouwmic 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
ewmic 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 enabled — True (Meltdown).
- Windows OS support for branch target injection mitigation is enabled — True (Spectre v2).
- Hardware support for branch target injection mitigation is present — True (microcódigo/BIOS correto).
Tabela de referência rápida
Item | Como habilitar/verificar | Resultado esperado |
---|---|---|
LCU mais recente | WSUS/Windows Update; Get-HotFix | Última LCU do 1607/Server 2016 aplicada |
Microcódigo Intel | BIOS/UEFI do fabricante ou pacote de microcódigo (ex.: KB4091664/KB4346087/KB4494175) | Hardware support… = True no SpeculationControl |
Registro (mitigações) | FeatureSettingsOverride=0 e FeatureSettingsOverrideMask=3 | Meltdown/Spectre v2 habilitados |
Hyper‑V | MinVmVersionForCpuBasedMitigations="1.0" | Mitigações são expostas a todas as VMs |
Validação | Get-SpeculationControlSettings | Linhas críticas com True |
Entendendo as chaves do Registro
Chave | Caminho | Tipo | Valor | Significado |
---|---|---|---|---|
FeatureSettingsOverride | HKLM\…\Memory Management | REG_DWORD | 0 | Não desabilita mitigação alguma; permite habilitar Meltdown (bit 1) e Spectre v2 (bit 0) |
FeatureSettingsOverrideMask | HKLM\…\Memory Management | REG_DWORD | 3 | Indica que os bits 0 e 1 estão sendo definidos (Spectre v2 e Meltdown) |
MinVmVersionForCpuBasedMitigations | HKLM\…\Virtualization | REG_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):
Bit | Hex | Controle | 0 | 1 |
---|---|---|---|---|
0 | 0x1 | Spectre v2 (BTI) | Mitigação habilitada | Mitigação desabilitada |
1 | 0x2 | Meltdown (KVA Shadow) | Mitigação habilitada | Mitigaçã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?
- Mitigações não habilitadas: no Server 2016, as chaves de Registro podem manter as mitigação desativadas por padrão. Sem
FeatureSettingsOverride=0
eFeatureSettingsOverrideMask=3
, o scanner detectará risco. - Microcódigo ausente: o PowerShell mostra Hardware support… = False. Atualize BIOS/UEFI ou instale um pacote de microcódigo suportado.
- Reinício incompleto: faltou reboot do host/VM após aplicar BIOS/UEFI e patches.
- VMs sem propagação: convidados não fizeram cold boot após o host ser atualizado.
- 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
eFeatureSettingsOverrideMask=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.