Sysmon 是什么
Sysmon 是微软 Sysinternals 提供的 Windows 端点日志增强工具,安装后以驱动加服务的方式常驻,把系统自带日志里缺失的细节补上:进程创建(含完整命令行与父进程)、网络连接、驱动与镜像加载、注册表写入、DNS 查询、文件创建等。这些字段是事件溯源与异常检测的基础,例如从父进程链还原一次钓鱼执行,或从 DNS 查询定位 C2 域名。它是日志采集器,不是杀毒软件,检测规则仍需由 SIEM 或 EDR 侧实现。
基本信息
| 适用平台 | Windows 7/Server 2008 R2 及以上;分 32 位 sysmon 与 64 位 sysmon64 |
|---|---|
| 权限要求 | 安装、更新配置与卸载均需管理员权限 |
| 日志通道 | 事件查看器 → 应用程序和服务日志 → Microsoft → Windows → Sysmon → Operational |
| 配置方式 | 安装时用 -i 指定 XML 配置,后续用 -c 更新;配置支持按事件类型过滤与包含/排除规则 |
| 默认日志上限 | 较小,需手工调大,否则高负载下老事件被快速覆盖 |
| 运维要点 | 配置文件纳入版本管理,与采集端(如 Winlogbeat、Azure Monitor Agent)联动 |
安装与配置管理
安装与配置管理
sysmon64 -accepteula -i sysmonconfig.xml # 安装并加载配置
sysmon64 -c # 打印当前生效的配置
sysmon64 -c newconfig.xml # 热更新配置,无需重装
Get-Service sysmon64 | Select Status,StartType # 确认服务状态与自启
# 调大日志上限(示例 1GB),避免峰值时段事件被覆盖
wevtutil sl Microsoft-Windows-Sysmon/Operational /ms:1073741824
# 抽查最近 20 条进程创建事件
Get-WinEvent -LogName Microsoft-Windows-Sysmon/Operational -MaxEvents 200 |
Where-Object Id -eq 1 | Select-Object -First 20常用事件 ID
| ID | 事件 | 排障与检测用途 |
|---|---|---|
| 1 | 进程创建 | 含完整命令行与父进程 ID,可用于还原攻击链 |
| 3 | 网络连接 | 记录目标 IP/端口与发起进程,识别外联行为 |
| 7 | 镜像加载 | 记录 DLL 加载与签名信息,发现侧载与未签名模块 |
| 8 | 远程线程创建 | 进程注入的典型痕迹 |
| 10 | 进程访问 | 凭据转储与内存读取类行为的关键线索 |
| 11 | 文件创建 | 落地文件与释放物的时间线 |
| 12/13/14 | 注册表操作 | 持久化项与配置篡改 |
| 22 | DNS 查询 | 域名解析记录,用于回溯 C2 与外联目标 |
| 23/26 | 文件删除 | 较新版本提供的删除审计(23 保留副本,26 仅记录) |
配置建议按资产角色裁剪:服务器与办公终端关注的进程不同,域控需重点记录进程访问与账号相关行为。可直接以社区维护的基线配置(如 SwiftOnSecurity、sysmon-modular)为起点再裁剪,比从零写规则更省时间。
「全收」会带来每天数 GB 的日志量与可观的授权成本,同时淹没关键事件;裁剪规则要连同排除理由一起留档,便于后续回溯「为什么这条没记」。