Guide pas à pas pour corriger Meltdown (CVE‑2017‑5754) et Spectre v2 (CVE‑2017‑5715) sur Windows Server 2016 (Intel) : mettez à jour l’OS, appliquez le microcode, activez les atténuations via le Registre, vérifiez avec PowerShell. Inclus : impacts perf, scripts et checklist.
Vue d’ensemble de la question
Un hôte Windows Server 2016 équipé d’un processeur Intel remonte deux vulnérabilités de canal auxiliaire liées à l’exécution spéculative : Meltdown (CVE‑2017‑5754) et Spectre variante 2 (CVE‑2017‑5715). Sur cette version de Windows Server, les atténuations ne sont pas toutes activées par défaut pour limiter l’impact sur les performances. Il faut donc appliquer une séquence claire afin d’être protégé et conforme aux bonnes pratiques d’exploitation.
Réponse & solution
Idée directrice : pour Windows Server 2016, procédez dans cet ordre : 1) installer la dernière mise à jour cumulative (CU), 2) appliquer le microcode CPU (BIOS/OEM ou paquets Windows), 3) activer les atténuations via le Registre, 4) vérifier l’état des protections avec l’outil officiel
SpeculationControl
. Les mises à jour seules ne suffisent pas si l’activation n’est pas faite.
Mettre à jour Windows Server 2016 (CU la plus récente)
Installez la dernière mise à jour cumulative pour la branche 1607 (build 14393.x) afin d’obtenir le code noyau et les mécanismes d’atténuation nécessaires. Vous pouvez contrôler votre niveau de patch avec :
- winver (boîte de dialogue de version),
systeminfo
en ligne de commande (OS Build),- ou
Get-ComputerInfo | Select-Object OsName,OsVersion,OsBuildNumber
en PowerShell.
Astuce : si vous êtes en environnement connecté à WSUS/MECM, vérifiez que la classification « Mises à jour de sécurité » et la CU mensuelle pour Windows Server 2016 sont approuvées/deployées. Pour un test isolé, préférez le Microsoft Update Catalog ou Windows Update direct.
Appliquer le microcode Intel (BIOS/UEFI OEM ou paquets Microsoft)
La mitigation Spectre v2 s’appuie sur des fonctionnalités CPU (IBRS/IBPB/STIBP, etc.) exposées via microcode. Sans microcode récent, le système peut indiquer « présent mais désactivé » ou « non présent ». Deux approches :
- Mise à jour BIOS/UEFI fournie par votre constructeur (serveur physique) ou mise à jour de l’hyperviseur (si VM).
- Paquets de microcode publiés par Microsoft (référencés sous la synthèse KB4093836, incluant notamment les paquets Server 2016 comme KB4091664/ KB4346087 et extensions pour MMIO). Déployez uniquement si proposés/pertinents pour votre plateforme.
Important en environnement virtualisé : si votre Windows Server 2016 est une VM, l’exposition des fonctionnalités CPU dépend de l’hyperviseur (Hyper‑V, VMware, etc.). Mettez à jour aussi l’hôte, puis redémarrez les VMs pour qu’elles voient le nouveau jeu d’instructions. Certaines plateformes exigent d’activer explicitement l’exposition des fonctionnalités (mode EVC/compatibilité matérielle de la VM).
Activer les atténuations via le Registre (désactivées par défaut sur Windows Server)
Sur Windows Server, les atténuations Meltdown et Spectre v2 sont désactivées par défaut. Il faut les activer explicitement au moyen des clés FeatureSettingsOverride
et FeatureSettingsOverrideMask
dans :
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Exécutez en invite CMD élevée :
:: Active Spectre v2 (CVE-2017-5715) et Meltdown (CVE-2017-5754)
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
\:: Redémarrage requis
shutdown /r /t 0
Pourquoi « 0 » et « 3 » ? La valeur FeatureSettingsOverrideMask=3
indique que vous contrôlez les deux premiers bits (Spectre v2 et Meltdown). La valeur FeatureSettingsOverride=0
signifie « ne pas désactiver » ces deux mitigations ⇒ elles seront activées si l’OS les supporte.
Table de référence des valeurs (activation/désactivation)
FeatureSettingsOverride | FeatureSettingsOverrideMask | Effet (supposant Mask=3) |
---|---|---|
0 | 3 | Active Meltdown & Spectre v2 (rien n’est désactivé) |
1 | 3 | Désactive Spectre v2, laisse Meltdown activé |
2 | 3 | Désactive Meltdown, laisse Spectre v2 activé |
3 | 3 | Désactive Meltdown & Spectre v2 |
Remarques avancées : d’autres vulnérabilités (Speculative Store Bypass, L1TF, MDS/TSX, MMIO, BHI) disposent de bits supplémentaires. Vous pouvez définir des valeurs combinées pour un durcissement plus large, mais pour ces deux CVE, la combinaison ci‑dessus suffit.
Vérifier l’état des protections (PowerShell « SpeculationControl »)
Utilisez le module officiel SpeculationControl
pour confirmer que les protections sont présentes et activées. Exécutez PowerShell en tant qu’administrateur :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
Install-Module -Name SpeculationControl -Scope CurrentUser -Force
Import-Module SpeculationControl
Get-SpeculationControlSettings
Le rapport doit notamment retourner True pour :
- Windows OS support for branch target injection mitigation is present et enabled (Spectre v2),
- Windows OS support for rogue data cache load mitigation is present et enabled (Meltdown),
- BTIHardwarePresent (microcode/exposition du BTI disponible).
Si la partie « Hardware » apparaît en False, mettez à jour le BIOS/UEFI (ou l’hyperviseur) ou installez les paquets de microcode adéquats, puis redémarrez et contrôlez à nouveau.
Procédure détaillée pas à pas
Avant de commencer
- Planifier un redémarrage (maintenance) : les atténuations nécessitent un reboot.
- Sauvegarder la configuration (snapshot VM/backup système) et vérifier l’intégrité du stockage.
- Tester sur un environnement pilote pour mesurer l’impact performance.
- Prérequis AV/EDR : les moteurs actuels sont compatibles. Si un antivirus tiers très ancien est installé, mettez‑le à jour avant d’appliquer les CU.
Installer la mise à jour cumulative
- Appliquez la dernière CU Windows Server 2016 (x64).
- Incluez le SSU (Servicing Stack Update) si requis par la CU ciblée.
- Redémarrez si demandé.
- Vérifiez la build :
systeminfo
ouGet-ComputerInfo
.
Mettre à jour le microcode Intel
- Sur serveur physique : téléchargez et flashez le BIOS/UEFI recommandé par l’OEM.
- Sur VM : patcher l’hyperviseur, activer l’exposition CPU si nécessaire (EVC/compatibilité), puis redémarrer la VM.
- Si vos procédures l’autorisent, utilisez les paquets de microcode Windows associés à votre génération de CPU (série Xeon/ Core correspondante).
- Redémarrez et validez avec
Get-SpeculationControlSettings
.
Activer les atténuations via GPO (option d’industrialisation)
Pour un parc de serveurs, privilégiez une stratégie de groupe (GPP : Preferences > Windows Settings > Registry) qui déploie ces deux valeurs dans la ruche HKLM
:
Path
:SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Value name
:FeatureSettingsOverride
(REG_DWORD = 0)Value name
:FeatureSettingsOverrideMask
(REG_DWORD = 3)
Au prochain gpupdate /force
(ou redémarrage), les clés seront posées. Prévoyez un redémarrage planifié pour entrer en vigueur.
Vérifier avec SpeculationControl
Après redémarrage, exécutez à nouveau :
Get-SpeculationControlSettings | Format-List
Contrôlez en particulier :
- Spectre v2 : la prise en charge OS et matériel est Enabled/True ;
- Meltdown : la prise en charge OS est Enabled/True.
Conseils d’exploitation & performance
Mesurer l’impact
Les atténuations peuvent impacter les charges sensibles aux transitions noyau/utilisateur et au taux d’interruptions (IOPS élevés, context switching important). Mesurez avant/après :
- PerfMon : Processor\% Privileged Time, System\Context Switches/sec, LogicalDisk\Avg. Disk sec/Transfer, Network Interface\*.
- Temps de réponse applicatifs (SQL Server, IIS, etc.).
Si la régression est significative, validez les pilotes (stockage, réseau), examinez les firmwares, et comparez avec/ sans retpoline quand pertinent (sur Server 2016, ce n’est généralement pas requis pour corriger ces deux CVE).
Scénarios virtualisés
- Hyper‑V : mettez à jour l’hôte, puis redémarrez les VMs. Avec le Core Scheduling, la co‑résidence de threads SMT est mieux contrôlée (utile pour d’autres dérivés Spectre).
- VMware vSphere : appliquez les patches hyperviseur, vérifiez le niveau EVC et la version matérielle de la VM, exposez les fonctionnalités CPU requises et redémarrez.
- Cloud : les hôtes sont gérés par le fournisseur, mais vous devez malgré tout activer côté OS les mitigations sur vos VMs.
Restauration/rollback en cas de nécessité
En dernier recours (diagnostic), vous pouvez désactiver temporairement une mitigation en ajustant FeatureSettingsOverride
(Mask=3). Exemples :
- Désactiver Spectre v2 uniquement :
FeatureSettingsOverride=1
/Mask=3
. - Désactiver Meltdown uniquement :
FeatureSettingsOverride=2
/Mask=3
. - Désactiver les deux :
FeatureSettingsOverride=3
/Mask=3
.
Attention : cette opération vous rend de nouveau vulnérable. Ne laissez pas un système en production sans mitigation au‑delà du strict nécessaire pour le diagnostic.
Scripts prêts à l’emploi
CMD : activer les deux mitigations
@echo off
REM Activer Meltdown & Spectre v2 sur Windows Server 2016
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
echo Redemarrage...
shutdown /r /t 0
PowerShell : activer, redémarrer, vérifier
# Activer Meltdown & Spectre v2
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverride -PropertyType DWord -Value 0 -Force | Out-Null
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverrideMask -PropertyType DWord -Value 3 -Force | Out-Null
# Redemarrer
Restart-Computer -Force
# --- A relancer apres redemarrage ---
# Installer et verifier SpeculationControl
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
Install-Module -Name SpeculationControl -Scope CurrentUser -Force
Import-Module SpeculationControl
Get-SpeculationControlSettings | Format-List
PowerShell : inventaire rapide de l’état sur un parc
$servers = Get-Content .\serveurs.txt
$report = foreach ($s in $servers) {
try {
Invoke-Command -ComputerName $s -ScriptBlock {
$k = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
$fso = (Get-ItemProperty -Path $k -Name FeatureSettingsOverride -ErrorAction SilentlyContinue).FeatureSettingsOverride
$fsm = (Get-ItemProperty -Path $k -Name FeatureSettingsOverrideMask -ErrorAction SilentlyContinue).FeatureSettingsOverrideMask
$os = (Get-ComputerInfo).OsBuildNumber
[pscustomobject]@{
Server = $env:COMPUTERNAME
OsBuild = $os
FeatureSettingsOverride = $fso
FeatureSettingsOverrideMask = $fsm
}
} -ErrorAction Stop
} catch {
[pscustomobject]@{ Server=$s; OsBuild=$null; FeatureSettingsOverride=$null; FeatureSettingsOverrideMask=$null }
}
}
$report | Export-Csv .\Etat_Mitigations_Srv2016.csv -NoTypeInformation -Encoding UTF8
Write-Host "Rapport CSV genere: Etat_Mitigations_Srv2016.csv"
FAQ & points d’attention
Dois‑je activer d’autres atténuations (SSBD, L1TF, MDS, MMIO, BHI) ?
Pour corriger uniquement Meltdown et Spectre v2, les étapes ci‑dessus suffisent. Selon votre exposition (multi‑tenancy, workloads sensibles, exigences de conformité), vous pouvez étendre le durcissement avec les bits supplémentaires documentés par l’éditeur. Testez systématiquement l’impact.
Retpoline est‑il nécessaire sur Server 2016 ?
Retpoline est un mécanisme d’atténuation de Spectre v2. Son statut varie selon l’édition et les mises à jour. Pour corriger ces deux CVE sur Server 2016, concentrez‑vous sur la CU, le microcode et l’activation Registre. Retpoline peut améliorer le compromis perf/sécurité sur certains CPU, mais n’est généralement pas requis.
Quid des rôles AD, SQL, Exchange, IIS ?
Il n’existe pas d’étapes spécifiques par rôle pour ces deux CVE. Toutefois, ces charges peuvent être sensibles à l’impact performance. Programmez des benchmarks (TPS, latence, batchs), ajustez les pilotes/firmwares, et échelonnez les déploiements (pilote > pré‑prod > prod).
Comment savoir si mes serveurs reçoivent les bons paquets microcode ?
Sur matériel OEM, priorisez le BIOS/UEFI. Pour les VMs, l’hyperviseur expose les capacités. Le module SpeculationControl
indiquera si le matériel fournit le support BTI requis (BTIHardwarePresent=True). Si ce n’est pas le cas après patch, investiguez côté hyperviseur/BIOS.
Et si la détection de vulnérabilités reste en alerte ?
Vérifiez : 1) la build et la CU sont‑elles bien installées ? 2) le microcode est‑il présent/exposé ? 3) les clés Registre sont‑elles positionnées et actives (après reboot) ? 4) le module Get-SpeculationControlSettings
retourne‑t‑il Enabled=True ? 5) en VM, l’hyperviseur et la compatibilité matérielle de la VM sont‑ils à jour ?
Résumé exécutable (check‑list)
- Patch OS : installez la dernière CU Windows Server 2016 (build 14393.x).
- Microcode Intel : mettez à jour BIOS/UEFI (ou hyperviseur) et, si pertinent, installez les paquets de microcode référencés (synthèse KB4093836).
- Activation Registre :
FeatureSettingsOverride=0
,FeatureSettingsOverrideMask=3
(puis redémarrage). - Validation :
Get‑SpeculationControlSettings
doit indiquer Enabled=True pour Spectre v2 et Meltdown (et BTIHardwarePresent=True).
Modèle de communication du changement (exemple)
Objet : Activation des atténuations Meltdown/Spectre v2 – Windows Server 2016
Périmètre : Hôtes 2016 Intel en production
Action : Mise à jour CU + microcode, activation Registre, redémarrage contrôlé
Impact : redémarrage & potentiel impact performance (évalué en pilote)
Retour arrière : désactivation temporaire via Registre si nécessaire (diagnostic)
Contact : équipe plateforme/sécurité
Annexe : interpréter les sorties clés de SpeculationControl
Indicateur | Ce qu’il signifie | Attendu après correction |
---|---|---|
BTIHardwarePresent | Support matériel (microcode) pour la mitigation Spectre v2 | True |
BTIWindowsSupportPresent | Prise en charge par l’OS (apportée par la CU) | True |
BTIWindowsSupportEnabled | Activation effective (clé Registre + reboot) | True |
KVAShadowWindowsSupportPresent | Prise en charge OS pour Meltdown | True |
KVAShadowWindowsSupportEnabled | Activation effective de la mitigation Meltdown | True |
L’essentiel à retenir
- Sur Windows Server 2016, les atténuations Meltdown et Spectre v2 sont désactivées par défaut.
- La correction nécessite trois briques : CU à jour, microcode Intel, activation Registre (puis reboot).
- Validez systématiquement avec
Get‑SpeculationControlSettings
. - En VM, n’oubliez pas l’hyperviseur (patch + exposition CPU + redémarrage VM).
- Mesurez l’impact performance et déployez par vagues.
Ressources à connaître (sans liens externes)
- KB4072698 – Guide Windows Server / Azure Stack HCI pour les vulnérabilités d’exécution spéculative.
- Windows Server release information – Historique des CU pour Server 2016 (build 14393.x).
- KB5039214 – Exemple historique (11 juin 2024, OS Build 14393.7070).
- KB4093836 – Synthèse des mises à jour de microcode Intel.
- KB4074629 – Comprendre la sortie du script
SpeculationControl
.
Modèle de .REG prêt à importer
Créez un fichier Activer_Mitigations_Srv2016.reg
avec le contenu ci‑dessous, puis double‑cliquez (ou déployez via GPO/outil d’inventaire). Un redémarrage est requis.
Windows Registry Editor Version 5.00
\[HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"FeatureSettingsOverride"=dword:00000000
"FeatureSettingsOverrideMask"=dword:00000003
Cas pratiques
Serveur physique Dell/HP/Lenovo
- Mettre à jour la CU Server 2016.
- Appliquer le BIOS/UEFI recommandé par l’OEM (microcode inclus).
- Activer les atténuations via Registre (Mask = 3, Value = 0).
- Redémarrer et valider avec
SpeculationControl
.
VM sous Hyper‑V
- Patch Hyper‑V hôte.
- Redémarrer la VM pour voir le microcode exposé.
- Activer les atténuations via Registre.
- Valider via
SpeculationControl
.
VM sous VMware vSphere
- Patch ESXi et le cluster, vérifier le mode EVC.
- Mettre à jour la compatibilité matérielle de la VM si requis, redémarrer la VM.
- Activer via Registre, valider.
Conclusion
Pour corriger CVE‑2017‑5754 (Meltdown) et CVE‑2017‑5715 (Spectre v2) sur Windows Server 2016 avec processeur Intel, il ne suffit pas de « faire les mises à jour ». La protection réelle repose sur un triptyque : OS à jour, microcode présent, plus activation explicite via le Registre. Avec un contrôle final par Get‑SpeculationControlSettings
, vous garantissez une posture solide, répétable et auditable.