假设验证循环是什么
把凭直觉的怀疑写成一句可以被证据推翻的陈述(假设),再指定到具体的日志或痕迹上去查证,得到支持、否定、证据不足三种结论,无论哪种都归档。它的价值在于让溯源过程可交接:多人协作时进度看得见,结论能追到证据行,换人接手不会从头再来。
基本信息
| 适用场景 | 安全事件溯源、应急排查、事后复盘 |
|---|---|
| 循环步骤 | 写假设 → 定证据源 → 查证 → 更新结论 |
| 产出物 | 假设登记表(含结论与证据引用) |
| 判定口径 | 支持 / 否定 / 证据不足 |
典型使用场景
- 疑似入侵但不知从何查起:把猜测拆成多条独立假设并行推进,避免单线死等
- 多主机多日志的排查:按假设分配证据源,防止几个人重复翻同一份 auth.log
- 交接班或换人接手:登记表就是进度条,从结论为空的那条继续
- 报告评审:每条结论都能追到具体证据,评审者不必重跑全部排查
- 向管理层解释结论可信度:证据不足的假设单列,不混进已证实结论
假设登记表最小字段
假设登记表最小字段
编号 | 假设 | 证据源 | 查证动作 | 结论 | 证据引用
H-01 | 攻击者用弱口令登录 | secure 日志 | 统计失败/成功序列 | 证据不足 | —
H-02 | 存在计划任务持久化 | 系统计划任务 | 比对新增任务与命令 | 否定 | E-014
# 结论单元格必须能追到证据引用,追不到就一律填「证据不足」一轮循环的记录示例
一轮循环的记录示例
假设: 攻击者从 203.0.113.7 爆破成功
证据源: 该 IP 在 secure 日志中的失败与成功记录
结果: 03:11-03:14 共 428 次失败,无 Accepted
结论: 否定(该 IP 未得手)
# 否定结论同样归档,避免后人重复查同一批证据假设合格性自检
| 检查项 | 合格表现 | 不合格表现 |
|---|---|---|
| 可证伪 | 能用日志或痕迹区分真假 | 「肯定是黑客干的」这类无法验证的判断 |
| 证据源明确 | 写明哪台机器、哪个日志、用什么命令查 | 只写「去查一下日志」 |
| 范围单一 | 一条假设只验证一件事 | 一条假设塞进入口、持久化与外传 |
| 结论可交付 | 结论附证据引用与时间 | 结论只写「有可能」 |
并行推进多条假设比单线深挖收敛更快,但同时保留的活跃假设不要超过团队跟得上的数量,否则每条都停在半途。
假设被否定时,把否定的依据一并写进登记表;这部分内容在复盘和报告里同样是交付物,可以说明哪些方向已被排除。