Aller au contenu

Analyse d'Artefact : Sysmon (System Monitor)

Sysmon n’est pas un outil de protection ; il ne bloque ni ne met en quarantaine aucune activité malveillante. Il s’agit purement d’un capteur de haute fidélité. Sa philosophie fondamentale est de “rendre visible l’invisible” en consignant des attributs que l’audit natif de Windows ignore, tels que les hashs de processus, les destinations réseau exactes et un suivi précis des filiations parent-enfant.

La puissance de Sysmon réside dans son fichier de configuration XML. Ce fichier dicte exactement ce que le pilote doit consigner et, plus important encore, ce qu’il doit exclure (filtrer). Sans une configuration finement ajustée, Sysmon va rapidement saturer le journal d’événements et le SIEM centralisé avec un “bruit” informatique ingérable.

Une fois installé (sysmon.exe -i config.xml), la télémétrie est écrite dans un canal d’événements dédié : Journaux des applications et des services > Microsoft > Windows > Sysmon > Operational.

Sysmon génère des dizaines de types d’événements, mais les analystes DFIR se concentrent principalement sur les événements fondamentaux suivants pour reconstituer la chaîne d’attaque (Kill Chain).

Une version “sous stéroïdes” de l’Événement 4688 natif. Il enregistre la ligne de commande, le processus parent, et surtout :

  • Hashs : MD5, SHA1, SHA256 ou IMPHASH de l’exécutable.
  • OriginalFileName : extrait de l’en-tête PE du fichier, cela met en échec les techniques de renommage basiques (ex: un attaquant renommant mimikatz.exe en svchost.exe).
  • ProcessGuid : un identifiant unique qui lie de manière permanente ce processus à toutes ses actions ultérieures.

Cet événement lie une connexion réseau spécifique au processus exact qui l’a initiée — une fonctionnalité notoirement absente des journaux Windows standards. Il enregistre les IP source/destination, les ports, et le nom d’hôte de destination résolu, le rendant inestimable pour détecter les balises de commande et contrôle (C2).

Événements 8 et 10 (Opérations mémoire avancées)

Section intitulée « Événements 8 et 10 (Opérations mémoire avancées) »
  • Événement 8 (CreateRemoteThread) : détecte lorsqu’un processus injecte du code dans un autre processus. C’est l’indicateur principal de l’injection de processus (Process Injection), du Process Hollowing et des techniques d’évasion avancées.
  • Événement 10 (ProcessAccess) : détecte lorsqu’un processus ouvre un handle (accès) vers un autre processus. Filtrer cet événement pour les accès à lsass.exe est le standard de l’industrie pour détecter le vol d’identifiants (OS Credential Dumping, ex: Mimikatz, Procdump).
  • Événement 11 (File Create) : trace les fichiers déposés sur le disque, essentiel pour attraper les charges utiles de seconde phase ou les archives temporaires créées lors d’une exfiltration par une menace interne.
  • Événement 22 (DNS Query) : enregistre chaque tentative de résolution DNS et la lie au processus demandeur.

La fonctionnalité la plus révolutionnaire de Sysmon pour les intervenants sur incident est le ProcessGuid.

Dans la journalisation Windows standard, les identifiants de processus (PID) sont recyclés rapidement par l’OS, ce qui entraîne une confusion dans les chronologies. Sysmon génère un identifiant globalement unique (ProcessGuid) pour chaque processus lors de sa création (Événement 1).

Les analystes peuvent utiliser ce seul GUID pour tracer une chaîne d’exécution complète et non ambiguë :

  1. Événement 1 : le processus est créé (GUID: A1B2…).
  2. Événement 22 : le processus A1B2 interroge domaine-malveillant.com.
  3. Événement 3 : le processus A1B2 se connecte à 198.51.100.45:443.
  4. Événement 11 : le processus A1B2 dépose payload.exe dans C:\Users\Public\.

Lorsque la télémétrie Sysmon est ingérée dans un SIEM, les analystes peuvent déployer des requêtes de chasse comportementale hautement ciblées.

hunt_sysmon_lsass_access.kql
// Détecte les accès suspects à lsass.exe (Événement 10)
DeviceEvents
| where ActionType == "SysmonProcessAccess"
| where FileName == "lsass.exe"
// Exclure les processus légitimes connus accédant à LSASS
| where InitiatingProcessFileName !in~ ("svchost.exe", "csrss.exe", "taskmgr.exe", "msmpeng.exe")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, AccessMask

La qualité d’une investigation dépend entièrement de la qualité de la configuration XML de Sysmon. L’utilisation de la configuration par défaut n’apporte qu’une valeur minime. Les équipes DFIR s’appuient sur des configurations de base maintenues par la communauté et conçues pour correspondre au framework MITRE ATT&CK.

Sysmon-Modular d'Olaf Hartong

Le standard actuel de l’industrie. Une configuration hautement modulaire, facilement maintenable et mappée directement sur les techniques MITRE ATT&CK, offrant un ratio signal/bruit supérieur.

Configuration SwiftOnSecurity

Le standard historique. Une configuration de base solide qui filtre des quantités immenses de bruit générique Windows, parfaite pour les déploiements plus restreints.