🛡️ Hardening Windows Server & Patch Management

Bloc 3 Module 3.3 Séance 2/2 BTS SIO SISR
FormationBTS SIO option SISR — IRIS Mediaschool
BlocB3 — Cybersécurité des services informatiques
ModuleM3.3 — Sécurisation des équipements et des usages
Durée3h30 (5 min rappel · 10 min accroche · 70 min théorie · 85 min TP · 10 min synthèse)
PrérequisC3.3.1 Séance 1 — concepts de surface d'attaque et audit Lynis sur Linux
ContextePME InnovatTech SARL — DC01 Windows Server 2022, 35 postes Windows 11

🎯 Objectifs

  • Appliquer les mesures CIS Benchmark niveau 1 sur Windows Server 2022
  • Désactiver les protocoles obsolètes (SMBv1, NTLMv1)
  • Configurer le pare-feu Windows et sécuriser les comptes administrateurs locaux (LAPS)
  • Activer l'audit des événements de sécurité critiques
  • Comprendre et appliquer un processus de patch management avec WSUS

🔥 Accroche — WannaCry et NotPetya (2017)

En mai–juin 2017, les ransomwares WannaCry et NotPetya ont exploité la vulnérabilité SMBv1 EternalBlue (MS17-010). Malgré un correctif publié deux mois plus tôt, de nombreuses organisations n'avaient pas patché. Coût mondial estimé : 10 milliards de dollars. La leçon est simple : le patch management n'est pas optionnel, c'est une obligation opérationnelle.

📖 Section 1 — Hardening Windows Server 2022 (CIS Benchmark niveau 1)

Le Center for Internet Security (CIS) publie des benchmarks classés par niveaux. Le niveau 1 regroupe des mesures essentielles à fort impact sécuritaire et faible coût opérationnel. Dans un contexte PME, appliquez prioritairement ces recommandations.

Désactiver SMBv1

SMBv1 est vulnérable à EternalBlue. Sa désactivation est une mesure prioritaire sur tout contrôleur de domaine ou serveur de fichiers.

# Vérifier si SMBv1 est actif
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol

# Désactiver SMBv1
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

# Vérification
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol

Forcer NTLMv2 (désactiver NTLMv1)

NTLMv1 est obsolète. La valeur 5 force Send NTLMv2 response only, refuse LM & NTLM.

# Vérifier la valeur actuelle
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -ErrorAction SilentlyContinue

# Forcer NTLMv2 (valeur 5)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'LmCompatibilityLevel' -Value 5 -Type DWord

# Vérification
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel

Pare-feu Windows — activer sur tous les profils

# Activer les profils Domain / Private / Public
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True

# Créer une règle autorisant HTTPS entrant
New-NetFirewallRule -DisplayName "HTTPS Inbound" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

# Bloquer RDP depuis l'extérieur
New-NetFirewallRule -DisplayName "Block RDP External" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress Any -Action Block

# Lister les règles actives
Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"} | Select-Object DisplayName, Direction, Action

Comptes administrateurs locaux — LAPS

LAPS (Local Administrator Password Solution) génère un mot de passe unique et aléatoire par machine, stocké dans Active Directory. Cela évite le partage du même mot de passe admin sur 35 machines (qui facilite le mouvement latéral).

# Désactiver le compte Administrateur local
Disable-LocalUser -Name "Administrateur" -ErrorAction SilentlyContinue
Disable-LocalUser -Name "Administrator" -ErrorAction SilentlyContinue

Audit des événements de sécurité

Events ID critiques à surveiller :

Event IDDescription
4624Connexion réussie
4625Échec de connexion
4648Connexion avec credentials explicites
4720Création de compte
4726Suppression de compte
4732Ajout dans un groupe local
4776Tentative de validation NTLM
# Activer l'audit des connexions (succès et échecs)
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Account Management" /success:enable /failure:enable

# Vérifier les événements récents
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4625,4648,4720,4726,4732,4776} -MaxEvents 50 | Format-Table TimeCreated,Id,Message -AutoSize

📖 Section 2 — Patch management (WSUS)

Microsoft publie les mises à jour selon le Patch Tuesday (2e mardi du mois). En cas de 0-day critique, des correctifs out-of-band sont publiés hors cycle.

Niveaux de criticité et SLA recommandés

CriticitéDélai SLA recommandé
Critical24–48 heures
Important7 jours
Moderate30 jours
LowProchaine fenêtre maintenance

WSUS (Windows Server Update Services) centralise les mises à jour, permet d'approuver et tester les correctifs sur un groupe pilote avant déploiement complet, et réduit la bande passante Internet. Architecture type : WSUS ← synchronisation Microsoft → approbation admin → groupes (Pilot / Production) → reporting.

Patches Linux — rappel rapide

# Vérifier les mises à jour disponibles
sudo apt update && apt list --upgradable

# Appliquer uniquement les mises à jour de sécurité
sudo unattended-upgrade -d

# Automatiser les patches de sécurité
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

🛠️ TP — Checklist CIS Benchmark niveau 1 sur DC01 (85 min)

Objectif : appliquer 8 des 10 points de la checklist, documenter chaque action (avant → commande → vérification → après).

Phase 0 — Capturer l'état initial

# Services actifs avant durcissement
Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name,DisplayName | Export-Csv C:\hardening-services-before.csv -NoTypeInformation

# Ports en écoute
netstat -an | findstr LISTENING > C:\listening-before.txt

# État SMBv1, pare-feu, NTLM
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol | Out-File C:\smbv1-before.txt
Get-NetFirewallProfile | Select-Object Name,Enabled | Export-Csv C:\firewall-before.csv -NoTypeInformation

Verrouillage de compte (point 8 de la checklist)

# Configurer le verrouillage après 5 tentatives
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
# Vérification
net accounts

Désactiver AutoRun/AutoPlay (point 9)

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoDriveTypeAutoRun -Value 255 -Type DWord
# Vérification
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoDriveTypeAutoRun

Phase 2 — Rapport final

Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name,DisplayName | Export-Csv C:\hardening-services-after.csv -NoTypeInformation
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Get-NetFirewallProfile | Select-Object Name,Enabled
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4625,4648,4720,4726,4732,4776} -MaxEvents 500 | Export-Csv C:\audit-events.csv -NoTypeInformation

💬 Synthèse — Question finale

Quelle est la différence entre WSUS et Windows Update ordinaire ?

Windows Update est un service client qui récupère et installe automatiquement les mises à jour depuis Microsoft. WSUS est une infrastructure interne qui centralise la récupération, permet de tester et d'approuver les correctifs avant déploiement, de cibler des groupes de machines et de réduire la bande passante externe. En PME, WSUS permet de contrôler le calendrier, d'éviter les interruptions non planifiées et d'effectuer des tests sur un groupe pilote.

📝 QCM — Testez vos connaissances

  1. Quelle commande PowerShell permet de désactiver le protocole SMBv1 sur Windows Server ?
  2. Quel Event ID Windows correspond à un échec d'authentification à surveiller impérativement ?
  3. Qu'est-ce que LAPS (Local Administrator Password Solution) et quel risque couvre-t-il ?
  4. Vrai ou Faux — WSUS permet de tester et d'approuver les mises à jour avant leur déploiement en production.
  5. Expliquez la différence entre un correctif Patch Tuesday et un correctif out-of-band, et dans quel cas les seconds sont publiés.
📝 Afficher les corrections
  1. Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force — désactive SMBv1, le protocole exploité par WannaCry/NotPetya via EternalBlue. Vérification : Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol.
  2. 4625 — Event ID indiquant un échec d'authentification Windows. À corréler avec 4624 (succès) et 4648 (credentials explicites) pour détecter des tentatives de force brute ou de mouvement latéral.
  3. LAPS génère un mot de passe unique et aléatoire par machine pour le compte Administrateur local, stocké dans Active Directory. Il couvre le risque de mouvement latéral : sans LAPS, un attaquant compromettant une machine peut réutiliser le même mot de passe admin local sur toutes les autres.
  4. Vrai — WSUS centralise les mises à jour et permet à l'administrateur de valider les correctifs sur un groupe pilote avant déploiement général, évitant ainsi des régressions en production.
  5. Le Patch Tuesday est publié le 2e mardi du mois selon un calendrier prévisible — les correctifs out-of-band sont publiés hors cycle en urgence pour des vulnérabilités 0-day critiques activement exploitées dans la nature (in the wild), ne pouvant pas attendre le cycle mensuel.
← C3.3.1 Séance 1 C3.3.2 Séance 1 →