首页/安全/取证与溯源速查/假设-验证循环
溯源思路与流程68 条

假设-验证循环

对每个疑点先写出可证伪的假设,再去指定日志/痕迹验证:验证结果无论正否都记录,逐步收敛到结论。

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

假设验证循环是什么

把凭直觉的怀疑写成一句可以被证据推翻的陈述(假设),再指定到具体的日志或痕迹上去查证,得到支持、否定、证据不足三种结论,无论哪种都归档。它的价值在于让溯源过程可交接:多人协作时进度看得见,结论能追到证据行,换人接手不会从头再来。

基本信息

适用场景安全事件溯源、应急排查、事后复盘
循环步骤写假设 → 定证据源 → 查证 → 更新结论
产出物假设登记表(含结论与证据引用)
判定口径支持 / 否定 / 证据不足

典型使用场景

  • 疑似入侵但不知从何查起:把猜测拆成多条独立假设并行推进,避免单线死等
  • 多主机多日志的排查:按假设分配证据源,防止几个人重复翻同一份 auth.log
  • 交接班或换人接手:登记表就是进度条,从结论为空的那条继续
  • 报告评审:每条结论都能追到具体证据,评审者不必重跑全部排查
  • 向管理层解释结论可信度:证据不足的假设单列,不混进已证实结论

假设登记表最小字段

假设登记表最小字段
编号 | 假设                | 证据源      | 查证动作            | 结论     | 证据引用
H-01 | 攻击者用弱口令登录   | secure 日志 | 统计失败/成功序列   | 证据不足 | —
H-02 | 存在计划任务持久化   | 系统计划任务 | 比对新增任务与命令  | 否定     | E-014
# 结论单元格必须能追到证据引用,追不到就一律填「证据不足」

一轮循环的记录示例

一轮循环的记录示例
假设: 攻击者从 203.0.113.7 爆破成功
证据源: 该 IP 在 secure 日志中的失败与成功记录
结果: 03:11-03:14 共 428 次失败,无 Accepted
结论: 否定(该 IP 未得手)
# 否定结论同样归档,避免后人重复查同一批证据

假设合格性自检

检查项合格表现不合格表现
可证伪能用日志或痕迹区分真假「肯定是黑客干的」这类无法验证的判断
证据源明确写明哪台机器、哪个日志、用什么命令查只写「去查一下日志」
范围单一一条假设只验证一件事一条假设塞进入口、持久化与外传
结论可交付结论附证据引用与时间结论只写「有可能」
并行推进多条假设比单线深挖收敛更快,但同时保留的活跃假设不要超过团队跟得上的数量,否则每条都停在半途。
假设被否定时,把否定的依据一并写进登记表;这部分内容在复盘和报告里同样是交付物,可以说明哪些方向已被排除。

易错点

  • 假设不可证伪(如「一定有内鬼」),取证方向随人变化,最终拿不出可复核的结论
  • 只记录被证实的假设,否定结果不入档,接手的人会重复查同一批证据
  • 结论更新不留版本痕迹,报告前后出现两种说法,评审时无法解释
  • 假设与证据源脱节:登记表写了假设却没有对应查询动作,无法交接给他人

数据来源与参考

  • 科学方法在 DFIR 的应用实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌