Sysmon Event ID 1 expliqué : création de processus pour le triage DFIR
L'événement 1 de Sysmon est l'enregistrement de création de processus le plus riche que Windows puisse produire. Voici ce qu'il contient et comment le trier rapidement.
Sysmon est un outil Microsoft gratuit qui enrichit le journal d'événements Windows avec de la télémétrie que l'OS de base ne capture pas sous forme utilisable. Son event ID 1 — ProcessCreate — est l'enregistrement Sysmon le plus cité dans les playbooks IR. Si vous n'extrayez qu'un seul canal Sysmon d'un hôte, c'est celui-ci.
Où il vit et ce qu'il capture
Sysmon écrit sur le canal Microsoft-Windows-Sysmon/Operational (sur disque : Microsoft-Windows-Sysmon%4Operational.evtx). Un enregistrement ProcessCreate contient :
<Data Name="UtcTime">2026-05-17 14:02:11.123</Data>
<Data Name="ProcessGuid">{...}</Data>
<Data Name="ProcessId">7842</Data>
<Data Name="Image">C:\Windows\System32\powershell.exe</Data>
<Data Name="CommandLine">powershell -enc SQBFAFgA...</Data>
<Data Name="CurrentDirectory">C:\Users\alice\</Data>
<Data Name="User">CORP\alice</Data>
<Data Name="LogonId">0x3e7</Data>
<Data Name="Hashes">SHA256=...</Data>
<Data Name="ParentProcessGuid">{...}</Data>
<Data Name="ParentImage">C:\Program Files\Microsoft Office\winword.exe</Data>
<Data Name="ParentCommandLine">"winword.exe" /n /dde</Data>
Les champs qui pilotent les investigations : CommandLine (l'argv complet, pas juste le binaire), Image + Hashes (le binaire exact qui a tourné, hash utilisable dans VT/Hybrid Analysis) et l'ensemble Parent* (le processus appelant — critique pour trouver les chaînes macro et LOLBin).
Triage en trois pivots
Quand vous avez un fichier Sysmon de triage, trois requêtes couvrent la plupart des cas :
- Parents suspects : filtrez pour
ParentImagefinissant parwinword.exe,excel.exe,outlook.exe,mshta.exeou un navigateur, avecImageétant un shell (cmd.exe,powershell.exe,pwsh.exe,wscript.exe,cscript.exe,rundll32.exe). Une appli documentaire spawnant un shell est presque toujours malveillante. - PowerShell encodé :
Imagefinissant parpowershell.exeetCommandLinecontenant-enc,-encodedcommandouFromBase64String. Décodez la payload, vérifiez ce qu'elle fait — et croisez avec l'enregistrement scriptblock PowerShell 4104 sur le même hôte pour voir ce qui a réellement exécuté. - LOLBins depuis des emplacements bizarres : binaires Microsoft signés (
certutil,regsvr32,mshta,installutil,bitsadmin) tournant depuisC:\Users\,%TEMP%ouC:\ProgramData\.
Pourquoi la chaîne parent compte
Un ProcessCreate isolé est un instantané ; la chaîne est l'histoire. ProcessGuid et ParentProcessGuid sont des GUIDs que Sysmon assigne pour tracer la lignée à travers les sorties de processus — plus fiables que les PID parce que les PID sont réutilisés. Reconstruisez l'arbre (le ParentProcessGuid de chaque enregistrement est le ProcessGuid d'un autre enregistrement) et la kill-chain devient évidente : Outlook → Word → PowerShell → cmd → certutil → mshta.
Exemple de règle Sigma — appli Office spawnant un shell
title: Office Application Spawning Shell or Scripting Host (Sysmon)
id: 7a4c1f2b-6e3d-4a5f-9c2a-1b3d4e5f6a7c
status: stable
description: A Microsoft Office or document-rendering process spawned cmd, powershell, wscript, cscript, mshta, rundll32 or regsvr32.
references:
- https://attack.mitre.org/techniques/T1566/001/
- https://attack.mitre.org/techniques/T1059/
logsource:
product: windows
service: sysmon
category: process_creation
detection:
selection:
EventID: 1
ParentImage|endswith:
- '\winword.exe'
- '\excel.exe'
- '\powerpnt.exe'
- '\outlook.exe'
- '\mshta.exe'
- '\acrord32.exe'
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
condition: selection
falsepositives:
- Office add-ins running approved scripts
- Document automation pipelines
level: high
tags:
- attack.execution
- attack.t1059
- attack.initial_access
- attack.t1566.001
Exemple KQL — PowerShell encodé avec contexte parent
DeviceProcessEvents
| where InitiatingProcessFileName =~ "powershell.exe" or FileName =~ "powershell.exe"
| where ProcessCommandLine matches regex @"(?i)\b-e(?:nc|ncodedcommand)?\b\s"
or ProcessCommandLine contains "FromBase64String"
| project Timestamp, DeviceName, AccountName, ProcessCommandLine,
InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256
| order by Timestamp desc
InitiatingProcessCommandLine est l'équivalent Defender XDR du ParentCommandLine de Sysmon 1 — que 4688 ne fournit pas.
Exemple Splunk — LOLBins depuis des chemins user-writable
sourcetype=xmlwineventlog source="*Sysmon/Operational"
EventCode=1
( Image="*\\certutil.exe" OR Image="*\\regsvr32.exe" OR Image="*\\mshta.exe"
OR Image="*\\bitsadmin.exe" OR Image="*\\installutil.exe" OR Image="*\\msbuild.exe" )
( ParentImage="*\\Users\\*" OR CommandLine="*\\Users\\*"
OR CommandLine="*%TEMP%*" OR CommandLine="*ProgramData*" )
| table _time Computer User ParentImage Image CommandLine Hashes
Cartographie ATT&CK
- T1059 — Command and Scripting Interpreter et sous-techniques
.001PowerShell,.003Windows Command Shell,.005Visual Basic,.007JavaScript. - T1566.001 — Phishing: Spearphishing Attachment : chaînes Office → shell.
- T1218 — System Binary Proxy Execution et sous-techniques
.005Mshta,.010Regsvr32,.011Rundll32,.007Msiexec. - T1036.003 — Masquerading: Rename System Utilities :
OriginalFileName≠ nom de fichier d'Image. - T1055 — Process Injection : l'
IntegrityLevelet la chaîne parent de Sysmon 1 aident à repérer des parents anormaux pour des processus commelsass.exeouservices.exe.
Faux positifs qui ressemblent à des attaques
- Agents de mise à jour logicielle spawnent routinièrement des shells sous SYSTEM (Chocolatey, WinGet, MSI fournisseur). Taguez les hôtes auto-update connus.
- Scanners de vulnérabilités miment des arbres de processus offensifs pendant des scans authentifiés. Taguez les IP scanners.
- Hôtes Citrix / RDS multi-sessions génèrent un trafic process-create dense qui chevauche les patterns attaquants. Filtrez par plage source.
- Scans Defender / EDR lancent des binaires Microsoft signés depuis des chemins inhabituels pendant les scans à la demande.
Mises en garde sur la couverture
Sysmon ne capture que ce que sa config lui dit. La config par défaut ne journalise rien ; les références canoniques sont sysmon-config de SwiftOnSecurity et sysmon-modular d'Olaf Hartong. Sans une vraie config en place, vos enregistrements event 1 seront clairsemés, le champ CommandLine peut être expurgé et Hashes peut manquer. Lisez la config Sysmon de l'hôte en parallèle de ses logs.