日志被清除就是信号
Windows 事件 1102 表示安全日志被清除,104 表示系统日志被清除,两者都应当视为高优先级线索:攻击者完成操作后清理痕迹是常规收尾动作。这两个事件的前提是“日志清除”子类别已开启审计,否则事件根本不会产生,此时查询为空并不代表没发生过清除,只能说明审计没开。核查要做两件事:确认审计开关状态,并把这两个事件接入告警而不是仅留在日志里。
基本信息
| 加固项 | 日志完整性监控与告警 |
|---|---|
| 适用平台 | Windows 10/11、Windows Server |
| 权限要求 | 本地管理员或域管理员 |
| 达标判据 | 日志清除审计开启,事件产生后能告警并留存 |
| 相关事件 | 1102 安全日志清除、104 系统日志清除 |
典型使用场景
- 安全事件响应中确认攻击者是否清理过日志
- 等保“日志保护”条款的监控与告警取证
- 审计日志清理类运维操作,与变更记录对账
- 把事件接入 SIEM 或日志平台,建立实时告警规则
- 排查“日志无故变少”“时间线断档”类异常现象
查询与审计开关
查询与审计开关
Get-WinEvent -FilterHashtable @{LogName='Security';Id=1102} -MaxEvents 20 # 谁清了安全日志
Get-WinEvent -FilterHashtable @{LogName='System';Id=104} -MaxEvents 20 # 系统日志清除
auditpol /get /subcategory:"Log Clear" # 查看当前审计设置
# 未开启时打开(成功与失败都记录):
auditpol /set /subcategory:"Log Clear" /success:enable /failure:enable
wevtutil gl Security | Select-String 'maxSize|retention' # 顺带看容量与覆盖策略取证留档
取证留档
wevtutil epl Security C:\evidence\Security.evtx # 导出后计算哈希并记录时间
Get-FileHash C:\evidence\Security.evtx -Algorithm SHA256
Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4624} | Select-Object -First 5 # 结合登录事件做时间线事件与含义
| 事件 ID | 日志 | 含义与处置 |
|---|---|---|
| 1102 | Security | 安全日志被清除;先固定现场再排查 |
| 104 | System | 系统日志被清除;与 1102 对照看是否成对出现 |
| 1100 | Security | 审计日志服务停止,攻击者可能借此规避记录 |
| 4634/4647 | Security | 登录注销事件,用于拼时间线 |
| 清除者账号 | 1102 事件详情 | 记录执行清除的账号与时间,是追责起点 |
1102 一旦出现,正确顺序是先固定现场(导出日志文件并计算哈希、记录时间)再排查,不要在原机继续大量操作。清日志前后必然有登录与进程活动,应顺着时间线查:谁在什么时候登录、清日志前执行了什么命令。同时注意日志文件导出前避免再次清除导致证据灭失。
日志清除也可能是合规的运维操作(例如维护窗口内清理、归档后清空)。发现事件后先找运维记录与变更单对账,避免把正常操作写成安全事件;反过来,没有对应记录时应当按事件处置流程推进,并检查同期其他主机的同类事件。