首页/安全/取证与溯源速查/清理痕迹的识别
溯源思路与流程68 条

清理痕迹的识别

攻击者清理会留下"清理动作本身的痕迹":日志缺口、文件删除记录、历史命令清空——反查清理行为常能定位最后活动时间。

取证与溯源速查安全更新于 2026-10-13

清理痕迹的识别是什么

攻击者清理日志、删除工具与样本、清空命令历史时,清理动作本身也会留下痕迹:日志文件大小与时间戳自相矛盾、时间跨度不连续、目录时间戳被更新但文件消失、历史文件为空而账号当天有登录。这些痕迹反过来能定位对手最后活动的时间与使用的账号。

基本信息

用途把清理行为本身当成证据
可查痕迹日志缺口、删除记录、历史清空、文件消失
Linux 侧线索日志文件大小与时间戳、auditd 删除事件
Windows 侧线索1102 日志清空、Sysmon 23/26、预取断档

典型使用场景

  • 日志里出现一段完全没有记录的空白期,需要判断是轮转还是人为清理
  • 同一目录的日志文件大小与前一日相比骤减
  • 命令历史文件为空,但该账号当天有登录记录
  • 响应中怀疑对手已进入收尾阶段,评估还剩多少可分析数据
  • 本地日志被删,向集中平台求证转发副本是否仍在

Linux 侧检查

Linux 侧检查
ls -l --time-style=full-iso /var/log/auth.log*      # 大小与修改时间是否矛盾
stat /var/log/secure                               # 文件元数据与 inode 变更时间
last -f /var/log/wtmp | tail -20                   # 登录记录与 wtmp 是否能对上
ls -l ~/.bash_history; echo $HISTFILESIZE          # 历史文件是否被清空或截断
grep -i 'histentry' /var/log/secure | head         # RHEL 系会记录历史清空动作
ausearch -m unlink -ts recent                      # 删除审计(需 auditd 已启用)
# 与集中日志平台、远端 syslog 同时间段记录交叉核对

Windows 侧检查

Windows 侧检查
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=1102}   # 安全日志被清空
Get-WinEvent -LogName 'Microsoft-Windows-Sysmon/Operational' |
  Where-Object {$_.Id -in 23,26}                                # 文件删除与归档删除
Get-ChildItem C:\Windows\Prefetch | Sort-Object LastWriteTime -Descending  # 预取断档
# 关注事件日志服务重启、日志文件大小骤变、记录数断崖

清理动作与对应痕迹

清理动作留下的痕迹证据位置
删除日志文件文件消失但目录时间戳被更新文件系统元数据、auditd
截断日志内容大小与前一天不符、时间跨度不连续日志文件元数据、集中副本
清空命令历史历史文件为空或与登录记录不符histentry 记录、shell 审计
删除工具与样本进程记录存在但文件已不存在EDR 遥测、预取、MFT
清理很少彻底:本地删掉的内容往往在集中日志平台、备份、SIEM、代理与防火墙侧留有副本。先查转发链路,再断言数据不可得。
logrotate 正常轮转同样会造成断档。判断前先读轮转配置与保留周期,把正常轮转和恶意清理区分开,避免在报告里写成「攻击者删除了日志」。

易错点

  • 把日志轮转误判为恶意清理,应先核对 logrotate 配置与保留周期
  • 时间线出现缺口就直接推断该时段有活动,缺口只能说明「不可见」
  • 发现本地日志被删后不排查集中转发副本,过早断言证据已丢失
  • 只在本地取证不记录文件元数据,事后无法证明文件被清理过

数据来源与参考

  • DFIR 反取证识别实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌