Mesures d’audit
Audit régulier du poste de travail![]()
Un audit régulier du poste de travail doit être effectué afin de s’assurer que les mesures décrites dans ce guide soient appliquées.
Remarques
Certaines mesures ne possèdent pas de clés de registre associées, ce qui peut rendre difficile Contrôle d’intégrité des fichiers |
Mettre en place un processus de contrôle d’intégrité des fichiers du poste. Notamment, un contrôle régulier sur l’intégrité des fichiers importants doit être réalisé (fichiers systèmes, fichiers configuration, fichiers contenant des secrets, …).
Remarque : Device Guard permet d’activer les fonctionnalités KMCI (Kernel Mode Code Integrity) et UMCI (User Mode Code Integrity) à travers la configuration de stratégies d’intégrité de code.
Notes informatives sur la mise en place
Fichiers tels que cmd.exe, fichier hosts, fichiers de configuration, … |
Vérifier l’absence de logiciels « dangereux »
Vérifier régulièrement l’absence de logiciels potentiellement malveillants ou permettant des actes malveillants (outils de compilation, debug, réseaux, …). Afin de respecter le principe de minimisation des éléments, les composants et services non utilisés ne doivent pas être présents sur le poste de travail.
Notes informatives sur la mise en place
Vérifier l’absence d’outils de diagnostic réseau, de compilation, etc… tels que wireshark, PSExec, Netcat, VNC, fpipe, responder, mimikatz … |
Vérifier l’absence de fichiers de préparation système![]()
Vérifier l’absence de fichiers de préparation de systèmes pouvant contenir des éléments d’authentification (initialisation des mots de passe des comptes par exemple).
Notes informatives sur la mise en place
ex : sysprep |
Vérification du service « Gestionnaire d’évènements »
S’assurer que le service « Gestionnaire d’évènements » est activé.
Vérification de la politique d’audit/traçabilité
Vérifier périodiquement la politique d’audit/de traçabilité du Windows.
Vérification des comptes bloqués![]()
Vérifier périodiquement la présence de comptes bloqués.
Vérification de la politique de mot de passe
Vérifier périodiquement la conformité des politiques de mots de passe avec les directives internes.
Vérification des droits et permissions des services
Les droits et permissions des services doivent respecter le principe de moindres privilèges afin de limiter les possibilités à un attaquant dans le cas d’une compromission éventuelle d’un service.
Vérifier régulièrement les droits et permissions des services présents sur le poste de travail, par exemple à l’aide de l’utilitaire accesschk.
Notes informatives sur la mise en place
Vérification des permissions pour les utilisateurs « Authenticated Users » : accesschk « authenticated users » –kvuqsw hklm\System\CurrentControlSet\services Vérification de l’ensemble des sevices accesschk.exe -quvcw * |
Vérification des services Antivirus, anti-malware et pare-feu![]()
Vérifier périodiquement que les services Antivirus, anti-Malware et pare-feu sont démarrés, lancés automatiquement au démarrage, et qu’ils sont actifs sur le poste de travail. Les agents et les signatures doivent également avoir été mis à jour.
Audit et analyse des logs WMI
Un audit régulier des actions WMI qui ont été tracées doit être mis en place afin de surveiller et détecter toute action potentiellement malveillante.
Liste d’indicateurs potentiels
– Persistance WMI : __EventFilter, __EventConsumer, __FilterToConsumer, __InstanceCreationEvent
– Command and Control (C2) Channel : __NamespaceCreationEvent, __NamespaceCreationEvent, __NamespaceModificationEvent
– Stockage de données : __ClassCreationEvent
– Provider WMI malveillant : __Provider class __InstanceCreationEvent
– Registre et Menu Démarrer : InstanceCreationEvent RegistryKeyChangeEvent RegistryValueChangeEvent
– Installation de services : Win32_Service class __InstanceCreationEvent |
Audit et analyse des logs Powershell![]()
Les traces générées par les commandes Powershell doivent être analysées afin de détecter et prévenir toute activité potentiellement malveillante. Mettre en place une liste d’indicateurs à surveiller en fonction des activités effectuées sur le poste de travail.
Notes informatives sur la mise en place
Exemple d’indicateurs à surveiller dans les logs Powershell : AdjustTokenPrivileges, IMAGE_NT_OPTIONAL_HDR64_MAGIC, Management.Automation.RuntimeException, Microsoft.Win32.UnsafeNativeMethods, ReadProcessMemory.Invoke, Runtime.InteropServices, SE_PRIVILEGE_ENABLED, System.Security.Cryptography, System.Reflection.AssemblyName, System.Runtime.InteropServices, LSA_UNICODE_STRING, MiniDumpWriteDump, PAGE_EXECUTE_READ, Net.Sockets.SocketFlags, Reflection.Assembly, SECURITY_DELEGATION, TOKEN_ADJUST_PRIVILEGES, TOKEN_ALL_ACCESS, TOKEN_ASSIGN_PRIMARY, TOKEN_DUPLICATE, TOKEN_ELEVATION , TOKEN_IMPERSONATE, TOKEN_INFORMATION_CLASS, TOKEN_PRIVILEGES, TOKEN_QUERY, Metasploit, Advapi32.dll, kernel32.dll, msvcrt.dll, ntdll.dll, secur32.dll, user32.dll, KerberosRequestorSecurityToken |
Vérification des services lancés sur le poste de travail![]()
Vérifier périodiquement les services lancés sur le poste de travail. Cette liste ne doit pas faire apparaitre des services non autorisées ou désactivées par les mesures du paragraphe 2.2 « Minimisation des éléments ».
Vérifier la configuration des chemins d’accès des services (binary_path_name)
Les chemins d’accès aux services (binary_path_name) définissent les répertoires ou sont situés les exécutables. Si ces chemins sont mal configurés, il est possible d’utiliser les mécanismes de recherche Windows afin de remplacer l’exécution d’une application légitime par une autre portant le même nom mais situé dans un répertoire inspecté en priorité par les mécanismes de recherche Windows.
Vérifier les chemins d’accès (binary_path_name) des services afin de respecter les règles suivantes :
- S’assurer qu’il n’existe pas d’espace dans les entrées binary_path_name
- S’il existe des espaces, s’assurer que l’entrée est mise entre guillemets
Notes informatives sur la mise en place
– Chemin d’accès aux services dans le registre : HKLM\SYSTEM\CurrentControlSet\services – Interroger les informations de configuration d’un service : scqc |
Surveillance des processus lancés automatiques![]()
Surveiller les services et processus programmés pour être lancés automatiquement (démarrage, tâches planifiées, …) et s’assurer qu’aucune action illégitime ne soit exécuté à travers ces mécanismes. Les mécanismes de lancement automatique de processus peuvent être utilisés par un attaquant pour élever ses privilèges (action automatique via un service à privilège élevé par exemple), mais également en post-exploitation afin de conserver un accès permanent à la machine (backdoor). Vérifier à minima les indicateurs suivants :
- Répertoires de démarrage
- Clés de registres permettant le démarrage automatique
- Paramètres de démarrage Winlogon (userinit)
- Taches planifiées (schtasks, at)
Notes informatives sur la mise en place
– Répertoire de démarrage : %SystemDrive%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup %SystemDrive%\Users\%UserName%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
– Clés de registre : [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
– Taches planifiées schtasks, at : commandes schtasks, at |
Remarque : Cette mesure nécessite la mise en place d’une liste maitrisée et contrôlée des services et processus lancés au démarrage