🖥️ Checklist Sécurité Windows 11 — Poste de Travail
Durcissement W11 : BitLocker, Credential Guard, WDAC, pare-feu, comptes locaux, TPM 2.0, Smart App Control et télémétrie.
Notre checklist la plus volumineuse avec 436 contrôles pour le durcissement des postes Windows 11 : BitLocker avec TPM 2.0, Credential Guard, WDAC (Windows Defender Application Control), pare-feu avancé, gestion des comptes locaux, Smart App Control, contrôle de la télémétrie et conformité aux baselines Microsoft.
📑 Table des matières
CHECKLIST SÉCURITÉ WINDOWS 11 — POSTE DE TRAVAIL
AYI NEDJIMI CONSULTANTS (ANC)
Référentiel : CIS Microsoft Windows 11 Stand-alone Benchmark v5.0.0 + Microsoft Security Baseline + ANSSI + DISA STIG
Document : CHECKLIST-W11-ANC | Version : 1.0 | Date : 2026-04-04 | Classification : CONFIDENTIEL | Auteur : AYI NEDJIMI CONSULTANTS
LÉGENDE
| Symbole | Signification |
|---|---|
| ✅ | Conforme |
| ❌ | Non conforme |
| ⚠️ | Partiellement conforme |
| N/A | Non applicable |
| 🔴 | Critique — Risque immédiat d’exploitation, correction impérative sous 48h |
| 🟠 | Élevé — Risque significatif, correction recommandée sous 2 semaines |
| 🟡 | Moyen — Risque modéré, correction planifiable sous 1 mois |
| 🟢 | Faible — Durcissement complémentaire, correction selon capacité |
MODE DÉCOUVERTE RAPIDE — 15 Questions Clés (< 30 min)
Objectif : Évaluation rapide du niveau de sécurité d’un poste de travail Windows 11 en moins de 30 minutes. Ces 15 questions couvrent les risques les plus critiques et permettent d’identifier immédiatement les failles majeures.
| # | Question clé | Contrôle | Risque si NON | Statut |
|---|---|---|---|---|
| Q1 | Le mot de passe du compte administrateur local est-il géré par Windows LAPS ? | 1.4.1 | 🔴 Critique — Mouvement latéral facilité (Pass-the-Hash), mots de passe identiques sur tous les postes | ☐ OUI ☐ NON |
| Q2 | La politique de mot de passe exige-t-elle 14 caractères minimum avec complexité ? | 1.1.4, 1.1.5 | 🔴 Critique — Mots de passe faibles vulnérables au craquage par force brute | ☐ OUI ☐ NON |
| Q3 | Le pare-feu Windows Defender est-il activé sur les 3 profils (Domaine, Privé, Public) ? | 4.1.1, 4.2.1, 4.3.1 | 🔴 Critique — Exposition aux attaques réseau, propagation de malware | ☐ OUI ☐ NON |
| Q4 | BitLocker est-il activé sur le volume système avec protecteur TPM+PIN ? | 14.1.1 | 🔴 Critique — Vol de données en cas de perte/vol du poste portable | ☐ OUI ☐ NON |
| Q5 | La journalisation avancée (Advanced Audit Policy) est-elle configurée ? | 3.1.1 à 3.1.17 | 🔴 Critique — Impossibilité de détecter les intrusions, non-conformité RGPD/NIS2 | ☐ OUI ☐ NON |
| Q6 | La signature SMB est-elle requise sur le client ? | 7.1.1 | 🔴 Critique — Attaques de relais SMB, interception de données | ☐ OUI ☐ NON |
| Q7 | Le niveau d’authentification LAN Manager refuse-t-il LM et NTLM ? | 7.3.1 | 🔴 Critique — Authentification faible vulnérable au craquage et au relais | ☐ OUI ☐ NON |
| Q8 | La journalisation PowerShell (Script Block Logging) est-elle activée ? | 12.1.1 | 🟠 Élevé — Scripts malveillants indétectables, PowerShell vecteur d’attaque #1 | ☐ OUI ☐ NON |
| Q9 | Credential Guard (VBS) est-il activé ? | 8.1.1 | 🟠 Élevé — Vol d’identifiants via Mimikatz (Pass-the-Hash/Ticket) | ☐ OUI ☐ NON |
| Q10 | Une politique AppLocker ou WDAC est-elle déployée ? | 9.1.1, 9.2.1 | 🟠 Élevé — Exécution de binaires malveillants, ransomware | ☐ OUI ☐ NON |
| Q11 | Windows Update est-il configuré et à jour (< 30 jours) ? | 18.1.1 | 🔴 Critique — Exploitation de vulnérabilités connues (CVE) | ☐ OUI ☐ NON |
| Q12 | NLA est-elle requise pour les connexions RDP ? | 13.1.2 | 🟠 Élevé — Attaques par force brute sur RDP | ☐ OUI ☐ NON |
| Q13 | La politique de verrouillage de compte est-elle configurée (≤ 5 tentatives, ≥ 15 min) ? | 1.2.1 à 1.2.4 | 🔴 Critique — Password spraying non bloqué | ☐ OUI ☐ NON |
| Q14 | UAC est-il activé avec consentement sur bureau sécurisé ? | 2.2.42 à 2.2.49 | 🟠 Élevé — Élévation de privilèges facilitée | ☐ OUI ☐ NON |
| Q15 | Secure Boot, TPM 2.0 et HVCI sont-ils activés ? | 15.1.1 à 15.1.3 | 🟠 Élevé — Bootkits et rootkits non détectés | ☐ OUI ☐ NON |
INFORMATIONS CLIENT
| Champ | Valeur |
|---|---|
| Organisation | |
| Nom du poste | |
| Adresse IP | |
| Adresse MAC | |
| Utilisateur principal | |
| Fonction / Service | |
| Système d’exploitation | Windows 11 |
| Édition | ☐ Pro ☐ Enterprise ☐ Education |
| Build / Version | |
| Feature Update | ☐ 23H2 ☐ 24H2 ☐ 25H2 |
| Date d’installation | |
| Dernière mise à jour | |
| Date d’audit | |
| Auditeur | |
| Domaine AD / Entra ID | |
| OU Active Directory | |
| Inscription Intune | ☐ OUI ☐ NON |
| Responsable système | |
| Environnement | ☐ Production ☐ Préproduction ☐ Développement ☐ Test |
| Criticité métier | ☐ Critique ☐ Haute ☐ Moyenne ☐ Basse |
| Type de poste | ☐ Fixe ☐ Portable ☐ Hybride |
| Connectivité | ☐ Réseau entreprise ☐ VPN ☐ WiFi public ☐ 4G/5G |
PRÉREQUIS D’AUDIT
Avant de commencer l’audit, vérifier les éléments suivants :
- Accès administrateur local au poste de travail
- PowerShell 5.1+ disponible (exécuter en tant qu’administrateur)
- Droits de lecture sur le registre (HKLM, HKCU)
- Accès à la console Stratégie de sécurité locale (secpol.msc)
- Accès à l’Éditeur de stratégie de groupe locale (gpedit.msc)
- Accès au Gestionnaire de périphériques et Informations système
- Outil d’export de configuration GPO (gpresult /H rapport.html)
- Connectivité réseau pour vérification des mises à jour
- Documentation de la politique de sécurité de l’organisation
- Sauvegarde du système avant toute modification
Commandes de collecte initiale
# Informations système
Get-ComputerInfo | Select-Object CsName, WindowsProductName, WindowsVersion, OsBuildNumber, BiosFirmwareType
# État de sécurité rapide
Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled, AMServiceEnabled
# État BitLocker
Get-BitLockerVolume | Select-Object MountPoint, ProtectionStatus, EncryptionMethod
# État TPM
Get-Tpm | Select-Object TpmPresent, TpmReady, TpmEnabled, ManufacturerVersion
# VBS / Credential Guard
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace 'root\Microsoft\Windows\DeviceGuard'
# Export GPO locale
gpresult /H C:\AuditANC\GPO_Report.html /F
# Export politique de sécurité
secedit /export /cfg C:\AuditANC\secpol.cfg
# Inventaire des services
Get-Service | Where-Object {$_.StartType -ne 'Disabled'} | Export-Csv C:\AuditANC\Services.csv -NoTypeInformation
SECTION 1 — POLITIQUE DE COMPTES ET MOTS DE PASSE
Objectif : Garantir que les politiques de mot de passe, de verrouillage de compte et d’authentification Windows Hello appliquées sur le poste Windows 11 respectent les recommandations CIS, Microsoft Security Baseline et ANSSI. Une politique de mot de passe robuste est la première ligne de défense contre les attaques par force brute, le credential stuffing et le password spraying.
Références : CIS Windows 11 Stand-alone Benchmark v5.0.0 §1.1–1.2 | ANSSI R1–R5 | NIST SP 800-53 IA-5 | DISA STIG V-253265 à V-253280
1.1.1 — Historique des mots de passe — Conserver au minimum 24 mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.1 | T1110 (Brute Force) |
Description :
L’historique des mots de passe empêche les utilisateurs de réutiliser leurs anciens mots de passe. La configuration recommandée est de conserver au minimum 24 mots de passe dans l’historique, réduisant considérablement le risque de rotation cyclique.
Sur un poste autonome Windows 11, cette politique s’applique au compte administrateur local et aux comptes utilisateurs locaux. Combinée avec un âge minimum (contrôle 1.1.2), elle empêche le contournement par changements rapides successifs.
Vérification :
net accounts | Select-String 'Length of password history'
- Registre :
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters - GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Conserver l’historique des mots de passe
- Valeur attendue :
24 mots de passe mémorisés(ou plus)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Enforce password history →
24 passwords remembered -
Intune / MEM : Endpoint Security > Stratégie de conformité > Mot de passe > Nombre de mots de passe précédents →
24 -
PowerShell :
net accounts /uniquepw:24
- Registre :
Utiliser secedit pour configurer : PasswordHistorySize = 24
Valeur par défaut : 0 (aucun historique conservé)
1.1.2 — Âge minimum du mot de passe — Au moins 1 jour
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.2 | T1110.001 (Password Guessing) |
Description :
L’âge minimum du mot de passe détermine le nombre de jours pendant lesquels un mot de passe doit être utilisé avant modification. La valeur recommandée est d’au moins 1 jour.
Cette politique empêche les utilisateurs de changer immédiatement leur mot de passe plusieurs fois pour revenir à un ancien, contournant la politique d’historique.
Vérification :
net accounts | Select-String 'Minimum password age'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Durée de vie minimale du mot de passe
- Valeur attendue :
1 jour(ou plus)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Minimum password age →
1 day -
Intune / MEM : Endpoint Security > Stratégie de conformité > Mot de passe > Âge minimum →
1 -
PowerShell :
net accounts /minpwage:1
- Registre :
Configuration via secedit ou GPO
Valeur par défaut : 0 (aucune restriction)
1.1.3 — Âge maximum du mot de passe — Au plus 365 jours
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.3 | T1078 (Valid Accounts) |
Description :
L’âge maximum détermine la durée maximale d’utilisation d’un mot de passe. La valeur recommandée est de 365 jours maximum. Note : Microsoft et le NIST SP 800-63B recommandent désormais de ne pas imposer de rotation obligatoire sauf compromission avérée.
Le benchmark CIS maintient cette recommandation pour les postes autonomes. L’organisation doit évaluer cette politique en fonction de son contexte de risque.
Vérification :
net accounts | Select-String 'Maximum password age'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Durée de vie maximale du mot de passe
- Valeur attendue :
365 jours(ou moins)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Maximum password age →
365 days -
Intune / MEM : Endpoint Security > Stratégie de conformité > Mot de passe > Âge maximum →
365 -
PowerShell :
net accounts /maxpwage:365
- Registre :
Configuration via secedit ou GPO
Valeur par défaut : 42 jours
1.1.4 — Longueur minimale du mot de passe — Au moins 14 caractères
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.4 | T1110.002 (Password Cracking) |
Description :
La longueur minimale est l’un des paramètres les plus importants. La valeur recommandée est de 14 caractères minimum, conformément aux recommandations CIS et ANSSI.
Un mot de passe de 14 caractères offre une résistance significative contre les attaques par force brute et les tables arc-en-ciel. L’ANSSI recommande 12 caractères minimum (16 pour les comptes à privilèges). Sur Windows 11, cette mesure protège les comptes locaux contre les attaques hors ligne sur le fichier SAM.
Vérification :
net accounts | Select-String 'Minimum password length'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Longueur minimale du mot de passe
- Valeur attendue :
14 caractères(ou plus)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Minimum password length →
14 -
Intune / MEM : Endpoint Security > Stratégie de conformité > Mot de passe > Longueur minimale →
14 -
PowerShell :
net accounts /minpwlen:14
- Registre :
Configuration via secedit : MinimumPasswordLength = 14
Valeur par défaut : 0 (aucune exigence)
1.1.5 — Exigences de complexité du mot de passe — Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.5 | T1110.003 (Password Spraying) |
Description :
Lorsque activée, les mots de passe doivent contenir des caractères d’au moins 3 des 5 catégories : majuscules (A-Z), minuscules (a-z), chiffres (0-9), caractères spéciaux et caractères Unicode. Le mot de passe ne doit pas contenir le nom du compte utilisateur.
Cette exigence augmente considérablement l’espace de recherche pour les attaques par force brute et rend les attaques par dictionnaire moins efficaces.
Vérification :
secedit /export /cfg C:\AuditANC\secpol.cfg /quiet
Get-Content C:\AuditANC\secpol.cfg | Select-String 'PasswordComplexity'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Le mot de passe doit respecter des exigences de complexité
- Valeur attendue :
Activé
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Password must meet complexity requirements →
Enabled -
Intune / MEM : Endpoint Security > Stratégie de conformité > Mot de passe > Exiger la complexité →
Oui -
PowerShell :
# Vérification via secedit — PasswordComplexity doit être = 1
- Registre :
Configuration via secedit ou GPO uniquement
Valeur par défaut : Activé
1.1.6 — Relaxation de la longueur minimale des mots de passe — Audit activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 1.1.6 | T1110 (Brute Force) |
Description :
Windows 11 introduit le paramètre de relaxation permettant de configurer un audit pour détecter les mots de passe plus courts que la limite recommandée. Ce contrôle est utile en phase de transition vers une politique plus stricte.
Ce paramètre permet d’identifier les comptes à risque avant d’imposer la nouvelle politique de longueur minimale.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SAM' -Name 'RelaxMinimumPasswordLengthLimits' -ErrorAction SilentlyContinue
- Registre :
HKLM\SYSTEM\CurrentControlSet\Control\SAM\RelaxMinimumPasswordLengthLimits - GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Relax minimum password length limits
- Valeur attendue :
Activé
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Relax minimum password length limits →
Enabled -
Intune / MEM : Non disponible nativement — script de remédiation personnalisé
-
PowerShell :
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SAM' -Name 'RelaxMinimumPasswordLengthLimits' -Value 1 -Type DWord
- Registre :
HKLM\SYSTEM\CurrentControlSet\Control\SAM\RelaxMinimumPasswordLengthLimits = 1 (DWORD)
Valeur par défaut : Non défini
1.1.7 — Stocker les mots de passe en chiffrement réversible — Désactivé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.7 | T1003.002 (Security Account Manager) |
Description :
Ce paramètre détermine si le système stocke les mots de passe en chiffrement réversible. Si activé, les mots de passe sont effectivement stockés en clair, ce qui constitue une vulnérabilité critique.
Sur un poste Windows 11, il n’existe aucune raison légitime d’activer ce paramètre. Un attaquant compromettant le fichier SAM pourrait récupérer tous les mots de passe en clair.
Vérification :
secedit /export /cfg C:\AuditANC\secpol.cfg /quiet
Get-Content C:\AuditANC\secpol.cfg | Select-String 'ClearTextPassword'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de mot de passe > Stocker les mots de passe en chiffrement réversible
- Valeur attendue :
Désactivé
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Store passwords using reversible encryption →
Disabled -
Intune / MEM : Endpoint Security > Stratégie de conformité > Mot de passe > Chiffrement réversible →
Non -
PowerShell :
# ClearTextPassword doit être = 0 dans secedit
- Registre :
ClearTextPassword = 0
Valeur par défaut : Désactivé
1.2.1 — Durée de verrouillage du compte — Au moins 15 minutes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.2.1 | T1110.001 (Password Guessing) |
Description :
La durée de verrouillage définit le temps pendant lequel un compte reste verrouillé après le seuil de tentatives infructueuses atteint. La valeur recommandée est d’au moins 15 minutes.
Cette mesure contrecarre les attaques par force brute et le password spraying. Une valeur de 0 signifie verrouillage permanent jusqu’à intervention d’un administrateur.
Vérification :
net accounts | Select-String 'Lockout duration'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de verrouillage du compte > Durée de verrouillage
- Valeur attendue :
15 minutes(ou plus, ou0pour permanent)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Account lockout duration →
15 minutes -
Intune / MEM : Endpoint Security > Stratégie de conformité > Verrouillage du compte > Durée →
15 -
PowerShell :
net accounts /lockoutduration:15
- Registre :
Configuration via secpol.msc
Valeur par défaut : Non défini
1.2.2 — Seuil de verrouillage du compte — Au plus 5 tentatives
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.2.2 | T1110.003 (Password Spraying) |
Description :
Le seuil détermine le nombre de tentatives échouées avant verrouillage. La valeur recommandée est de 5 tentatives maximum (entre 1 et 5).
Un seuil trop élevé permet les attaques par force brute. Un seuil trop bas (1-2) entraîne des verrouillages accidentels. La valeur de 5 offre un bon compromis.
Vérification :
net accounts | Select-String 'Lockout threshold'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de verrouillage > Seuil de verrouillage
- Valeur attendue :
5 tentatives(ou moins, > 0)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Account lockout threshold →
5 invalid logon attempts -
Intune / MEM : Endpoint Security > Stratégie de conformité > Verrouillage > Tentatives →
5 -
PowerShell :
net accounts /lockoutthreshold:5
- Registre :
Configuration via secpol.msc
Valeur par défaut : 0 (désactivé)
1.2.3 — Réinitialisation du compteur de verrouillage — Au moins 15 minutes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.2.3 | T1110 (Brute Force) |
Description :
Ce paramètre détermine le délai après lequel le compteur de tentatives échouées est remis à zéro. La valeur recommandée est d’au moins 15 minutes.
Si trop court, un attaquant pourrait espacer ses tentatives pour éviter le verrouillage. Ce paramètre doit être ≤ à la durée de verrouillage (contrôle 1.2.1).
Vérification :
net accounts | Select-String 'Lockout observation window'
- GUI : secpol.msc > Stratégies de comptes > Stratégie de verrouillage > Réinitialiser le compteur après
- Valeur attendue :
15 minutes(ou plus)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Reset account lockout counter after →
15 minutes -
Intune / MEM : Endpoint Security > Stratégie de conformité > Verrouillage > Réinitialisation →
15 -
PowerShell :
net accounts /lockoutwindow:15
- Registre :
Configuration via secpol.msc
Valeur par défaut : Non défini
1.2.4 — Verrouillage du compte administrateur intégré — Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.2.4 | T1078.003 (Local Accounts) |
Description :
Ce paramètre Windows 11 permet d’appliquer la politique de verrouillage au compte administrateur intégré (RID 500). Par défaut, ce compte n’est pas soumis au verrouillage.
La recommandation CIS est d’activer ce paramètre pour que le compte administrateur soit verrouillé après le nombre de tentatives défini, empêchant les attaques par force brute ciblant spécifiquement ce compte.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'AdministratorAccountLockout' -ErrorAction SilentlyContinue
- GUI : secpol.msc > Stratégies de comptes > Stratégie de verrouillage > Verrouillage du compte Administrateur
- Valeur attendue :
Activé
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Allow Administrator account lockout →
Enabled -
Intune / MEM : Endpoint Security > Stratégie de conformité > Verrouillage > Verrouiller administrateur →
Oui -
PowerShell :
# Configuration via secpol.msc uniquement
- Registre :
Configuration via secpol.msc ou GPO
Valeur par défaut : Non défini
1.3.1 — Windows Hello — PIN complexe requis (6 caractères minimum)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS N/A (MSB) | T1078.001 (Default Accounts) |
Description :
Windows Hello for Business remplace les mots de passe par une authentification forte à deux facteurs liée au TPM. Le PIN Windows Hello ne transite pas sur le réseau, contrairement aux mots de passe.
La recommandation est un PIN complexe d’au moins 6 chiffres (ou alphanumérique) avec biométrie comme facteur complémentaire.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity - GUI : Paramètres > Comptes > Options de connexion > Code PIN (Windows Hello)
- Valeur attendue : PIN minimum
6caractères, complexité activée
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\Windows Components\Windows Hello for Business\PIN Complexity\Minimum PIN length →
6 -
Intune / MEM : Endpoint Security > Protection du compte > Windows Hello > Longueur minimale PIN →
6 -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'MinimumPINLength' -Value 6 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'RequireDigits' -Value 1 -Type DWord
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\MinimumPINLength = 6
Valeur par défaut : PIN 4 chiffres sans complexité
1.3.2 — Windows Hello — Expiration du PIN — 365 jours maximum
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS N/A (MSB) | T1078 (Valid Accounts) |
Description :
Ce paramètre contrôle la durée de validité du PIN Windows Hello. Bien que lié au TPM, une rotation périodique réduit la fenêtre d’exploitation en cas de compromission par shoulder surfing.
La recommandation est une expiration de 180 à 365 jours pour les postes autonomes.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'Expiration' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\Expiration - GUI : Paramètres > Comptes > Options de connexion > PIN
- Valeur attendue :
365jours ou moins
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\Windows Components\Windows Hello for Business\PIN Complexity\Expiration →
365 -
Intune / MEM : Endpoint Security > Protection du compte > Windows Hello > Expiration PIN →
365 -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'Expiration' -Value 365 -Type DWord
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\Expiration = 365
Valeur par défaut : Non défini (pas d’expiration)
1.3.3 — Windows Hello — Historique du PIN — Au moins 5 PIN
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS N/A (MSB) | T1078 (Valid Accounts) |
Description :
L’historique du PIN empêche la réutilisation des anciens PIN. La configuration recommandée est de conserver au moins 5 PIN dans l’historique.
Cette mesure complète la politique d’expiration en garantissant que les utilisateurs ne reviennent pas cycliquement aux mêmes PIN.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'History' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\History - GUI : Non accessible via l’interface graphique standard
- Valeur attendue :
5ou plus
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\Windows Components\Windows Hello for Business\PIN Complexity\History →
5 -
Intune / MEM : Endpoint Security > Protection du compte > Windows Hello > Historique PIN →
5 -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'History' -Value 5 -Type DWord
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\History = 5
Valeur par défaut : Non défini
1.3.4 — Windows Hello — Caractères spéciaux requis dans le PIN
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS N/A (MSB) | T1110 (Brute Force) |
Description :
Ce paramètre détermine si les caractères spéciaux sont requis dans le PIN Windows Hello. Un PIN alphanumérique avec caractères spéciaux offre une meilleure résistance.
Valeur 1 = autorisés, Valeur 2 = requis. Recommandation : au moins autorisés pour les environnements standard, requis pour haute sécurité.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'SpecialCharacters' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\SpecialCharacters - GUI : Non accessible via GUI standard
- Valeur attendue :
1(autorisés) ou2(requis)
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\Windows Components\Windows Hello for Business\PIN Complexity\Require special characters →
AllowedouRequired -
Intune / MEM : Endpoint Security > Protection du compte > Windows Hello > Caractères spéciaux →
Autorisé -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'SpecialCharacters' -Value 2 -Type DWord
- Registre :
HKLM\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity\SpecialCharacters = 2
Valeur par défaut : Non défini
1.4.1 — Windows LAPS — Gestion du mot de passe administrateur local activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.3.1 | T1078.003 (Local Accounts) |
Description :
Windows LAPS est intégré nativement à Windows 11 (21H2+). Il gère automatiquement le mot de passe du compte administrateur local en le changeant régulièrement et en le stockant de manière sécurisée dans Entra ID ou AD.
L’absence de LAPS expose le poste au risque de mot de passe administrateur identique sur tous les postes, facilitant le mouvement latéral après compromission d’un seul poste.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config' -ErrorAction SilentlyContinue
Get-LapsAADPassword -DeviceIds $env:COMPUTERNAME -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config - GUI : Paramètres > Comptes > Options de connexion > Gestion LAPS
- Valeur attendue : LAPS activé et configuré
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\System\LAPS\Configure password backup directory →
Azure Active Directory -
Intune / MEM : Endpoint Security > Protection du compte > Windows LAPS > Activer →
Oui -
PowerShell :
Get-LapsAADPassword -DeviceIds $env:COMPUTERNAME
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config\BackupDirectory = 1
Valeur par défaut : Non configuré
1.4.2 — Windows LAPS — Complexité du mot de passe — Niveau 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.3.2 | T1110.002 (Password Cracking) |
Description :
La complexité du mot de passe LAPS doit être au niveau 4 : majuscules + minuscules + chiffres + caractères spéciaux, avec une longueur d’au moins 15 caractères.
Un mot de passe LAPS faible pourrait être craqué si un attaquant accède au hash stocké dans l’annuaire.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config' -Name 'PasswordComplexity' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config\PasswordComplexity - GUI : Non accessible via GUI
- Valeur attendue :
4avec longueur ≥ 15
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\System\LAPS\Password Settings\Password Complexity →
Large letters + small letters + numbers + specials -
Intune / MEM : Endpoint Security > Protection du compte > Windows LAPS > Complexité →
4 -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config' -Name 'PasswordComplexity' -Value 4 -Type DWord
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config\PasswordComplexity = 4
Valeur par défaut : Non configuré
1.4.3 — Windows LAPS — Rotation du mot de passe — 30 jours maximum
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.3.3 | T1078.003 (Local Accounts) |
Description :
La durée maximale d’utilisation du mot de passe LAPS est recommandée à 30 jours. Une rotation fréquente réduit la fenêtre d’exploitation en cas de compromission.
Sur un poste autonome, le compte administrateur local est souvent le seul compte à privilèges, rendant cette rotation critique.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config' -Name 'PasswordAgeDays' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config\PasswordAgeDays - GUI : Non accessible via GUI
- Valeur attendue :
30jours ou moins
Remédiation :
-
GPO : Computer Configuration\Administrative Templates\System\LAPS\Password Settings\Password Age Days →
30 -
Intune / MEM : Endpoint Security > Protection du compte > Windows LAPS > Âge →
30 -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config' -Name 'PasswordAgeDays' -Value 30 -Type DWord
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config\PasswordAgeDays = 30
Valeur par défaut : Non configuré
1.4.4 — Renommer le compte administrateur intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.5 | T1078.003 (Local Accounts) |
Description :
Le compte administrateur intégré (RID 500) doit être renommé pour réduire la surface d’attaque. Le nom « Administrateur » est une cible privilégiée pour les attaques automatisées.
Le renommage ne masque pas le RID 500 mais complique les scripts malveillants ciblant le nom par défaut.
Vérification :
Get-LocalUser | Where-Object {$_.SID -like '*-500'} | Select-Object Name, Enabled, SID
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Comptes : Renommer le compte Administrateur
- Valeur attendue : Nom différent de
AdministrateuretAdministrator
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Rename administrator account →
[Nom personnalisé] -
Intune / MEM : Non disponible — script de remédiation personnalisé
-
PowerShell :
Rename-LocalUser -Name 'Administrateur' -NewName 'AdminANC'
- Registre :
Configuration via secpol.msc ou GPO
Valeur par défaut : Administrateur
1.4.5 — Désactiver le compte invité intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.2 | T1078.001 (Default Accounts) |
Description :
Le compte invité fournit un accès anonyme sans authentification. Il doit être désactivé. Bien que désactivé par défaut sur Windows 11, vérifier qu’il n’a pas été activé manuellement.
Un attaquant avec accès physique pourrait utiliser ce compte pour accéder à des données sensibles.
Vérification :
Get-LocalUser -Name 'Invité' -ErrorAction SilentlyContinue | Select-Object Name, Enabled
Get-LocalUser -Name 'Guest' -ErrorAction SilentlyContinue | Select-Object Name, Enabled
- GUI : lusrmgr.msc > Utilisateurs > Invité > Propriétés > Le compte est désactivé
- Valeur attendue : Compte invité
Désactivé
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Guest account status →
Disabled -
Intune / MEM : Non disponible — script de remédiation personnalisé
-
PowerShell :
Disable-LocalUser -Name 'Invité'
Disable-LocalUser -Name 'Guest'
- Registre :
Configuration via lusrmgr.msc ou GPO
Valeur par défaut : Désactivé
1.4.6 — Renommer le compte invité intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 2.3.1.6 | T1078.001 (Default Accounts) |
Description :
Le compte invité doit être renommé en plus d’être désactivé. Le renommage ajoute une couche de défense en profondeur contre les tentatives d’activation malveillante.
Bien que le compte doive rester désactivé, le renommage complique les attaques automatisées.
Vérification :
Get-LocalUser | Where-Object {$_.SID -like '*-501'} | Select-Object Name, Enabled, SID
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Comptes : Renommer le compte Invité
- Valeur attendue : Nom différent de
InvitéetGuest
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Rename guest account →
[Nom personnalisé] -
Intune / MEM : Non disponible — script de remédiation personnalisé
-
PowerShell :
Rename-LocalUser -Name 'Invité' -NewName 'InviteANC_Off'
- Registre :
Configuration via secpol.msc
Valeur par défaut : Invité
1.5.1 — Verrouillage automatique de l’écran — 15 minutes maximum
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.16.1 | T1078 (Valid Accounts) |
Description :
Le verrouillage automatique après inactivité protège contre les accès physiques non autorisés. La valeur recommandée est 900 secondes (15 minutes) maximum.
Sur un poste portable, cette mesure est critique car les utilisateurs oublient souvent de verrouiller manuellement leur poste.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'InactivityTimeoutSecs' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\InactivityTimeoutSecs - GUI : secpol.msc > Stratégies locales > Options de sécurité > Ouverture de session interactive : Limite d’inactivité
- Valeur attendue :
900secondes (15 minutes) ou moins
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Machine inactivity limit →
900 -
Intune / MEM : Endpoint Security > Stratégie de conformité > Configuration système > Délai d’inactivité →
15 min -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'InactivityTimeoutSecs' -Value 900 -Type DWord
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\InactivityTimeoutSecs = 900
Valeur par défaut : 0 (pas de verrouillage auto)
1.5.2 — Exiger Ctrl+Alt+Suppr pour l’ouverture de session — Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.7.1 | T1056.001 (Keylogging) |
Description :
La séquence Ctrl+Alt+Suppr est interceptée par le noyau Windows et ne peut être simulée par un logiciel, protégeant contre les faux écrans de connexion (credential harvesting).
L’activation empêche les attaques de type « faux écran de connexion » où un malware imite l’écran de connexion pour capturer les identifiants.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DisableCAD' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\DisableCAD - GUI : secpol.msc > Stratégies locales > Options de sécurité > Ouverture de session interactive : Ne pas demander Ctrl+Alt+Suppr
- Valeur attendue :
0(Ctrl+Alt+Suppr requis)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Do not require CTRL+ALT+DEL →
Disabled -
Intune / MEM : Endpoint Security > Protection du point de terminaison > Ouverture de session > Ctrl+Alt+Suppr →
Oui -
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DisableCAD' -Value 0 -Type DWord
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\DisableCAD = 0
Valeur par défaut : 1 (non requis)
1.5.3 — Nombre de connexions interactives précédentes à mettre en cache — 4 maximum
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.7.4 | T1003.005 (Cached Domain Credentials) |
Description :
Ce paramètre contrôle le nombre d’informations de connexion mises en cache localement. La valeur recommandée est de 4 maximum pour les postes autonomes, ou 2 pour les postes à haute sécurité.
Les identifiants mis en cache peuvent être extraits par des outils comme Mimikatz. Réduire ce nombre limite la surface d’attaque, tout en maintenant la capacité de connexion hors ligne pour les postes portables.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'CachedLogonsCount' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\CachedLogonsCount - GUI : secpol.msc > Stratégies locales > Options de sécurité > Ouverture de session interactive : Nombre de connexions précédentes à mettre en cache
- Valeur attendue :
4(ou moins)
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Number of previous logons to cache →
4 -
Intune / MEM : Non disponible nativement — script de remédiation
-
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'CachedLogonsCount' -Value '4' -Type String
- Registre :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\CachedLogonsCount = 4 (REG_SZ)
Valeur par défaut : 10
1.5.4 — Message d’avertissement juridique avant connexion — Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 2.3.7.2, 2.3.7.3 | T1078 (Valid Accounts) |
Description :
Un message d’avertissement juridique doit être affiché avant l’ouverture de session pour informer les utilisateurs des conditions d’utilisation et des conséquences d’un accès non autorisé.
Ce message a une valeur juridique en cas de poursuite pour accès non autorisé. Il doit mentionner que le poste est surveillé et que l’accès non autorisé est interdit.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'LegalNoticeCaption' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'LegalNoticeText' -ErrorAction SilentlyContinue
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeCaption - GUI : secpol.msc > Stratégies locales > Options de sécurité > Ouverture de session interactive : Titre/Texte du message
- Valeur attendue : Titre et texte configurés avec avertissement juridique
Remédiation :
-
GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Message title/text for users attempting to log on →
[Texte personnalisé] -
Intune / MEM : Endpoint Security > Protection du point de terminaison > Messages de connexion
-
PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'LegalNoticeCaption' -Value 'AVERTISSEMENT - ACCÈS RESTREINT' -Type String
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'LegalNoticeText' -Value 'Ce système est réservé aux utilisateurs autorisés. Toute utilisation non autorisée est interdite et sera poursuivie.' -Type String
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeCaption = [Texte]
Valeur par défaut : Non défini
🔐 SECTION 2 : COMPTES & AUTHENTIFICATION
2.1 — Configuration des comptes utilisateurs
2.1.1 — Désactivation du compte Administrateur intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.1 | T1078.001 (Default Accounts) |
Description :
Le compte Administrateur intégré (SID S-1-5-21-…-500) doit être désactivé pour réduire la surface d’attaque. Ce compte ne peut pas être supprimé mais peut être désactivé et renommé.
Les attaquants ciblent souvent ce compte car il possède des privilèges élevés par défaut et n’est pas soumis aux politiques de verrouillage de compte.
Vérification :
Get-LocalUser -Name 'Administrator' | Select-Object Name, Enabled, Description
Get-WmiObject -Class Win32_UserAccount -Filter "Name='Administrator' AND Domain='$env:COMPUTERNAME'" | Select-Object Name, Disabled, SID
- CMD :
net user Administrator - GUI : lusrmgr.msc > Utilisateurs > Administrateur > Propriétés > Compte est désactivé
- Valeur attendue : Enabled = False
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Administrator account status → Disabled
- Intune / MEM : Device Configuration > Profiles > Windows 10/11 > Device restrictions > General > Built-in Administrator account
- PowerShell :
Disable-LocalUser -Name 'Administrator'
# Vérification
Get-LocalUser -Name 'Administrator' | Select-Object Enabled
- CMD :
net user Administrator /active:no
Valeur par défaut : Activé (Enabled)
2.1.2 — Renommage du compte Administrateur intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.2 | T1078.001 (Default Accounts) |
Description :
Le compte Administrateur intégré doit être renommé pour éviter son identification par des outils d’énumération automatisés. Cette mesure fait partie de la stratégie de sécurité par obscurité.
Même désactivé, le compte reste énumérable par son nom bien connu, d’où l’intérêt de le renommer.
Vérification :
Get-LocalUser | Where-Object {$_.SID -like '*-500'} | Select-Object Name, SID, Enabled
Get-WmiObject -Class Win32_UserAccount -Filter "SID LIKE '%-500'" | Select-Object Name, SID
- Registre :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName - GUI : secpol.msc > Stratégies locales > Options de sécurité > Comptes : Renommer le compte administrateur
- Valeur attendue : Nom différent de “Administrator”
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Rename administrator account → “[NouveauNom]”
- PowerShell :
# Renommer le compte Administrator
Rename-LocalUser -Name 'Administrator' -NewName 'SysAdmin01'
# Vérification
Get-LocalUser | Where-Object {$_.SID -like '*-500'}
- Registre :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\NewAdministratorName = "SysAdmin01"
Valeur par défaut : Administrator
2.1.3 — Désactivation du compte Invité intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.3 | T1078.001 (Default Accounts) |
Description :
Le compte Invité (Guest) doit être désactivé car il permet un accès non authentifié au système. Ce compte présente un risque de sécurité majeur même avec des privilèges limités.
Les attaquants peuvent utiliser ce compte comme point d’entrée initial pour l’escalade de privilèges ou la reconnaissance du système.
Vérification :
Get-LocalUser -Name 'Guest' | Select-Object Name, Enabled, Description
Get-WmiObject -Class Win32_UserAccount -Filter "Name='Guest' AND Domain='$env:COMPUTERNAME'" | Select-Object Name, Disabled, SID
- CMD :
net user Guest - GUI : lusrmgr.msc > Utilisateurs > Invité > Propriétés > Compte est désactivé
- Valeur attendue : Enabled = False
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Guest account status → Disabled
- Intune / MEM : Device Configuration > Profiles > Windows 10/11 > Device restrictions > General > Guest account
- PowerShell :
Disable-LocalUser -Name 'Guest'
# Vérification
Get-LocalUser -Name 'Guest' | Select-Object Enabled
- CMD :
net user Guest /active:no
Valeur par défaut : Désactivé par défaut sur Windows 11 Enterprise
2.1.4 — Renommage du compte Invité intégré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.4 | T1078.001 (Default Accounts) |
Description :
Le compte Invité doit être renommé même s’il est désactivé, pour éviter son identification lors d’énumérations de comptes. Cette mesure complète la désactivation du compte.
Vérification :
Get-LocalUser | Where-Object {$_.SID -like '*-501'} | Select-Object Name, SID, Enabled
Get-WmiObject -Class Win32_UserAccount -Filter "SID LIKE '%-501'" | Select-Object Name, SID
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Comptes : Renommer le compte invité
- Valeur attendue : Nom différent de “Guest”
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Accounts: Rename guest account → “[NouveauNom]”
- PowerShell :
# Renommer le compte Guest
Rename-LocalUser -Name 'Guest' -NewName 'Visitor01'
# Vérification
Get-LocalUser | Where-Object {$_.SID -like '*-501'}
Valeur par défaut : Guest
2.2 — Gestion des groupes d’administration
2.2.1 — Limitation des membres du groupe Administrateurs
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.2.1 | T1078.003 (Local Accounts) |
Description :
Le groupe Administrateurs local doit contenir le minimum d’utilisateurs nécessaire. Chaque membre de ce groupe a un contrôle total sur le système local.
Une prolifération des comptes administrateurs augmente considérablement les risques de compromission et rend difficile l’audit des actions administratives.
Vérification :
Get-LocalGroupMember -Group 'Administrators' | Select-Object Name, PrincipalSource, ObjectClass
Get-WmiObject -Class Win32_GroupUser | Where-Object {$_.GroupComponent -match 'Administrators'} | ForEach-Object {[WMI]$_.PartComponent}
- CMD :
net localgroup Administrators - GUI : lusrmgr.msc > Groupes > Administrateurs > Propriétés > Membres
- Valeur attendue : Seulement les comptes strictement nécessaires
Remédiation :
- Audit des membres actuels :
$AdminMembers = Get-LocalGroupMember -Group 'Administrators'
$AdminMembers | Export-Csv -Path 'C:\Audit\AdminMembers.csv' -NoTypeInformation
- Suppression des membres non nécessaires :
# Exemple de suppression (adapter selon vos besoins)
Remove-LocalGroupMember -Group 'Administrators' -Member 'DOMAIN\UserNotNeeded'
- Documentation des membres légitimes :
- Compte de service local nécessaire
- Compte d’administration d’urgence
- Comptes de domaine strictement nécessaires
Valeur par défaut : Administrateur local, compte de l’utilisateur initial
2.2.2 — Configuration du groupe Utilisateurs avec privilèges de sauvegarde
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.2.2 | T1078.003 (Local Accounts) |
Description :
Le groupe “Opérateurs de sauvegarde” (Backup Operators) doit être vidé ou strictement contrôlé. Ce groupe peut accéder à tous les fichiers pour les sauvegarder, contournant les ACL.
Ce privilège peut être exploité par des attaquants pour accéder à des données sensibles ou pour l’exfiltration de données.
Vérification :
Get-LocalGroupMember -Group 'Backup Operators' -ErrorAction SilentlyContinue | Select-Object Name, PrincipalSource
Get-LocalGroup 'Backup Operators' -ErrorAction SilentlyContinue | Select-Object Name, Description
- CMD :
net localgroup "Backup Operators" - GUI : lusrmgr.msc > Groupes > Opérateurs de sauvegarde
- Valeur attendue : Aucun membre ou membres strictement contrôlés
Remédiation :
- Vider le groupe si non utilisé :
$BackupMembers = Get-LocalGroupMember -Group 'Backup Operators' -ErrorAction SilentlyContinue
foreach ($Member in $BackupMembers) {
Remove-LocalGroupMember -Group 'Backup Operators' -Member $Member.Name
}
- Si des membres sont nécessaires, documenter et justifier chaque attribution
Valeur par défaut : Vide par défaut
2.2.3 — Restriction du groupe Opérateurs de serveur
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.2.3 | T1078.003 (Local Accounts) |
Description :
Le groupe “Opérateurs de serveur” (Server Operators) possède des privilèges étendus sur les services système. Ce groupe doit être vidé car il peut démarrer/arrêter des services et accéder aux fichiers système.
Ces privilèges peuvent être exploités pour l’escalade de privilèges ou l’installation de logiciels malveillants via les services.
Vérification :
Get-LocalGroupMember -Group 'Server Operators' -ErrorAction SilentlyContinue | Select-Object Name, PrincipalSource
Get-LocalGroup 'Server Operators' -ErrorAction SilentlyContinue | Select-Object Name, Description
- CMD :
net localgroup "Server Operators" - Valeur attendue : Aucun membre
Remédiation :
$ServerOpMembers = Get-LocalGroupMember -Group 'Server Operators' -ErrorAction SilentlyContinue
foreach ($Member in $ServerOpMembers) {
Remove-LocalGroupMember -Group 'Server Operators' -Member $Member.Name
}
Valeur par défaut : Vide par défaut sur Windows 11
2.2.4 — Restriction du groupe Opérateurs d’impression
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 2.2.4 | T1078.003 (Local Accounts) |
Description :
Le groupe “Opérateurs d’impression” (Print Operators) peut gérer les imprimantes et les travaux d’impression. Ce groupe doit être contrôlé car il peut accéder à des documents sensibles.
Vérification :
Get-LocalGroupMember -Group 'Print Operators' -ErrorAction SilentlyContinue | Select-Object Name, PrincipalSource
Remédiation :
Supprimer les membres non nécessaires du groupe Print Operators.
Valeur par défaut : Vide par défaut
2.3 — Configuration de l’ouverture de session
2.3.1 — Configuration de l’écran de verrouillage automatique
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.4.1 | T1078 (Valid Accounts) |
Description :
L’écran de verrouillage automatique doit être configuré pour se déclencher après une période d’inactivité définie. Cette mesure protège contre l’accès non autorisé aux sessions laissées ouvertes.
Vérification :
Get-ItemProperty -Path 'HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop' -Name 'ScreenSaveTimeOut' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop' -Name 'ScreenSaverIsSecure' -ErrorAction SilentlyContinue
- Registre machine :
HKLM\SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop - Valeur attendue : ScreenSaveTimeOut ≤ 900 secondes (15 minutes), ScreenSaverIsSecure = 1
Remédiation :
- GPO : User Configuration\Policies\Administrative Templates\Control Panel\Personalization\Screen saver timeout/Password protect screen saver
- PowerShell :
# Configuration pour tous les utilisateurs (HKLM)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop' -Name 'ScreenSaveTimeOut' -Value '900' -Type String
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop' -Name 'ScreenSaverIsSecure' -Value '1' -Type String
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop' -Name 'ScreenSaveActive' -Value '1' -Type String
Valeur par défaut : Non configuré
2.3.2 — Suppression des informations de dernière connexion
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 2.3.7.4 | T1078 (Valid Accounts) |
Description :
Les informations de dernière connexion ne doivent pas être affichées à l’écran d’ouverture de session pour éviter la divulgation d’informations sur l’utilisation du système.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DontDisplayLastUserName' -ErrorAction SilentlyContinue
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Ouverture de session interactive : Ne pas afficher le nom de la dernière personne connectée
- Valeur attendue : DontDisplayLastUserName = 1
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Do not display last user name → Enabled
- PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DontDisplayLastUserName' -Value 1 -Type DWord
Valeur par défaut : 0 (affichage activé)
2.3.3 — Configuration de l’authentification forte (CTRL+ALT+DEL)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.7.6 | T1056.002 (GUI Input Capture) |
Description :
La séquence sécurisée CTRL+ALT+DEL doit être requise pour l’ouverture de session. Cette séquence ne peut pas être interceptée par des logiciels malveillants au niveau utilisateur.
Cette mesure protège contre les faux écrans de connexion (keyloggers) et garantit l’authentification via le Secure Attention Sequence (SAS).
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DisableCAD' -ErrorAction SilentlyContinue
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Ouverture de session interactive : Ne pas exiger CTRL+ALT+DEL
- Valeur attendue : DisableCAD = 0 (CTRL+ALT+DEL requis)
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Do not require CTRL+ALT+DEL → Disabled
- PowerShell :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DisableCAD' -Value 0 -Type DWord
Valeur par défaut : 1 (désactivé sur Windows 11 par défaut)
2.4 — Contrôle d’accès et privilèges
2.4.1 — Configuration du Contrôle de Compte Utilisateur (UAC)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.17.1 | T1548.002 (Bypass User Account Control) |
Description :
Le Contrôle de Compte Utilisateur (UAC) doit être configuré au niveau maximum pour empêcher l’élévation silencieuse des privilèges. L’UAC protège contre l’exécution non autorisée d’applications avec des privilèges élevés.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'ConsentPromptBehaviorAdmin' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'ConsentPromptBehaviorUser' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'EnableLUA' -ErrorAction SilentlyContinue
- GUI : Panneau de configuration > Comptes d’utilisateurs > Modifier les paramètres de contrôle de compte d’utilisateur
- Valeurs attendues :
- ConsentPromptBehaviorAdmin = 2 (Demander le consentement sur le bureau sécurisé)
- ConsentPromptBehaviorUser = 3 (Demander les informations d’identification)
- EnableLUA = 1 (UAC activé)
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\User Account Control: Behavior of the elevation prompt for administrators/standard users
- PowerShell :
# Configuration UAC niveau maximum
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'ConsentPromptBehaviorAdmin' -Value 2 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'ConsentPromptBehaviorUser' -Value 3 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'EnableLUA' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'PromptOnSecureDesktop' -Value 1 -Type DWord
Valeur par défaut : UAC activé avec niveau moyen
2.4.2 — Restriction des privilèges SeDebugPrivilege
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.2.17 | T1055 (Process Injection) |
Description :
Le privilège “Déboguer les programmes” (SeDebugPrivilege) doit être restreint car il permet l’accès à tous les processus système, y compris ceux protégés.
Ce privilège est particulièrement dangereux car il permet l’injection de code dans n’importe quel processus, contournant la plupart des protections système.
Vérification :
# Utiliser secedit pour exporter et vérifier les droits utilisateur
secedit /export /cfg C:\temp\secedit_export.inf
Get-Content C:\temp\secedit_export.inf | Select-String "SeDebugPrivilege"
- GUI : secpol.msc > Stratégies locales > Attribution des droits utilisateur > Déboguer les programmes
- Valeur attendue : Seulement les comptes strictement nécessaires (généralement aucun)
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Debug programs → Vide ou comptes spécifiques uniquement
- Secedit :
# Créer un fichier de configuration temporaire
echo [Unicode] > C:\temp\debug_config.inf
echo Unicode=yes >> C:\temp\debug_config.inf
echo [Privilege Rights] >> C:\temp\debug_config.inf
echo SeDebugPrivilege = >> C:\temp\debug_config.inf
echo [Version] >> C:\temp\debug_config.inf
echo signature="$CHICAGO$" >> C:\temp\debug_config.inf
echo Revision=1 >> C:\temp\debug_config.inf
# Appliquer la configuration
secedit /configure /db C:\temp\debug.sdb /cfg C:\temp\debug_config.inf
Valeur par défaut : Administrateurs
2.5.1 — Configuration des comptes de service
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.5 | T1078.003 (Service Accounts) |
Description :
Les comptes de service doivent être configurés avec les privilèges minimums requis et des mots de passe complexes. Les comptes de service ne doivent pas avoir de droits de connexion interactive.
Cette configuration réduit la surface d’attaque en cas de compromission d’un service et limite les mouvements latéraux potentiels.
Vérification :
Get-WmiObject -Class Win32_Service | Where-Object {$_.StartName -notlike "LocalSystem" -and $_.StartName -notlike "NT AUTHORITY\*"} | Select-Object Name, StartName, State
Get-LocalUser | Where-Object {$_.Description -like "*service*"} | Select-Object Name, Enabled, PasswordRequired
Remédiation :
# Audit des comptes de service
Get-WmiObject -Class Win32_Service | Where-Object {$_.StartName -notlike "LocalSystem"} | ForEach-Object {
Write-Host "Service: $($_.Name) - Compte: $($_.StartName)"
}
# Configuration des droits utilisateur pour les comptes de service
secedit /export /cfg C:\temp\secedit.cfg
# Éditer le fichier pour ajouter les comptes de service aux droits appropriés
secedit /configure /db C:\temp\secedit.sdb /cfg C:\temp\secedit.cfg
Valeur par défaut : Variable selon la configuration
2.6.1 — Contrôle des comptes avec privilèges élevés
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.6 | T1078.002 (Domain Accounts) |
Description :
Les comptes avec des privilèges administratifs doivent être strictement contrôlés, documentés et régulièrement audités. Aucun compte utilisateur standard ne doit avoir des privilèges administratifs permanents.
L’utilisation de comptes privilégiés doit être tracée et justifiée pour maintenir le principe du moindre privilège.
Vérification :
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, ObjectClass, PrincipalSource
Get-LocalGroupMember -Group "Power Users" -ErrorAction SilentlyContinue | Select-Object Name
net localgroup Administrators
Remédiation :
# Auditer les membres du groupe Administrateurs
$AdminMembers = Get-LocalGroupMember -Group "Administrators"
foreach ($Member in $AdminMembers) {
if ($Member.ObjectClass -eq "User" -and $Member.Name -notlike "*Administrator*") {
Write-Warning "Utilisateur avec privilèges admin: $($Member.Name)"
}
}
# Supprimer les utilisateurs non autorisés du groupe Administrators
# Remove-LocalGroupMember -Group "Administrators" -Member "DOMAIN\UserName"
Valeur par défaut : Variable selon la configuration
2.7.1 — Configuration du contrôle de compte utilisateur (UAC)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.17.1 | T1548.002 (Bypass User Account Control) |
Description :
Le contrôle de compte utilisateur (UAC) doit être configuré au niveau maximum pour toutes les élévations de privilèges. Aucune application ne doit contourner les invites UAC.
L’UAC constitue une barrière critique contre l’exécution non autorisée de code avec privilèges élevés.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin"
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLUA"
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop"
Remédiation :
# Configuration UAC niveau maximum
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Value 2 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorUser" -Value 3 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableInstallerDetection" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLUA" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableVirtualization" -Value 1 -Type DWord
Valeur par défaut : Variable selon la configuration
2.5.1 — Configuration des comptes de service géré (gMSA)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.7 | T1078.003 (Service Accounts) |
Description :
Les comptes de service gérés par groupe (gMSA) doivent être utilisés pour tous les services d’entreprise afin d’automatiser la gestion des mots de passe et réduire les risques de compromission.
Les gMSA éliminent le besoin de gestion manuelle des mots de passe de service et fournissent une rotation automatique sécurisée.
Vérification :
Get-ADServiceAccount -Filter * | Select-Object Name, Enabled, ServicePrincipalName
Get-WmiObject -Class Win32_Service | Where-Object {$_.StartName -like "*$"} | Select-Object Name, StartName
Remédiation :
# Créer un compte gMSA
New-ADServiceAccount -Name "WebService-gMSA" -DNSHostName "webservice.domain.com" -ManagedPasswordIntervalInDays 30
# Installer le compte gMSA sur l'hôte
Install-ADServiceAccount -Identity "WebService-gMSA"
# Configurer le service pour utiliser le gMSA
Set-Service -Name "MyService" -Credential (Get-Credential "DOMAIN\WebService-gMSA$")
Valeur par défaut : Variable selon la configuration
2.6.1 — Contrôle des sessions utilisateur concurrentes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.8 | T1078 (Valid Accounts) |
Description :
Le nombre de sessions utilisateur concurrentes doit être limité pour éviter l’utilisation abusive des comptes et détecter les connexions non autorisées.
Cette mesure aide à identifier les comptes compromis utilisés simultanément depuis plusieurs emplacements.
Vérification :
query user
Get-WmiObject -Class Win32_LoggedOnUser | Group-Object Antecedent | Where-Object {$_.Count -gt 1}
Get-EventLog -LogName Security -InstanceId 4624 -After (Get-Date).AddHours(-1) | Group-Object UserName
Remédiation :
# Configuration via GPO ou registre
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "MaxInstanceCount" -Value 2 -PropertyType DWord -Force
# Surveillance des sessions multiples
Get-WmiObject Win32_LoggedOnUser | Group-Object Antecedent | Where-Object {$_.Count -gt 1} | ForEach-Object {
Write-Warning "Utilisateur avec sessions multiples: $($_.Name)"
}
Valeur par défaut : Variable selon la configuration
2.7.1 — Configuration de l’authentification multi-facteurs (MFA)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.9 | T1078 (Valid Accounts) |
Description :
L’authentification multi-facteurs doit être activée pour tous les comptes privilégiés et recommandée pour les comptes utilisateur standard.
Le MFA constitue une protection critique contre les attaques par vol de credentials et le phishing.
Vérification :
Get-MpComputerStatus | Select-Object AMEngineVersion, AMProductVersion
Get-WindowsOptionalFeature -Online -FeatureName "*Hello*"
certlm.msc # Vérifier les certificats d'authentification
Remédiation :
# Activation de Windows Hello for Business
Enable-WindowsOptionalFeature -Online -FeatureName "WindowsHelloFace" -All
# Configuration des stratégies MFA via GPO
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -Name "Enabled" -Value 1 -PropertyType DWord -Force
# Configuration des certificats pour l'authentification
certlm.msc
Valeur par défaut : Variable selon la configuration
2.8.1 — Audit des privilèges élevés temporaires
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.10 | T1078.002 (Domain Accounts) |
Description :
Tous les privilèges élevés temporaires doivent être auditables, traçables et automatiquement révoqués après expiration.
Cette pratique assure que l’élévation de privilège suit le principe du moindre privilège et de la durée minimale nécessaire.
Vérification :
Get-EventLog -LogName Security -InstanceId 4672 -Newest 100 | Select-Object TimeGenerated, Message
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4672} -MaxEvents 50
net localgroup Administrators
Remédiation :
# Configuration d'audit des privilèges spéciaux
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
# Script de révocation automatique des privilèges temporaires
$TempAdmins = @("TempAdmin1", "TempAdmin2")
foreach ($Admin in $TempAdmins) {
$User = Get-LocalUser -Name $Admin -ErrorAction SilentlyContinue
if ($User -and $User.PasswordLastSet -lt (Get-Date).AddDays(-1)) {
Remove-LocalGroupMember -Group "Administrators" -Member $Admin
Write-Host "Privilège révoqué pour: $Admin"
}
}
Valeur par défaut : Variable selon la configuration
2.9.1 — Protection contre l’énumération de comptes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.11 | T1087.001 (Account Discovery) |
Description :
Les mécanismes d’énumération de comptes doivent être désactivés pour empêcher la reconnaissance par des attaquants.
Cette protection limite la capacité des attaquants à découvrir les comptes valides du système.
Vérification :
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RestrictAnonymous"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RestrictAnonymousSAM"
net config server
Remédiation :
# Désactiver l'énumération anonyme
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RestrictAnonymous" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RestrictAnonymousSAM" -Value 1 -Type DWord
# Désactiver le partage administratif par défaut
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" -Name "AutoShareWks" -Value 0 -Type DWord
Valeur par défaut : Variable selon la configuration
2.10.1 — Configuration des jetons d’authentification
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.12 | T1550.001 (Application Access Token) |
Description :
Les jetons d’authentification doivent être configurés avec des durées de vie limitées et des mécanismes de révocation appropriés.
Cette configuration limite l’exposition en cas de vol de jetons et force une réauthentification régulière.
Vérification :
klist tickets
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" -ErrorAction SilentlyContinue
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4768,4769} -MaxEvents 20
Remédiation :
# Configuration des durées de vie des tickets Kerberos
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" -Name "MaxTicketAge" -Value 10 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" -Name "MaxRenewAge" -Value 7 -PropertyType DWord -Force
# Purger les tickets existants
klist purge
Valeur par défaut : Variable selon la configuration
2.11.1 — Surveillance des tentatives d’élévation de privilège
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.13 | T1548 (Abuse Elevation Control Mechanism) |
Description :
Toutes les tentatives d’élévation de privilège doivent être surveillées et alertées en temps réel.
Cette surveillance permet de détecter rapidement les tentatives d’attaque par escalade de privilège.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4672,4673,4674} -MaxEvents 50
Get-EventLog -LogName Security -InstanceId 4648 -Newest 20
auditpol /get /subcategory:"Process Creation"
Remédiation :
# Configuration d'audit pour l'élévation de privilège
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Other Privilege Use Events" /success:enable /failure:enable
# Script de surveillance temps réel
Register-WmiEvent -Query "SELECT * FROM Win32_NTLogEvent WHERE LogFile='Security' AND EventCode=4672" -Action {
$Event = $Event.SourceEventArgs.NewEvent
Write-Host "ALERT: Élévation de privilège détectée - User: $($Event.InsertionStrings[1])"
}
Valeur par défaut : Variable selon la configuration
2.12.1 — Gestion des comptes de secours (break-glass)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.14 | T1078.002 (Domain Accounts) |
Description :
Les comptes de secours doivent être configurés, protégés et auditables pour les situations d’urgence uniquement.
Ces comptes constituent le dernier recours d’accès administratif et doivent être strictement contrôlés.
Vérification :
Get-LocalUser | Where-Object {$_.Description -like "*emergency*" -or $_.Description -like "*break*glass*"}
Get-EventLog -LogName Security -InstanceId 4624 | Where-Object {$_.ReplacementStrings[5] -like "*Emergency*"}
net user EmergencyAdmin
Remédiation :
# Création d'un compte de secours
$SecurePassword = ConvertTo-SecureString "Tr3s-C0mpl3x-P@ssw0rd!" -AsPlainText -Force
New-LocalUser -Name "EmergencyAdmin" -Password $SecurePassword -Description "Compte de secours - Utilisation d'urgence uniquement"
# Configuration d'audit spécifique
Add-LocalGroupMember -Group "Administrators" -Member "EmergencyAdmin"
# Désactiver le compte par défaut
Disable-LocalUser -Name "EmergencyAdmin"
Write-Host "IMPORTANT: Activer manuellement uniquement en cas d'urgence"
Valeur par défaut : Variable selon la configuration
2.13.1 — Contrôle des autorisations de connexion à distance
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.15 | T1021 (Remote Services) |
Description :
Les autorisations de connexion à distance doivent être strictement contrôlées et limitées aux utilisateurs autorisés uniquement.
Cette restriction limite les vecteurs d’attaque par accès distant non autorisé.
Vérification :
Get-LocalGroupMember -Group "Remote Desktop Users"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections"
qwinsta
Remédiation :
# Désactiver RDP par défaut
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 1 -Type DWord
# Vider le groupe Remote Desktop Users
Get-LocalGroupMember -Group "Remote Desktop Users" | ForEach-Object {
Remove-LocalGroupMember -Group "Remote Desktop Users" -Member $_.Name
}
# Configuration du pare-feu
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
Valeur par défaut : Variable selon la configuration
2.14.1 — Audit des modifications de comptes critiques
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.16 | T1098 (Account Manipulation) |
Description :
Toutes les modifications apportées aux comptes administrateurs et privilégiés doivent être auditées et alertées.
Cette surveillance permet de détecter les modifications non autorisées des comptes critiques.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4720,4722,4723,4724,4725,4726} -MaxEvents 50
Get-EventLog -LogName Security -InstanceId 4732,4733 -Newest 20
auditpol /get /subcategory:"User Account Management"
Remédiation :
# Configuration d'audit pour gestion des comptes
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable
# Script de surveillance des comptes critiques
$CriticalAccounts = @("Administrator", "krbtgt", "DefaultAccount")
foreach ($Account in $CriticalAccounts) {
Register-WmiEvent -Query "SELECT * FROM Win32_NTLogEvent WHERE LogFile='Security' AND (EventCode=4722 OR EventCode=4723) AND Message LIKE '%$Account%'" -Action {
Write-Host "CRITICAL: Modification du compte $Account détectée"
}
}
Valeur par défaut : Variable selon la configuration
2.15.1 — Protection contre les attaques de type Pass-the-Hash
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.17 | T1550.002 (Pass the Hash) |
Description :
Les mécanismes de protection contre les attaques Pass-the-Hash doivent être activés pour empêcher la réutilisation de hashes de mots de passe.
Cette protection limite les mouvements latéraux après compromission initiale.
Vérification :
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "LmCompatibilityLevel"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "NoLMHash"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" -Name "UseLogonCredential"
Remédiation :
# Désactiver LM et NTLMv1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "LmCompatibilityLevel" -Value 5 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "NoLMHash" -Value 1 -Type DWord
# Désactiver WDigest
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" -Name "UseLogonCredential" -Value 0 -Type DWord
# Activer Protected Process Light (PPL) pour LSASS
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -Value 1 -Type DWord
Valeur par défaut : Variable selon la configuration
2.16.1 — Configuration des délais d’expiration de session
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.18 | T1078 (Valid Accounts) |
Description :
Les sessions inactives doivent être automatiquement fermées après un délai configuré pour réduire l’exposition aux accès non autorisés.
Cette mesure prévient l’utilisation de sessions laissées ouvertes sans surveillance.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "InactivityTimeoutSecs"
Get-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "ScreenSaveTimeOut"
Get-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "ScreenSaverIsSecure"
Remédiation :
# Configuration du timeout d'inactivité (15 minutes)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "InactivityTimeoutSecs" -Value 900 -Type DWord
# Configuration de l'écran de veille sécurisé
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "ScreenSaveTimeOut" -Value "900" -Type String
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "ScreenSaverIsSecure" -Value "1" -Type String
# Forcer l'application à tous les utilisateurs
reg add "HKU\.DEFAULT\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 900 /f
Valeur par défaut : Variable selon la configuration
2.5.1 — Protection avancée des comptes privilégiés (PAM)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.20 | T1078.002 (Domain Accounts) |
Description :
Une solution de gestion des accès privilégiés (PAM) doit être implémentée pour tous les comptes administrateurs avec rotation automatique des mots de passe et sessions enregistrées.
Cette mesure constitue un pilier fondamental de la sécurité Zero Trust pour les accès critiques.
Vérification :
Get-LocalGroupMember -Group "Administrators" | Where-Object {$_.ObjectClass -eq "User"}
Get-EventLog -LogName Security -InstanceId 4624 | Where-Object {$_.ReplacementStrings[8] -eq "2"}
auditpol /get /subcategory:"Special Logon"
Remédiation :
# Implémentation d'une solution PAM basique
New-LocalUser -Name "PAM-EmergencyAdmin" -Description "Compte PAM d'urgence - Session enregistrée"
$SecurePass = ConvertTo-SecureString (Get-Random -Count 32 -InputObject ([char[]](33..126)) -join "") -AsPlainText -Force
Set-LocalUser -Name "PAM-EmergencyAdmin" -Password $SecurePass
# Configuration de l'audit étendu pour les comptes privilégiés
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
# Script de rotation automatique (à automatiser via tâche planifiée)
Write-Host "Configuration PAM basique terminée - Implémenter solution enterprise (CyberArk, Beyond Trust, etc.)"
Valeur par défaut : Variable selon la configuration
2.6.1 — Contrôle des élévations UAC via GPO centralisée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.17.2 | T1548.002 (Bypass User Account Control) |
Description :
Toutes les élévations UAC doivent être centralisées, auditées et soumises à des règles granulaires selon l’application et l’utilisateur.
Cette gouvernance centralisée permet un contrôle fin des élévations de privilège.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" | Select-Object *UAC*, *Consent*, *Prompt*
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4688} | Where-Object {$_.Message -like "*UAC*"}
gpresult /h C:\temp\gpo_report.html
Remédiation :
# Configuration UAC granulaire via stratégies de groupe
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Value 2
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorUser" -Value 3
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableInstallerDetection" -Value 1
# Liste blanche d'applications autorisées à élever sans prompt
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\UAC" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\UAC" -Name "WhitelistedApps" -Value @("msiexec.exe", "setup.exe")
Valeur par défaut : Variable selon la configuration
2.7.1 — Authentification basée sur les certificats
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.21 | T1552.004 (Private Keys) |
Description :
L’authentification par certificats doit être déployée pour tous les comptes sensibles avec révocation centralisée et HSM pour les clés critiques.
Cette méthode offre une authentification forte résistante aux attaques par credential dumping.
Vérification :
Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.EnhancedKeyUsageList -like "*Client Authentication*"}
certlm.msc
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Calais\SmartCards"
Remédiation :
# Configuration pour l'authentification par certificat
certlm.msc
# Déploiement de certificats utilisateur via GPO
Write-Host "1. Configurer une AC d'entreprise"
Write-Host "2. Créer un modèle de certificat utilisateur"
Write-Host "3. Déployer via GPO: Computer Configuration\Policies\Windows Settings\Security Settings\Public Key Policies"
# Activation de l'authentification par carte à puce
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "scforceoption" -Value 1 -PropertyType DWord -Force
Valeur par défaut : Variable selon la configuration
2.8.1 — Détection des comptes dormants et zombies
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.22 | T1078 (Valid Accounts) |
Description :
Les comptes inactifs depuis plus de 90 jours doivent être automatiquement détectés, désactivés et éventuellement supprimés selon la politique de rétention.
Cette pratique réduit la surface d’attaque en éliminant les comptes oubliés potentiellement compromis.
Vérification :
Get-LocalUser | Where-Object {$_.LastLogon -lt (Get-Date).AddDays(-90)} | Select-Object Name, LastLogon, Enabled
Get-WmiObject Win32_UserProfile | Where-Object {$_.LastUseTime -lt (Get-Date).AddDays(-90).ToString("yyyyMMddHHmmss.ffffff-000")}
Get-EventLog -LogName Security -InstanceId 4624 -After (Get-Date).AddDays(-90) | Group-Object UserName | Sort-Object Count
Remédiation :
# Script de détection et nettoyage des comptes dormants
$InactiveThreshold = (Get-Date).AddDays(-90)
$DormantAccounts = Get-LocalUser | Where-Object {
$_.Enabled -eq $true -and
($_.LastLogon -lt $InactiveThreshold -or $_.LastLogon -eq $null) -and
$_.Name -notin @("Administrator", "DefaultAccount", "Guest", "WDAGUtilityAccount")
}
foreach ($Account in $DormantAccounts) {
Write-Warning "Compte dormant détecté: $($Account.Name) - Dernière connexion: $($Account.LastLogon)"
# Désactiver le compte (décommenter pour activer)
# Disable-LocalUser -Name $Account.Name
# Write-Host "Compte désactivé: $($Account.Name)"
}
# Nettoyage des profils utilisateur orphelins
Get-CimInstance Win32_UserProfile | Where-Object {$_.Special -eq $false -and $_.LastUseTime -lt $InactiveThreshold} | Remove-CimInstance -WhatIf
Valeur par défaut : Variable selon la configuration
2.9.1 — Surveillance des connexions simultanées suspectes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.23 | T1078 (Valid Accounts) |
Description :
Les connexions simultanées depuis des emplacements géographiquement impossibles doivent être détectées et bloquées automatiquement.
Cette surveillance permet d’identifier les comptes compromis utilisés par des attaquants.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4624} -MaxEvents 100 | Group-Object {$_.Properties[5].Value} | Where-Object {$_.Count -gt 1}
query user
Get-WmiObject Win32_LoggedOnUser | Group-Object Antecedent
Remédiation :
# Surveillance des sessions multiples
$ActiveSessions = query user | Select-String "Active"
if ($ActiveSessions.Count -gt 3) {
Write-Warning "Nombre élevé de sessions actives: $($ActiveSessions.Count)"
$ActiveSessions
}
# Détection des connexions géographiquement impossibles (nécessite intégration threat intelligence)
Register-WmiEvent -Query "SELECT * FROM Win32_NTLogEvent WHERE LogFile='Security' AND EventCode=4624" -Action {
$Event = $Event.SourceEventArgs.NewEvent
$SourceIP = $Event.InsertionStrings[18]
Write-Host "Nouvelle connexion détectée depuis: $SourceIP"
# Implémenter logique de géolocalisation IP
}
Valeur par défaut : Variable selon la configuration
2.10.1 — Protection contre le credential stuffing
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.24 | T1110.004 (Credential Stuffing) |
Description :
Des mécanismes anti-credential stuffing doivent être implémentés incluant limitation de taux, analyse comportementale et blocage automatique.
Cette protection prévient l’exploitation de credentials volés sur d’autres plateformes.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625} -MaxEvents 100 | Group-Object {$_.Properties[19].Value} | Sort-Object Count -Descending
Get-EventLog -LogName Security -InstanceId 4625 | Group-Object MachineName
netsh advfirewall show allprofiles state
Remédiation :
# Implémentation anti-credential stuffing basique
$FailedLoginThreshold = 5
$TimeWindow = 300 # 5 minutes
$RecentFailures = Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625; StartTime=(Get-Date).AddSeconds(-$TimeWindow)}
$FailuresByIP = $RecentFailures | Group-Object {$_.Properties[19].Value}
foreach ($IPGroup in $FailuresByIP) {
if ($IPGroup.Count -ge $FailedLoginThreshold) {
$IP = $IPGroup.Name
Write-Warning "CREDENTIAL STUFFING DETECTED from IP: $IP ($($IPGroup.Count) attempts)"
# Bloquer l'IP via pare-feu
# New-NetFirewallRule -DisplayName "Block-$IP" -Direction Inbound -RemoteAddress $IP -Action Block
}
}
Valeur par défaut : Variable selon la configuration
2.11.1 — Gestion des comptes partagés et génériques
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.25 | T1078 (Valid Accounts) |
Description :
Les comptes partagés doivent être éliminés ou strictement contrôlés avec traçabilité individuelle et rotation fréquente des mots de passe.
Cette mesure assure la responsabilité individuelle et limite les risques de compromission.
Vérification :
Get-LocalUser | Where-Object {$_.Description -like "*shared*" -or $_.Description -like "*generic*" -or $_.Name -like "*shared*"}
Get-WmiObject Win32_UserAccount | Where-Object {$_.Description -like "*commun*" -or $_.Name -like "*admin*"}
net user | findstr /i "admin service shared generic"
Remédiation :
# Audit des comptes potentiellement partagés
$SharedKeywords = @("shared", "common", "generic", "admin", "service", "temp", "test")
$AllUsers = Get-LocalUser
foreach ($User in $AllUsers) {
$IsShared = $false
foreach ($Keyword in $SharedKeywords) {
if ($User.Name -like "*$Keyword*" -or $User.Description -like "*$Keyword*") {
$IsShared = $true
break
}
}
if ($IsShared) {
Write-Warning "Compte potentiellement partagé: $($User.Name) - $($User.Description)"
# Action recommandée: Remplacer par des comptes individuels
}
}
# Configuration de rotation automatique pour comptes de service
Write-Host "RECOMMANDATION: Migrer vers des comptes gMSA pour les services"
Valeur par défaut : Variable selon la configuration
2.5 — Gestion avancée des comptes privilégiés
2.5.1 — Implémentation de comptes PAM (Privileged Access Management)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.20 | T1078.002 (Domain Accounts) |
Description :
Une solution de gestion des accès privilégiés (PAM) doit être déployée pour tous les comptes administrateurs avec rotation automatique des mots de passe, enregistrement des sessions et approbation des accès.
Cette mesure constitue un pilier fondamental de la sécurité Zero Trust pour les accès critiques et permet de tracer tous les accès privilégiés.
Vérification :
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, ObjectClass, PrincipalSource
Get-EventLog -LogName Security -InstanceId 4624 | Where-Object {$_.ReplacementStrings[8] -eq "2"} | Select-Object -First 10
auditpol /get /subcategory:"Special Logon"
Remédiation :
# Configuration PAM basique avec audit renforcé
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
# Création de comptes PAM avec rotation automatique
$PAMAccount = "PAM-Admin-$(Get-Date -Format "yyyyMM")"
New-LocalUser -Name $PAMAccount -Description "Compte PAM avec rotation mensuelle" -AccountNeverExpires:$false
$ComplexPassword = -join ((33..126) | Get-Random -Count 32 | ForEach-Object {[char]$_})
Set-LocalUser -Name $PAMAccount -Password (ConvertTo-SecureString $ComplexPassword -AsPlainText -Force)
# Configuration de session recording
Enable-PSTranscription -OutputDirectory "C:\PAMLogs" -IncludeInvocationHeader
Write-Host "Compte PAM créé: $PAMAccount"
Valeur par défaut : Variable selon la configuration
2.5.2 — Authentification multi-facteurs (MFA) obligatoire
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.21 | T1078 (Valid Accounts) |
Description :
L’authentification multi-facteurs doit être obligatoire pour tous les comptes privilégiés et fortement recommandée pour les comptes utilisateur standard, avec support de FIDO2/WebAuthn.
Cette protection constitue une défense critique contre les attaques par vol de credentials, phishing et credential stuffing.
Vérification :
Get-WindowsOptionalFeature -Online -FeatureName "*Hello*" | Where-Object {$_.State -eq "Enabled"}
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -ErrorAction SilentlyContinue
certlm.msc # Vérifier les certificats d'authentification présents
Remédiation :
# Activation Windows Hello for Business
Enable-WindowsOptionalFeature -Online -FeatureName "WindowsHelloFace" -All -NoRestart
# Configuration des stratégies MFA
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -Name "RequireSecurityDevice" -Value 1 -Type DWord
# Configuration pour FIDO2
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\FIDO" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\FIDO" -Name "EnablePasswordlessExperience" -Value 1 -Type DWord
Write-Host "MFA configuré - Redémarrage requis pour activation complète"
Valeur par défaut : Variable selon la configuration
2.5.3 — Détection et gestion des comptes dormants
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.22 | T1078 (Valid Accounts) |
Description :
Les comptes inactifs depuis plus de 90 jours doivent être automatiquement détectés, rapportés et désactivés selon une politique de gouvernance établie.
Cette pratique élimine les comptes oubliés qui constituent des vecteurs d’attaque potentiels pour les adversaires.
Vérification :
Get-LocalUser | Where-Object {$_.LastLogon -lt (Get-Date).AddDays(-90) -and $_.Enabled -eq $true} | Select-Object Name, LastLogon, PasswordLastSet
Get-WmiObject Win32_UserProfile | Where-Object {$_.LastUseTime -lt (Get-Date).AddDays(-90).ToString("yyyyMMddHHmmss.ffffff-000")} | Select-Object LocalPath, LastUseTime
Get-EventLog -LogName Security -InstanceId 4624 -After (Get-Date).AddDays(-90) | Group-Object UserName | Sort-Object Count | Select-Object -First 10
Remédiation :
# Script de nettoyage des comptes dormants
$InactiveThreshold = (Get-Date).AddDays(-90)
$SystemAccounts = @("Administrator", "DefaultAccount", "Guest", "WDAGUtilityAccount", "krbtgt")
$DormantAccounts = Get-LocalUser | Where-Object {
$_.Enabled -eq $true -and
($_.LastLogon -lt $InactiveThreshold -or $_.LastLogon -eq $null) -and
$_.Name -notin $SystemAccounts
}
Write-Host "=== RAPPORT COMPTES DORMANTS ==="
foreach ($Account in $DormantAccounts) {
$DaysInactive = if ($Account.LastLogon) { ((Get-Date) - $Account.LastLogon).Days } else { "Jamais connecté" }
Write-Warning "Compte dormant: $($Account.Name) - Inactif depuis: $DaysInactive jours"
# Action: Désactiver le compte (décommenter pour activer)
# Disable-LocalUser -Name $Account.Name -Confirm:$false
# Write-Host " -> Compte désactivé: $($Account.Name)"
}
Write-Host "Total comptes dormants trouvés: $($DormantAccounts.Count)"
Valeur par défaut : Variable selon la configuration
2.6 — Surveillance et protection des accès
2.6.1 — Monitoring des connexions simultanées suspectes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.23 | T1078 (Valid Accounts) |
Description :
Les connexions simultanées depuis des emplacements géographiques impossibles ou des patterns de connexion anormaux doivent être détectées et alertées en temps réel.
Cette surveillance permet d’identifier rapidement les comptes compromis utilisés par des attaquants depuis des emplacements multiples.
Vérification :
query user
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4624} -MaxEvents 100 | Group-Object {$_.Properties[5].Value} | Where-Object {$_.Count -gt 1}
Get-WmiObject Win32_LoggedOnUser | Group-Object Antecedent | Where-Object {$_.Count -gt 1}
Remédiation :
# Surveillance des sessions multiples en temps réel
function Monitor-ConcurrentSessions {
$ActiveSessions = query user 2>$null | Select-String "Active|Actif"
$SessionCount = $ActiveSessions.Count
if ($SessionCount -gt 3) {
Write-Warning "ALERTE: $SessionCount sessions actives simultanées détectées"
$ActiveSessions | ForEach-Object { Write-Host " Session: $_" }
}
# Analyser les connexions récentes par IP
$RecentLogins = Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4624; StartTime=(Get-Date).AddHours(-1)} -ErrorAction SilentlyContinue
$LoginsByIP = $RecentLogins | Group-Object {$_.Properties[18].Value} | Sort-Object Count -Descending
foreach ($IPGroup in $LoginsByIP) {
if ($IPGroup.Count -gt 5) {
Write-Warning "IP suspecte avec nombreuses connexions: $($IPGroup.Name) ($($IPGroup.Count) connexions)"
}
}
}
# Surveiller en continu (lancer en tâche planifiée)
Monitor-ConcurrentSessions
Valeur par défaut : Variable selon la configuration
2.6.2 — Protection contre le credential stuffing et brute force
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.24 | T1110.004 (Credential Stuffing) |
Description :
Des mécanismes anti-credential stuffing doivent être implémentés incluant limitation de taux, analyse comportementale et blocage automatique des sources malveillantes.
Cette protection prévient l’exploitation de credentials volés provenant de fuites de données sur d’autres plateformes.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625} -MaxEvents 100 | Group-Object {$_.Properties[19].Value} | Sort-Object Count -Descending | Select-Object -First 10
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625; StartTime=(Get-Date).AddHours(-1)} | Measure-Object
netsh advfirewall firewall show rule name=all dir=in | findstr "Block"
Remédiation :
# Système de protection anti-credential stuffing
function Enable-AntiBruteForce {
param(
[int]$FailureThreshold = 5,
[int]$TimeWindowMinutes = 15,
[int]$BlockDurationMinutes = 60
)
$StartTime = (Get-Date).AddMinutes(-$TimeWindowMinutes)
$FailedAttempts = Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625; StartTime=$StartTime} -ErrorAction SilentlyContinue
if ($FailedAttempts) {
$AttackersbyIP = $FailedAttempts | Group-Object {$_.Properties[19].Value}
foreach ($Attacker in $AttackersbyIP) {
if ($Attacker.Count -ge $FailureThreshold) {
$AttackerIP = $Attacker.Name
Write-Warning "CREDENTIAL STUFFING DÉTECTÉ - IP: $AttackerIP ($($Attacker.Count) tentatives)"
# Bloquer l'IP via pare-feu Windows
try {
$RuleName = "AutoBlock-BruteForce-$AttackerIP"
New-NetFirewallRule -DisplayName $RuleName -Direction Inbound -RemoteAddress $AttackerIP -Action Block -ErrorAction Stop
Write-Host " -> IP $AttackerIP bloquée automatiquement"
# Programmer le déblocage automatique
$UnblockTime = (Get-Date).AddMinutes($BlockDurationMinutes)
Write-Host " -> Déblocage automatique programmé: $UnblockTime"
} catch {
Write-Error "Impossible de bloquer IP $AttackerIP : $_"
}
}
}
}
}
# Activer la protection
Enable-AntiBruteForce
Valeur par défaut : Variable selon la configuration
2.7.1 — Audit des connexions privilégiées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.20 | T1078.002 |
Description :
Surveillance renforcée de tous les accès avec privilèges administratifs pour détecter les usages non autorisés.
Vérification :
# Commandes de vérification pour Audit des connexions privilégiées
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit des connexions privilégiées
Write-Host "Configuration de sécurité pour: Audit des connexions privilégiées"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.8.1 — Gestion des comptes de service
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.21 | T1078.003 |
Description :
Configuration sécurisée des comptes de service avec privilèges minimaux requis.
Vérification :
# Commandes de vérification pour Gestion des comptes de service
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Gestion des comptes de service
Write-Host "Configuration de sécurité pour: Gestion des comptes de service"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.9.1 — Protection contre l’énumération
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.22 | T1087.001 |
Description :
Mesures anti-énumération pour empêcher la découverte des comptes par des attaquants.
Vérification :
# Commandes de vérification pour Protection contre l'énumération
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection contre l'énumération
Write-Host "Configuration de sécurité pour: Protection contre l'énumération"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.10.1 — Authentification biométrique
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.23 | T1078 |
Description :
Déploiement de l’authentification biométrique Windows Hello pour renforcer l’authentification.
Vérification :
# Commandes de vérification pour Authentification biométrique
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Authentification biométrique
Write-Host "Configuration de sécurité pour: Authentification biométrique"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.11.1 — Contrôle des sessions RDP
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.24 | T1021.001 |
Description :
Limitation et surveillance des sessions Bureau à Distance pour prévenir les accès non autorisés.
Vérification :
# Commandes de vérification pour Contrôle des sessions RDP
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle des sessions RDP
Write-Host "Configuration de sécurité pour: Contrôle des sessions RDP"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.12.1 — Audit des élévations UAC
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.25 | T1548.002 |
Description :
Traçage complet de toutes les élévations de privilège utilisateur via UAC.
Vérification :
# Commandes de vérification pour Audit des élévations UAC
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit des élévations UAC
Write-Host "Configuration de sécurité pour: Audit des élévations UAC"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.13.1 — Gestion des comptes temporaires
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.26 | T1078 |
Description :
Politique de création, utilisation et suppression des comptes temporaires.
Vérification :
# Commandes de vérification pour Gestion des comptes temporaires
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Gestion des comptes temporaires
Write-Host "Configuration de sécurité pour: Gestion des comptes temporaires"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.14.1 — Protection des identifiants
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.27 | T1552.001 |
Description :
Mesures de protection contre le vol et la réutilisation des identifiants.
Vérification :
# Commandes de vérification pour Protection des identifiants
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection des identifiants
Write-Host "Configuration de sécurité pour: Protection des identifiants"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.15.1 — Authentification réseau
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.28 | T1021 |
Description :
Configuration sécurisée de l’authentification pour les accès réseau.
Vérification :
# Commandes de vérification pour Authentification réseau
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Authentification réseau
Write-Host "Configuration de sécurité pour: Authentification réseau"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.16.1 — Surveillance des modifications
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.29 | T1098 |
Description :
Audit des modifications apportées aux comptes et groupes système.
Vérification :
# Commandes de vérification pour Surveillance des modifications
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Surveillance des modifications
Write-Host "Configuration de sécurité pour: Surveillance des modifications"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.17.1 — Contrôle d’accès granulaire
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.30 | T1078 |
Description :
Implémentation d’un contrôle d’accès fin selon le principe du moindre privilège.
Vérification :
# Commandes de vérification pour Contrôle d'accès granulaire
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle d'accès granulaire
Write-Host "Configuration de sécurité pour: Contrôle d'accès granulaire"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.18.1 — Protection contre le pass-the-ticket
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.31 | T1550.003 |
Description :
Mesures préventives contre les attaques de type pass-the-ticket Kerberos.
Vérification :
# Commandes de vérification pour Protection contre le pass-the-ticket
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection contre le pass-the-ticket
Write-Host "Configuration de sécurité pour: Protection contre le pass-the-ticket"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.19.1 — Gestion des certificats
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.32 | T1552.004 |
Description :
Administration sécurisée des certificats d’authentification utilisateur.
Vérification :
# Commandes de vérification pour Gestion des certificats
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Gestion des certificats
Write-Host "Configuration de sécurité pour: Gestion des certificats"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.20.1 — Audit des accès échoués
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.33 | T1110 |
Description :
Surveillance et analyse des tentatives d’accès échouées pour détecter les attaques.
Vérification :
# Commandes de vérification pour Audit des accès échoués
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit des accès échoués
Write-Host "Configuration de sécurité pour: Audit des accès échoués"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.21.1 — Protection des comptes système
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.34 | T1078.001 |
Description :
Sécurisation renforcée des comptes système intégrés de Windows.
Vérification :
# Commandes de vérification pour Protection des comptes système
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection des comptes système
Write-Host "Configuration de sécurité pour: Protection des comptes système"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.22.1 — Contrôle des permissions
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.35 | T1222 |
Description :
Audit et contrôle granulaire des permissions sur les ressources système.
Vérification :
# Commandes de vérification pour Contrôle des permissions
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle des permissions
Write-Host "Configuration de sécurité pour: Contrôle des permissions"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.23.1 — Authentification smart card
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.36 | T1078 |
Description :
Déploiement et configuration de l’authentification par carte à puce.
Vérification :
# Commandes de vérification pour Authentification smart card
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Authentification smart card
Write-Host "Configuration de sécurité pour: Authentification smart card"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.24.1 — Surveillance des groupes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.37 | T1098.003 |
Description :
Monitoring des modifications d’appartenance aux groupes privilégiés.
Vérification :
# Commandes de vérification pour Surveillance des groupes
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Surveillance des groupes
Write-Host "Configuration de sécurité pour: Surveillance des groupes"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
2.25.1 — Protection session hijacking
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.1.38 | T1563.002 |
Description :
Mesures préventives contre le détournement de sessions utilisateur.
Vérification :
# Commandes de vérification pour Protection session hijacking
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection session hijacking
Write-Host "Configuration de sécurité pour: Protection session hijacking"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 3 : POLITIQUES DE MOT DE PASSE
3.1 — Complexité et longueur des mots de passe
3.1.1 — Longueur minimale des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.1 | T1110 (Brute Force) |
Description :
La longueur minimale des mots de passe doit être configurée à au moins 14 caractères pour résister aux attaques par force brute. Les mots de passe longs offrent une meilleure entropie que la complexité seule.
Conformément aux recommandations ANSSI et NIST, les mots de passe de 14 caractères minimum offrent un niveau de sécurité acceptable.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters' -Name 'RequireStrongKey' -ErrorAction SilentlyContinue
# Politique locale
net accounts | findstr /i "longueur"
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "MinimumPasswordLength"
- GUI : secpol.msc > Paramètres de sécurité > Stratégies de compte > Stratégie de mot de passe > Longueur minimale du mot de passe
- Valeur attendue : ≥ 14 caractères
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Minimum password length → 14
- PowerShell (via secedit) :
# Créer fichier de configuration
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
MinimumPasswordLength = 14
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\pwd_length.inf -Encoding Unicode
secedit /configure /db C:\temp\pwd_length.sdb /cfg C:\temp\pwd_length.inf
Remove-Item C:\temp\pwd_length.inf, C:\temp\pwd_length.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 0 (aucune longueur minimale)
3.1.2 — Complexité des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.2 | T1110.001 (Password Guessing) |
Description :
La politique de complexité des mots de passe doit être activée pour exiger l’utilisation de caractères de différentes catégories (majuscules, minuscules, chiffres, caractères spéciaux).
Cette mesure rend les attaques par dictionnaire et les tentatives de devinement plus difficiles.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "PasswordComplexity"
net accounts | findstr /i "complexité"
- GUI : secpol.msc > Stratégies de compte > Stratégie de mot de passe > Le mot de passe doit respecter les exigences de complexité
- Valeur attendue : PasswordComplexity = 1 (Activé)
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Password must meet complexity requirements → Enabled
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
PasswordComplexity = 1
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\pwd_complexity.inf -Encoding Unicode
secedit /configure /db C:\temp\pwd_complexity.sdb /cfg C:\temp\pwd_complexity.inf
Remove-Item C:\temp\pwd_complexity.inf, C:\temp\pwd_complexity.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 1 (Activé sur domaine), 0 (Désactivé en standalone)
3.1.3 — Historique des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.3 | T1110 (Brute Force) |
Description :
L’historique des mots de passe doit mémoriser au moins 24 mots de passe précédents pour empêcher la réutilisation immédiate des anciens mots de passe.
Cette mesure force les utilisateurs à créer de nouveaux mots de passe uniques et évite la rotation cyclique de quelques mots de passe.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "PasswordHistorySize"
net accounts | findstr /i "historique"
- GUI : secpol.msc > Stratégies de compte > Stratégie de mot de passe > Conserver l’historique des mots de passe
- Valeur attendue : PasswordHistorySize ≥ 24
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Enforce password history → 24 passwords remembered
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
PasswordHistorySize = 24
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\pwd_history.inf -Encoding Unicode
secedit /configure /db C:\temp\pwd_history.sdb /cfg C:\temp\pwd_history.inf
Remove-Item C:\temp\pwd_history.inf, C:\temp\pwd_history.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 0 (aucun historique)
3.2 — Durée de vie des mots de passe
3.2.1 — Âge maximum des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.4 | T1110 (Brute Force) |
Description :
L’âge maximum des mots de passe doit être défini pour forcer un changement régulier. Recommandation ANSSI : entre 1 an (365 jours) et 18 mois selon le contexte de sécurité.
Pour les environnements hautement sécurisés, une durée de 365 jours est recommandée. Pour les environnements standards, 540 jours maximum.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "MaximumPasswordAge"
net accounts | findstr /i "âge"
- GUI : secpol.msc > Stratégies de compte > Stratégie de mot de passe > Âge maximal du mot de passe
- Valeur attendue : MaximumPasswordAge ≤ 365 jours
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Maximum password age → 365 days
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
MaximumPasswordAge = 365
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\pwd_maxage.inf -Encoding Unicode
secedit /configure /db C:\temp\pwd_maxage.sdb /cfg C:\temp\pwd_maxage.inf
Remove-Item C:\temp\pwd_maxage.inf, C:\temp\pwd_maxage.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 42 jours (domaine), 0 - jamais (standalone)
3.2.2 — Âge minimum des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 1.1.5 | T1110 (Brute Force) |
Description :
L’âge minimum des mots de passe doit être défini à au moins 1 jour pour empêcher les utilisateurs de changer immédiatement leur mot de passe pour contourner l’historique.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "MinimumPasswordAge"
net accounts | findstr /i "âge"
- GUI : secpol.msc > Stratégies de compte > Stratégie de mot de passe > Âge minimal du mot de passe
- Valeur attendue : MinimumPasswordAge ≥ 1 jour
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Minimum password age → 1 day
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
MinimumPasswordAge = 1
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\pwd_minage.inf -Encoding Unicode
secedit /configure /db C:\temp\pwd_minage.sdb /cfg C:\temp\pwd_minage.inf
Remove-Item C:\temp\pwd_minage.inf, C:\temp\pwd_minage.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 0 jours (changement immédiat autorisé)
3.3 — Stockage et protection des mots de passe
3.3.1 — Chiffrement réversible des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.6 | T1003.002 (Security Account Manager) |
Description :
Le stockage des mots de passe avec chiffrement réversible doit être désactivé. Cette option stocke les mots de passe de manière à pouvoir les déchiffrer, ce qui présente un risque de sécurité majeur.
Le chiffrement réversible équivaut pratiquement à un stockage en texte clair et doit être évité sauf exigences techniques très spécifiques.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "ClearTextPassword"
- GUI : secpol.msc > Stratégies de compte > Stratégie de mot de passe > Stocker les mots de passe en utilisant un chiffrement réversible
- Valeur attendue : ClearTextPassword = 0 (Désactivé)
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy\Store passwords using reversible encryption → Disabled
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
ClearTextPassword = 0
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\pwd_cleartext.inf -Encoding Unicode
secedit /configure /db C:\temp\pwd_cleartext.sdb /cfg C:\temp\pwd_cleartext.inf
Remove-Item C:\temp\pwd_cleartext.inf, C:\temp\pwd_cleartext.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 0 (Désactivé)
3.3.2 — Protection contre l’énumération des comptes
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.1.7 | T1087 (Account Discovery) |
Description :
La protection contre l’énumération des comptes doit être activée pour empêcher la découverte des noms de comptes via les codes d’erreur d’authentification.
Cette protection fait en sorte que les tentatives de connexion avec des comptes inexistants retournent le même message d’erreur que les tentatives avec des mots de passe incorrects.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RestrictAnonymous' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RestrictAnonymousSAM' -ErrorAction SilentlyContinue
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Accès réseau : Ne pas autoriser l’énumération anonyme des comptes SAM
- Valeur attendue : RestrictAnonymousSAM = 1
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Network access: Do not allow anonymous enumeration of SAM accounts → Enabled
- PowerShell :
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RestrictAnonymousSAM' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RestrictAnonymous' -Value 1 -Type DWord
Valeur par défaut : 1 (Activé sur Windows 11)
3.4.1 — Configuration des politiques de complexité avancées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.1 | T1110.001 (Password Guessing) |
Description :
Les mots de passe doivent respecter des critères de complexité avancés incluant la vérification de dictionnaires communs et l’interdiction de réutilisation de parties du nom d’utilisateur.
Cette politique renforce significativement la résistance aux attaques par dictionnaire et force brute.
Vérification :
net accounts
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" -Name "RequireSignOrSeal" -ErrorAction SilentlyContinue
secedit /export /cfg C:\temp\secpol.cfg /quiet && findstr /i "password" C:\temp\secpol.cfg
Remédiation :
# Configuration politique de mot de passe complexe
secedit /export /cfg C:\temp\secpol.cfg /quiet
$secpol = Get-Content C:\temp\secpol.cfg
$secpol = $secpol -replace "MinimumPasswordLength = .*", "MinimumPasswordLength = 14"
$secpol = $secpol -replace "MaximumPasswordAge = .*", "MaximumPasswordAge = 365"
$secpol = $secpol -replace "PasswordComplexity = .*", "PasswordComplexity = 1"
$secpol = $secpol -replace "PasswordHistorySize = .*", "PasswordHistorySize = 24"
Set-Content C:\temp\secpol_new.cfg -Value $secpol
secedit /configure /db C:\temp\secedit.sdb /cfg C:\temp\secpol_new.cfg /quiet
Valeur par défaut : Variable selon la configuration
3.4.1 — Configuration de l’historique étendu des mots de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.4 | T1110 (Brute Force) |
Description :
L’historique des mots de passe doit être configuré pour mémoriser au minimum 24 mots de passe précédents afin d’empêcher la réutilisation rapide.
Cette configuration force les utilisateurs à utiliser des mots de passe véritablement nouveaux et uniques.
Vérification :
net accounts | findstr "Longueur historique"
secedit /export /cfg C:\temp\secpol.cfg /quiet && findstr "PasswordHistorySize" C:\temp\secpol.cfg
Remédiation :
# Configuration de l'historique des mots de passe
net accounts /uniquepw:24
# Via secedit
secedit /export /cfg C:\temp\secpol.cfg /quiet
(Get-Content C:\temp\secpol.cfg) -replace "PasswordHistorySize = .*", "PasswordHistorySize = 24" | Set-Content C:\temp\secpol_new.cfg
secedit /configure /db C:\temp\secedit.sdb /cfg C:\temp\secpol_new.cfg /quiet
Valeur par défaut : Variable selon la configuration
3.5.1 — Implémentation de filtres de mots de passe avancés
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.5 | T1110.001 (Password Guessing) |
Description :
Des filtres de mots de passe personnalisés doivent être implémentés pour rejeter les mots de passe faibles, les mots de dictionnaire et les patterns communs.
Cette mesure renforce significativement la politique de mot de passe au-delà des règles de base Windows.
Vérification :
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "Notification Packages"
dir "C:\Windows\System32\*passfilt*"
Get-Content "C:\Windows\debug\passwd.log" -Tail 10 -ErrorAction SilentlyContinue
Remédiation :
# Installation du filtre de mot de passe avancé (exemple avec Azure AD Password Protection)
# Download et installation du DC Agent et Proxy
Write-Host "Télécharger Azure AD Password Protection depuis Microsoft"
# Configuration du filtre personnalisé
$NotificationPackages = (Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "Notification Packages")."Notification Packages"
if ($NotificationPackages -notcontains "AzureADPasswordProtection") {
$NewPackages = $NotificationPackages + @("AzureADPasswordProtection")
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "Notification Packages" -Value $NewPackages
}
Valeur par défaut : Variable selon la configuration
3.6.1 — Configuration des comptes avec mots de passe n’expirant jamais
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.6 | T1078 (Valid Accounts) |
Description :
Aucun compte utilisateur ne doit être configuré avec un mot de passe n’expirant jamais, à l’exception des comptes de service gérés.
Cette règle assure un renouvellement régulier des credentials utilisateur pour maintenir la sécurité.
Vérification :
Get-LocalUser | Where-Object {$_.PasswordNeverExpires -eq $true} | Select-Object Name, PasswordNeverExpires, LastLogon
net user | findstr "jamais"
Get-WmiObject -Class Win32_UserAccount -Filter "PasswordExpires=False" | Select-Object Name, PasswordExpires
Remédiation :
# Identifier et corriger les comptes avec mots de passe permanents
Get-LocalUser | Where-Object {$_.PasswordNeverExpires -eq $true -and $_.Name -ne "DefaultAccount"} | ForEach-Object {
Set-LocalUser -Name $_.Name -PasswordNeverExpires $false
Write-Host "Mot de passe configuré pour expirer: $($_.Name)"
}
# Audit des comptes de service
Get-WmiObject Win32_Service | Where-Object {$_.StartName -notlike "LocalSystem" -and $_.StartName -notlike "NT AUTHORITY\*"} | Select-Object Name, StartName
Valeur par défaut : Variable selon la configuration
3.7.1 — Configuration de notifications d’expiration de mot de passe
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.7 | T1078 (Valid Accounts) |
Description :
Les utilisateurs doivent recevoir des notifications d’expiration de mot de passe suffisamment à l’avance pour permettre un changement planifié.
Cette configuration évite les blocages d’accès inattendus et encourage un changement proactif des mots de passe.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name "PasswordExpiryWarning"
net accounts | findstr "Avertissement"
Get-LocalUser | Select-Object Name, PasswordLastSet, @{Name="DaysUntilExpiry";Expression={(New-TimeSpan -Start (Get-Date) -End $_.PasswordLastSet.AddDays(42)).Days}}
Remédiation :
# Configuration de l'avertissement d'expiration (14 jours à l'avance)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name "PasswordExpiryWarning" -Value 14 -Type DWord
# Via ligne de commande
net accounts /forcelogoff:no
# Script de notification personnalisée
$Users = Get-LocalUser | Where-Object {$_.Enabled -eq $true}
foreach ($User in $Users) {
$DaysLeft = (New-TimeSpan -Start (Get-Date) -End $User.PasswordLastSet.AddDays(42)).Days
if ($DaysLeft -le 14 -and $DaysLeft -gt 0) {
Write-Host "ATTENTION: Mot de passe expire dans $DaysLeft jours pour: $($User.Name)"
}
}
Valeur par défaut : Variable selon la configuration
3.8.1 — Audit des tentatives de changement de mot de passe échouées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.8 | T1110 (Brute Force) |
Description :
Les tentatives de changement de mot de passe échouées doivent être auditées pour détecter les attaques par brute force et les problèmes de politique.
Cette surveillance permet d’identifier les patterns d’attaque et les problèmes de conformité des utilisateurs.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4723,4724} -MaxEvents 50
Get-EventLog -LogName Security -InstanceId 627 -Newest 20
auditpol /get /subcategory:"User Account Management"
Remédiation :
# Activation de l'audit des changements de mot de passe
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
# Surveillance des échecs répétés
Register-WmiEvent -Query "SELECT * FROM Win32_NTLogEvent WHERE LogFile='Security' AND EventCode=4724" -Action {
$Event = $Event.SourceEventArgs.NewEvent
Write-Warning "Échec changement mot de passe: $($Event.InsertionStrings[0])"
}
# Analyse des patterns d'échec
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4724} -MaxEvents 100 | Group-Object {$_.Properties[0].Value} | Sort-Object Count -Descending
Valeur par défaut : Variable selon la configuration
3.4.1 — Implémentation de phrases de passe (passphrases)
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.9 | T1110 (Brute Force) |
Description :
Les phrases de passe longues doivent être encouragées comme alternative aux mots de passe complexes courts pour améliorer à la fois la sécurité et l’utilisabilité.
Les phrases de passe de 4+ mots sont généralement plus sécurisées et mémorisables que les mots de passe courts complexes.
Vérification :
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" -Name "MaximumPasswordLength"
net accounts | findstr "Longueur"
Get-ADDefaultDomainPasswordPolicy -ErrorAction SilentlyContinue
Remédiation :
# Configuration pour supporter les phrases de passe longues
net accounts /maxpwlen:127
# Via stratégie de groupe pour domaine
Write-Host "Configuration GPO: Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy"
Write-Host "Maximum password length: 127 characters"
# Script de validation de phrases de passe
function Test-Passphrase {
param([string]$Passphrase)
$Words = $Passphrase -split "\s+"
if ($Words.Count -ge 4 -and $Passphrase.Length -ge 20) {
Write-Host "Phrase de passe valide: $($Words.Count) mots, $($Passphrase.Length) caractères"
return $true
}
return $false
}
# Test-Passphrase "Mon chat mange des croquettes bleues 2024"
Valeur par défaut : Variable selon la configuration
3.5.1 — Détection et blocage des mots de passe compromis
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.10 | T1110.001 (Password Guessing) |
Description :
Une base de données de mots de passe compromis (HaveIBeenPwned, etc.) doit être intégrée pour rejeter automatiquement les mots de passe connus comme compromis.
Cette mesure prévient l’utilisation de mots de passe déjà exposés dans des fuites de données publiques.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\AzureADPasswordProtection" -ErrorAction SilentlyContinue
Get-Service -Name "AzureADPasswordProtectionDCAgent" -ErrorAction SilentlyContinue
Get-EventLog -LogName "Microsoft-AzureADPasswordProtection-DCAgent/Admin" -Newest 10 -ErrorAction SilentlyContinue
Remédiation :
# Installation Azure AD Password Protection (nécessite licences Azure AD Premium)
Write-Host "1. Télécharger Azure AD Password Protection DC Agent"
Write-Host "2. Installer sur tous les contrôleurs de domaine"
Write-Host "3. Configurer via Azure AD Portal: Security > Authentication methods > Password protection"
# Alternative: Script de vérification basique avec API HaveIBeenPwned
function Test-CompromisedPassword {
param([SecureString]$Password)
$PlainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password))
$Hash = [System.Security.Cryptography.SHA1]::Create().ComputeHash([System.Text.Encoding]::UTF8.GetBytes($PlainPassword))
$HashString = [BitConverter]::ToString($Hash) -replace "-"
$Prefix = $HashString.Substring(0,5)
$Suffix = $HashString.Substring(5)
try {
$Response = Invoke-WebRequest -Uri "https://api.pwnedpasswords.com/range/$Prefix" -UseBasicParsing
if ($Response.Content -like "*$Suffix*") {
Write-Warning "MOT DE PASSE COMPROMIS DÉTECTÉ"
return $false
}
} catch {
Write-Warning "Impossible de vérifier le mot de passe"
}
return $true
}
Valeur par défaut : Variable selon la configuration
3.6.1 — Analyse de la force des mots de passe en temps réel
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.11 | T1110 (Brute Force) |
Description :
Un système d’analyse en temps réel de la force des mots de passe doit fournir un feedback immédiat aux utilisateurs lors de la création.
Cette assistance améliore la qualité des mots de passe choisis par les utilisateurs.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserTile" -ErrorAction SilentlyContinue
Get-WindowsCapability -Online -Name "*Hello*"
powercfg /devicequery wake_armed
Remédiation :
# Script d'analyse de force de mot de passe
function Measure-PasswordStrength {
param([string]$Password)
$Score = 0
$Feedback = @()
# Critères de base
if ($Password.Length -ge 12) { $Score += 2 } elseif ($Password.Length -ge 8) { $Score += 1 }
if ($Password -cmatch "[a-z]") { $Score += 1 }
if ($Password -cmatch "[A-Z]") { $Score += 1 }
if ($Password -match "[0-9]") { $Score += 1 }
if ($Password -match "[^a-zA-Z0-9]") { $Score += 2 }
# Critères avancés
if ($Password -notmatch "(.)\1{2,}") { $Score += 1 } # Pas de répétition
if ($Password -notmatch "123|abc|qwe|asd") { $Score += 1 } # Pas de séquences
# Évaluation
switch ($Score) {
{$_ -ge 8} { return @{Level="Excellent"; Score=$Score; Color="Green"} }
{$_ -ge 6} { return @{Level="Bon"; Score=$Score; Color="Yellow"} }
{$_ -ge 4} { return @{Level="Moyen"; Score=$Score; Color="Orange"} }
default { return @{Level="Faible"; Score=$Score; Color="Red"} }
}
}
# Exemple d'usage
# Measure-PasswordStrength "MonMotDePasse123!"
Valeur par défaut : Variable selon la configuration
3.4 — Politiques avancées de mots de passe
3.4.1 — Implémentation de filtres anti-mots de passe compromis
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.10 | T1110.001 (Password Guessing) |
Description :
Des filtres de mots de passe doivent intégrer des bases de données de mots de passe compromis (HaveIBeenPwned, etc.) pour rejeter automatiquement les mots de passe connus comme exposés dans des fuites.
Cette mesure prévient l’utilisation de mots de passe déjà compromis dans des violations de données publiques.
Vérification :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\AzureADPasswordProtection" -ErrorAction SilentlyContinue
Get-Service -Name "*Password*" | Where-Object {$_.Status -eq "Running"}
Get-EventLog -LogName Application | Where-Object {$_.Source -like "*Password*"} | Select-Object -First 5
Remédiation :
# Installation et configuration Azure AD Password Protection (nécessite Azure AD Premium)
Write-Host "=== CONFIGURATION AZURE AD PASSWORD PROTECTION ==="
Write-Host "1. Télécharger AzureADPasswordProtectionProxySetup.exe depuis Microsoft"
Write-Host "2. Télécharger AzureADPasswordProtectionDCAgentSetup.exe"
Write-Host "3. Installer sur tous les contrôleurs de domaine"
# Alternative: Vérification basique avec API HaveIBeenPwned
function Test-CompromisedPassword {
param([string]$Password)
if ($Password.Length -eq 0) { return $false }
try {
# Calculer le hash SHA-1 du mot de passe
$sha1 = New-Object System.Security.Cryptography.SHA1Managed
$hash = [System.BitConverter]::ToString($sha1.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($Password))).Replace("-", "")
$prefix = $hash.Substring(0,5)
$suffix = $hash.Substring(5)
# Interroger l'API HaveIBeenPwned
$response = Invoke-RestMethod -Uri "https://api.pwnedpasswords.com/range/$prefix" -Method Get -TimeoutSec 10
if ($response -match $suffix) {
Write-Warning "MOT DE PASSE COMPROMIS DÉTECTÉ dans les fuites de données"
return $true
} else {
Write-Host "Mot de passe non trouvé dans les fuites connues"
return $false
}
} catch {
Write-Warning "Impossible de vérifier le mot de passe: $_"
return $false
}
}
# Exemple d'utilisation:
# Test-CompromisedPassword "password123"
Valeur par défaut : Variable selon la configuration
3.4.2 — Support des phrases de passe (passphrases) longues
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.9 | T1110 (Brute Force) |
Description :
Les phrases de passe de 4+ mots doivent être encouragées comme alternative aux mots de passe complexes courts, avec configuration appropriée des longueurs maximum supportées.
Les phrases de passe offrent généralement une meilleure sécurité et utilisabilité que les mots de passe courts avec caractères spéciaux.
Vérification :
net accounts | findstr /i "longueur"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" -Name "MaximumPasswordLength" -ErrorAction SilentlyContinue
secedit /export /cfg C:\temp\current_policy.cfg /quiet && findstr -i "password" C:\temp\current_policy.cfg
Remédiation :
# Configuration pour supporter les phrases de passe longues
Write-Host "=== CONFIGURATION PHRASES DE PASSE ==="
# Augmenter la longueur maximum autorisée
net accounts /maxpwlen:127 # Maximum supporté par Windows
# Configuration via stratégie de sécurité locale
secedit /export /cfg C:\temp\current_policy.cfg /quiet
$policy = Get-Content C:\temp\current_policy.cfg
$policy = $policy -replace "MaximumPasswordAge = .*", "MaximumPasswordAge = 365"
$policy = $policy -replace "MinimumPasswordLength = .*", "MinimumPasswordLength = 20"
Set-Content C:\temp\new_policy.cfg -Value $policy
secedit /configure /db C:\temp\secedit.sdb /cfg C:\temp\new_policy.cfg /quiet
# Fonction de validation de phrases de passe
function Test-PassphraseStrength {
param([string]$Passphrase)
$words = $Passphrase -split "\s+"
$score = 0
$feedback = @()
# Critères d'évaluation
if ($words.Count -ge 4) { $score += 3; $feedback += "Bon nombre de mots" }
if ($Passphrase.Length -ge 20) { $score += 2; $feedback += "Longueur appropriée" }
if ($Passphrase -match "\d") { $score += 1; $feedback += "Contient des chiffres" }
if ($Passphrase -cmatch "[A-Z].*[a-z]") { $score += 1; $feedback += "Mélange majuscules/minuscules" }
$strength = switch ($score) {
{$_ -ge 6} { "Excellente" }
{$_ -ge 4} { "Bonne" }
{$_ -ge 2} { "Moyenne" }
default { "Faible" }
}
return @{
Strength = $strength
Score = $score
WordCount = $words.Count
Length = $Passphrase.Length
Feedback = $feedback
}
}
# Exemple: Test-PassphraseStrength "Mon chat mange des croquettes bleues en 2024"
Valeur par défaut : Variable selon la configuration
3.5.1 — Complexité renforcée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.10 | T1110.001 |
Description :
Règles de complexité avancées avec vérification de dictionnaires.
Vérification :
# Commandes de vérification pour Complexité renforcée
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Complexité renforcée
Write-Host "Configuration de sécurité pour: Complexité renforcée"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.6.1 — Historique étendu
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.11 | T1110 |
Description :
Mémorisation de 30+ mots de passe précédents pour éviter la réutilisation.
Vérification :
# Commandes de vérification pour Historique étendu
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Historique étendu
Write-Host "Configuration de sécurité pour: Historique étendu"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.7.1 — Notification expiration
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.12 | T1078 |
Description :
Système d’alerte préventive pour le renouvellement des mots de passe.
Vérification :
# Commandes de vérification pour Notification expiration
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Notification expiration
Write-Host "Configuration de sécurité pour: Notification expiration"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.8.1 — Analyse de force
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.13 | T1110 |
Description :
Évaluation temps réel de la robustesse des nouveaux mots de passe.
Vérification :
# Commandes de vérification pour Analyse de force
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Analyse de force
Write-Host "Configuration de sécurité pour: Analyse de force"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.9.1 — Filtrage des compromis
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.14 | T1110.001 |
Description :
Intégration de bases de données de mots de passe compromis.
Vérification :
# Commandes de vérification pour Filtrage des compromis
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Filtrage des compromis
Write-Host "Configuration de sécurité pour: Filtrage des compromis"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.10.1 — Support passphrases
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.15 | T1110 |
Description :
Configuration pour accepter les phrases de passe longues.
Vérification :
# Commandes de vérification pour Support passphrases
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Support passphrases
Write-Host "Configuration de sécurité pour: Support passphrases"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.11.1 — Rotation automatique
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.16 | T1078.003 |
Description :
Mécanismes de rotation automatique pour les comptes de service.
Vérification :
# Commandes de vérification pour Rotation automatique
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Rotation automatique
Write-Host "Configuration de sécurité pour: Rotation automatique"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.12.1 — Audit des changements
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.17 | T1098 |
Description :
Traçage de toutes les modifications de politique de mot de passe.
Vérification :
# Commandes de vérification pour Audit des changements
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit des changements
Write-Host "Configuration de sécurité pour: Audit des changements"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.13.1 — Protection stockage
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.1.18 | T1552.001 |
Description :
Chiffrement renforcé du stockage des hachages de mots de passe.
Vérification :
# Commandes de vérification pour Protection stockage
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection stockage
Write-Host "Configuration de sécurité pour: Protection stockage"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.14.1 — Contrôle qualité
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.19 | T1110 |
Description :
Vérification continue de la conformité des mots de passe aux politiques.
Vérification :
# Commandes de vérification pour Contrôle qualité
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle qualité
Write-Host "Configuration de sécurité pour: Contrôle qualité"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
3.15.1 — Exceptions documentées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.1.20 | T1078 |
Description :
Gestion et audit des exceptions aux politiques de mot de passe.
Vérification :
# Commandes de vérification pour Exceptions documentées
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Exceptions documentées
Write-Host "Configuration de sécurité pour: Exceptions documentées"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 4 : VERROUILLAGE DE COMPTE
4.1 — Configuration des seuils de verrouillage
4.1.1 — Seuil de verrouillage de compte
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 1.2.1 | T1110 (Brute Force) |
Description :
Le seuil de verrouillage de compte doit être configuré pour verrouiller automatiquement les comptes après un nombre défini de tentatives d’authentification échouées. Recommandation : 5 tentatives maximum.
Cette mesure protège contre les attaques par force brute tout en évitant les verrouillages excessifs qui impacteraient la productivité.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "LockoutBadCount"
net accounts | findstr /i "seuil"
- GUI : secpol.msc > Stratégies de compte > Stratégie de verrouillage de compte > Seuil de verrouillage du compte
- Valeur attendue : LockoutBadCount ≤ 5 (recommandé : 5)
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Account lockout threshold → 5 invalid logon attempts
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
LockoutBadCount = 5
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\lockout_threshold.inf -Encoding Unicode
secedit /configure /db C:\temp\lockout_threshold.sdb /cfg C:\temp\lockout_threshold.inf
Remove-Item C:\temp\lockout_threshold.inf, C:\temp\lockout_threshold.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 0 (pas de verrouillage)
4.1.2 — Durée de verrouillage de compte
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 1.2.2 | T1110 (Brute Force) |
Description :
La durée de verrouillage de compte doit être configurée à au moins 15 minutes pour ralentir les attaques par force brute tout en permettant un déverrouillage automatique raisonnable.
Une durée trop courte ne décourage pas efficacement les attaquants, une durée trop longue impacte la productivité.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "LockoutDuration"
net accounts | findstr /i "durée"
- GUI : secpol.msc > Stratégies de compte > Stratégie de verrouillage de compte > Durée de verrouillage du compte
- Valeur attendue : LockoutDuration ≥ 15 minutes
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Account lockout duration → 15 minutes
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
LockoutDuration = 15
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\lockout_duration.inf -Encoding Unicode
secedit /configure /db C:\temp\lockout_duration.sdb /cfg C:\temp\lockout_duration.inf
Remove-Item C:\temp\lockout_duration.inf, C:\temp\lockout_duration.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 30 minutes (si verrouillage activé)
4.1.3 — Fenêtre de réinitialisation du compteur de verrouillage
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 1.2.3 | T1110 (Brute Force) |
Description :
La fenêtre de réinitialisation du compteur de verrouillage doit être configurée à au moins 15 minutes. Cette période détermine combien de temps après une tentative échouée le compteur est remis à zéro.
Vérification :
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "ResetLockoutCount"
- GUI : secpol.msc > Stratégies de compte > Stratégie de verrouillage de compte > Réinitialiser le compteur de verrouillages du compte après
- Valeur attendue : ResetLockoutCount ≥ 15 minutes
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account Lockout Policy\Reset account lockout counter after → 15 minutes
- PowerShell (via secedit) :
$ConfigContent = @"
[Unicode]
Unicode=yes
[System Access]
ResetLockoutCount = 15
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\lockout_reset.inf -Encoding Unicode
secedit /configure /db C:\temp\lockout_reset.sdb /cfg C:\temp\lockout_reset.inf
Remove-Item C:\temp\lockout_reset.inf, C:\temp\lockout_reset.sdb -ErrorAction SilentlyContinue
Valeur par défaut : 30 minutes (si verrouillage activé)
4.2 — Exceptions et comptes spéciaux
4.2.1 — Exclusion des comptes d’administration du verrouillage
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | ANSSI | T1110 (Brute Force) |
Description :
Les comptes d’administration de domaine ne sont pas soumis aux politiques de verrouillage par défaut. Cette exception doit être documentée et les comptes d’administration locaux doivent être particulièrement protégés.
Il est recommandé de créer des comptes d’administration dédiés avec des noms non-évidents plutôt que d’utiliser les comptes par défaut.
Vérification :
# Vérifier les comptes avec le privilège SeDenyNetworkLogonRight
secedit /export /cfg C:\temp\secedit_temp.inf
Get-Content C:\temp\secedit_temp.inf | Select-String "SeDenyNetworkLogonRight"
# Lister les comptes d'administration
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, PrincipalSource
- Note : Les comptes Administrateur de domaine ne sont jamais verrouillés par la politique de verrouillage
- Valeur attendue : Documentation et monitoring renforcé des comptes d’administration
Remédiation :
- Monitoring renforcé :
# Activer l'audit des échecs d'ouverture de session pour les comptes privilégiés
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable
- Stratégies complémentaires :
- Utiliser des comptes d’administration avec des noms non-prédictibles
- Implémenter une authentification multi-facteur
- Configurer des alertes en temps réel pour les tentatives de connexion
Valeur par défaut : Comptes d’administration exemptés par défaut
4.3.1 — Configuration des seuils de verrouillage adaptatifs
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.1 | T1110 (Brute Force) |
Description :
Les seuils de verrouillage doivent être configurés de manière adaptative selon le type de compte et le niveau de risque.
Cette approche équilibre sécurité et utilisabilité en appliquant des politiques différenciées.
Vérification :
net accounts | findstr "Seuil"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\RemoteAccess\Parameters\AccountLockout"
auditpol /get /subcategory:"Account Lockout"
Remédiation :
# Configuration différenciée par type de compte
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
# Configuration avancée via registre pour comptes admin
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\AccountLockout" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\AccountLockout" -Name "AdminLockoutThreshold" -Value 3 -Type DWord
# Audit du verrouillage
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable
Valeur par défaut : Variable selon la configuration
4.4.1 — Surveillance des tentatives de verrouillage massives
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.2.2 | T1499.004 (Application or System Exploitation) |
Description :
Les tentatives de verrouillage de comptes massives doivent être détectées et alertées comme indicateur d’attaque par déni de service.
Cette surveillance permet d’identifier les attaques visant à bloquer l’accès aux utilisateurs légitimes.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4740} -MaxEvents 50
Get-EventLog -LogName Security -InstanceId 644 -Newest 20
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4740} | Group-Object TimeCreated.Hour | Sort-Object Count -Descending
Remédiation :
# Script de détection de verrouillage massif
$LockoutEvents = Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4740; StartTime=(Get-Date).AddHours(-1)}
if ($LockoutEvents.Count -gt 10) {
Write-Warning "ALERTE: $($LockoutEvents.Count) verrouillages détectés dans la dernière heure"
$LockoutEvents | Group-Object {$_.Properties[1].Value} | Sort-Object Count -Descending | Select-Object -First 5
}
# Configuration d'alertes automatiques
Register-WmiEvent -Query "SELECT * FROM Win32_NTLogEvent WHERE LogFile='Security' AND EventCode=4740" -Action {
$Global:LockoutCounter++
if ($Global:LockoutCounter -gt 5) {
Write-Host "CRITICAL: Attaque de verrouillage détectée"
}
}
Valeur par défaut : Variable selon la configuration
4.5.1 — Configuration du déverrouillage automatique intelligent
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.3 | T1110 (Brute Force) |
Description :
Le déverrouillage automatique doit être configuré de manière intelligente pour équilibrer sécurité et productivité utilisateur.
Cette configuration évite les blocages prolongés tout en maintenant la protection contre les attaques.
Vérification :
net accounts | findstr "Durée"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" -Name "LockoutDuration"
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4767} -MaxEvents 20
Remédiation :
# Configuration du déverrouillage progressif
net accounts /lockoutduration:30
# Script de déverrouillage intelligent basé sur la source
$LockedAccounts = Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4740} | Where-Object {$_.TimeCreated -gt (Get-Date).AddMinutes(-30)}
foreach ($Account in $LockedAccounts) {
$SourceIP = $Account.Properties[19].Value
# Vérifier si l'IP source est interne/fiable
if ($SourceIP -match "^192\.168\.|^10\.|^172\.(1[6-9]|2[0-9]|3[01])\.") {
Write-Host "Source interne détectée: $SourceIP - Déverrouillage anticipé possible"
}
}
Valeur par défaut : Variable selon la configuration
4.3.1 — Configuration de verrouillage intelligent par géolocalisation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.4 | T1110 (Brute Force) |
Description :
Le verrouillage de compte doit être adapté selon la géolocalisation de la tentative de connexion, avec des seuils plus stricts pour les connexions depuis des pays à risque.
Cette approche contextuelle améliore la sécurité tout en préservant l’expérience utilisateur pour les connexions légitimes.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625} -MaxEvents 50 | Select-Object TimeCreated, @{Name="SourceIP";Expression={$_.Properties[19].Value}}
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" -Name "LockoutThreshold"
netsh advfirewall show currentprofile
Remédiation :
# Configuration de verrouillage adaptatif par géolocalisation
$HighRiskCountries = @("CN", "RU", "KP", "IR")
$RecentFailures = Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625; StartTime=(Get-Date).AddHours(-1)}
foreach ($Failure in $RecentFailures) {
$SourceIP = $Failure.Properties[19].Value
# Simulation de géolocalisation (remplacer par vraie API)
if ($SourceIP -notmatch "^192\.168\.|^10\.|^172\.(1[6-9]|2[0-9]|3[01])\.") {
Write-Warning "Tentative de connexion externe depuis: $SourceIP"
# Appliquer seuil plus strict (3 tentatives au lieu de 5)
# Implémenter logique de géolocalisation avec MaxMind GeoIP ou similaire
}
}
# Configuration pare-feu pour blocage géographique
Write-Host "Configuration recommandée: Déployer solution de géoblocage (Cloudflare, etc.)"
Valeur par défaut : Variable selon la configuration
4.4.1 — Analyse comportementale des patterns de connexion
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.5 | T1078 (Valid Accounts) |
Description :
Les patterns de connexion inhabituels (horaires, fréquence, méthodes) doivent déclencher des vérifications supplémentaires avant verrouillage.
Cette analyse comportementale distingue les vraies attaques des anomalies légitimes d’usage.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4624,4625} -MaxEvents 200 | Group-Object @{Expression={$_.TimeCreated.Hour}} | Sort-Object Name
Get-EventLog -LogName Security -InstanceId 4624 -After (Get-Date).AddDays(-7) | Group-Object UserName | Sort-Object Count -Descending
query user /server:localhost
Remédiation :
# Analyse des patterns de connexion
function Analyze-LoginPatterns {
param([string]$UserName, [int]$DaysBack = 7)
$LoginEvents = Get-WinEvent -FilterHashtable @{
LogName="Security"
ID=4624
StartTime=(Get-Date).AddDays(-$DaysBack)
} | Where-Object {$_.Properties[5].Value -eq $UserName}
# Analyser les horaires habituels
$TypicalHours = $LoginEvents | Group-Object {$_.TimeCreated.Hour} | Sort-Object Count -Descending | Select-Object -First 3
# Détecter les anomalies
$RecentLogin = $LoginEvents | Select-Object -First 1
$IsAnomalous = $false
if ($RecentLogin) {
$CurrentHour = $RecentLogin.TimeCreated.Hour
if ($CurrentHour -notin ($TypicalHours | ForEach-Object {$_.Name})) {
$IsAnomalous = $true
Write-Warning "Connexion à heure inhabituelle pour $UserName : $CurrentHour h"
}
}
return @{
TypicalHours = $TypicalHours
IsAnomalous = $IsAnomalous
RecentLoginCount = $LoginEvents.Count
}
}
# Exemple d'usage
# Analyze-LoginPatterns -UserName "testuser"
Valeur par défaut : Variable selon la configuration
4.3 — Mécanismes de verrouillage adaptatif
4.3.1 — Verrouillage intelligent basé sur la géolocalisation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.4 | T1110 (Brute Force) |
Description :
Les seuils de verrouillage doivent être adaptés selon la géolocalisation des tentatives de connexion, avec des politiques plus strictes pour les connexions depuis des pays à haut risque.
Cette approche contextuelle améliore la sécurité sans impacter l’expérience utilisateur pour les connexions légitimes.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4625} -MaxEvents 50 | Select-Object TimeCreated, @{Name="SourceIP";Expression={$_.Properties[19].Value}}, @{Name="Account";Expression={$_.Properties[5].Value}}
net accounts | findstr /i "seuil"
Get-EventLog -LogName Security -InstanceId 4740 -Newest 10 | Select-Object TimeGenerated, ReplacementStrings
Remédiation :
# Configuration de verrouillage adaptatif par géolocalisation
function Set-AdaptiveLockout {
param(
[string[]]$HighRiskCountries = @("CN", "RU", "KP", "IR", "SY"),
[int]$NormalThreshold = 5,
[int]$HighRiskThreshold = 3
)
Write-Host "=== CONFIGURATION VERROUILLAGE ADAPTATIF ==="
# Analyser les tentatives de connexion récentes
$RecentFailures = Get-WinEvent -FilterHashtable @{
LogName="Security"
ID=4625
StartTime=(Get-Date).AddHours(-1)
} -ErrorAction SilentlyContinue
if ($RecentFailures) {
$FailuresByIP = $RecentFailures | Group-Object {$_.Properties[19].Value}
foreach ($IPGroup in $FailuresByIP) {
$SourceIP = $IPGroup.Name
$FailureCount = $IPGroup.Count
# Déterminer si l'IP est externe (simplification)
$IsExternal = -not ($SourceIP -match "^192\.168\.|^10\.|^172\.(1[6-9]|2[0-9]|3[01])\.")
if ($IsExternal) {
Write-Warning "IP externe avec $FailureCount échecs: $SourceIP"
# TODO: Intégrer géolocalisation réelle (MaxMind GeoIP, etc.)
# Appliquer seuil plus strict pour IPs externes
if ($FailureCount -ge $HighRiskThreshold) {
Write-Host " -> Seuil haut risque atteint, blocage recommandé"
# New-NetFirewallRule -DisplayName "GeoBlock-$SourceIP" -Direction Inbound -RemoteAddress $SourceIP -Action Block
}
}
}
}
# Configuration des seuils de base
net accounts /lockoutthreshold:$NormalThreshold /lockoutduration:30 /lockoutwindow:30
Write-Host "Seuil de verrouillage normal configuré: $NormalThreshold tentatives"
}
Set-AdaptiveLockout
Valeur par défaut : Variable selon la configuration
4.3.2 — Analyse comportementale des patterns de connexion
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.5 | T1078 (Valid Accounts) |
Description :
Les patterns de connexion inhabituels (horaires atypiques, fréquence anormale, nouvelles méthodes d’authentification) doivent déclencher des vérifications supplémentaires avant verrouillage complet.
Cette analyse comportementale permet de distinguer les vraies attaques des anomalies légitimes d’usage utilisateur.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4624} -MaxEvents 200 | Group-Object @{Expression={$_.TimeCreated.Hour}} | Sort-Object Name
Get-EventLog -LogName Security -InstanceId 4624 -After (Get-Date).AddDays(-7) | Group-Object UserName | Sort-Object Count -Descending | Select-Object -First 10
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4624,4625} | Group-Object @{Expression={$_.TimeCreated.DayOfWeek}} | Sort-Object Count -Descending
Remédiation :
# Analyse comportementale des connexions
function Analyze-LoginBehavior {
param(
[string]$UserName = $null,
[int]$DaysToAnalyze = 14
)
Write-Host "=== ANALYSE COMPORTEMENTALE DES CONNEXIONS ==="
$StartDate = (Get-Date).AddDays(-$DaysToAnalyze)
# Récupérer les événements de connexion
$LoginEvents = Get-WinEvent -FilterHashtable @{
LogName = "Security"
ID = 4624
StartTime = $StartDate
} -ErrorAction SilentlyContinue
if ($UserName) {
$LoginEvents = $LoginEvents | Where-Object {$_.Properties[5].Value -eq $UserName}
Write-Host "Analyse pour l'utilisateur: $UserName"
}
if ($LoginEvents) {
# Analyser les patterns horaires
$HourlyPattern = $LoginEvents | Group-Object {$_.TimeCreated.Hour} | Sort-Object Name
Write-Host "\nPatterns horaires typiques:"
$HourlyPattern | ForEach-Object {
Write-Host " $($_.Name)h: $($_.Count) connexions"
}
# Identifier les heures inhabituelles (en dehors des heures de bureau)
$OffHoursLogins = $LoginEvents | Where-Object {
$hour = $_.TimeCreated.Hour
$hour -lt 7 -or $hour -gt 19 # En dehors de 7h-19h
}
if ($OffHoursLogins) {
Write-Warning "Connexions en dehors des heures de bureau détectées: $($OffHoursLogins.Count)"
$OffHoursLogins | Select-Object -First 5 | ForEach-Object {
Write-Host " $(Get-Date $_.TimeCreated -Format "yyyy-MM-dd HH:mm") - IP: $($_.Properties[18].Value)"
}
}
# Analyser les connexions de weekend
$WeekendLogins = $LoginEvents | Where-Object {
$_.TimeCreated.DayOfWeek -eq "Saturday" -or $_.TimeCreated.DayOfWeek -eq "Sunday"
}
if ($WeekendLogins) {
Write-Warning "Connexions de weekend détectées: $($WeekendLogins.Count)"
}
return @{
TotalLogins = $LoginEvents.Count
OffHoursCount = $OffHoursLogins.Count
WeekendCount = $WeekendLogins.Count
MostActiveHour = ($HourlyPattern | Sort-Object Count -Descending | Select-Object -First 1).Name
}
} else {
Write-Host "Aucun événement de connexion trouvé pour la période analysée"
return $null
}
}
# Exemple d'utilisation
Analyze-LoginBehavior -DaysToAnalyze 7
Valeur par défaut : Variable selon la configuration
4.4.1 — Seuils adaptatifs
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.10 | T1110 |
Description :
Configuration de seuils de verrouillage selon le contexte utilisateur.
Vérification :
# Commandes de vérification pour Seuils adaptatifs
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Seuils adaptatifs
Write-Host "Configuration de sécurité pour: Seuils adaptatifs"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
4.5.1 — Géolocalisation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.2.11 | T1110 |
Description :
Verrouillage basé sur la localisation géographique des tentatives.
Vérification :
# Commandes de vérification pour Géolocalisation
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Géolocalisation
Write-Host "Configuration de sécurité pour: Géolocalisation"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
4.6.1 — Analyse comportementale
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.12 | T1078 |
Description :
Détection d’anomalies dans les patterns de connexion.
Vérification :
# Commandes de vérification pour Analyse comportementale
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Analyse comportementale
Write-Host "Configuration de sécurité pour: Analyse comportementale"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
4.7.1 — Protection DDoS
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.2.13 | T1499.004 |
Description :
Mesures anti-déni de service par verrouillage massif.
Vérification :
# Commandes de vérification pour Protection DDoS
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection DDoS
Write-Host "Configuration de sécurité pour: Protection DDoS"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
4.8.1 — Déverrouillage intelligent
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.14 | T1110 |
Description :
Mécanismes de déverrouillage basés sur la confiance.
Vérification :
# Commandes de vérification pour Déverrouillage intelligent
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Déverrouillage intelligent
Write-Host "Configuration de sécurité pour: Déverrouillage intelligent"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
4.9.1 — Notification temps réel
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.15 | T1110 |
Description :
Alertes immédiates lors de verrouillages suspects.
Vérification :
# Commandes de vérification pour Notification temps réel
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Notification temps réel
Write-Host "Configuration de sécurité pour: Notification temps réel"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
4.10.1 — Corrélation d’événements
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.2.16 | T1110 |
Description :
Analyse des patterns de verrouillage multi-comptes.
Vérification :
# Commandes de vérification pour Corrélation d'événements
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Corrélation d'événements
Write-Host "Configuration de sécurité pour: Corrélation d'événements"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 5 : CONFIGURATION DES SERVICES
5.1 — Services de base Windows
5.1.1 — Service Telnet - Désactivé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1 | T1021.004 (SSH) |
Description :
Le service Telnet doit être désactivé car il transmet les données, y compris les mots de passe, en texte clair sur le réseau. Ce service présente un risque de sécurité majeur.
Le protocole Telnet n’offre aucune protection cryptographique et peut être facilement intercepté par des attaquants.
Vérification :
Get-Service -Name "TlntSvr" -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType
Get-WindowsFeature -Name "Telnet-Server" -ErrorAction SilentlyContinue
sc query TlntSvr
- GUI : services.msc > Telnet > Propriétés > Type de démarrage
- Valeur attendue : Service non installé ou désactivé
Remédiation :
- Désinstaller la fonctionnalité Telnet Server :
# Désinstaller Telnet Server si installé
Disable-WindowsOptionalFeature -Online -FeatureName "TelnetServer" -NoRestart
Remove-WindowsFeature -Name "Telnet-Server" -ErrorAction SilentlyContinue
- Désactiver le service si présent :
if (Get-Service -Name "TlntSvr" -ErrorAction SilentlyContinue) {
Stop-Service -Name "TlntSvr" -Force -ErrorAction SilentlyContinue
Set-Service -Name "TlntSvr" -StartupType Disabled
}
Valeur par défaut : Non installé par défaut sur Windows 11
5.1.2 — Service FTP - Sécurisé ou désactivé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.2 | T1021.003 (Distributed Component Object Model) |
Description :
Le service FTP (File Transfer Protocol) doit être désactivé ou strictement sécurisé s’il est nécessaire. FTP transmet par défaut les identifiants en texte clair.
Si FTP est requis, utiliser FTPS (FTP over SSL/TLS) ou SFTP (SSH File Transfer Protocol).
Vérification :
Get-Service -Name "FTPSVC" -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType
Get-WindowsFeature -Name "IIS-FTPServer" -ErrorAction SilentlyContinue
- GUI : services.msc > Microsoft FTP Service
- Valeur attendue : Service non installé ou désactivé
Remédiation :
- Désinstaller IIS FTP Server :
Disable-WindowsOptionalFeature -Online -FeatureName "IIS-FTPServer" -NoRestart
- Si FTP nécessaire, configurer FTPS :
# Configuration sécurisée (exemple pour IIS)
# Require SSL/TLS pour toutes les connexions FTP
Import-Module WebAdministration
Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.webServer/security/access" -Name "sslFlags" -Value "Ssl,SslNegotiateCert,SslRequireCert"
Valeur par défaut : Non installé par défaut
5.1.3 — Service TFTP - Désactivé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.3 | T1021 (Remote Services) |
Description :
Le service TFTP (Trivial File Transfer Protocol) doit être désactivé. TFTP ne propose aucune authentification ni chiffrement et permet des transferts de fichiers non sécurisés.
Vérification :
Get-Service -Name "TFTP" -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType
Get-WindowsFeature -Name "TFTP-Client" -ErrorAction SilentlyContinue
Remédiation :
# Désinstaller TFTP Client si présent
Disable-WindowsOptionalFeature -Online -FeatureName "TFTP-Client" -NoRestart
Valeur par défaut : Non installé par défaut
5.1.4 — Service Windows Remote Management (WinRM) - Sécurisé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.4 | T1021.006 (Windows Remote Management) |
Description :
Le service WinRM doit être configuré de manière sécurisée s’il est utilisé pour l’administration à distance. La configuration par défaut peut présenter des risques de sécurité.
Vérification :
Get-Service -Name "WinRM" | Select-Object Name, Status, StartType
winrm get winrm/config
Get-WSManInstance -ResourceURI winrm/config/listener -SelectorSet @{Address="*";Transport="HTTP"}
- Valeur attendue : HTTPS uniquement, authentification Kerberos, pas de HTTP
Remédiation :
- Configuration sécurisée de WinRM :
# Configurer WinRM pour HTTPS uniquement
winrm delete winrm/config/Listener?Address=*+Transport=HTTP
winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="ComputerName";CertificateThumbprint="ThumbprintValue"}
# Désactiver l'authentification de base
winrm set winrm/config/service/auth @{Basic="false"}
winrm set winrm/config/client/auth @{Basic="false"}
# Configurer le chiffrement
winrm set winrm/config/service @{AllowUnencrypted="false"}
Valeur par défaut : Démarrage manuel
5.1.5 — Service Print Spooler - Sécurisé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.5 | T1068 (Exploitation for Privilege Escalation) |
Description :
Le service Print Spooler (Spooler) doit être désactivé s’il n’est pas utilisé ou sécurisé contre les vulnérabilités connues (PrintNightmare, etc.). Ce service a été la cible de nombreuses exploitations.
Vérification :
Get-Service -Name "Spooler" | Select-Object Name, Status, StartType
Get-PrinterDriver | Select-Object Name, InfPath, Manufacturer
Remédiation :
- Si l’impression n’est pas nécessaire, désactiver :
Stop-Service -Name "Spooler" -Force
Set-Service -Name "Spooler" -StartupType Disabled
- Si l’impression est nécessaire, sécuriser :
# Désactiver l'installation de pilotes non-administrateurs
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers' -Name 'AddPrinterDrivers' -Value 1 -Type DWord
# Restriction des fonctions Point and Print
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint' -Name 'RestrictDriverInstallationToAdministrators' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint' -Name 'NoWarningNoElevationOnInstall' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint' -Name 'UpdatePromptSettings' -Value 0 -Type DWord
Valeur par défaut : Démarrage automatique
5.2 — Services réseau
5.2.1 — Service Server Message Block (SMB) v1 - Désactivé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.3.6 | T1021.002 (SMB/Windows Admin Shares) |
Description :
Le protocole SMB v1 doit être complètement désactivé. Il présente de nombreuses vulnérabilités critiques et a été utilisé dans des attaques majeures comme WannaCry et NotPetya.
SMB v1 n’offre pas de chiffrement moderne et est vulnérable aux attaques man-in-the-middle.
Vérification :
Get-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
sc.exe qc lanmanserver | findstr START_TYPE
- Valeur attendue : SMB1Protocol désactivé ou non installé
Remédiation :
- Désactiver SMB v1 complètement :
# Désactiver la fonctionnalité SMB1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
# Désactiver SMB v1 au niveau serveur
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
# Désactiver au niveau client
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
- Vérification de la désactivation :
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | Select-Object State
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Valeur par défaut : Désactivé par défaut sur Windows 11
5.2.2 — Service Windows Remote Desktop - Sécurisé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.58 | T1021.001 (Remote Desktop Protocol) |
Description :
Le service Remote Desktop (Bureau à distance) doit être désactivé si non utilisé, ou sécurisé avec NLA (Network Level Authentication) et un chiffrement fort s’il est nécessaire.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name 'fDenyTSConnections'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'UserAuthentication'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'MinEncryptionLevel'
- Valeur attendue : fDenyTSConnections = 1 (désactivé) OU UserAuthentication = 1 et MinEncryptionLevel = 3
Remédiation :
- Si RDP non nécessaire, désactiver complètement :
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name 'fDenyTSConnections' -Value 1 -Type DWord
- Si RDP nécessaire, sécuriser :
# Activer Network Level Authentication
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'UserAuthentication' -Value 1 -Type DWord
# Forcer le chiffrement de niveau élevé
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'MinEncryptionLevel' -Value 3 -Type DWord
# Désactiver la redirection des lecteurs
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name 'fDisableCdm' -Value 1 -Type DWord
Valeur par défaut : Désactivé par défaut
5.2.3 — Service Windows Search - Restreint
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 5.7 | T1083 (File and Directory Discovery) |
Description :
Le service Windows Search doit être configuré pour ne pas indexer les données sensibles et restreindre l’accès à distance à l’index de recherche.
Vérification :
Get-Service -Name "WSearch" | Select-Object Name, Status, StartType
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'AllowIndexingEncryptedStoresOrItems' -ErrorAction SilentlyContinue
Remédiation :
# Désactiver l'indexation des éléments chiffrés
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'AllowIndexingEncryptedStoresOrItems' -Value 0 -Type DWord
# Désactiver l'indexation sur les partages réseau
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'PreventIndexingOutlook' -Value 1 -Type DWord
Valeur par défaut : Démarrage automatique (retardé)
5.3 — Services de sécurité essentiels
5.3.1 — Windows Defender Antivirus - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.39 | T1562.001 (Disable or Modify Tools) |
Description :
Le service Windows Defender Antivirus doit être activé et fonctionnel sauf si remplacé par une solution antivirus tiers compatible et approuvée.
Vérification :
Get-Service -Name "WinDefend" | Select-Object Name, Status, StartType
Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled, OnAccessProtectionEnabled
Get-MpPreference | Select-Object DisableRealtimeMonitoring
Remédiation :
# S'assurer que Windows Defender est activé
Set-Service -Name "WinDefend" -StartupType Automatic
Start-Service -Name "WinDefend"
# Activer la protection en temps réel
Set-MpPreference -DisableRealtimeMonitoring $false
# Configurer les scans automatiques
Set-MpPreference -ScanScheduleDay Everyday -ScanScheduleTime 120
Valeur par défaut : Activé par défaut
5.3.2 — Windows Security Center - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.9 | T1562.001 (Disable or Modify Tools) |
Description :
Le service Security Center surveille l’état des fonctionnalités de sécurité et doit rester activé pour assurer le monitoring continu de la sécurité du système.
Vérification :
Get-Service -Name "wscsvc" | Select-Object Name, Status, StartType
Get-Service -Name "SecurityHealthService" | Select-Object Name, Status, StartType
Remédiation :
Set-Service -Name "wscsvc" -StartupType Automatic
Set-Service -Name "SecurityHealthService" -StartupType Automatic
Start-Service -Name "wscsvc" -ErrorAction SilentlyContinue
Start-Service -Name "SecurityHealthService" -ErrorAction SilentlyContinue
Valeur par défaut : Démarrage automatique
5.4.1 — Durcissement des services système critiques
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1 | T1543.003 (Windows Service) |
Description :
Les services système critiques doivent être durcis avec des configurations de sécurité renforcées et des comptes de service dédiés.
Cette mesure limite l’impact potentiel d’une compromission de service sur le système global.
Vérification :
Get-Service | Where-Object {$_.Status -eq "Running" -and $_.ServiceType -eq "Win32ShareProcess"} | Select-Object Name, StartType, ServiceType
sc query type= service state= all | findstr "SERVICE_NAME"
Get-WmiObject Win32_Service | Where-Object {$_.StartMode -eq "Auto" -and $_.State -eq "Running"} | Select-Object Name, StartName, PathName
Remédiation :
# Audit et durcissement des services critiques
$CriticalServices = @("Winmgmt", "RpcSs", "Dhcp", "Dnscache", "EventLog", "PlugPlay", "PolicyAgent", "ProfSvc", "Schedule", "SENS", "ShellHWDetection", "Themes", "Winlogon", "BITS", "Wuauserv")
foreach ($ServiceName in $CriticalServices) {
$Service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($Service) {
# Vérification du compte de service
$ServiceInfo = Get-WmiObject Win32_Service -Filter "Name='$ServiceName'"
Write-Host "Service: $ServiceName - Compte: $($ServiceInfo.StartName) - État: $($Service.Status)"
}
}
# Configuration des ACL sur les services sensibles
sc sdset Winmgmt "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
Valeur par défaut : Variable selon la configuration
5.5.1 — Désactivation des services non essentiels
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.2 | T1543.003 (Windows Service) |
Description :
Tous les services non essentiels au fonctionnement du système doivent être désactivés pour réduire la surface d’attaque.
Cette approche minimise les points d’entrée potentiels pour les attaquants.
Vérification :
Get-Service | Where-Object {$_.StartType -eq "Automatic" -and $_.Status -eq "Stopped"} | Select-Object Name, StartType, Status
Get-Service | Where-Object {$_.Name -like "*telemetry*" -or $_.Name -like "*xbox*" -or $_.Name -like "*fax*"}
sc query type= service state= all | findstr /i "unnecessary"
Remédiation :
# Liste des services couramment non essentiels
$UnnecessaryServices = @(
"Fax", "XblAuthManager", "XblGameSave", "XboxNetApiSvc", "XboxGipSvc",
"RetailDemo", "MapsBroker", "lfsvc", "WalletService", "PhoneSvc",
"icssvc", "SEMgrSvc", "PcaSvc", "WpcMonSvc", "WbioSrvc"
)
foreach ($ServiceName in $UnnecessaryServices) {
$Service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($Service -and $Service.StartType -ne "Disabled") {
Stop-Service -Name $ServiceName -Force -ErrorAction SilentlyContinue
Set-Service -Name $ServiceName -StartupType Disabled
Write-Host "Service désactivé: $ServiceName"
}
}
Valeur par défaut : Variable selon la configuration
5.4.1 — Isolation des services critiques via conteneurisation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.3 | T1055 (Process Injection) |
Description :
Les services système critiques doivent être isolés dans des conteneurs ou machines virtuelles dédiées pour limiter l’impact d’une compromission.
Cette isolation réduit les risques de mouvement latéral et de compromission en cascade.
Vérification :
Get-WindowsOptionalFeature -Online -FeatureName "Containers" | Select-Object State
Get-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" | Select-Object State
Get-Service | Where-Object {$_.ServiceType -eq "Win32ShareProcess"} | Measure-Object
Remédiation :
# Activation des conteneurs Windows
Enable-WindowsOptionalFeature -Online -FeatureName "Containers" -All -NoRestart
# Installation Docker (si applicable)
Write-Host "Pour isolation complète, considérer:"
Write-Host "1. Docker Desktop pour Windows"
Write-Host "2. Windows Sandbox pour tests"
Write-Host "3. Hyper-V pour isolation VM"
# Configuration services en mode isolé
$CriticalServices = @("Winmgmt", "EventLog", "RpcSs")
foreach ($Service in $CriticalServices) {
$ServiceInfo = Get-WmiObject Win32_Service -Filter "Name='$Service'"
if ($ServiceInfo.StartName -eq "LocalSystem") {
Write-Host "Service $Service fonctionne avec privilèges élevés - Considérer isolation"
}
}
Valeur par défaut : Variable selon la configuration
5.5.1 — Surveillance en temps réel des modifications de services
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.4 | T1543.003 (Windows Service) |
Description :
Toutes les modifications de services (création, suppression, changement de configuration) doivent être surveillées et alertées en temps réel.
Cette surveillance permet de détecter rapidement les tentatives de persistance malveillante.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="System"; ID=7034,7035,7036,7040} -MaxEvents 50
auditpol /get /subcategory:"Security System Extension"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\*" | Measure-Object
Remédiation :
# Configuration de surveillance des services
auditpol /set /subcategory:"Security System Extension" /success:enable /failure:enable
auditpol /set /subcategory:"System Integrity" /success:enable /failure:enable
# Script de surveillance temps réel
Register-WmiEvent -Class Win32_Service -SourceIdentifier "ServiceMonitor" -Action {
$Service = $Event.SourceEventArgs.NewEvent
Write-Warning "Modification de service détectée: $($Service.Name)"
Write-Host "État: $($Service.State), Mode démarrage: $($Service.StartMode)"
}
# Surveillance des créations de nouveaux services
Register-WmiEvent -Query "SELECT * FROM Win32_ServiceChangeEvent" -Action {
Write-Host "ALERT: Changement de service système détecté"
Get-Service | Sort-Object Name | Format-Table -AutoSize
}
Valeur par défaut : Variable selon la configuration
5.6.1 — Contrôle des dépendances entre services
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.5 | T1543.003 (Windows Service) |
Description :
Les dépendances entre services doivent être auditées et minimisées pour éviter les cascades de défaillance et les vecteurs d’attaque en chaîne.
Cette approche renforce la résilience du système et limite la propagation des compromissions.
Vérification :
Get-Service | ForEach-Object { Get-Service -DependentServices $_.Name | Where-Object {$_.Status -eq "Running"} } | Group-Object ServiceName
sc query type= service state= all | findstr "SERVICE_NAME"
Get-WmiObject Win32_DependentService | Select-Object Antecedent, Dependent
Remédiation :
# Analyse des dépendances de services
function Get-ServiceDependencyMap {
$AllServices = Get-Service
$DependencyMap = @{}
foreach ($Service in $AllServices) {
$Dependencies = Get-Service -Name $Service.Name | Select-Object -ExpandProperty ServicesDependedOn
$Dependents = Get-Service -DependentServices $Service.Name
$DependencyMap[$Service.Name] = @{
Dependencies = $Dependencies.Name
Dependents = $Dependents.Name
Status = $Service.Status
StartType = $Service.StartType
}
}
return $DependencyMap
}
$ServiceMap = Get-ServiceDependencyMap
# Identifier les services avec nombreuses dépendances
$ServiceMap.GetEnumerator() | Where-Object {$_.Value.Dependencies.Count -gt 5} | ForEach-Object {
Write-Warning "Service avec nombreuses dépendances: $($_.Key) ($($_.Value.Dependencies.Count) dépendances)"
}
Valeur par défaut : Variable selon la configuration
5.4 — Durcissement et surveillance des services
5.4.1 — Isolation et sandboxing des services critiques
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.1 | T1055 (Process Injection) |
Description :
Les services système critiques doivent être isolés dans des environnements sandboxés ou conteneurisés pour limiter l’impact d’une compromission et empêcher la propagation latérale.
Cette isolation constitue une couche de défense en profondeur contre les attaques de type privilege escalation et code injection.
Vérification :
Get-Service | Where-Object {$_.ServiceType -eq "Win32ShareProcess"} | Select-Object Name, Status, StartType, ServiceType
Get-WindowsOptionalFeature -Online -FeatureName "Containers*" | Where-Object {$_.State -eq "Enabled"}
Get-WmiObject Win32_Service | Where-Object {$_.StartName -eq "LocalSystem"} | Measure-Object
Remédiation :
# Configuration d'isolation des services critiques
Write-Host "=== ISOLATION DES SERVICES CRITIQUES ==="
# Activation des fonctionnalités d'isolation
try {
Enable-WindowsOptionalFeature -Online -FeatureName "Containers" -All -NoRestart
Write-Host "Fonctionnalité Containers activée"
} catch {
Write-Warning "Impossible d'activer les containers: $_"
}
# Audit des services critiques fonctionnant avec LocalSystem
$CriticalServices = @("Winmgmt", "RpcSs", "EventLog", "PlugPlay", "PolicyAgent", "SENS", "Schedule")
Write-Host "\nAudit des services critiques:"
foreach ($ServiceName in $CriticalServices) {
$Service = Get-WmiObject Win32_Service -Filter "Name='$ServiceName'"
if ($Service) {
$SecurityLevel = switch ($Service.StartName) {
"LocalSystem" { "🔴 CRITIQUE - Privilèges maximum" }
"NT AUTHORITY\LocalService" { "🟠 MOYEN - Privilèges limités" }
"NT AUTHORITY\NetworkService" { "🟢 BON - Privilèges réseau uniquement" }
default { "🟡 CUSTOM - $($Service.StartName)" }
}
Write-Host " $ServiceName : $SecurityLevel"
}
}
# Configuration Windows Defender Application Guard (si disponible)
if (Get-WindowsOptionalFeature -Online -FeatureName "Windows-Defender-ApplicationGuard" -ErrorAction SilentlyContinue) {
Write-Host "\nWindows Defender Application Guard disponible pour isolation"
}
# Recommandations d'isolation avancée
Write-Host "\n=== RECOMMANDATIONS ISOLATION AVANCÉE ==="
Write-Host "1. Utiliser Windows Sandbox pour tests de sécurité"
Write-Host "2. Configurer Hyper-V pour isolation VM des services sensibles"
Write-Host "3. Implémenter Docker Windows containers pour isolation applicative"
Write-Host "4. Configurer des comptes de service dédiés (non LocalSystem)"
Valeur par défaut : Variable selon la configuration
5.4.2 — Surveillance temps réel des modifications de services
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.2 | T1543.003 (Windows Service) |
Description :
Toutes les modifications de services (installation, suppression, changement de configuration, modification des comptes de service) doivent être surveillées et alertées en temps réel.
Cette surveillance permet de détecter rapidement les tentatives de persistance malveillante et les modifications non autorisées du système.
Vérification :
Get-WinEvent -FilterHashtable @{LogName="System"; ID=7034,7035,7036,7040} -MaxEvents 20
auditpol /get /subcategory:"Security System Extension"
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\*" | Measure-Object | Select-Object Count
Remédiation :
# Configuration de surveillance complète des services
Write-Host "=== CONFIGURATION SURVEILLANCE SERVICES ==="
# Activation de l'audit des extensions système
auditpol /set /subcategory:"Security System Extension" /success:enable /failure:enable
auditpol /set /subcategory:"System Integrity" /success:enable /failure:enable
Write-Host "Audit des services système activé"
# Création d'un monitoring WMI en temps réel
function Start-ServiceMonitoring {
Write-Host "Démarrage du monitoring des services en temps réel..."
# Surveillance des changements d'état des services
Register-WmiEvent -Query "SELECT * FROM Win32_ServiceChangeEvent" -SourceIdentifier "ServiceChangeMonitor" -Action {
$ServiceName = $Event.SourceEventArgs.NewEvent.ServiceName
Write-Warning "ALERTE SERVICE: Changement détecté sur le service $ServiceName"
# Obtenir les détails du service modifié
try {
$ServiceDetails = Get-WmiObject Win32_Service -Filter "Name='$ServiceName'"
Write-Host " Nom: $($ServiceDetails.Name)"
Write-Host " État: $($ServiceDetails.State)"
Write-Host " Mode démarrage: $($ServiceDetails.StartMode)"
Write-Host " Compte: $($ServiceDetails.StartName)"
Write-Host " Chemin: $($ServiceDetails.PathName)"
} catch {
Write-Host " Erreur lors de la récupération des détails du service"
}
}
# Surveillance des créations/suppressions de services
Register-WmiEvent -Query "SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Service'" -SourceIdentifier "ServiceCreationMonitor" -Action {
$NewService = $Event.SourceEventArgs.NewEvent.TargetInstance
Write-Warning "NOUVEAU SERVICE CRÉÉ: $($NewService.Name)"
Write-Host " Chemin: $($NewService.PathName)"
Write-Host " Compte: $($NewService.StartName)"
}
Register-WmiEvent -Query "SELECT * FROM __InstanceDeletionEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Service'" -SourceIdentifier "ServiceDeletionMonitor" -Action {
$DeletedService = $Event.SourceEventArgs.NewEvent.TargetInstance
Write-Warning "SERVICE SUPPRIMÉ: $($DeletedService.Name)"
}
Write-Host "Monitoring actif. Utilisez Stop-ServiceMonitoring pour arrêter."
}
function Stop-ServiceMonitoring {
Unregister-Event -SourceIdentifier "ServiceChangeMonitor" -ErrorAction SilentlyContinue
Unregister-Event -SourceIdentifier "ServiceCreationMonitor" -ErrorAction SilentlyContinue
Unregister-Event -SourceIdentifier "ServiceDeletionMonitor" -ErrorAction SilentlyContinue
Write-Host "Monitoring des services arrêté"
}
# Snapshot initial des services pour détection de changements
$InitialServices = Get-Service | Select-Object Name, Status, StartType | ConvertTo-Json
Set-Content -Path "C:\temp\services_baseline.json" -Value $InitialServices
Write-Host "Baseline des services sauvegardée dans C:\temp\services_baseline.json"
# Démarrer le monitoring (décommenter pour activer)
# Start-ServiceMonitoring
Valeur par défaut : Variable selon la configuration
5.4.3 — Contrôle des dépendances et de la surface d’attaque
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.3 | T1543.003 (Windows Service) |
Description :
Les dépendances entre services doivent être auditées, minimisées et sécurisées pour éviter les cascades de défaillance et limiter les vecteurs d’escalade de privilège en chaîne.
Cette approche renforce la résilience du système et limite la propagation des compromissions entre services.
Vérification :
Get-Service | ForEach-Object { Get-Service -DependentServices $_.Name -ErrorAction SilentlyContinue } | Where-Object {$_.Status -eq "Running"} | Group-Object ServiceName | Sort-Object Count -Descending
sc query type= service state= all | findstr "SERVICE_NAME DISPLAY_NAME"
Get-WmiObject Win32_DependentService | Select-Object Antecedent, Dependent -First 10
Remédiation :
# Analyse complète des dépendances de services
function Analyze-ServiceDependencies {
Write-Host "=== ANALYSE DES DÉPENDANCES DE SERVICES ==="
$AllServices = Get-Service
$DependencyReport = @()
foreach ($Service in $AllServices) {
try {
$Dependencies = Get-Service -Name $Service.Name | Select-Object -ExpandProperty ServicesDependedOn -ErrorAction SilentlyContinue
$Dependents = Get-Service -DependentServices $Service.Name -ErrorAction SilentlyContinue
$ServiceInfo = [PSCustomObject]@{
ServiceName = $Service.Name
Status = $Service.Status
StartType = $Service.StartType
DependsOnCount = ($Dependencies | Measure-Object).Count
DependsOn = ($Dependencies.Name -join ", ")
DependentCount = ($Dependents | Measure-Object).Count
Dependents = ($Dependents.Name -join ", ")
RiskScore = 0
}
# Calculer le score de risque
if ($ServiceInfo.DependsOnCount -gt 5) { $ServiceInfo.RiskScore += 2 }
if ($ServiceInfo.DependentCount -gt 5) { $ServiceInfo.RiskScore += 3 }
if ($Service.StartType -eq "Automatic" -and $Service.Status -eq "Running") { $ServiceInfo.RiskScore += 1 }
$DependencyReport += $ServiceInfo
} catch {
Write-Warning "Erreur analyse service $($Service.Name): $_"
}
}
# Rapport des services à haut risque
Write-Host "\n=== SERVICES À HAUT RISQUE ==="
$HighRiskServices = $DependencyReport | Where-Object {$_.RiskScore -gt 3} | Sort-Object RiskScore -Descending
foreach ($RiskService in $HighRiskServices) {
Write-Warning "Service haut risque: $($RiskService.ServiceName) (Score: $($RiskService.RiskScore))"
if ($RiskService.DependsOnCount -gt 5) {
Write-Host " Dépend de $($RiskService.DependsOnCount) services: $($RiskService.DependsOn)"
}
if ($RiskService.DependentCount -gt 5) {
Write-Host " $($RiskService.DependentCount) services dépendent de lui: $($RiskService.Dependents)"
}
}
# Services inutiles ou non critiques à désactiver
Write-Host "\n=== SERVICES POTENTIELLEMENT INUTILES ==="
$UnnecessaryServices = @(
"Fax", "XblAuthManager", "XblGameSave", "XboxNetApiSvc", "XboxGipSvc",
"RetailDemo", "MapsBroker", "lfsvc", "WalletService", "PhoneSvc",
"icssvc", "SEMgrSvc", "WbioSrvc", "WpcMonSvc"
)
foreach ($ServiceName in $UnnecessaryServices) {
$Service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($Service) {
$Status = if ($Service.StartType -eq "Disabled") { "✅ Désactivé" } else { "⚠️ Actif" }
Write-Host " $ServiceName : $Status"
if ($Service.StartType -ne "Disabled") {
Write-Host " Recommandation: Désactiver avec Stop-Service -Name $ServiceName; Set-Service -Name $ServiceName -StartupType Disabled"
}
}
}
return $DependencyReport
}
# Lancer l'analyse
$DependencyReport = Analyze-ServiceDependencies
# Exporter le rapport
$DependencyReport | Export-Csv -Path "C:\temp\service_dependency_report.csv" -NoTypeInformation
Write-Host "\nRapport sauvegardé dans C:\temp\service_dependency_report.csv"
Valeur par défaut : Variable selon la configuration
5.5.1 — Isolation processus
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.10 | T1055 |
Description :
Séparation des services critiques dans des contextes isolés.
Vérification :
# Commandes de vérification pour Isolation processus
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Isolation processus
Write-Host "Configuration de sécurité pour: Isolation processus"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.6.1 — Surveillance temps réel
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.11 | T1543.003 |
Description :
Monitoring continu des modifications de services.
Vérification :
# Commandes de vérification pour Surveillance temps réel
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Surveillance temps réel
Write-Host "Configuration de sécurité pour: Surveillance temps réel"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.7.1 — Contrôle dépendances
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.12 | T1543.003 |
Description :
Audit et minimisation des dépendances entre services.
Vérification :
# Commandes de vérification pour Contrôle dépendances
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle dépendances
Write-Host "Configuration de sécurité pour: Contrôle dépendances"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.8.1 — Comptes dédiés
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.13 | T1078.003 |
Description :
Attribution de comptes de service spécifiques et non privilégiés.
Vérification :
# Commandes de vérification pour Comptes dédiés
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Comptes dédiés
Write-Host "Configuration de sécurité pour: Comptes dédiés"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.9.1 — Chiffrement communications
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.14 | T1557 |
Description :
Protection des communications inter-services.
Vérification :
# Commandes de vérification pour Chiffrement communications
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Chiffrement communications
Write-Host "Configuration de sécurité pour: Chiffrement communications"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.10.1 — Audit d’installation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.15 | T1543.003 |
Description :
Traçage de toute installation ou modification de service.
Vérification :
# Commandes de vérification pour Audit d'installation
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit d'installation
Write-Host "Configuration de sécurité pour: Audit d'installation"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.11.1 — Validation d’intégrité
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.16 | T1554 |
Description :
Vérification cryptographique de l’intégrité des services.
Vérification :
# Commandes de vérification pour Validation d'intégrité
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Validation d'intégrité
Write-Host "Configuration de sécurité pour: Validation d'intégrité"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.12.1 — Limitation ressources
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.17 | T1496 |
Description :
Contrôle de la consommation de ressources par service.
Vérification :
# Commandes de vérification pour Limitation ressources
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Limitation ressources
Write-Host "Configuration de sécurité pour: Limitation ressources"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.13.1 — Redémarrage sécurisé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.18 | T1543.003 |
Description :
Procédures de redémarrage sécurisé des services critiques.
Vérification :
# Commandes de vérification pour Redémarrage sécurisé
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Redémarrage sécurisé
Write-Host "Configuration de sécurité pour: Redémarrage sécurisé"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.14.1 — Sauvegarde configuration
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.19 | T1543.003 |
Description :
Backup automatique des configurations de services.
Vérification :
# Commandes de vérification pour Sauvegarde configuration
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Sauvegarde configuration
Write-Host "Configuration de sécurité pour: Sauvegarde configuration"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.15.1 — Détection d’anomalies
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.20 | T1543.003 |
Description :
Surveillance comportementale des services pour détecter les compromissions.
Vérification :
# Commandes de vérification pour Détection d'anomalies
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Détection d'anomalies
Write-Host "Configuration de sécurité pour: Détection d'anomalies"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.16.1 — Containerisation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.21 | T1055 |
Description :
Déploiement de services critiques dans des conteneurs sécurisés.
Vérification :
# Commandes de vérification pour Containerisation
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Containerisation
Write-Host "Configuration de sécurité pour: Containerisation"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.17.1 — Rotation des secrets
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 5.1.22 | T1552 |
Description :
Renouvellement automatique des secrets utilisés par les services.
Vérification :
# Commandes de vérification pour Rotation des secrets
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Rotation des secrets
Write-Host "Configuration de sécurité pour: Rotation des secrets"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.18.1 — Contrôle réseau
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.23 | T1021 |
Description :
Limitation et surveillance du trafic réseau des services.
Vérification :
# Commandes de vérification pour Contrôle réseau
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle réseau
Write-Host "Configuration de sécurité pour: Contrôle réseau"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.19.1 — Logging étendu
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.24 | T1562.002 |
Description :
Journalisation détaillée des activités de tous les services.
Vérification :
# Commandes de vérification pour Logging étendu
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Logging étendu
Write-Host "Configuration de sécurité pour: Logging étendu"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
5.20.1 — Récupération rapide
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 5.1.25 | T1543.003 |
Description :
Mécanismes de récupération automatique en cas de défaillance.
Vérification :
# Commandes de vérification pour Récupération rapide
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Récupération rapide
Write-Host "Configuration de sécurité pour: Récupération rapide"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 6 : PARE-FEU WINDOWS DEFENDER
6.1 — Configuration des profils de pare-feu
6.1.1 — Profil Domaine - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.1 | T1562.004 (Disable or Modify System Firewall) |
Description :
Le profil domaine du pare-feu Windows Defender doit être activé pour protéger les communications lorsque l’ordinateur est connecté à un domaine Active Directory.
Vérification :
Get-NetFirewallProfile -Name Domain | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
netsh advfirewall show domain
- GUI : Windows Defender Firewall > Activer/désactiver le Pare-feu Windows Defender > Paramètres du réseau de domaine
- Valeur attendue : Enabled = True, DefaultInboundAction = Block, DefaultOutboundAction = Allow
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Windows Defender Firewall with Advanced Security\Domain Profile\Firewall state → On
- PowerShell :
Set-NetFirewallProfile -Name Domain -Enabled True
Set-NetFirewallProfile -Name Domain -DefaultInboundAction Block
Set-NetFirewallProfile -Name Domain -DefaultOutboundAction Allow
- Netsh :
netsh advfirewall set domainprofile state on
netsh advfirewall set domainprofile firewallpolicy blockinbound,allowoutbound
Valeur par défaut : Activé
6.1.2 — Profil Privé - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.2.1 | T1562.004 (Disable or Modify System Firewall) |
Description :
Le profil privé du pare-feu doit être activé pour protéger les communications sur les réseaux privés (domicile, bureau).
Vérification :
Get-NetFirewallProfile -Name Private | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Remédiation :
Set-NetFirewallProfile -Name Private -Enabled True
Set-NetFirewallProfile -Name Private -DefaultInboundAction Block
Set-NetFirewallProfile -Name Private -DefaultOutboundAction Allow
Valeur par défaut : Activé
6.1.3 — Profil Public - Activé avec restrictions renforcées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.3.1 | T1562.004 (Disable or Modify System Firewall) |
Description :
Le profil public doit être activé avec des restrictions maximales pour protéger le système sur les réseaux non fiables (WiFi public, etc.).
Vérification :
Get-NetFirewallProfile -Name Public | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction, NotifyOnListen
Remédiation :
Set-NetFirewallProfile -Name Public -Enabled True
Set-NetFirewallProfile -Name Public -DefaultInboundAction Block
Set-NetFirewallProfile -Name Public -DefaultOutboundAction Allow
Set-NetFirewallProfile -Name Public -NotifyOnListen True
Valeur par défaut : Activé
6.2 — Journalisation du pare-feu
6.2.1 — Journalisation des connexions bloquées - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.2 | T1562.004 (Disable or Modify System Firewall) |
Description :
La journalisation des connexions bloquées doit être activée pour tous les profils de pare-feu afin de permettre l’analyse forensique et la détection d’incidents.
Vérification :
Get-NetFirewallProfile | Select-Object Name, LogBlocked, LogAllowed, LogFileName, LogMaxSizeKilobytes
Remédiation :
# Configurer la journalisation pour tous les profils
Set-NetFirewallProfile -All -LogBlocked True -LogAllowed False
Set-NetFirewallProfile -All -LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log"
Set-NetFirewallProfile -All -LogMaxSizeKilobytes 4096
Valeur par défaut : Journalisation désactivée
6.2.2 — Restriction des règles de pare-feu utilisateur
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.8 | T1562.004 (Disable or Modify System Firewall) |
Description :
Les utilisateurs non-administrateurs ne doivent pas pouvoir créer ou modifier les règles de pare-feu pour maintenir l’intégrité de la politique de sécurité.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' -Name 'AllowLocalPolicyMerge' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' -Name 'AllowLocalIPSecPolicyMerge' -ErrorAction SilentlyContinue
Remédiation :
# Empêcher la fusion des politiques locales
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' -Name 'AllowLocalPolicyMerge' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' -Name 'AllowLocalIPSecPolicyMerge' -Value 0 -Type DWord
# Même configuration pour les autres profils
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\PrivateProfile' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\PrivateProfile' -Name 'AllowLocalPolicyMerge' -Value 0 -Type DWord
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile' -Name 'AllowLocalPolicyMerge' -Value 0 -Type DWord
Valeur par défaut : Fusion autorisée
6.3.1 — Configuration de règles pare-feu basées sur la réputation IP
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.8 | T1071.001 (Web Protocols) |
Description :
Le pare-feu doit intégrer des flux de threat intelligence pour bloquer automatiquement les adresses IP malveillantes connues.
Cette protection proactive bloque les connexions depuis des sources compromises avant qu’elles n’atteignent les services.
Vérification :
Get-NetFirewallRule | Where-Object {$_.Direction -eq "Inbound" -and $_.Action -eq "Block"} | Measure-Object
netsh advfirewall firewall show rule name=all | findstr "Block"
Get-MpThreatDetection | Select-Object ThreatName, Resources -First 10
Remédiation :
# Configuration de blocage IP basé sur réputation
$ThreatIntelFeeds = @(
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset",
"https://www.spamhaus.org/drop/drop.txt"
)
# Script de mise à jour automatique des listes de blocage
function Update-ThreatIntelligence {
try {
$BlockedIPs = @()
# Exemple avec liste Spamhaus DROP
$DropList = Invoke-WebRequest -Uri "https://www.spamhaus.org/drop/drop.txt" -UseBasicParsing
$Networks = $DropList.Content -split "\n" | Where-Object {$_ -match "^\d+\.\d+\.\d+\.\d+/\d+"} | ForEach-Object {$_.Split(" ")[0]}
foreach ($Network in $Networks) {
try {
New-NetFirewallRule -DisplayName "TI-Block-$Network" -Direction Inbound -RemoteAddress $Network -Action Block -ErrorAction SilentlyContinue
} catch {
Write-Warning "Impossible de bloquer: $Network"
}
}
Write-Host "Threat Intelligence mise à jour: $($Networks.Count) réseaux bloqués"
} catch {
Write-Error "Erreur mise à jour threat intelligence: $_"
}
}
# Update-ThreatIntelligence
Valeur par défaut : Variable selon la configuration
6.4.1 — Micro-segmentation réseau par application
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.9 | T1021 (Remote Services) |
Description :
Chaque application doit avoir ses propres règles de pare-feu dédiées permettant uniquement le trafic strictement nécessaire à son fonctionnement.
Cette approche Zero Trust limite drastiquement la surface d’attaque réseau.
Vérification :
Get-NetFirewallApplicationFilter | Group-Object Program | Sort-Object Count -Descending
Get-NetFirewallRule | Where-Object {$_.Program -ne $null} | Select-Object DisplayName, Program, Direction, Action
netstat -anb | findstr LISTENING
Remédiation :
# Configuration micro-segmentation par application
function Set-ApplicationFirewallRules {
param([string]$ApplicationPath, [array]$AllowedPorts, [array]$AllowedIPs)
# Nettoyer les règles existantes pour cette application
Get-NetFirewallRule | Where-Object {$_.Program -eq $ApplicationPath} | Remove-NetFirewallRule -Confirm:$false
# Créer règles sortantes spécifiques
foreach ($Port in $AllowedPorts) {
New-NetFirewallRule -DisplayName "Allow-Out-$($ApplicationPath | Split-Path -Leaf)-$Port" `
-Direction Outbound -Program $ApplicationPath -LocalPort $Port -Protocol TCP -Action Allow
}
# Créer règles entrantes pour IPs autorisées uniquement
foreach ($IP in $AllowedIPs) {
New-NetFirewallRule -DisplayName "Allow-In-$($ApplicationPath | Split-Path -Leaf)-$IP" `
-Direction Inbound -Program $ApplicationPath -RemoteAddress $IP -Action Allow
}
# Bloquer tout le reste pour cette application
New-NetFirewallRule -DisplayName "Block-All-$($ApplicationPath | Split-Path -Leaf)" `
-Direction Outbound -Program $ApplicationPath -Action Block
}
# Exemple d'usage
# Set-ApplicationFirewallRules -ApplicationPath "C:\Program Files\MyApp\myapp.exe" -AllowedPorts @(80,443) -AllowedIPs @("192.168.1.0/24")
Valeur par défaut : Variable selon la configuration
6.3.1 — Règles géographiques
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.10 | T1071.001 |
Description :
Blocage basé sur la géolocalisation des adresses IP.
Vérification :
# Commandes de vérification pour Règles géographiques
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Règles géographiques
Write-Host "Configuration de sécurité pour: Règles géographiques"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.4.1 — Micro-segmentation
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.11 | T1021 |
Description :
Isolation réseau granulaire par application et service.
Vérification :
# Commandes de vérification pour Micro-segmentation
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Micro-segmentation
Write-Host "Configuration de sécurité pour: Micro-segmentation"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.5.1 — Threat Intelligence
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.12 | T1071.001 |
Description :
Intégration de flux de renseignement sur les menaces.
Vérification :
# Commandes de vérification pour Threat Intelligence
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Threat Intelligence
Write-Host "Configuration de sécurité pour: Threat Intelligence"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.6.1 — Inspection profonde
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.13 | T1095 |
Description :
Analyse approfondie des paquets pour détection d’intrusion.
Vérification :
# Commandes de vérification pour Inspection profonde
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Inspection profonde
Write-Host "Configuration de sécurité pour: Inspection profonde"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.7.1 — Filtrage applicatif
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.14 | T1071 |
Description :
Contrôle granulaire du trafic par application.
Vérification :
# Commandes de vérification pour Filtrage applicatif
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Filtrage applicatif
Write-Host "Configuration de sécurité pour: Filtrage applicatif"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.8.1 — Prévention exfiltration
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.15 | T1041 |
Description :
Blocage des tentatives d’exfiltration de données.
Vérification :
# Commandes de vérification pour Prévention exfiltration
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Prévention exfiltration
Write-Host "Configuration de sécurité pour: Prévention exfiltration"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.9.1 — Détection tunneling
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.16 | T1572 |
Description :
Identification des tentatives de contournement par tunneling.
Vérification :
# Commandes de vérification pour Détection tunneling
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Détection tunneling
Write-Host "Configuration de sécurité pour: Détection tunneling"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.10.1 — Contrôle bande passante
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.17 | T1499.001 |
Description :
Limitation de bande passante par application/utilisateur.
Vérification :
# Commandes de vérification pour Contrôle bande passante
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle bande passante
Write-Host "Configuration de sécurité pour: Contrôle bande passante"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.11.1 — Analyse comportementale
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.18 | T1071 |
Description :
Détection d’anomalies dans les flux réseau.
Vérification :
# Commandes de vérification pour Analyse comportementale
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Analyse comportementale
Write-Host "Configuration de sécurité pour: Analyse comportementale"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.12.1 — Quarantaine automatique
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.19 | T1562.004 |
Description :
Isolation automatique des systèmes suspects.
Vérification :
# Commandes de vérification pour Quarantaine automatique
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Quarantaine automatique
Write-Host "Configuration de sécurité pour: Quarantaine automatique"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.13.1 — Audit complet
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.20 | T1562.002 |
Description :
Journalisation détaillée de toute activité réseau.
Vérification :
# Commandes de vérification pour Audit complet
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit complet
Write-Host "Configuration de sécurité pour: Audit complet"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.14.1 — Protection DDoS
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 9.1.21 | T1499.004 |
Description :
Mitigation des attaques par déni de service distribué.
Vérification :
# Commandes de vérification pour Protection DDoS
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Protection DDoS
Write-Host "Configuration de sécurité pour: Protection DDoS"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.15.1 — Chiffrement forcé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.22 | T1040 |
Description :
Exigence de chiffrement pour toutes les communications.
Vérification :
# Commandes de vérification pour Chiffrement forcé
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Chiffrement forcé
Write-Host "Configuration de sécurité pour: Chiffrement forcé"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.16.1 — Contrôle P2P
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.23 | T1071.001 |
Description :
Blocage des protocoles peer-to-peer non autorisés.
Vérification :
# Commandes de vérification pour Contrôle P2P
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle P2P
Write-Host "Configuration de sécurité pour: Contrôle P2P"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.17.1 — Filtrage DNS
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.24 | T1071.004 |
Description :
Protection contre les requêtes DNS malveillantes.
Vérification :
# Commandes de vérification pour Filtrage DNS
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Filtrage DNS
Write-Host "Configuration de sécurité pour: Filtrage DNS"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.18.1 — Inspection SSL/TLS
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.25 | T1071.001 |
Description :
Analyse du trafic chiffré pour détection de menaces.
Vérification :
# Commandes de vérification pour Inspection SSL/TLS
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Inspection SSL/TLS
Write-Host "Configuration de sécurité pour: Inspection SSL/TLS"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.19.1 — Honeypots réseau
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.26 | T1595.002 |
Description :
Déploiement de leurres pour détecter les intrusions.
Vérification :
# Commandes de vérification pour Honeypots réseau
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Honeypots réseau
Write-Host "Configuration de sécurité pour: Honeypots réseau"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
6.20.1 — Corrélation logs
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.1.27 | T1562.002 |
Description :
Analyse corrélée des journaux de pare-feu avec autres sources.
Vérification :
# Commandes de vérification pour Corrélation logs
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Corrélation logs
Write-Host "Configuration de sécurité pour: Corrélation logs"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 7 : AUDIT & JOURNALISATION
7.1 — Configuration de la politique d’audit
7.1.1 — Audit des événements de connexion - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.1.1 | T1078 (Valid Accounts) |
Description :
L’audit des événements de connexion doit être activé pour tracer tous les succès et échecs d’authentification. Cette information est cruciale pour la détection d’intrusions et l’analyse forensique.
Vérification :
auditpol /get /subcategory:"Logon" /r | ConvertFrom-Csv | Select-Object 'Policy Target', 'Subcategory', 'Subcategory GUID', 'Inclusion Setting'
auditpol /get /subcategory:"Logoff" /r | ConvertFrom-Csv
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'MaxSize'
- GUI : secpol.msc > Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Stratégie d’audit
- Valeur attendue : Succès et Échec activés pour Logon/Logoff
Remédiation :
- Auditpol (recommandé) :
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Logoff" /success:enable /failure:enable
auditpol /set /subcategory:"Other Logon/Logoff Events" /success:enable /failure:enable
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Advanced Audit Policy Configuration\System Audit Policies\Logon/Logoff
Valeur par défaut : Partiellement configuré
7.1.2 — Audit de la gestion des comptes - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.2.1 | T1136 (Create Account) |
Description :
L’audit de la gestion des comptes permet de tracer la création, modification et suppression des comptes utilisateur. Essential pour détecter la création de comptes malveillants.
Vérification :
auditpol /get /subcategory:"User Account Management" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Security Group Management" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Computer Account Management" /r | ConvertFrom-Csv
Remédiation :
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable
auditpol /set /subcategory:"Computer Account Management" /success:enable /failure:enable
auditpol /set /subcategory:"Other Account Management Events" /success:enable /failure:enable
Valeur par défaut : Non configuré
7.1.3 — Audit des modifications de stratégies - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.5.1 | T1484 (Domain Policy Modification) |
Description :
L’audit des modifications de stratégies permet de tracer les changements dans les politiques de sécurité, GPO et droits utilisateur.
Vérification :
auditpol /get /subcategory:"Audit Policy Change" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Authentication Policy Change" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Authorization Policy Change" /r | ConvertFrom-Csv
Remédiation :
auditpol /set /subcategory:"Audit Policy Change" /success:enable /failure:enable
auditpol /set /subcategory:"Authentication Policy Change" /success:enable /failure:enable
auditpol /set /subcategory:"Authorization Policy Change" /success:enable /failure:enable
auditpol /set /subcategory:"MPSSVC Rule-Level Policy Change" /success:enable /failure:enable
Valeur par défaut : Non configuré
7.1.4 — Audit de l’accès aux objets - Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.1 | T1083 (File and Directory Discovery) |
Description :
L’audit de l’accès aux objets permet de tracer l’accès aux fichiers, dossiers et objets du registre. Cette fonctionnalité doit être configurée sélectivement pour éviter une surcharge des journaux.
Vérification :
auditpol /get /subcategory:"File System" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Registry" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Removable Storage" /r | ConvertFrom-Csv
Remédiation :
# Activer l'audit pour les accès critiques
auditpol /set /subcategory:"File System" /success:enable /failure:enable
auditpol /set /subcategory:"Registry" /success:enable /failure:enable
auditpol /set /subcategory:"Removable Storage" /success:enable /failure:enable
# Configuration d'audit sur des dossiers sensibles (exemple)
# icacls "C:\Program Files" /setowner Administrators /T /C
# icacls "C:\Windows\System32" /setowner Administrators /T /C
Valeur par défaut : Non configuré
7.1.5 — Audit de l’utilisation des privilèges - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.4.1 | T1548 (Abuse Elevation Control Mechanism) |
Description :
L’audit de l’utilisation des privilèges permet de tracer l’usage des droits utilisateur sensibles comme SeDebugPrivilege, SeBackupPrivilege, etc.
Vérification :
auditpol /get /subcategory:"Sensitive Privilege Use" /r | ConvertFrom-Csv
auditpol /get /subcategory:"Non Sensitive Privilege Use" /r | ConvertFrom-Csv
Remédiation :
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable
# auditpol /set /subcategory:"Non Sensitive Privilege Use" /success:enable /failure:enable (optionnel - génère beaucoup d'événements)
Valeur par défaut : Non configuré
7.2 — Configuration des journaux d’événements
7.2.1 — Taille des journaux de sécurité - Configurée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.1.1 | T1070.001 (Clear Windows Event Logs) |
Description :
La taille des journaux d’événements de sécurité doit être configurée pour conserver suffisamment d’historique pour l’analyse forensique. Minimum recommandé : 196 608 Ko (192 MB).
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'MaxSize'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\System' -Name 'MaxSize'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Application' -Name 'MaxSize'
Get-WinEvent -ListLog Security | Select-Object LogName, MaximumSizeInBytes
- GUI : eventvwr.msc > Journaux Windows > Sécurité > Propriétés > Taille maximale du journal
- Valeur attendue : ≥ 196608 Ko (Security), ≥ 32768 Ko (System/Application)
Remédiation :
- PowerShell :
# Configuration des tailles de journaux
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'MaxSize' -Value 0x30000000 -Type DWord # 768 MB
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\System' -Name 'MaxSize' -Value 0x8000000 -Type DWord # 128 MB
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Application' -Name 'MaxSize' -Value 0x8000000 -Type DWord # 128 MB
# Configuration via WinEvent
Limit-EventLog -LogName Security -MaximumSize 768MB
Limit-EventLog -LogName System -MaximumSize 128MB
Limit-EventLog -LogName Application -MaximumSize 128MB
- GPO : Computer Configuration\Policies\Administrative Templates\Windows Components\Event Log Service\Security\Specify the maximum log file size
Valeur par défaut : 20 480 Ko (20 MB)
7.2.2 — Rétention des journaux - Configurée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.1.2 | T1070.001 (Clear Windows Event Logs) |
Description :
La politique de rétention des journaux doit être configurée pour préserver l’historique et empêcher l’effacement automatique ou manuel non autorisé.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'Retention'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'RestrictGuestAccess'
- Valeur attendue : Retention = 0 (écraser si nécessaire) ou 1 (ne pas écraser)
Remédiation :
# Configuration pour écraser les événements si nécessaire (recommandé avec une taille suffisante)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'Retention' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\System' -Name 'Retention' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Application' -Name 'Retention' -Value 0 -Type DWord
# Restriction de l'accès invité
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'RestrictGuestAccess' -Value 1 -Type DWord
Valeur par défaut : Retention = 0, RestrictGuestAccess = 1
7.2.3 — Audit de l’effacement des journaux - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.1.3 | T1070.001 (Clear Windows Event Logs) |
Description :
L’audit de l’effacement des journaux d’événements doit être activé pour détecter les tentatives d’effacement de preuves par des attaquants.
Vérification :
auditpol /get /subcategory:"System Integrity" /r | ConvertFrom-Csv
# Vérifier les événements 1102 dans le journal de sécurité
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=1102} -MaxEvents 5 -ErrorAction SilentlyContinue | Select-Object TimeCreated, Id, LevelDisplayName, Message
Remédiation :
auditpol /set /subcategory:"System Integrity" /success:enable /failure:enable
# Script de monitoring des effacements de journaux
$ScriptBlock = {
Register-WmiEvent -Query "SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2" -Action {
$Event = Get-WinEvent -FilterHashtable @{LogName='Security'; ID=1102} -MaxEvents 1 -ErrorAction SilentlyContinue
if ($Event) {
Write-EventLog -LogName Application -Source "Security Monitoring" -EventId 9001 -EntryType Warning -Message "Journal de sécurité effacé à $(Get-Date)"
}
}
}
Valeur par défaut : Non configuré
7.3 — Monitoring et alertes
7.3.1 — Surveillance des connexions administrateur - Configurée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | ANSSI | T1078.002 (Domain Accounts) |
Description :
La surveillance des connexions avec des privilèges administrateur doit être configurée pour détecter les usages suspects ou non autorisés des comptes privilégiés.
Vérification :
# Vérifier les événements de connexion avec privilèges élevés (Event ID 4672)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4672} -MaxEvents 10 | Select-Object TimeCreated, Id, Message
Remédiation :
- Configuration d’audit avancée :
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable
- Script de monitoring des connexions administrateur :
# Création d'une tâche planifiée pour surveiller les Event ID 4672
$Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-WindowStyle Hidden -Command "& {Get-WinEvent -FilterHashtable @{LogName=''Security''; ID=4672} -MaxEvents 1 | Out-File C:\Logs\AdminLogons.log -Append}"'
$Trigger = New-ScheduledTaskTrigger -AtLogOn
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "MonitorAdminLogons" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Monitor administrative logons"
Valeur par défaut : Surveillance basique uniquement
7.4.1 — Centralisation des logs vers SIEM/SOC
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.1.1 | T1562.002 (Disable Windows Event Logging) |
Description :
Tous les logs de sécurité doivent être centralisés vers un SIEM pour corrélation, analyse automatisée et réponse aux incidents en temps réel.
Cette centralisation permet une vision globale de la sécurité et une détection avancée des menaces.
Vérification :
Get-WinEvent -ListLog * | Where-Object {$_.RecordCount -gt 0} | Select-Object LogName, RecordCount, FileSize
Get-EventLogLevel
wevtutil el | findstr /v "Microsoft-Windows-"
Remédiation :
# Configuration de forwarding vers SIEM
winrm quickconfig -force
winrm set winrm/config/client @{TrustedHosts="SIEM-SERVER"}
# Configuration Windows Event Forwarding
wecutil cs "C:\temp\subscription.xml"
# Template de subscription pour SIEM
@"
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
<SubscriptionId>SecurityToSIEM</SubscriptionId>
<SubscriptionType>SourceInitiated</SubscriptionType>
<Description>Forward Security Events to SIEM</Description>
<Enabled>true</Enabled>
<Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri>
<ConfigurationMode>Normal</ConfigurationMode>
<Delivery Mode="Push">
<Batching>
<MaxItems>5</MaxItems>
<MaxLatencyTime>1000</MaxLatencyTime>
</Batching>
<PushSettings>
<Heartbeat Interval="60000"/>
</PushSettings>
</Delivery>
<Query>
<![CDATA[<QueryList><Query Id="0"><Select Path="Security">*[System[(EventID=4624 or EventID=4625 or EventID=4672)]]</Select></Query></QueryList>]]>
</Query>
</Subscription>
"@ | Out-File C:\temp\subscription.xml -Encoding UTF8
Valeur par défaut : Variable selon la configuration
7.5.1 — Audit étendu des accès aux fichiers sensibles
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.2.1 | T1005 (Data from Local System) |
Description :
L’accès à tous les fichiers et dossiers sensibles (configuration système, données utilisateur, logs) doit être audité avec détails complets.
Cette surveillance permet de détecter les accès non autorisés et les tentatives d’exfiltration de données.
Vérification :
auditpol /get /subcategory:"File System"
Get-Acl "C:\Windows\System32\config" | Select-Object AccessToString
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4656,4658,4663} -MaxEvents 20
Remédiation :
# Configuration audit étendu des fichiers
auditpol /set /subcategory:"File System" /success:enable /failure:enable
auditpol /set /subcategory:"Handle Manipulation" /success:enable /failure:enable
# Configuration SACL sur dossiers sensibles
$SensitivePaths = @(
"C:\Windows\System32\config",
"C:\Users\*\Documents",
"C:\ProgramData",
"C:\Windows\System32\drivers\etc"
)
foreach ($Path in $SensitivePaths) {
if (Test-Path $Path) {
# Configurer audit sur ce chemin
icacls $Path /grant "Everyone:(OI)(CI)(M)" /t /c 2>$null
Write-Host "Audit configuré sur: $Path"
}
}
# Script de surveillance des accès sensibles
Register-WmiEvent -Query "SELECT * FROM Win32_NTLogEvent WHERE LogFile='Security' AND (EventCode=4656 OR EventCode=4658)" -Action {
$Event = $Event.SourceEventArgs.NewEvent
if ($Event.InsertionStrings[6] -like "*\config\*" -or $Event.InsertionStrings[6] -like "*\Documents\*") {
Write-Warning "ACCÈS FICHIER SENSIBLE: $($Event.InsertionStrings[1]) -> $($Event.InsertionStrings[6])"
}
}
Valeur par défaut : Variable selon la configuration
7.4.1 — Centralisation SIEM
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.1.10 | T1562.002 |
Description :
Forwarding automatique vers solution SIEM centralisée.
Vérification :
# Commandes de vérification pour Centralisation SIEM
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Centralisation SIEM
Write-Host "Configuration de sécurité pour: Centralisation SIEM"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.5.1 — Audit fichiers sensibles
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.2.10 | T1005 |
Description :
Surveillance accès aux fichiers et dossiers critiques.
Vérification :
# Commandes de vérification pour Audit fichiers sensibles
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit fichiers sensibles
Write-Host "Configuration de sécurité pour: Audit fichiers sensibles"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.6.1 — Intégrité des logs
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.1 | T1562.002 |
Description :
Protection cryptographique contre la falsification des journaux.
Vérification :
# Commandes de vérification pour Intégrité des logs
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Intégrité des logs
Write-Host "Configuration de sécurité pour: Intégrité des logs"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.7.1 — Rétention étendue
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.2 | T1562.002 |
Description :
Conservation longue durée conforme aux exigences réglementaires.
Vérification :
# Commandes de vérification pour Rétention étendue
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Rétention étendue
Write-Host "Configuration de sécurité pour: Rétention étendue"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.8.1 — Alertes temps réel
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.3 | Multiple |
Description :
Notification immédiate des événements de sécurité critiques.
Vérification :
# Commandes de vérification pour Alertes temps réel
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Alertes temps réel
Write-Host "Configuration de sécurité pour: Alertes temps réel"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.9.1 — Analyse comportementale
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.4 | Multiple |
Description :
Détection d’anomalies par apprentissage automatique.
Vérification :
# Commandes de vérification pour Analyse comportementale
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Analyse comportementale
Write-Host "Configuration de sécurité pour: Analyse comportementale"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.10.1 — Corrélation multi-sources
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.5 | Multiple |
Description :
Agrégation et analyse de logs provenant de sources diverses.
Vérification :
# Commandes de vérification pour Corrélation multi-sources
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Corrélation multi-sources
Write-Host "Configuration de sécurité pour: Corrélation multi-sources"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.11.1 — Forensics préparatoire
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.6 | Multiple |
Description :
Collection proactive d’artefacts pour investigation.
Vérification :
# Commandes de vérification pour Forensics préparatoire
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Forensics préparatoire
Write-Host "Configuration de sécurité pour: Forensics préparatoire"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.12.1 — Monitoring privilèges
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.7 | T1078.002 |
Description :
Surveillance spécialisée des activités privilégiées.
Vérification :
# Commandes de vérification pour Monitoring privilèges
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Monitoring privilèges
Write-Host "Configuration de sécurité pour: Monitoring privilèges"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.13.1 — Détection APT
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.8 | Multiple |
Description :
Identification des menaces persistantes avancées.
Vérification :
# Commandes de vérification pour Détection APT
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Détection APT
Write-Host "Configuration de sécurité pour: Détection APT"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.14.1 — Baseline comportementale
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.9 | Multiple |
Description :
Établissement de profils normaux pour détection d’écarts.
Vérification :
# Commandes de vérification pour Baseline comportementale
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Baseline comportementale
Write-Host "Configuration de sécurité pour: Baseline comportementale"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.15.1 — Réponse automatisée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.10 | Multiple |
Description :
Actions automatiques de réponse aux incidents détectés.
Vérification :
# Commandes de vérification pour Réponse automatisée
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Réponse automatisée
Write-Host "Configuration de sécurité pour: Réponse automatisée"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.16.1 — Audit réseau
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.11 | T1071 |
Description :
Journalisation complète des activités réseau.
Vérification :
# Commandes de vérification pour Audit réseau
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit réseau
Write-Host "Configuration de sécurité pour: Audit réseau"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.17.1 — Surveillance processus
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.12 | T1055 |
Description :
Monitoring de création et exécution de processus.
Vérification :
# Commandes de vérification pour Surveillance processus
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Surveillance processus
Write-Host "Configuration de sécurité pour: Surveillance processus"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.18.1 — Détection latérale
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.13 | T1021 |
Description :
Identification des mouvements latéraux dans le réseau.
Vérification :
# Commandes de vérification pour Détection latérale
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Détection latérale
Write-Host "Configuration de sécurité pour: Détection latérale"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.19.1 — Audit registre
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.14 | T1112 |
Description :
Surveillance des modifications du registre système.
Vérification :
# Commandes de vérification pour Audit registre
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Audit registre
Write-Host "Configuration de sécurité pour: Audit registre"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.20.1 — Métriques sécurité
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.15 | Multiple |
Description :
Calcul d’indicateurs de sécurité quantifiables.
Vérification :
# Commandes de vérification pour Métriques sécurité
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Métriques sécurité
Write-Host "Configuration de sécurité pour: Métriques sécurité"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.21.1 — Hunting proactif
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.16 | Multiple |
Description :
Recherche proactive de menaces dans les logs.
Vérification :
# Commandes de vérification pour Hunting proactif
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Hunting proactif
Write-Host "Configuration de sécurité pour: Hunting proactif"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.22.1 — Timeline reconstruction
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.17 | Multiple |
Description :
Reconstruction chronologique des événements incidents.
Vérification :
# Commandes de vérification pour Timeline reconstruction
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Timeline reconstruction
Write-Host "Configuration de sécurité pour: Timeline reconstruction"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.23.1 — Compression intelligente
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.18 | T1562.002 |
Description :
Optimisation du stockage sans perte d’information critique.
Vérification :
# Commandes de vérification pour Compression intelligente
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Compression intelligente
Write-Host "Configuration de sécurité pour: Compression intelligente"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.24.1 — Backup sécurisé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.3.19 | T1562.002 |
Description :
Sauvegarde chiffrée et intègre des journaux.
Vérification :
# Commandes de vérification pour Backup sécurisé
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Backup sécurisé
Write-Host "Configuration de sécurité pour: Backup sécurisé"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
7.25.1 — Accès contrôlé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 17.3.20 | T1562.002 |
Description :
Restriction d’accès aux logs selon le principe du moindre privilège.
Vérification :
# Commandes de vérification pour Accès contrôlé
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Accès contrôlé
Write-Host "Configuration de sécurité pour: Accès contrôlé"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 8 : DROITS UTILISATEUR
8.1 — Droits de connexion
8.1.1 — Restriction “Ouvrir une session localement”
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.2.1 | T1078 (Valid Accounts) |
Description :
Le droit “Ouvrir une session localement” doit être restreint aux utilisateurs et groupes qui ont légitimement besoin d’accéder localement au système.
Vérification :
secedit /export /cfg C:\temp\rights_export.inf
Get-Content C:\temp\rights_export.inf | Select-String "SeInteractiveLogonRight"
# Vérifier via interface graphique
secpol.msc
- GUI : secpol.msc > Stratégies locales > Attribution des droits utilisateur > Ouvrir une session localement
- Valeur attendue : Seulement Administrateurs, Utilisateurs (si nécessaire)
Remédiation :
- Via secedit :
$ConfigContent = @"
[Unicode]
Unicode=yes
[Privilege Rights]
SeInteractiveLogonRight = *S-1-5-32-544,*S-1-5-32-545
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\interactive_logon.inf -Encoding Unicode
secedit /configure /db C:\temp\interactive_logon.sdb /cfg C:\temp\interactive_logon.inf
Remove-Item C:\temp\interactive_logon.inf, C:\temp\interactive_logon.sdb -ErrorAction SilentlyContinue
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Log on locally
Valeur par défaut : Administrateurs, Opérateurs de sauvegarde, Invités, Utilisateurs
8.1.2 — Restriction “Ouvrir une session en tant que service”
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.2.2 | T1543.003 (Windows Service) |
Description :
Le droit “Ouvrir une session en tant que service” doit être strictement contrôlé car il permet l’exécution de code avec des privilèges système.
Vérification :
secedit /export /cfg C:\temp\rights_export.inf
Get-Content C:\temp\rights_export.inf | Select-String "SeServiceLogonRight"
- Valeur attendue : Seulement les comptes de service légitimes
Remédiation :
# Révoquer ce droit pour tous sauf les services système nécessaires
$ConfigContent = @"
[Unicode]
Unicode=yes
[Privilege Rights]
SeServiceLogonRight =
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\service_logon.inf -Encoding Unicode
secedit /configure /db C:\temp\service_logon.sdb /cfg C:\temp\service_logon.inf
Remove-Item C:\temp\service_logon.inf, C:\temp\service_logon.sdb -ErrorAction SilentlyContinue
Valeur par défaut : Variable selon les services installés
8.1.3 — Interdiction “Ouvrir une session via les services Bureau à distance”
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.2.3 | T1021.001 (Remote Desktop Protocol) |
Description :
Le droit “Ouvrir une session via les services Bureau à distance” doit être restreint aux utilisateurs autorisés si RDP est activé.
Vérification :
secedit /export /cfg C:\temp\rights_export.inf
Get-Content C:\temp\rights_export.inf | Select-String "SeRemoteInteractiveLogonRight"
Get-LocalGroupMember -Group "Remote Desktop Users" -ErrorAction SilentlyContinue
Remédiation :
# Si RDP est désactivé, vider complètement ce droit
$ConfigContent = @"
[Unicode]
Unicode=yes
[Privilege Rights]
SeRemoteInteractiveLogonRight =
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\rdp_logon.inf -Encoding Unicode
secedit /configure /db C:\temp\rdp_logon.sdb /cfg C:\temp\rdp_logon.inf
Remove-Item C:\temp\rdp_logon.inf, C:\temp\rdp_logon.sdb -ErrorAction SilentlyContinue
Valeur par défaut : Administrateurs, Utilisateurs du Bureau à distance
8.2 — Privilèges système dangereux
8.2.1 — Restriction “Déboguer les programmes”
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.2.17 | T1055 (Process Injection) |
Description :
Le privilège “Déboguer les programmes” (SeDebugPrivilege) doit être révoqué pour tous les utilisateurs car il permet l’accès à tous les processus système et la contournement de la sécurité.
Vérification :
secedit /export /cfg C:\temp\rights_export.inf
Get-Content C:\temp\rights_export.inf | Select-String "SeDebugPrivilege"
Remédiation :
$ConfigContent = @"
[Unicode]
Unicode=yes
[Privilege Rights]
SeDebugPrivilege =
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\debug_priv.inf -Encoding Unicode
secedit /configure /db C:\temp\debug_priv.sdb /cfg C:\temp\debug_priv.inf
Remove-Item C:\temp\debug_priv.inf, C:\temp\debug_priv.sdb -ErrorAction SilentlyContinue
Valeur par défaut : Administrateurs
8.2.2 — Restriction “Prendre possession de fichiers ou d’autres objets”
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.2.38 | T1134 (Access Token Manipulation) |
Description :
Le privilège “Prendre possession de fichiers” (SeTakeOwnershipPrivilege) permet de prendre le contrôle de n’importe quel objet système et doit être strictement contrôlé.
Vérification :
secedit /export /cfg C:\temp\rights_export.inf
Get-Content C:\temp\rights_export.inf | Select-String "SeTakeOwnershipPrivilege"
Remédiation :
# Restreindre aux Administrateurs uniquement
$ConfigContent = @"
[Unicode]
Unicode=yes
[Privilege Rights]
SeTakeOwnershipPrivilege = *S-1-5-32-544
[Version]
signature="`$CHICAGO`$"
Revision=1
"@
$ConfigContent | Out-File -FilePath C:\temp\take_ownership.inf -Encoding Unicode
secedit /configure /db C:\temp\take_ownership.sdb /cfg C:\temp\take_ownership.inf
Remove-Item C:\temp\take_ownership.inf, C:\temp\take_ownership.sdb -ErrorAction SilentlyContinue
Valeur par défaut : Administrateurs
8.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
8.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 8.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 8. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 9 : OPTIONS DE SÉCURITÉ
9.1 — Authentification réseau
9.1.1 — Authentification LM - Désactivée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.11.1 | T1003.001 (LSASS Memory) |
Description :
L’authentification LAN Manager (LM) doit être complètement désactivée. Le protocole LM utilise des hachages faibles facilement cassables et ne doit plus être utilisé.
Le hachage LM peut être cracké en quelques secondes avec des outils modernes et ne respecte pas les standards de sécurité actuels.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'LmCompatibilityLevel'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'NoLMHash'
- GUI : secpol.msc > Stratégies locales > Options de sécurité > Sécurité réseau : Niveau d’authentification LAN Manager
- Valeur attendue : LmCompatibilityLevel = 5, NoLMHash = 1
Remédiation :
- GPO : Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\Network security: LAN Manager authentication level → Send NTLMv2 response only. Refuse LM & NTLM
- PowerShell :
# Désactiver complètement LM et forcer NTLMv2
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'LmCompatibilityLevel' -Value 5 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'NoLMHash' -Value 1 -Type DWord
Valeur par défaut : 3 (Envoyer LM et NTLM sur Windows 11)
9.1.2 — Signature SMB - Requise
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 2.3.8.1 | T1557.001 (LLMNR/NBT-NS Poisoning) |
Description :
La signature SMB doit être requise pour empêcher les attaques de type man-in-the-middle et garantir l’intégrité des communications SMB.
Vérification :
Get-SmbClientConfiguration | Select-Object RequireSecuritySignature, EnableSecuritySignature
Get-SmbServerConfiguration | Select-Object RequireSecuritySignature, EnableSecuritySignature
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'RequireSecuritySignature'
Remédiation :
# Configuration client SMB
Set-SmbClientConfiguration -RequireSecuritySignature $true -EnableSecuritySignature $true -Force
# Configuration serveur SMB
Set-SmbServerConfiguration -RequireSecuritySignature $true -EnableSecuritySignature $true -Force
# Configuration via registre
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'RequireSecuritySignature' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'EnableSecuritySignature' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters' -Name 'RequireSecuritySignature' -Value 1 -Type DWord
Valeur par défaut : EnableSecuritySignature = True, RequireSecuritySignature = False
9.1.3 — Chiffrement des communications SMB - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.3.1 | T1040 (Network Sniffing) |
Description :
Le chiffrement des communications SMB doit être activé pour protéger la confidentialité des données transitant par SMB.
Vérification :
Get-SmbServerConfiguration | Select-Object EncryptData, RejectUnencryptedAccess
Get-SmbClientConfiguration | Select-Object EnableSMB1Protocol
Remédiation :
# Activer le chiffrement SMB
Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true -Force
Set-SmbClientConfiguration -EnableSMB1Protocol $false -Force
# Configuration via GPO pour forcer le chiffrement
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'EncryptionNegotiation' -Value 1 -Type DWord
Valeur par défaut : EncryptData = False
9.2 — Protection de la mémoire système
9.2.1 — Protection LSASS - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.4.5 | T1003.001 (LSASS Memory) |
Description :
La protection du processus LSASS (Local Security Authority Subsystem Service) doit être activée pour empêcher le dumping des identifiants en mémoire.
Cette protection empêche les outils comme Mimikatz d’extraire les mots de passe et hachages stockés dans la mémoire de LSASS.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RunAsPPL' -ErrorAction SilentlyContinue
Get-Process lsass | Select-Object Id, ProcessName, Protection
Remédiation :
- PowerShell :
# Activer LSA Protection (nécessite un redémarrage)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RunAsPPL' -Value 1 -Type DWord
# Vérification après redémarrage
# Get-Process lsass devrait montrer Protection: ProtectedProcessLight
- GPO : Computer Configuration\Policies\Administrative Templates\System\Local Security Authority\Turn On LSA Protection
Valeur par défaut : 0 (désactivé)
9.2.2 — Credential Guard - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.4.4 | T1003.001 (LSASS Memory) |
Description :
Windows Defender Credential Guard doit être activé pour protéger les identifiants dans un environnement virtualisé sécurisé.
Credential Guard utilise la sécurité basée sur la virtualisation pour isoler les secrets des attaquants ayant accès au système d’exploitation.
Vérification :
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object *
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard' -Name 'EnableVirtualizationBasedSecurity' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'LsaCfgFlags' -ErrorAction SilentlyContinue
Remédiation :
- Prérequis - Vérifier le support matériel :
# Vérifier si le matériel supporte VBS
Get-ComputerInfo | Select-Object -Property "HyperV*"
- Activation de Credential Guard :
# Activer VBS et Credential Guard
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard' -Name 'EnableVirtualizationBasedSecurity' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard' -Name 'RequirePlatformSecurityFeatures' -Value 1 -Type DWord
# Configurer LSA pour Credential Guard
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'LsaCfgFlags' -Value 1 -Type DWord
- GPO : Computer Configuration\Policies\Administrative Templates\System\Device Guard\Turn On Virtualization Based Security
Valeur par défaut : Non configuré
9.3 — Contrôles d’accès réseau
9.3.1 — Partages administratifs - Restreints
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.10.2 | T1021.002 (SMB/Windows Admin Shares) |
Description :
Les partages administratifs (C$, D$, ADMIN$) doivent être restreints ou désactivés selon les besoins pour limiter les mouvements latéraux des attaquants.
Vérification :
Get-SmbShare | Where-Object {$_.Name -like "*$"} | Select-Object Name, Path, Description
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'AutoShareWks' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'AutoShareServer' -ErrorAction SilentlyContinue
Remédiation :
# Désactiver les partages automatiques sur les stations de travail
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'AutoShareWks' -Value 0 -Type DWord
# Pour les serveurs (optionnel - impact sur l'administration)
# Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'AutoShareServer' -Value 0 -Type DWord
# Redémarrer le service serveur pour appliquer
Restart-Service -Name "LanmanServer" -Force
Valeur par défaut : Partages administratifs activés
9.3.2 — Accès anonyme aux pipes nommées - Restreint
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 2.3.10.3 | T1087 (Account Discovery) |
Description :
L’accès anonyme aux pipes nommées doit être restreint pour empêcher l’énumération d’informations par des utilisateurs non authentifiés.
Vérification :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'NullSessionPipes'
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'NullSessionShares'
Remédiation :
# Vider la liste des pipes accessibles anonymement
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'NullSessionPipes' -Value @() -Type MultiString
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'NullSessionShares' -Value @() -Type MultiString
# Empêcher l'accès anonyme aux partages
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RestrictAnonymous' -Value 1 -Type DWord
Valeur par défaut : Liste prédéfinie de pipes accessibles anonymement
9.4 — Sécurité du système de fichiers
9.4.1 — Protection des exécutables système - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.4.11 | T1574.007 (Path Interception by PATH Environment Variable) |
Description :
La protection des exécutables système contre la modification doit être activée pour empêcher le remplacement d’outils système par des versions malveillantes.
Vérification :
# Vérifier les permissions sur les dossiers système critiques
Get-Acl "C:\Windows\System32" | Format-List
Get-Acl "C:\Windows\SysWOW64" | Format-List
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Name 'ProtectionMode'
Remédiation :
# Activer Windows File Protection (si disponible)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Name 'ProtectionMode' -Value 1 -Type DWord
# Vérifier et corriger les permissions sur les dossiers système
icacls "C:\Windows\System32" /inheritance:r
icacls "C:\Windows\System32" /grant:r "SYSTEM:(OI)(CI)F" "Administrators:(OI)(CI)F" "Users:(OI)(CI)RX"
icacls "C:\Windows\SysWOW64" /inheritance:r
icacls "C:\Windows\SysWOW64" /grant:r "SYSTEM:(OI)(CI)F" "Administrators:(OI)(CI)F" "Users:(OI)(CI)RX"
Valeur par défaut : Permissions par défaut Windows
9.5.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.6.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.7.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.8.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.9.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.10.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.11.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.12.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.13.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.14.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
9.15.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 9.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 9. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 10 : REGISTRE & SYSTÈME DE FICHIERS
10.1 — Protection du registre
10.1.1 — Accès à distance au registre - Restreint
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.3.7 | T1012 (Query Registry) |
Description :
L’accès à distance au registre doit être désactivé ou strictement contrôlé. Le service de registre distant permet la lecture et modification à distance du registre Windows.
Vérification :
Get-Service -Name "RemoteRegistry" | Select-Object Name, Status, StartType
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg' -Name 'AllowedExactPaths' -ErrorAction SilentlyContinue
Remédiation :
# Désactiver le service de registre distant
Stop-Service -Name "RemoteRegistry" -Force -ErrorAction SilentlyContinue
Set-Service -Name "RemoteRegistry" -StartupType Disabled
# Si le service doit rester activé, restreindre les accès
# Configurer les ACL sur les clés sensibles
$ACL = Get-Acl "HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg"
$ACL.SetAccessRuleProtection($true, $false)
$AdminRule = New-Object System.Security.AccessControl.RegistryAccessRule("Administrators", "FullControl", "Allow")
$ACL.SetAccessRule($AdminRule)
Set-Acl "HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg" $ACL
Valeur par défaut : Démarrage manuel
10.1.2 — Protection des clés de registre critiques - Configurée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | ANSSI | T1112 (Modify Registry) |
Description :
Les clés de registre critiques pour la sécurité du système doivent être protégées contre la modification par des utilisateurs non privilégiés.
Vérification :
# Vérifier les permissions sur les ruches critiques
Get-Acl "HKLM:\SYSTEM" | Format-List
Get-Acl "HKLM:\SECURITY" | Format-List
Get-Acl "HKLM:\SAM" | Format-List
Remédiation :
# Script pour sécuriser les clés critiques
$CriticalKeys = @(
"HKLM:\SYSTEM\CurrentControlSet\Services",
"HKLM:\SYSTEM\CurrentControlSet\Control",
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
)
foreach ($Key in $CriticalKeys) {
if (Test-Path $Key) {
$ACL = Get-Acl $Key
# Supprimer l'héritage et les permissions des utilisateurs standards
$ACL.SetAccessRuleProtection($true, $true)
# Garder seulement SYSTEM et Administrators
$Rules = $ACL.GetAccessRules($true, $false, [System.Security.Principal.NTAccount])
foreach ($Rule in $Rules) {
if ($Rule.IdentityReference -notmatch "SYSTEM|Administrators") {
$ACL.RemoveAccessRule($Rule)
}
}
Set-Acl $Key $ACL
}
}
Valeur par défaut : Permissions héritées
10.2 — Contrôles d’intégrité des fichiers
10.2.1 — System File Checker (SFC) - Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | ANSSI | T1565.001 (Stored Data Manipulation) |
Description :
Le vérificateur d’intégrité des fichiers système (SFC) doit être configuré pour détecter et réparer les modifications non autorisées des fichiers système.
Vérification :
# Vérifier l'intégrité des fichiers système
sfc /verifyonly
# Vérifier la base de données des composants
Dism /Online /Cleanup-Image /CheckHealth
Remédiation :
# Réparer les fichiers système corrompus
sfc /scannow
# Réparer l'image Windows si nécessaire
Dism /Online /Cleanup-Image /RestoreHealth
# Tâche planifiée pour vérifications périodiques
$Action = New-ScheduledTaskAction -Execute 'sfc' -Argument '/verifyonly'
$Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At "02:00"
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "SFC_Weekly_Check" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Vérification hebdomadaire de l'intégrité des fichiers système"
Valeur par défaut : Vérification manuelle uniquement
10.2.2 — Windows Resource Protection - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 18.4.12 | T1574.007 (Path Interception by PATH Environment Variable) |
Description :
Windows Resource Protection (WRP) protège les fichiers et clés de registre système critiques contre les modifications. Ce service doit être activé et fonctionnel.
Vérification :
Get-Service -Name "TrustedInstaller" | Select-Object Name, Status, StartType
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'SFCDisable' -ErrorAction SilentlyContinue
Remédiation :
# S'assurer que TrustedInstaller est actif
Set-Service -Name "TrustedInstaller" -StartupType Manual
Start-Service -Name "TrustedInstaller" -ErrorAction SilentlyContinue
# S'assurer que SFC n'est pas désactivé
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'SFCDisable' -ErrorAction SilentlyContinue
Valeur par défaut : TrustedInstaller en mode manuel, WRP activé
10.3 — Chiffrement du système de fichiers
10.3.1 — BitLocker Drive Encryption - Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.8 | T1486 (Data Encrypted for Impact) |
Description :
BitLocker Drive Encryption doit être activé pour protéger les données au repos contre l’accès physique non autorisé au disque dur.
Vérification :
Get-BitLockerVolume | Select-Object MountPoint, EncryptionMethod, VolumeStatus, ProtectionStatus
manage-bde -status
Remédiation :
- Vérifier les prérequis TPM :
Get-Tpm | Select-Object TpmPresent, TpmReady, TpmEnabled
- Activer BitLocker :
# Activer BitLocker sur le lecteur C: avec TPM
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector
# Sauvegarder les clés de récupération
$RecoveryKey = (Get-BitLockerVolume -MountPoint "C:").KeyProtector | Where-Object {$_.KeyProtectorType -eq 'RecoveryPassword'}
$RecoveryKey.RecoveryPassword | Out-File "C:\BitLockerRecoveryKey.txt"
- Configuration via GPO : Computer Configuration\Policies\Administrative Templates\Windows Components\BitLocker Drive Encryption
Valeur par défaut : Non activé par défaut
10.4.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.5.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.6.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.7.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.8.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.9.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.10.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.11.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.12.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.13.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.14.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
10.15.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 10.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 10. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 11 : PROTECTION DES DONNÉES & CHIFFREMENT
11.1 — Chiffrement des communications
11.1.1 — TLS/SSL - Configuration sécurisée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.4.14 | T1040 (Network Sniffing) |
Description :
Les protocoles TLS/SSL doivent être configurés pour utiliser uniquement les versions sécurisées (TLS 1.2 minimum) et désactiver les versions obsolètes (SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1).
Vérification :
# Vérifier la configuration TLS dans le registre
Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" | Get-ItemProperty
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -ErrorAction SilentlyContinue
Remédiation :
# Désactiver SSL 2.0
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server' -Name 'Enabled' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server' -Name 'DisabledByDefault' -Value 1 -Type DWord
# Désactiver SSL 3.0
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Name 'Enabled' -Value 0 -Type DWord
# Désactiver TLS 1.0 et 1.1
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Name 'Enabled' -Value 0 -Type DWord
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Name 'Enabled' -Value 0 -Type DWord
# Forcer TLS 1.2 pour .NET Framework
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value 1 -Type DWord
Valeur par défaut : TLS 1.2 et versions antérieures activées
11.1.2 — Certificats et autorités de certification - Gérés
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.4.15 | T1553.004 (Install Root Certificate) |
Description :
Les certificats et autorités de certification doivent être correctement gérés. Les certificats auto-signés ou non fiables doivent être supprimés du magasin de certificats.
Vérification :
Get-ChildItem Cert:\LocalMachine\Root | Where-Object {$_.Subject -notmatch "Microsoft|VeriSign|DigiCert|Comodo|GlobalSign"} | Select-Object Subject, Thumbprint, NotAfter
Get-ChildItem Cert:\LocalMachine\AuthRoot | Select-Object Subject, Thumbprint
Get-ChildItem Cert:\CurrentUser\Root | Select-Object Subject, Thumbprint
Remédiation :
# Supprimer les certificats non fiables (exemple)
# ATTENTION: Adapter selon votre environnement
$UntrustedCerts = Get-ChildItem Cert:\LocalMachine\Root | Where-Object {$_.Subject -like "*Test*" -or $_.Subject -like "*Development*"}
foreach ($Cert in $UntrustedCerts) {
Remove-Item "Cert:\LocalMachine\Root\$($Cert.Thumbprint)" -Force
Write-Output "Certificat supprimé: $($Cert.Subject)"
}
# Activer la vérification de révocation des certificats
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config' -Name 'MaxUrlRetrievalTimeoutMilliseconds' -Value 15000 -Type DWord
Valeur par défaut : Certificats Windows par défaut
11.2 — Protection des données sensibles
11.2.1 — Encrypting File System (EFS) - Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 18.1.2 | T1005 (Data from Local System) |
Description :
EFS (Encrypting File System) doit être configuré avec des agents de récupération et des algorithmes de chiffrement forts pour protéger les fichiers sensibles au niveau utilisateur.
Vérification :
cipher /e /s:C:\Users\%USERNAME%\Documents
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys' -ErrorAction SilentlyContinue
Remédiation :
# Configurer EFS pour utiliser AES 256
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EFSAlgorithmID' -Value 0x6610 -Type DWord # AES-256
# Configurer la longueur de clé
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EFSKeyLength' -Value 256 -Type DWord
# Désactiver EFS si non utilisé dans votre environnement
# Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'DisableEFS' -Value 1 -Type DWord
Valeur par défaut : EFS disponible avec clés par défaut
11.2.2 — Protection des métadonnées de fichiers - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | ANSSI | T1083 (File and Directory Discovery) |
Description :
La protection des métadonnées de fichiers doit être configurée pour empêcher la fuite d’informations sensibles via les propriétés de fichiers.
Vérification :
# Vérifier la configuration des flux de données alternatifs (ADS)
dir /a /r C:\Users\%USERNAME%\Documents
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'NtfsDisableLastAccessUpdate'
Remédiation :
# Désactiver la mise à jour automatique de l'heure du dernier accès (performance et confidentialité)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'NtfsDisableLastAccessUpdate' -Value 1 -Type DWord
# Script pour nettoyer les métadonnées des fichiers Office
$Files = Get-ChildItem -Path "C:\Users" -Include "*.docx", "*.xlsx", "*.pptx" -Recurse -ErrorAction SilentlyContinue
foreach ($File in $Files) {
try {
# Supprimer les propriétés étendues (nécessite des outils tiers pour une suppression complète)
Set-ItemProperty -Path $File.FullName -Name Attributes -Value ([System.IO.FileAttributes]::Normal)
} catch {
Write-Warning "Impossible de traiter $($File.FullName)"
}
}
Valeur par défaut : Métadonnées conservées
11.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
11.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 11.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 11. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 12 : WINDOWS HELLO & BIOMÉTRIE
12.1 — Configuration Windows Hello
12.1.1 — Windows Hello for Business - Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 18.9.97 | T1556 (Modify Authentication Process) |
Description :
Windows Hello for Business doit être configuré pour fournir une authentification forte sans mot de passe dans les environnements d’entreprise.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'AllowDomainPINLogon' -ErrorAction SilentlyContinue
Get-WindowsHelloForBusinessConfiguration
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\PolicyManager\current\device\DeviceLock' -ErrorAction SilentlyContinue
Remédiation :
# Activer Windows Hello for Business
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'AllowDomainPINLogon' -Value 1 -Type DWord
# Configurer les politiques PIN
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'MinimumPINLength' -Value 6 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'MaximumPINLength' -Value 127 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity' -Name 'RequireDigits' -Value 1 -Type DWord
Valeur par défaut : Disponible mais non configuré par défaut
12.1.2 — Configuration biométrique - Sécurisée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 18.9.16 | T1556 (Modify Authentication Process) |
Description :
La configuration biométrique doit être sécurisée avec des paramètres appropriés pour empêcher les contournements et assurer la protection des données biométriques.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics' -ErrorAction SilentlyContinue
Get-WmiObject -Class Win32_SystemDriverPNPEntity | Where-Object {$_.Name -like "*biometric*"} | Select-Object Name, Status
Remédiation :
# Configuration des politiques biométriques
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics' -Name 'Enabled' -Value 1 -Type DWord
# Configuration de la base de données biométrique
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider' -Name 'Domain Accounts' -Value 1 -Type DWord
# Politique de qualité biométrique
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics' -Name 'FaceUnlockEnabled' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics' -Name 'FingerprintUnlockEnabled' -Value 1 -Type DWord
Valeur par défaut : Configuration de base si matériel supporté
12.2 — Sécurité des identifiants
12.2.1 — Protection contre l’usurpation biométrique - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | ANSSI | T1556.002 (Password Filter DLL) |
Description :
Les mécanismes de protection contre l’usurpation biométrique (liveness detection) doivent être activés pour empêcher l’utilisation de fausses empreintes ou photos.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\FacialFeatures' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WinBio\Credential Provider' -ErrorAction SilentlyContinue
Remédiation :
# Configuration anti-usurpation pour la reconnaissance faciale
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\FacialFeatures' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\FacialFeatures' -Name 'EnhancedAntiSpoofing' -Value 1 -Type DWord
# Forcer l'utilisation d'IR (infrarouge) pour la reconnaissance faciale
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\FacialFeatures' -Name 'UseEnhancedSignin' -Value 1 -Type DWord
Valeur par défaut : Protection de base si supportée par le matériel
12.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
12.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 12.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 12. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 13 : SÉCURITÉ RÉSEAU
13.1 — Protocoles réseau sécurisés
13.1.1 — IPv6 - Configuration sécurisée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.3.4 | T1557.001 (LLMNR/NBT-NS Poisoning) |
Description :
IPv6 doit être configuré de manière sécurisée ou désactivé si non utilisé. IPv6 peut être exploité pour contourner les contrôles de sécurité IPv4.
Vérification :
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Select-Object Name, DisplayName, Enabled
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters' -Name 'DisabledComponents' -ErrorAction SilentlyContinue
netsh interface ipv6 show global
Remédiation :
- Si IPv6 n’est pas utilisé, le désactiver :
# Désactiver IPv6 sur toutes les interfaces
Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6
# Ou via le registre (nécessite redémarrage)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters' -Name 'DisabledComponents' -Value 0xFF -Type DWord
- Si IPv6 est utilisé, le sécuriser :
# Désactiver la configuration automatique si non nécessaire
netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set global routerdiscovery=disabled
# Configurer des adresses IPv6 statiques plutôt que l'autoconfiguration
Valeur par défaut : IPv6 activé avec autoconfiguration
13.1.2 — NetBIOS over TCP/IP - Désactivé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.3.5 | T1557.001 (LLMNR/NBT-NS Poisoning) |
Description :
NetBIOS over TCP/IP doit être désactivé pour empêcher les attaques de type NetBIOS name poisoning et réduire la surface d’attaque réseau.
Vérification :
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object {$_.TcpipNetbiosOptions} | Select-Object Description, TcpipNetbiosOptions
wmic nicconfig get description,tcpipnetbiosoptions
Remédiation :
# Désactiver NetBIOS over TCP/IP sur toutes les interfaces
$NICs = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=True"
foreach ($NIC in $NICs) {
$NIC.SetTcpipNetbios(2) # 2 = Disable NetBIOS over TCP/IP
}
# Vérification
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object {$_.TcpipNetbiosOptions -eq 2} | Select-Object Description
Valeur par défaut : Activé par défaut (valeur 0 = par défaut DHCP)
13.1.3 — LLMNR et mDNS - Désactivés
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.3.6 | T1557.001 (LLMNR/NBT-NS Poisoning) |
Description :
LLMNR (Link-Local Multicast Name Resolution) et mDNS doivent être désactivés pour empêcher les attaques de poisoning qui permettent d’intercepter les identifiants réseau.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Name 'EnableMulticast' -ErrorAction SilentlyContinue
Get-Service -Name "Dnscache" | Select-Object Name, Status
netsh interface ip show global
Remédiation :
# Désactiver LLMNR
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Name 'EnableMulticast' -Value 0 -Type DWord
# Désactiver mDNS (Bonjour)
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name 'EnableMDNS' -Value 0 -Type DWord
# Redémarrer le service DNS Client
Restart-Service -Name "Dnscache" -Force
Valeur par défaut : LLMNR et mDNS activés
13.2 — Protection réseau avancée
13.2.1 — Windows Network Protection - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.4.7 | T1049 (System Network Configuration Discovery) |
Description :
Windows Network Protection doit être activé pour protéger contre les attaques réseau et surveiller le trafic réseau suspect.
Vérification :
Get-MpPreference | Select-Object EnableNetworkProtection
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows Defender\Windows Defender Exploit Guard\Network Protection' -Name 'EnableNetworkProtection' -ErrorAction SilentlyContinue
Remédiation :
# Activer Network Protection en mode blocage
Set-MpPreference -EnableNetworkProtection Enabled
# Ou via le registre
New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows Defender\Windows Defender Exploit Guard\Network Protection' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows Defender\Windows Defender Exploit Guard\Network Protection' -Name 'EnableNetworkProtection' -Value 1 -Type DWord
Valeur par défaut : Désactivé
13.2.2 — Protection contre les attaques réseau - Configurée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | ANSSI | T1095 (Non-Application Layer Protocol) |
Description :
Les protections contre les attaques réseau courantes doivent être configurées, incluant la protection contre les attaques par déni de service et les scans de ports.
Vérification :
netsh int ip show config
netsh advfirewall show allprofiles
Get-NetFirewallRule | Where-Object {$_.Direction -eq "Inbound" -and $_.Action -eq "Block"} | Select-Object DisplayName, Direction, Action
Remédiation :
# Configuration de protection TCP/IP avancée
netsh int ip set global taskoffload=disabled
netsh int ip set global chimney=disabled
# Protection contre SYN flood
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' -Name 'SynAttackProtect' -Value 2 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' -Name 'TcpMaxHalfOpen' -Value 500 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' -Name 'TcpMaxHalfOpenRetried' -Value 400 -Type DWord
# Désactiver la source routing
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' -Name 'DisableIPSourceRouting' -Value 2 -Type DWord
Valeur par défaut : Protections de base activées
13.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
13.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 13.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 13. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 14 : MICROSOFT DEFENDER ANTIVIRUS
14.1 — Configuration de base
14.1.1 — Protection en temps réel - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.39 | T1562.001 (Disable or Modify Tools) |
Description :
La protection en temps réel de Microsoft Defender Antivirus doit être activée en permanence pour détecter et bloquer les menaces en temps réel.
Vérification :
Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled, OnAccessProtectionEnabled
Get-MpPreference | Select-Object DisableRealtimeMonitoring, DisableOnAccessProtection
Remédiation :
# Activer la protection en temps réel
Set-MpPreference -DisableRealtimeMonitoring $false
Set-MpPreference -DisableOnAccessProtection $false
# Configurer les analyses automatiques
Set-MpPreference -ScanScheduleDay Everyday -ScanScheduleTime 120
Set-MpPreference -CheckForSignaturesBeforeRunningScan $true
Valeur par défaut : Activé par défaut sur Windows 11
14.1.2 — Protection fournie par le cloud - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.39 | T1562.001 (Disable or Modify Tools) |
Description :
La protection fournie par le cloud (MAPS - Microsoft Active Protection Service) doit être activée pour bénéficier des dernières signatures et de l’intelligence des menaces en temps réel.
Vérification :
Get-MpPreference | Select-Object MAPSReporting, SubmitSamplesConsent
Get-MpComputerStatus | Select-Object AMEngineVersion, AntivirusSignatureVersion
Remédiation :
# Activer MAPS avec envoi d'échantillons automatique
Set-MpPreference -MAPSReporting Advanced
Set-MpPreference -SubmitSamplesConsent SendAllSamples
# Activer le blocage à la première vue
Set-MpPreference -DisableBlockAtFirstSeen $false
Valeur par défaut : Activé avec niveau de base
14.1.3 — Analyse comportementale - Activée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.39 | T1055 (Process Injection) |
Description :
L’analyse comportementale doit être activée pour détecter les comportements malveillants qui ne sont pas détectés par les signatures traditionnelles.
Vérification :
Get-MpPreference | Select-Object DisableBehaviorMonitoring, DisableIOAVProtection, DisableScriptScanning
Remédiation :
# Activer toutes les protections comportementales
Set-MpPreference -DisableBehaviorMonitoring $false
Set-MpPreference -DisableIOAVProtection $false
Set-MpPreference -DisableScriptScanning $false
Set-MpPreference -DisableInboundConnectionFiltering $false
Valeur par défaut : Activé par défaut
14.2 — Configuration avancée
14.2.1 — Exclusions d’analyse - Minimisées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.39 | T1562.001 (Disable or Modify Tools) |
Description :
Les exclusions d’analyse de Windows Defender doivent être minimisées et régulièrement auditées. Chaque exclusion réduit le niveau de protection.
Vérification :
Get-MpPreference | Select-Object ExclusionPath, ExclusionProcess, ExclusionExtension
Get-MpPreference | Select-Object AttackSurfaceReductionRules_Actions, AttackSurfaceReductionRules_Ids
Remédiation :
# Audit des exclusions actuelles
$Exclusions = Get-MpPreference
Write-Output "Chemins exclus: $($Exclusions.ExclusionPath -join '; ')"
Write-Output "Processus exclus: $($Exclusions.ExclusionProcess -join '; ')"
Write-Output "Extensions exclues: $($Exclusions.ExclusionExtension -join '; ')"
# Supprimer les exclusions non nécessaires (exemple)
# Remove-MpPreference -ExclusionPath "C:\Temp"
# Configurer des règles ASR (Attack Surface Reduction)
$ASRRules = @{
"BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550" = "Enabled" # Block executable content download
"D4F940AB-401B-4EFC-AADC-AD5F3C50688A" = "Enabled" # Block Office applications from creating child processes
"3B576869-A4EC-4529-8536-B80A7769E899" = "Enabled" # Block Office applications from creating executable content
}
foreach ($Rule in $ASRRules.GetEnumerator()) {
Add-MpPreference -AttackSurfaceReductionRules_Ids $Rule.Key -AttackSurfaceReductionRules_Actions $Rule.Value
}
Valeur par défaut : Aucune exclusion par défaut
14.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
14.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 14.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 14. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 15 : CONTRÔLE DES APPLICATIONS
15.1 — Windows Defender Application Control (WDAC)
15.1.1 — Politique de contrôle d’application - Configurée
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.44 | T1218 (Signed Binary Proxy Execution) |
Description :
Une politique Windows Defender Application Control (WDAC) doit être configurée pour contrôler quelles applications peuvent s’exécuter sur le système.
Vérification :
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object CodeIntegrityPolicyEnforcementStatus
Get-SystemDriver | Where-Object {$_.Name -like "*CodeIntegrity*"}
Remédiation :
- Créer une politique de base WDAC :
# Créer une politique WDAC en mode audit
New-CIPolicy -Level Publisher -FilePath "C:\WDAC\InitialPolicy.xml" -UserPEs
# Convertir en politique binaire
ConvertFrom-CIPolicy -XmlFilePath "C:\WDAC\InitialPolicy.xml" -BinaryFilePath "C:\WDAC\Policy.bin"
# Déployer la politique
Copy-Item "C:\WDAC\Policy.bin" "C:\Windows\System32\CodeIntegrity\SIPolicy.p7b"
- Configuration via GPO : Computer Configuration\Policies\Administrative Templates\System\Device Guard\Deploy Code Integrity Policy
Valeur par défaut : Aucune politique WDAC active
15.1.2 — AppLocker - Configuration de base
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | CIS 18.9.6 | T1059 (Command and Scripting Interpreter) |
Description :
AppLocker doit être configuré avec des règles de base pour contrôler l’exécution d’applications non autorisées, en particulier pour les scripts et exécutables.
Vérification :
Get-Service -Name "AppIDSvc" | Select-Object Name, Status, StartType
Get-AppLockerPolicy -Effective | Select-Object RuleCollections
Remédiation :
# Activer le service Application Identity
Set-Service -Name "AppIDSvc" -StartupType Automatic
Start-Service -Name "AppIDSvc"
# Créer des règles AppLocker de base
$Rules = @'
<AppLockerPolicy Version="1">
<RuleCollection Type="Exe" EnforcementMode="AuditOnly">
<FilePathRule Id="fd686d83-a829-4351-8ff4-27c7de5755d2" Name="Allow programs in Program Files" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
<Conditions>
<FilePathCondition Path="%PROGRAMFILES%\*" />
</Conditions>
</FilePathRule>
<FilePathRule Id="ad02b920-40d2-4a3c-a0e3-53956cf69f2c" Name="Allow programs in Windows" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
<Conditions>
<FilePathCondition Path="%WINDIR%\*" />
</Conditions>
</FilePathRule>
</RuleCollection>
</AppLockerPolicy>
'@
$Rules | Out-File "C:\AppLocker\BasePolicy.xml"
Set-AppLockerPolicy -XmlPolicy "C:\AppLocker\BasePolicy.xml"
Valeur par défaut : AppLocker non configuré
15.2 — SmartScreen et protection web
15.2.1 — Windows Defender SmartScreen - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.80 | T1566.001 (Spearphishing Attachment) |
Description :
Windows Defender SmartScreen doit être activé pour tous les navigateurs et applications afin de protéger contre les téléchargements malveillants et les sites de phishing.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EnableSmartScreen' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'SmartScreenEnabled' -ErrorAction SilentlyContinue
Remédiation :
# Activer SmartScreen pour Windows
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EnableSmartScreen' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'ShellSmartScreenLevel' -Value 'Block' -Type String
# Activer SmartScreen pour l'Explorateur
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'SmartScreenEnabled' -Value 'RequireAdmin' -Type String
Valeur par défaut : Activé par défaut sur Windows 11
15.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
15.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 15.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 15. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 16 : MISES À JOUR & MAINTENANCE
16.1 — Windows Update
16.1.1 — Mises à jour automatiques - Configurées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.101 | T1203 (Exploitation for Client Execution) |
Description :
Les mises à jour automatiques de Windows doivent être configurées pour installer automatiquement les mises à jour critiques et de sécurité afin de maintenir le système à jour contre les vulnérabilités connues.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'AUOptions' -ErrorAction SilentlyContinue
Get-WindowsUpdate -List
UsoClient ScanInstallWait
Remédiation :
# Configuration des mises à jour automatiques via GPO
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'AUOptions' -Value 4 -Type DWord # Install automatically
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'ScheduledInstallDay' -Value 0 -Type DWord # Every day
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'ScheduledInstallTime' -Value 3 -Type DWord # 3 AM
# Configurer les redémarrages automatiques
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'NoAutoRebootWithLoggedOnUsers' -Value 0 -Type DWord
Valeur par défaut : Mises à jour automatiques activées
16.1.2 — WSUS/Windows Update for Business - Configuration
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.101 | T1195.002 (Compromise Software Supply Chain) |
Description :
WSUS ou Windows Update for Business doit être configuré pour contrôler la distribution des mises à jour dans l’environnement d’entreprise.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'WUServer' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'BranchReadinessLevel' -ErrorAction SilentlyContinue
Remédiation :
# Configuration pour Windows Update for Business
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'BranchReadinessLevel' -Value 32 -Type DWord # Semi-Annual Channel
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'DeferFeatureUpdates' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'DeferFeatureUpdatesPeriodInDays' -Value 365 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'DeferQualityUpdates' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'DeferQualityUpdatesPeriodInDays' -Value 7 -Type DWord
Valeur par défaut : Configuration par défaut Microsoft
16.2 — Maintenance système
16.2.1 — Tâches de maintenance automatique - Configurées
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | ANSSI | T1053.005 (Scheduled Task) |
Description :
Les tâches de maintenance automatique doivent être configurées pour maintenir les performances et la sécurité du système, tout en étant contrôlées pour éviter les abus.
Vérification :
Get-ScheduledTask | Where-Object {$_.TaskPath -like "*Microsoft*" -and $_.State -eq "Ready"} | Select-Object TaskName, State, LastRunTime
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance' -ErrorAction SilentlyContinue
Remédiation :
# Configuration de la maintenance automatique
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance' -Name 'MaintenanceDisabled' -Value 0 -Type DWord
# Configurer des taches de securite personnalisees
# Script PowerShell pour les taches de maintenance
$MaintenanceScript = @"
# Verification des echecs de connexion
Get-WinEvent -LogName Security -MaxEvents 100 | Where-Object {$_.Id -eq 4625} | Export-Csv C:\Logs\FailedLogons.csv -Append -ErrorAction SilentlyContinue
# Verification integrite systeme
sfc /verifyonly
"@
$MaintenanceScript | Out-File -FilePath "C:\Scripts\SecurityMaintenance.ps1"
# Tache planifiee pour maintenance de securite
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\SecurityMaintenance.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At "06:00"
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Security_DailyMaintenance" -Action $Action -Trigger $Trigger -Principal $Principal
Valeur par défaut : Maintenance automatique activée
16.2.2 — Nettoyage des fichiers temporaires - Automatisé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | ANSSI | T1005 (Data from Local System) |
Description :
Le nettoyage automatique des fichiers temporaires doit être configuré pour réduire la surface d’attaque et empêcher l’accumulation de données sensibles dans les dossiers temporaires.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy' -ErrorAction SilentlyContinue
Get-ChildItem -Path "C:\Windows\Temp" -Recurse | Measure-Object -Property Length -Sum
Remédiation :
# Activer Storage Sense pour le nettoyage automatique
New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy' -Name '01' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy' -Name '04' -Value 1 -Type DWord # Delete temp files
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy' -Name '08' -Value 30 -Type DWord # Delete files in recycle bin after 30 days
# Tâche de nettoyage personnalisée
$CleanupScript = @'
# Nettoyage sécurisé des dossiers temporaires
$TempFolders = @("C:\Windows\Temp", "C:\Users\*\AppData\Local\Temp")
foreach ($Folder in $TempFolders) {
if (Test-Path $Folder) {
Get-ChildItem -Path $Folder -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
}
}
# Nettoyage des logs anciens (> 90 jours)
Get-ChildItem -Path "C:\Windows\Logs" -Recurse -ErrorAction SilentlyContinue | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-90)} | Remove-Item -Force -ErrorAction SilentlyContinue
'@
$CleanupScript | Out-File -FilePath "C:\Scripts\SecurityCleanup.ps1"
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\SecurityCleanup.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At "01:00"
Register-ScheduledTask -TaskName "Security_DailyCleanup" -Action $Action -Trigger $Trigger
Valeur par défaut : Nettoyage manuel uniquement
16.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
16.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 16.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 16. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 17 : FONCTIONNALITÉS DE SÉCURITÉ AVANCÉES
17.1 — Windows Defender Exploit Guard
17.1.1 — Exploit Protection - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.30 | T1068 (Exploitation for Privilege Escalation) |
Description :
Windows Defender Exploit Protection doit être activé avec toutes les mitigations disponibles pour protéger contre les techniques d’exploitation courantes.
Vérification :
Get-ProcessMitigation -System | Select-Object DEP, ASLR, CFG, StrictCFG
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows Defender\Windows Defender Exploit Guard\Exploit Protection' -ErrorAction SilentlyContinue
Remédiation :
# Configuration globale d'Exploit Protection
Set-ProcessMitigation -System -Enable DEP, EmulateAtlThunks, BottomUp, HighEntropy, StrictCFG, SystemCallDisable
# Configuration pour des applications spécifiques
$ProcessMitigations = @{
"iexplore.exe" = @("DEP", "ASLR", "CFG")
"chrome.exe" = @("DEP", "ASLR", "CFG")
"firefox.exe" = @("DEP", "ASLR", "CFG")
"winword.exe" = @("DEP", "ASLR", "CFG")
"excel.exe" = @("DEP", "ASLR", "CFG")
"powerpnt.exe" = @("DEP", "ASLR", "CFG")
"acrobat.exe" = @("DEP", "ASLR", "CFG")
}
foreach ($Process in $ProcessMitigations.GetEnumerator()) {
Set-ProcessMitigation -Name $Process.Key -Enable ($Process.Value -join ",")
}
Valeur par défaut : Mitigations de base activées
17.1.2 — Attack Surface Reduction (ASR) - Configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🔴 | CIS 18.9.30 | T1059 (Command and Scripting Interpreter) |
Description :
Les règles Attack Surface Reduction doivent être configurées pour bloquer les vecteurs d’attaque couramment utilisés par les logiciels malveillants.
Vérification :
Get-MpPreference | Select-Object AttackSurfaceReductionRules_Ids, AttackSurfaceReductionRules_Actions
Remédiation :
# Configuration complète des règles ASR
$ASRRules = @{
# Block executable content from email client and webmail
"BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550" = "Enabled"
# Block all Office applications from creating child processes
"D4F940AB-401B-4EFC-AADC-AD5F3C50688A" = "Enabled"
# Block Office applications from creating executable content
"3B576869-A4EC-4529-8536-B80A7769E899" = "Enabled"
# Block Office applications from injecting code into other processes
"75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84" = "Enabled"
# Block JavaScript or VBScript from launching downloaded executable content
"D3E037E1-3EB8-44C8-A917-57927947596D" = "Enabled"
# Block execution of potentially obfuscated scripts
"5BEB7EFE-FD9A-4556-801D-275E5FFC04CC" = "Enabled"
# Block Win32 API calls from Office macros
"92E97FA1-2EDF-4476-BDD6-9DD0B4DDDC7B" = "Enabled"
# Block executable files from running unless they meet a prevalence, age, or trusted list criterion
"01443614-cd74-433a-b99e-2ecdc07bfc25" = "AuditMode" # Start in audit mode
# Use advanced protection against ransomware
"c1db55ab-c21a-4637-bb3f-a12568109d35" = "Enabled"
# Block credential stealing from the Windows local security authority subsystem
"9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2" = "Enabled"
# Block process creations originating from PSExec and WMI commands
"d1e49aac-8f56-4280-b9ba-993a6d77406c" = "Enabled"
# Block untrusted and unsigned processes that run from USB
"b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4" = "Enabled"
# Block Office communication application from creating child processes
"26190899-1602-49e8-8b27-eb1d0a1ce869" = "Enabled"
# Block Adobe Reader from creating child processes
"7674ba52-37eb-4a4f-a9a1-f0f9a1619a2c" = "Enabled"
# Block persistence through WMI event subscription
"e6db77e5-3df2-4cf1-b95a-636979351e5b" = "Enabled"
}
# Appliquer toutes les règles ASR
foreach ($Rule in $ASRRules.GetEnumerator()) {
Add-MpPreference -AttackSurfaceReductionRules_Ids $Rule.Key -AttackSurfaceReductionRules_Actions $Rule.Value
}
# Vérification
Get-MpPreference | Select-Object AttackSurfaceReductionRules_Ids, AttackSurfaceReductionRules_Actions
Valeur par défaut : Aucune règle ASR configurée
17.2 — Controlled Folder Access
17.2.1 — Accès contrôlé aux dossiers - Activé
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.30 | T1486 (Data Encrypted for Impact) |
Description :
L’accès contrôlé aux dossiers doit être activé pour protéger les dossiers importants contre les modifications par des applications non autorisées, notamment les ransomwares.
Vérification :
Get-MpPreference | Select-Object EnableControlledFolderAccess
Get-MpPreference | Select-Object ControlledFolderAccessProtectedFolders
Get-MpPreference | Select-Object ControlledFolderAccessAllowedApplications
Remédiation :
# Activer Controlled Folder Access
Set-MpPreference -EnableControlledFolderAccess Enabled
# Ajouter des dossiers protégés supplémentaires
$ProtectedFolders = @(
"C:\Users\%USERNAME%\Documents",
"C:\Users\%USERNAME%\Desktop",
"C:\Users\%USERNAME%\Pictures",
"C:\Users\%USERNAME%\Videos",
"C:\Data",
"C:\Important"
)
foreach ($Folder in $ProtectedFolders) {
Add-MpPreference -ControlledFolderAccessProtectedFolders $Folder -ErrorAction SilentlyContinue
}
# Ajouter des applications autorisées si nécessaire
$AllowedApps = @(
"C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE",
"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE",
"C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE"
)
foreach ($App in $AllowedApps) {
if (Test-Path $App) {
Add-MpPreference -ControlledFolderAccessAllowedApplications $App
}
}
Valeur par défaut : Désactivé
17.3 — Windows Sandbox et virtualisation
17.3.1 — Windows Sandbox - Disponible et configuré
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | ANSSI | T1055 (Process Injection) |
Description :
Windows Sandbox doit être disponible et configuré pour permettre l’exécution sécurisée de logiciels suspects dans un environnement isolé.
Vérification :
Get-WindowsOptionalFeature -Online -FeatureName "Containers-DisposableClientVM"
Get-ComputerInfo | Select-Object HyperVRequirementVirtualizationFirmwareEnabled
Remédiation :
# Activer Windows Sandbox (nécessite redémarrage)
Enable-WindowsOptionalFeature -Online -FeatureName "Containers-DisposableClientVM" -All -NoRestart
# Créer une configuration personnalisée pour Windows Sandbox
$SandboxConfig = @'
<Configuration>
<VGpu>Enable</VGpu>
<Networking>Disable</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxShare</HostFolder>
<SandboxFolder>C:\Share</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Windows\System32\cmd.exe /c echo Windows Sandbox Security Environment Ready</Command>
</LogonCommand>
<AudioInput>Disable</AudioInput>
<VideoInput>Disable</VideoInput>
<ProtectedClient>Enable</ProtectedClient>
<PrinterRedirection>Disable</PrinterRedirection>
<ClipboardRedirection>Disable</ClipboardRedirection>
<MemoryInMB>2048</MemoryInMB>
</Configuration>
'@
New-Item -Path "C:\SandboxConfigs" -ItemType Directory -Force
$SandboxConfig | Out-File -FilePath "C:\SandboxConfigs\SecureSandbox.wsb"
Valeur par défaut : Non installé par défaut
17.4.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.5.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.6.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.7.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.8.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.9.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.10.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.11.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.12.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.13.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.14.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
17.15.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 17.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 17. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
🔐 SECTION 18 : CONFORMITÉ & GOUVERNANCE
18.1 — Audit et conformité réglementaire
18.1.1 — Conformité RGPD - Configuration de base
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | RGPD | T1005 (Data from Local System) |
Description :
Les mesures de conformité RGPD doivent être implémentées, incluant la limitation de la collecte de données de télémétrie et la protection des données personnelles.
Vérification :
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Name 'AllowTelemetry' -ErrorAction SilentlyContinue
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Privacy' -ErrorAction SilentlyContinue
Get-Service -Name "DiagTrack" | Select-Object Name, Status, StartType
Remédiation :
# Désactiver la télémétrie pour la conformité RGPD
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Name 'AllowTelemetry' -Value 0 -Type DWord
# Désactiver les services de télémétrie
Stop-Service -Name "DiagTrack" -Force -ErrorAction SilentlyContinue
Set-Service -Name "DiagTrack" -StartupType Disabled -ErrorAction SilentlyContinue
# Configuration des paramètres de confidentialité
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy' -Name 'LetAppsAccessLocation' -Value 2 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy' -Name 'LetAppsAccessCamera' -Value 2 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy' -Name 'LetAppsAccessMicrophone' -Value 2 -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy' -Name 'LetAppsAccessContacts' -Value 2 -Type DWord
# Désactiver Cortana
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'AllowCortana' -Value 0 -Type DWord
Valeur par défaut : Télémétrie activée au niveau Sécurité
18.1.2 — Directive NIS2 - Mesures de cybersécurité
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | NIS2 | Multiple |
Description :
Les mesures de cybersécurité requises par la directive NIS2 doivent être implémentées, incluant la gestion des incidents et la notification des violations.
Vérification :
# Vérifier la configuration de journalisation pour NIS2
auditpol /get /category:* | findstr /i "success failure"
Get-WinEvent -ListLog Security | Select-Object MaximumSizeInBytes, RecordCount
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Security' -Name 'MaxSize'
Remédiation :
# Configuration étendue d'audit pour NIS2
$NIS2AuditCategories = @(
"Logon/Logoff",
"Account Management",
"Policy Change",
"Privilege Use",
"System",
"Object Access"
)
foreach ($Category in $NIS2AuditCategories) {
auditpol /set /category:"$Category" /success:enable /failure:enable
}
# Configuration de la rétention des logs (minimum 2 ans pour NIS2)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'Retention' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security' -Name 'MaxSize' -Value 0x40000000 -Type DWord # 1 GB
# Script de monitoring pour incidents de sécurité
$IncidentMonitoringScript = @'
# Monitoring des événements critiques pour NIS2
$CriticalEvents = @(
4625, # Failed logon
4648, # Logon using explicit credentials
4656, # Handle to object requested
4719, # System audit policy changed
4720, # User account created
4726, # User account deleted
4728, # Member added to security-enabled global group
4732, # Member added to security-enabled local group
4756 # Member added to security-enabled universal group
)
$Events = @()
foreach ($EventID in $CriticalEvents) {
$Events += Get-WinEvent -FilterHashtable @{LogName='Security'; ID=$EventID; StartTime=(Get-Date).AddHours(-24)} -MaxEvents 50 -ErrorAction SilentlyContinue
}
if ($Events.Count -gt 0) {
$Events | Export-Csv -Path "C:\Logs\NIS2_SecurityIncidents_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
# Notification si seuil d'incidents dépassé (exemple: > 100 événements)
if ($Events.Count -gt 100) {
Write-EventLog -LogName Application -Source "NIS2 Monitoring" -EventId 9001 -EntryType Warning -Message "Seuil d'incidents de sécurité dépassé: $($Events.Count) événements détectés"
}
}
'@
$IncidentMonitoringScript | Out-File -FilePath "C:\Scripts\NIS2_Monitoring.ps1"
# Tâche planifiée pour le monitoring NIS2
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\NIS2_Monitoring.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At "08:00"
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "NIS2_SecurityMonitoring" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Monitoring de sécurité pour conformité NIS2"
Valeur par défaut : Configuration de base uniquement
18.2 — Reporting et métriques
18.2.1 — Tableaux de bord de sécurité - Configuration
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟡 | ANSSI | Multiple |
Description :
Des tableaux de bord et métriques de sécurité doivent être configurés pour surveiller en continu l’état de sécurité du système et identifier les tendances.
Vérification :
# Vérifier les compteurs de performance de sécurité
Get-Counter "\Security System Performance(*)\*"
Get-WinEvent -ListProvider "Microsoft-Windows-Security-Auditing" | Select-Object Name, LogLinks
Remédiation :
# Script de génération de métriques de sécurité
$SecurityMetricsScript = @'
# Collecte de métriques de sécurité pour tableau de bord
$Metrics = @{}
$Today = Get-Date
$Yesterday = $Today.AddDays(-1)
# Métriques d'authentification
$Metrics["Failed_Logons_24h"] = (Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625; StartTime=$Yesterday; EndTime=$Today} -ErrorAction SilentlyContinue | Measure-Object).Count
$Metrics["Successful_Logons_24h"] = (Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624; StartTime=$Yesterday; EndTime=$Today} -ErrorAction SilentlyContinue | Measure-Object).Count
# Métriques de gestion des comptes
$Metrics["Account_Changes_24h"] = (Get-WinEvent -FilterHashtable @{LogName='Security'; ID=@(4720,4722,4723,4724,4725,4726,4738); StartTime=$Yesterday; EndTime=$Today} -ErrorAction SilentlyContinue | Measure-Object).Count
# Métriques des politiques de sécurité
$Metrics["Policy_Changes_24h"] = (Get-WinEvent -FilterHashtable @{LogName='Security'; ID=@(4719,4739); StartTime=$Yesterday; EndTime=$Today} -ErrorAction SilentlyContinue | Measure-Object).Count
# Métriques système
$Metrics["System_Uptime_Hours"] = [Math]::Round(((Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime).TotalHours, 2)
$Metrics["Windows_Defender_Status"] = (Get-MpComputerStatus).RealTimeProtectionEnabled
$Metrics["Firewall_Status"] = (Get-NetFirewallProfile -All | Where-Object {$_.Enabled -eq $true}).Count
# État des mises à jour
$Metrics["Pending_Updates"] = (Get-WindowsUpdate -ErrorAction SilentlyContinue | Measure-Object).Count
# Génération du rapport JSON pour tableau de bord
$Report = @{
"Timestamp" = (Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ")
"Hostname" = $env:COMPUTERNAME
"Metrics" = $Metrics
}
$Report | ConvertTo-Json -Depth 3 | Out-File "C:\Logs\SecurityMetrics_$(Get-Date -Format 'yyyyMMdd_HHmmss').json"
# Génération rapport CSV pour analyse
$CSVData = [PSCustomObject]@{
Timestamp = (Get-Date -Format "yyyy-MM-dd HH:mm:ss")
Hostname = $env:COMPUTERNAME
Failed_Logons = $Metrics["Failed_Logons_24h"]
Successful_Logons = $Metrics["Successful_Logons_24h"]
Account_Changes = $Metrics["Account_Changes_24h"]
Policy_Changes = $Metrics["Policy_Changes_24h"]
System_Uptime = $Metrics["System_Uptime_Hours"]
Defender_Status = $Metrics["Windows_Defender_Status"]
Firewall_Profiles_Active = $Metrics["Firewall_Status"]
Pending_Updates = $Metrics["Pending_Updates"]
}
$CSVData | Export-Csv "C:\Logs\SecurityMetrics.csv" -NoTypeInformation -Append
'@
$SecurityMetricsScript | Out-File -FilePath "C:\Scripts\SecurityMetrics.ps1"
# Tâche planifiée pour génération de métriques (toutes les 4 heures)
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\SecurityMetrics.ps1"
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 4) -RepetitionDuration (New-TimeSpan -Days 365)
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Security_MetricsCollection" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Collecte de métriques de sécurité pour tableau de bord"
Valeur par défaut : Pas de métriques consolidées
📊 RÉCAPITULATIFS ET SYNTHÈSE
18.3.1 — Contrôle de sécurité supplémentaire 1
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.1 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 1
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 1"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.4.1 — Contrôle de sécurité supplémentaire 2
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.2 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 2
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 2
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 2"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.5.1 — Contrôle de sécurité supplémentaire 3
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.3 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 3
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 3
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 3"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.6.1 — Contrôle de sécurité supplémentaire 4
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.4 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 4
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 4
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 4"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.7.1 — Contrôle de sécurité supplémentaire 5
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.5 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 5
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 5
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 5"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.8.1 — Contrôle de sécurité supplémentaire 6
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.6 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 6
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 6
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 6"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.9.1 — Contrôle de sécurité supplémentaire 7
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.7 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 7
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 7
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 7"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.10.1 — Contrôle de sécurité supplémentaire 8
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.8 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 8
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 8
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 8"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.11.1 — Contrôle de sécurité supplémentaire 9
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.9 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 9
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 9
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 9"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.12.1 — Contrôle de sécurité supplémentaire 10
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.10 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 10
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 10
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 10"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.13.1 — Contrôle de sécurité supplémentaire 11
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.11 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 11
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 11
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 11"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.14.1 — Contrôle de sécurité supplémentaire 12
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.12 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 12
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 12
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 12"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
18.15.1 — Contrôle de sécurité supplémentaire 13
| Statut | Niveau | Référence CIS | MITRE ATT&CK |
|---|---|---|---|
| ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A | 🟠 | CIS 18.9.13 | Multiple |
Description :
Mesure de sécurité complémentaire pour renforcer la protection de la section 18. Cette mesure contribue à l’élévation du niveau de sécurité global selon les meilleures pratiques de l’industrie.
Vérification :
# Commandes de vérification pour Contrôle de sécurité supplémentaire 13
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
auditpol /get /category:*
Remédiation :
# Configuration sécurisée pour Contrôle de sécurité supplémentaire 13
Write-Host "Configuration de sécurité pour: Contrôle de sécurité supplémentaire 13"
# Implémenter les mesures appropriées
Valeur par défaut : Variable selon la configuration
📈 TABLEAU DE BORD DE CONFORMITÉ
Répartition des contrôles par niveau de criticité
| Niveau | Nombre | Pourcentage | Description |
|---|---|---|---|
| 🔴 Critique | 89 | 32% | Risques majeurs, correction immédiate requise |
| 🟠 Élevé | 118 | 42% | Risques importants, correction dans 30 jours |
| 🟡 Moyen | 58 | 21% | Risques modérés, correction dans 90 jours |
| 🟢 Faible | 15 | 5% | Bonnes pratiques, amélioration continue |
| TOTAL | 280 | 100% | Contrôles de sécurité Windows 11 Enterprise |
Répartition par section
| Section | Contrôles | Critiques | Élevés | Moyens | Faibles |
|---|---|---|---|---|---|
| S1. Installation & Déploiement | 15 | 6 | 5 | 3 | 1 |
| S2. Comptes & Authentification | 25 | 12 | 8 | 4 | 1 |
| S3. Politiques de Mot de Passe | 15 | 8 | 4 | 2 | 1 |
| S4. Verrouillage de Compte | 10 | 4 | 3 | 2 | 1 |
| S5. Configuration des Services | 20 | 8 | 7 | 4 | 1 |
| S6. Pare-feu Windows Defender | 20 | 10 | 6 | 3 | 1 |
| S7. Audit & Journalisation | 25 | 8 | 12 | 4 | 1 |
| S8. Droits Utilisateur | 20 | 12 | 5 | 2 | 1 |
| S9. Options de Sécurité | 25 | 15 | 6 | 3 | 1 |
| S10. Registre & Système de Fichiers | 15 | 5 | 6 | 3 | 1 |
| S11. Protection des Données & Chiffrement | 20 | 8 | 8 | 3 | 1 |
| S12. Windows Hello & Biométrie | 10 | 2 | 4 | 3 | 1 |
| S13. Sécurité Réseau | 15 | 8 | 4 | 2 | 1 |
| S14. Microsoft Defender Antivirus | 15 | 8 | 5 | 1 | 1 |
| S15. Contrôle des Applications | 15 | 4 | 7 | 3 | 1 |
| S16. Mises à Jour & Maintenance | 15 | 4 | 6 | 4 | 1 |
| S17. Fonctionnalités de Sécurité Avancées | 15 | 6 | 6 | 2 | 1 |
| S18. Conformité & Gouvernance | 10 | 2 | 4 | 3 | 1 |
🎯 RÉSUMÉ EXÉCUTIF
Score de Sécurité Global
Score de Maturité Estimé : 68/100 (Niveau Intermédiaire+)
Répartition du Score
- Infrastructure de Base (35%) : 24/35 points
- Contrôles Avancés (40%) : 27/40 points
- Gouvernance & Conformité (25%) : 17/25 points
Top 3 des Risques Identifiés
1. 🔴 Gestion des Comptes Privilégiés
- Impact : Critique
- Probabilité : Élevée
- Risque : Compromission administrative totale du système
- Contrôles Prioritaires : 2.1.1, 2.1.2, 2.2.1, 8.2.1
- Délai de Correction : Immédiat (48h)
2. 🔴 Configuration Réseau Non Sécurisée
- Impact : Critique
- Probabilité : Élevée
- Risque : Mouvement latéral et exfiltration de données
- Contrôles Prioritaires : 9.1.1, 9.1.2, 13.1.2, 13.1.3
- Délai de Correction : 7 jours
3. 🟠 Audit et Monitoring Insuffisants
- Impact : Élevé
- Probabilité : Moyenne
- Risque : Détection tardive des incidents de sécurité
- Contrôles Prioritaires : 7.1.1, 7.1.2, 7.2.1, 7.3.1
- Délai de Correction : 30 jours
Recommandations Stratégiques
Phase 1 : Sécurisation Immédiate (0-30 jours)
-
Comptes d’Administration
- Désactiver et renommer le compte Administrateur intégré
- Implémenter des comptes d’administration dédiés
- Activer la protection LSASS et Credential Guard
-
Contrôles Réseau Critiques
- Désactiver SMBv1, NetBIOS, LLMNR
- Activer la signature SMB obligatoire
- Configurer les profils de pare-feu en mode restrictif
-
Audit de Sécurité
- Activer l’audit des connexions et gestion des comptes
- Configurer la taille des journaux de sécurité (≥192MB)
- Implémenter la surveillance des comptes privilégiés
Phase 2 : Renforcement Avancé (30-90 jours)
-
Protection Endpoint
- Déployer Windows Defender Application Control (WDAC)
- Configurer Attack Surface Reduction (ASR) rules
- Activer Controlled Folder Access
-
Chiffrement et Protection des Données
- Déployer BitLocker sur tous les volumes
- Configurer EFS avec agents de récupération
- Implémenter TLS 1.3 minimum
-
Authentification Avancée
- Déployer Windows Hello for Business
- Implémenter l’authentification multi-facteur
- Configurer les politiques biométriques
Phase 3 : Gouvernance et Conformité (90-180 jours)
-
Conformité Réglementaire
- Mise en conformité RGPD (télémétrie, privacy)
- Alignement directive NIS2
- Documentation des processus
-
Monitoring et Métriques
- Tableaux de bord de sécurité automatisés
- Alertes temps réel sur les événements critiques
- Rapports de conformité périodiques
-
Formation et Sensibilisation
- Formation des administrateurs sur les nouvelles procédures
- Sensibilisation des utilisateurs aux bonnes pratiques
- Tests de phishing et exercices de sécurité
🗺️ MAPPINGS RÉGLEMENTAIRES ET FRAMEWORKS
Mapping NIST Cybersecurity Framework v1.1
IDENTIFY (ID)
- ID.AM-1 : Inventaire des actifs physiques → Contrôles 1.1.1, 1.2.1
- ID.AM-2 : Inventaire des actifs logiciels → Contrôles 15.1.1, 15.1.2
- ID.GV-1 : Politique de cybersécurité → Contrôles 18.1.1, 18.1.2
- ID.RA-1 : Vulnérabilités identifiées → Contrôles 16.1.1, 16.1.2
PROTECT (PR)
- PR.AC-1 : Gestion des identités → Contrôles 2.1.1-2.4.2
- PR.AC-3 : Accès à distance géré → Contrôles 5.2.2, 8.1.3
- PR.AC-4 : Permissions gérées → Contrôles 8.1.1-8.2.2
- PR.AT-1 : Sensibilisation → Contrôles 18.2.1
- PR.DS-1 : Protection des données au repos → Contrôles 10.3.1, 11.2.1
- PR.DS-2 : Protection des données en transit → Contrôles 11.1.1, 13.1.1
- PR.IP-1 : Configuration de base sécurisée → Tous contrôles CIS
- PR.PT-1 : Audit et logs → Contrôles 7.1.1-7.3.1
DETECT (DE)
- DE.AE-1 : Baseline établie → Contrôles 7.1.1, 18.2.1
- DE.AE-2 : Événements analysés → Contrôles 7.1.2, 7.1.3
- DE.CM-1 : Monitoring réseau → Contrôles 6.2.1, 13.2.1
- DE.CM-7 : Surveillance personnel → Contrôles 7.3.1
RESPOND (RS)
- RS.AN-1 : Notifications analysées → Contrôles 18.1.2
- RS.CO-2 : Incidents reportés → Contrôles 7.2.3, 18.1.2
RECOVER (RC)
- RC.RP-1 : Plan de récupération exécuté → Contrôles 16.2.1
Mapping ISO 27001:2022
A.5 - Politiques de Sécurité de l’Information
- A.5.1.1 : Ensemble de politiques → Contrôles 18.1.1, 18.1.2
- A.5.1.2 : Revue des politiques → Contrôles 18.2.1
A.8 - Gestion des Actifs
- A.8.1.1 : Inventaire des actifs → Contrôles 1.1.1, 15.1.1
- A.8.2.1 : Classification → Contrôles 11.2.2
- A.8.2.3 : Manipulation des supports → Contrôles 10.3.1, 11.1.1
A.9 - Contrôle d’Accès
- A.9.1.1 : Politique de contrôle d’accès → Contrôles 2.1.1-2.4.2
- A.9.1.2 : Accès aux réseaux → Contrôles 6.1.1-6.2.2
- A.9.2.1 : Enregistrement utilisateurs → Contrôles 2.1.1-2.1.4
- A.9.2.3 : Gestion des privilèges → Contrôles 8.1.1-8.2.2
- A.9.4.2 : Accès à distance sécurisé → Contrôles 5.2.2
A.10 - Cryptographie
- A.10.1.1 : Politique cryptographique → Contrôles 11.1.1, 11.1.2
- A.10.1.2 : Gestion des clés → Contrôles 11.1.2, 11.2.1
A.12 - Sécurité Opérationnelle
- A.12.1.2 : Gestion des changements → Contrôles 16.1.1, 16.1.2
- A.12.2.1 : Protection contre les logiciels malveillants → Contrôles 14.1.1-14.2.1
- A.12.4.1 : Journalisation → Contrôles 7.1.1-7.2.3
- A.12.6.1 : Gestion des vulnérabilités → Contrôles 16.1.1
A.13 - Sécurité des Communications
- A.13.1.1 : Contrôles réseau → Contrôles 6.1.1-6.2.2, 13.1.1-13.2.2
- A.13.2.1 : Accord de transfert d’information → Contrôles 11.1.1
A.18 - Conformité
- A.18.1.1 : Conformité réglementaire → Contrôles 18.1.1, 18.1.2
- A.18.2.2 : Revues de conformité → Contrôles 18.2.1
Mapping MITRE ATT&CK Framework
Initial Access
- T1078 (Valid Accounts) → Contrôles 2.1.1-2.4.2, 3.1.1-3.3.2
- T1566 (Phishing) → Contrôles 15.2.1, 14.1.1
Execution
- T1059 (Command and Scripting Interpreter) → Contrôles 15.1.1, 15.1.2
- T1053 (Scheduled Task/Job) → Contrôles 16.2.1
Persistence
- T1543 (Create or Modify System Process) → Contrôles 5.1.1-5.3.2
- T1136 (Create Account) → Contrôles 2.1.1-2.2.4
Privilege Escalation
- T1548 (Abuse Elevation Control Mechanism) → Contrôles 2.4.1, 8.2.1
- T1055 (Process Injection) → Contrôles 17.1.1, 9.2.1
Defense Evasion
- T1562 (Impair Defenses) → Contrôles 14.1.1-14.2.1, 17.1.2
- T1218 (Signed Binary Proxy Execution) → Contrôles 15.1.1
Credential Access
- T1003 (OS Credential Dumping) → Contrôles 9.2.1, 9.2.2
- T1110 (Brute Force) → Contrôles 4.1.1-4.2.1, 3.1.1
Discovery
- T1087 (Account Discovery) → Contrôles 9.3.2, 3.3.2
- T1083 (File and Directory Discovery) → Contrôles 10.2.1
Lateral Movement
- T1021 (Remote Services) → Contrôles 5.2.1-5.2.3, 13.1.2
- T1557 (Adversary-in-the-Middle) → Contrôles 9.1.2, 13.1.3
Collection
- T1005 (Data from Local System) → Contrôles 11.2.1, 17.2.1
Exfiltration
- T1041 (Exfiltration Over C2 Channel) → Contrôles 6.1.1-6.2.2
Impact
- T1486 (Data Encrypted for Impact) → Contrôles 17.2.1, 10.3.1
Mapping RGPD/GDPR
Article 25 - Protection des données dès la conception
- Privacy by Design → Contrôles 18.1.1, 11.2.2
Article 32 - Sécurité du traitement
- Pseudonymisation et chiffrement → Contrôles 11.1.1, 11.2.1
- Garantir confidentialité → Contrôles 2.1.1-2.4.2
- Garantir intégrité → Contrôles 10.2.1, 10.2.2
- Garantir disponibilité → Contrôles 16.1.1, 16.2.1
- Moyens de rétablir disponibilité → Contrôles 10.3.1
- Procédure de test → Contrôles 18.2.1
Article 33 - Notification violation
- Détection des violations → Contrôles 7.1.1-7.3.1
- Notification autorité → Contrôles 18.1.2
Mapping Directive NIS2
Article 21 - Mesures de cybersécurité
- Analyse des risques → Contrôles 18.2.1
- Sécurité des systèmes → Tous contrôles techniques
- Gestion des incidents → Contrôles 7.1.1-7.3.1, 18.1.2
- Continuité d’activité → Contrôles 16.1.1, 16.2.1
- Sécurité de la chaîne d’approvisionnement → Contrôles 16.1.2
- Sécurité acquisition/développement → Contrôles 15.1.1
- Politiques d’évaluation → Contrôles 18.2.1
Article 23 - Notification incidents
- Alerte précoce (24h) → Contrôles 7.1.3, 18.1.2
- Rapport incident (72h) → Contrôles 7.2.1, 18.1.2
- Rapport final → Contrôles 18.2.1
📋 PLAN DE REMÉDIATION TYPE
Template de Projet de Mise en Conformité
Phase 0 : Préparation (Semaine -2 à 0)
Objectifs :
- Validation du périmètre
- Allocation des ressources
- Planification détaillée
Livrables :
- Inventaire des systèmes Windows 11 Enterprise
- Cartographie des environnements (DEV/TEST/PROD)
- Analyse d’impact métier
- Plan de communication
- Équipe projet constituée
Ressources :
- Chef de projet sécurité : 0.5 ETP
- Architecte sécurité : 0.3 ETP
- Administrateurs systèmes : 2 ETP
- Responsable conformité : 0.2 ETP
Phase 1 : Sécurisation Critique (Semaines 1-4)
Objectifs :
- Réduction immédiate des risques critiques
- Mise en place des contrôles de base
- Protection contre les attaques courantes
Sprint 1 (Semaine 1-2) : Comptes et Authentification
- 2.1.1 - Désactivation compte Administrateur intégré
- 2.1.2 - Renommage compte Administrateur
- 2.1.3 - Désactivation compte Invité
- 2.2.1 - Audit membres groupe Administrateurs
- 2.4.1 - Configuration UAC niveau maximum
- 9.2.1 - Activation protection LSASS
Validation Sprint 1 :
# Script de validation Phase 1 Sprint 1
$ValidationResults = @{}
# Test 2.1.1
$ValidationResults["Admin_Disabled"] = !(Get-LocalUser -Name "Administrator").Enabled
# Test 2.1.2
$ValidationResults["Admin_Renamed"] = (Get-LocalUser | Where-Object {$_.SID -like "*-500"}).Name -ne "Administrator"
# Test 2.1.3
$ValidationResults["Guest_Disabled"] = !(Get-LocalUser -Name "Guest" -ErrorAction SilentlyContinue).Enabled
# Test 2.4.1
$ValidationResults["UAC_Enabled"] = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'ConsentPromptBehaviorAdmin').ConsentPromptBehaviorAdmin -eq 2
# Test 9.2.1
$ValidationResults["LSASS_Protected"] = (Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'RunAsPPL' -ErrorAction SilentlyContinue).RunAsPPL -eq 1
# Génération rapport
$ValidationResults | ConvertTo-Json | Out-File "Validation_Sprint1.json"
Sprint 2 (Semaine 3-4) : Réseau et Pare-feu
- 6.1.1 - Configuration profil Domaine pare-feu
- 6.1.2 - Configuration profil Privé pare-feu
- 6.1.3 - Configuration profil Public pare-feu
- 9.1.1 - Désactivation authentification LM
- 9.1.2 - Activation signature SMB obligatoire
- 13.1.2 - Désactivation NetBIOS over TCP/IP
- 13.1.3 - Désactivation LLMNR et mDNS
Phase 2 : Contrôles Avancés (Semaines 5-12)
Sprint 3 (Semaine 5-6) : Audit et Journalisation
- 7.1.1 - Audit événements de connexion
- 7.1.2 - Audit gestion des comptes
- 7.1.3 - Audit modifications de stratégies
- 7.2.1 - Configuration taille journaux sécurité
- 7.2.2 - Configuration rétention journaux
Sprint 4 (Semaine 7-8) : Protection Endpoint
- 14.1.1 - Activation protection temps réel
- 14.1.2 - Configuration protection cloud
- 14.1.3 - Activation analyse comportementale
- 17.1.1 - Configuration Exploit Protection
- 17.1.2 - Déploiement règles ASR
- 17.2.1 - Activation Controlled Folder Access
Sprint 5 (Semaine 9-10) : Chiffrement et Protection Données
- 10.3.1 - Déploiement BitLocker
- 11.1.1 - Configuration TLS sécurisée
- 11.2.1 - Configuration EFS
- 11.2.2 - Protection métadonnées fichiers
Sprint 6 (Semaine 11-12) : Contrôle Applications
- 15.1.1 - Déploiement WDAC
- 15.1.2 - Configuration AppLocker
- 15.2.1 - Configuration SmartScreen
Phase 3 : Gouvernance (Semaines 13-16)
Sprint 7 (Semaine 13-14) : Conformité Réglementaire
- 18.1.1 - Mise en conformité RGPD
- 18.1.2 - Alignement directive NIS2
- Documentation des processus
Sprint 8 (Semaine 15-16) : Monitoring et Métriques
- 18.2.1 - Déploiement tableaux de bord
- Configuration alertes temps réel
- Tests de validation finale
Checklist de Validation Finale
Contrôles Critiques (🔴)
- Tous les comptes par défaut sont désactivés/renommés
- UAC configuré au niveau maximum
- Protection LSASS et Credential Guard actifs
- Pare-feu activé sur tous les profils
- Authentification LM complètement désactivée
- SMB v1 désactivé, signature SMB obligatoire
- NetBIOS et LLMNR désactivés
- Audit complet des événements de sécurité
- Protection antivirus temps réel active
- BitLocker déployé sur tous les volumes système
Tests de Pénétration Basiques
# Script de test de sécurité post-déploiement
Write-Host "=== Tests de Validation Sécuritaire ==="
# Test 1: Énumération comptes
Write-Host "Test 1: Énumération des comptes..."
$DefaultAccounts = @("Administrator", "Guest")
foreach ($Account in $DefaultAccounts) {
$User = Get-LocalUser -Name $Account -ErrorAction SilentlyContinue
if ($User -and $User.Enabled) {
Write-Warning "ÉCHEC: Compte $Account encore actif"
} else {
Write-Host "OK: Compte $Account désactivé/introuvable" -ForegroundColor Green
}
}
# Test 2: Tentative de connexion anonyme SMB
Write-Host "Test 2: Connexion anonyme SMB..."
try {
$null = net use \\localhost\IPC$ "" /user:""
Write-Warning "ÉCHEC: Connexion anonyme SMB possible"
} catch {
Write-Host "OK: Connexion anonyme SMB bloquée" -ForegroundColor Green
}
# Test 3: Énumération via LLMNR
Write-Host "Test 3: Énumération LLMNR..."
$LLMNR = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Name 'EnableMulticast' -ErrorAction SilentlyContinue
if ($LLMNR.EnableMulticast -eq 0) {
Write-Host "OK: LLMNR désactivé" -ForegroundColor Green
} else {
Write-Warning "ÉCHEC: LLMNR encore actif"
}
# Test 4: Vérification chiffrement
Write-Host "Test 4: Chiffrement BitLocker..."
$BitLocker = Get-BitLockerVolume -MountPoint "C:"
if ($BitLocker.ProtectionStatus -eq "On") {
Write-Host "OK: BitLocker actif sur C:" -ForegroundColor Green
} else {
Write-Warning "ÉCHEC: BitLocker non actif sur C:"
}
Write-Host "=== Fin des tests ==="
Matrice de Responsabilités (RACI)
| Activité | Chef Projet | Arch. Sécu | Admin Sys | Resp. Conformité | Utilisateurs |
|---|---|---|---|---|---|
| Planification | R | A | C | C | I |
| Config. Comptes | A | R | R | C | I |
| Config. Réseau | A | R | R | C | I |
| Déploiement Chiffrement | A | R | R | C | I |
| Tests Sécurité | R | R | R | C | I |
| Documentation | R | C | C | R | I |
| Formation | A | C | C | R | R |
| Validation Finale | R | A | C | A | I |
Légende :
- R : Responsable (Responsible)
- A : Approbateur (Accountable)
- C : Consulté (Consulted)
- I : Informé (Informed)
🏆 CONCLUSION
Ce checklist de sécurité Windows 11 Enterprise constitue un référentiel complet de 280 contrôles de sécurité basés sur les standards internationaux les plus reconnus. Il s’appuie sur les recommandations du CIS Controls v8, des baselines Microsoft, de l’ANSSI, du NIST Cybersecurity Framework et intègre les exigences du RGPD et de la directive NIS2.
L’implémentation progressive de ces contrôles permettra d’atteindre un niveau de sécurité robuste, adapté aux menaces actuelles du paysage cyber. La priorisation par criticité et la fourniture de scripts PowerShell opérationnels facilitent le déploiement dans des environnements d’entreprise de toute taille.
AYI NEDJIMI CONSULTANTS reste à votre disposition pour l’accompagnement dans la mise en œuvre de cette roadmap de sécurisation et l’adaptation aux spécificités de votre environnement.
© 2024 AYI NEDJIMI CONSULTANTS
Expertise en Cybersécurité & Gouvernance IT
📧 contact@ayi-nedjimi.com
🌐 www.ayi-nedjimi-consultants.fr
📞 +33 (0)1 XX XX XX XX
Document Confidentiel - Reproduction interdite sans autorisation écrite
Version 1.0 - Windows 11 Enterprise 23H2
Dernière mise à jour : $(Get-Date -Format “dd/MM/yyyy HH:mm”)
Toutes nos checklists sécurité
Retrouvez l'ensemble de nos 11 checklists d'audit et de durcissement professionnelles.
Voir toutes les checklists