Durcissement Windows : NLA, PowerShell, Defender et signature de code
Le durcissement Windows consiste à activer les protections disponibles, désactiver les fonctionnalités non utilisées et appliquer le principe du moindre privilège. Microsoft publie les Security Baselines (disponibles dans le Security Compliance Toolkit) qui fournissent des configurations recommandées pour chaque version de Windows Server et Windows Client. Le CIS Benchmark Windows est une référence complémentaire indépendante.
NLA pour les connexions Bureau à distance
Network Level Authentication (NLA) exige que l'utilisateur s'authentifie avant l'établissement complet de la session RDP. Sans NLA, la session RDP est établie jusqu'à l'écran de connexion Windows sans authentification préalable. Cela expose la surface d'attaque de la couche graphique et permet des attaques contre des vulnérabilités RDP sans avoir de compte valide (BlueKeep, DejaBlue). NLA doit être activé sur tous les serveurs qui exposent RDP.
Vérification et activation de NLA
# Vérifier via PowerShell :
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp').UserAuthentication
# 1 = NLA activé
# Activer NLA via GPO :
# Configuration ordinateur > Modèles d'administration > Composants Windows
# > Services Bureau à distance > Hôte de session Bureau à distance
# > Sécurité > Exiger l'authentification utilisateur...
Contrôles de sécurité PowerShell
PowerShell est l'outil d'administration favori des pentesters et attaquants en environnement Windows. Les contrôles de sécurité disponibles : Execution Policy (ne pas compter dessus comme protection sécurité, facilement contournable), AMSI (Antimalware Scan Interface) analyse les scripts avant exécution, ScriptBlock Logging journalise les scripts exécutés, Constrained Language Mode restreint les capacités de PowerShell, JEA (Just Enough Administration) limite les cmdlets accessibles par rôle.
Activation du logging PowerShell via GPO
# Via GPO : Configuration ordinateur > Modèles d'administration
# > Composants Windows > Windows PowerShell
# Activer via registre :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging' `
-Name 'EnableScriptBlockLogging' -Value 1
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription' `
-Name 'EnableTranscripting' -Value 1
Microsoft Defender et protection avancée
Microsoft Defender Antivirus est activé par défaut sur Windows mais ses fonctionnalités avancées nécessitent une configuration. Points à vérifier : mises à jour des définitions de signatures (fréquence et état), protection cloud (cloud-delivered protection) pour les menaces zero-day, protection contre les ransomwares (Controlled Folder Access), Microsoft Defender for Endpoint pour les capacités EDR avancées. Dans les environnements avec des solutions tierces, vérifier qu'elles ne désactivent pas Defender sans le remplacer.
Signature numérique des exécutables
La signature numérique des exécutables permet de vérifier que le code n'a pas été modifié depuis sa signature et qu'il provient d'un éditeur connu. Les exécutables non signés peuvent provenir de sources inconnues ou avoir été modifiés. AppLocker et Windows Defender Application Control (WDAC) permettent de restreindre l'exécution aux exécutables signés par des éditeurs de confiance.
Gestion des comptes : inactifs, locaux et de service
Les comptes inactifs non désactivés et les comptes d'administrateur local mal configurés sont des vecteurs d'attaque courants. Comptes inactifs : désactiver ou supprimer les comptes qui ne se sont pas connectés depuis plus de 90 jours. Administrateurs locaux : déployer LAPS (Local Administrator Password Solution) pour avoir des mots de passe uniques par machine. Comptes de service : utiliser des Managed Service Accounts (MSA) ou Group Managed Service Accounts (gMSA) pour éviter les mots de passe statiques.
Audit SQL Server
SQL Server disposant de privilèges excessifs (compte de service avec droits SYSTEM ou administrateur local) amplifie l'impact d'une compromission. SQL Server Audit permet de journaliser les accès aux bases de données, les changements de schéma et les tentatives d'authentification échouées. Ces journaux sont essentiels pour la détection d'incidents et les investigations forensiques.
Pour aller plus loin
Une question après la lecture ?
Vous souhaitez évaluer ou durcir vos systèmes Windows ? Envoyez un message.
Ou réservez directement un cadrage de 30 minutes
Réserver un appel →