Deploying Sysmon: Deep Endpoint Telemetry Windows Ships Without
Sysmon turns the Windows event log into a forensic goldmine for process, network, and tampering events. Here is how to deploy it well and audit that it stays configured.
Out of the box, the Windows Security event log is thin. It records logons, some process creation (if you enabled 4688), and a scattering of policy events — but it does not tell you the command line of every process, which parent spawned it, what it hashed to, or what network connection it opened. That gap is exactly where attackers live. System Monitor (Sysmon), a free Sysinternals driver from Microsoft, closes it. It installs a kernel driver plus a service that writes richly detailed events to Microsoft-Windows-Sysmon/Operational, giving you the process lineage and network telemetry that every real detection is built on.
What Sysmon actually gives you
Sysmon logs are organized by event ID, and a handful of them carry most of the investigative value:
- Event ID 1 — Process create: full command line, parent process, image hash (MD5/SHA256/IMPHASH), and the user context. This is the backbone of process-lineage analysis.
- Event ID 3 — Network connection: the process that opened a socket, plus source/destination IP and port. Invaluable for spotting C2 beacons and LOLBins phoning home.
- Event ID 7 — Image loaded: DLLs loaded into a process, with signature status — the detection surface for DLL search-order hijacking and unsigned module injection.
- Event ID 8 — CreateRemoteThread: classic process injection primitive.
- Event ID 10 — ProcessAccess: one process opening a handle to another.
lsass.exeaccess with0x1010/0x1410masks is a strong credential-dumping signal. - Event ID 11 — File create, 12/13/14 — Registry, and 22 — DNS query: persistence and exfil breadcrumbs.
Deploy it well: the config is everything
Installing Sysmon with no configuration is a mistake — you either drown in noise or miss the signal. The whole tool is driven by an XML config that decides what to include and exclude. The community standard is the SwiftOnSecurity baseline and the more granular sysmon-modular project, both of which are ATT&CK-annotated.
# Install with a curated config (run elevated)
sysmon64.exe -accepteula -i sysmon-config.xml
# Update the ruleset later without reinstalling the driver
sysmon64.exe -c sysmon-config.xml
# Confirm what's actually loaded
sysmon64.exe -c
A few field-tested rules of thumb:
- Filter with exclude-heavy logic, not include-only. Log broadly, then subtract the noisy-but-known (your EDR, monitoring agents, Chrome updaters). Include-only lists rot the moment a new legitimate process appears.
- Always capture full command lines and hashes. Set
<HashAlgorithms>SHA256,IMPHASH</HashAlgorithms>. IMPHASH clusters related malware families even when the file hash changes. - Prioritize Event ID 10 for LSASS. Credential theft is high-impact and low-noise to detect here.
- Raise the log size. The Operational channel defaults small; bump it to 512 MB–1 GB so a busy host does not roll over a week of evidence in a day.
The part everyone forgets: keeping it configured
Sysmon is only as good as the config that is loaded right now. In practice, deployments drift: someone reinstalls with the wrong XML, an attacker with SYSTEM runs sysmon64.exe -u to uninstall the driver, or a golden image ships without it entirely. A host you think is instrumented but is not is worse than a known blind spot, because your detections silently stop firing.
Telemetry you never verify is telemetry you do not have. Tampering with Sysmon is itself an event worth alerting on.
This is where continuous auditing matters. WinSentinel treats endpoint telemetry as posture, not a one-time setup task. On each machine it verifies that the Sysmon service and driver are present and running, checks that the loaded config hash matches your expected baseline, and confirms the Operational log is sized and retaining events — all locally, with no data leaving the box. Because this is per-machine hardening, every check runs in the free tier with no limits: one Windows box gets the full audit surface.
Where the fleet angle comes in
For a single workstation, a green Sysmon check is enough. Across an organization, the question changes to "which of my 80 machines quietly lost their telemetry this week?" That is the orchestration problem WinSentinel Pro solves at the fleet level: the central node rolls up each agent's Sysmon posture, flags configuration drift when a node's loaded ruleset diverges from the approved baseline, and raises an alert the moment a machine regresses from instrumented to blind. You get one view of coverage instead of RDP-ing into 80 hosts to run sysmon64.exe -c by hand.
Bottom line
Sysmon is the single highest-leverage free upgrade to Windows visibility — it is the difference between "a process ran" and "winword.exe spawned powershell.exe which opened a handle to lsass.exe and beaconed to a foreign IP." Deploy it with a curated, exclude-heavy config, capture command lines and hashes, size the log generously, and — most importantly — audit continuously that it is still there and still configured the way you intended. Instrumentation you do not verify is a false sense of security.