| name | configuring-windows-event-logging-for-detection |
| description | 配置 Windows 事件日志与高级审计策略,以生成高质量安全事件用于威胁检测和取证调查。 适用于为登录事件、进程创建、权限使用和对象访问启用审计策略,以支撑 SIEM 检测规则的场景。
|
| domain | cybersecurity |
| subdomain | endpoint-security |
| tags | ["endpoint","windows-security","event-logging","audit-policy","detection-engineering"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
配置用于检测的 Windows 事件日志
使用场景
在以下情况下使用本技能:
- 配置 Windows 高级审计策略以实现安全监控
- 启用带命令行日志记录的进程创建审计(事件 4688)
- 设置登录/注销审计以进行身份认证监控
- 调整事件日志存储大小并转发到 SIEM 平台
不适用于 Sysmon 配置(独立技能)或 Linux 审计日志。
操作流程
步骤 1:通过 GPO 配置高级审计策略
计算机配置 → Windows 设置 → 安全设置
→ 高级审计策略配置 → 审计策略
推荐设置:
账户登录:
- 审计凭据验证:成功、失败
- 审计 Kerberos 认证:成功、失败
账户管理:
- 审计安全组管理:成功
- 审计用户账户管理:成功、失败
登录/注销:
- 审计登录:成功、失败
- 审计注销:成功
- 审计特殊登录:成功
- 审计其他登录/注销事件:成功、失败
对象访问:
- 审计文件共享:成功、失败
- 审计可移动存储:成功、失败
- 审计 SAM:成功
策略更改:
- 审计审计策略更改:成功、失败
- 审计身份验证策略更改:成功
权限使用:
- 审计敏感权限使用:成功、失败
详细跟踪:
- 审计进程创建:成功
- 审计 DPAPI 活动:成功、失败
步骤 2:在进程创建事件中启用命令行记录
# 注册表:在事件 4688 中启用命令行日志记录
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" `
-Name ProcessCreationIncludeCmdLine_Enabled -Value 1 -PropertyType DWORD -Force
# GPO:计算机配置 → 管理模板 → 系统 → 审计进程创建
# "在进程创建事件中包含命令行" → 已启用
步骤 3:配置事件日志大小
# 将安全日志增加到 1 GB(默认 20 MB 不够用)
wevtutil sl Security /ms:1073741824
# 增加 PowerShell Operational 日志
wevtutil sl "Microsoft-Windows-PowerShell/Operational" /ms:536870912
# 设置日志保留策略为按需覆盖
wevtutil sl Security /rt:false
# 通过 GPO 配置:
# 计算机配置 → 管理模板 → Windows 组件
# → 事件日志服务 → 安全
# 最大日志文件大小(KB):1048576
步骤 4:配置 Windows 事件转发(WEF)
# 在收集器服务器上:
wecutil qc /q
# 为高价值事件创建订阅:
# 事件 ID:4624(登录)、4625(登录失败)、4688(进程创建)、
# 4672(特殊权限)、4720(创建用户)、4728(组成员变更)、
# 7045(安装服务)、1102(日志清除)
# 在源端点上(GPO):
# 配置 WinRM:winrm quickconfig
# 配置事件转发:计算机配置 → 管理模板
# → Windows 组件 → 事件转发
# 配置目标订阅管理器:Server=http://collector:5985/wsman/SubscriptionManager/WEC
步骤 5:用于检测的关键事件 ID
认证事件:
4624 - 登录成功(类型 2=交互式, 3=网络, 10=远程交互式)
4625 - 登录失败
4648 - 使用显式凭据登录(RunAs、哈希传递指示器)
4672 - 分配特殊权限(管理员登录)
4776 - NTLM 凭据验证
进程事件:
4688 - 进程创建(启用后含命令行)
4689 - 进程终止
账户事件:
4720 - 创建用户账户
4722 - 启用用户账户
4724 - 尝试重置密码
4728 - 成员添加到安全组
4732 - 成员添加到本地组
4756 - 成员添加到通用组
服务/系统事件:
7045 - 安装新服务(持久化指示器)
1102 - 清除审计日志(证据篡改)
4697 - 在系统中安装服务
横向移动指示器:
4648 + 4624(类型 3) - 基于凭据的横向移动
5140 - 访问网络共享
5145 - 网络共享访问检查(详细文件共享)
关键概念
| 术语 | 定义 |
|---|
| 高级审计策略 | 细粒度审计子类别(58 个子类别,对比基本的 9 个类别) |
| 事件 ID 4688 | 进程创建事件;对跟踪端点上的执行行为至关重要 |
| WEF | Windows 事件转发(Windows Event Forwarding),无需第三方代理即可集中收集日志 |
| 登录类型 | 表示认证方式的数字代码(2=交互式, 3=网络, 10=RDP) |
工具与系统
- Windows 事件转发(WEF):内置集中式日志收集
- NXLog:用于 Windows 事件的开源日志转发代理
- Winlogbeat:将 Windows 事件日志传送到 Elasticsearch 的 Elastic Agent
- Palantir WEF 配置:开源 WEF 订阅模板
常见误区
- 使用基本审计策略而非高级策略:基本和高级审计策略会产生冲突,始终只使用高级审计策略。
- 默认日志大小过小:繁忙服务器上 20 MB 的安全日志几分钟就会写满。最小设置为 1 GB。
- 缺少命令行日志记录:没有命令行内容的事件 4688 几乎没有检测价值。务必启用 ProcessCreationIncludeCmdLine_Enabled。
- 未转发日志:端点被勒索软件清除时,本地事件日志也会丢失。应立即转发到集中式 SIEM。