归因失败并不证明攻击者是匿名的
没有指名道姓嫌疑人的案件,说明的是证据能确立什么,而不是匿名手段奏效。请区分指导文件、其采用情况与归因失败。
一桩以未能指名嫌疑人告终的案件,往往被描述为“匿名”,而这个词悄悄承担了很多工作。它把关于证据的陈述变成了关于世界的陈述。二者并不相同;对于年代久远的案件,这一差别往往正是留存记录唯一能支撑的东西。未被归因的事件告诉你当时能确立什么,而不是当时可能发生什么。
五项检查把这两者区分开来。
检查 1:把指导文件与其实际采用分开
RFC 1281 发表于 1991 年秋末,建议保存并审计与安全相关的记录、支持连接追踪,并指定一名安全联系人负责事件处置。它还要求运营者公布自己收集了什么、谁能使用。那是一份带日期的、关于“当时建议了什么”的记录,与任何具体网络实际做了什么,是两种不同的主张。
建议只能证明这种担忧曾经存在,不能证明建议已被落实,更不能证明某次具体调查取得了成功。
检查 2:指出归因链条中哪一环断了
归因是一条链,每一环都可能以各自的方式失效:网络层面的观察、与之关联的账号、当时对该账号的控制,以及把这种控制与某个具体的人联系起来的证据。中间地址不等于位置。用户名不能证明是谁敲击了键盘。有登录记录不等于账号主人当时在场。
在写下结论之前,先写下缺的是哪一环。
| Evidence | What it actually establishes |
|---|---|
| Source address in a log | An address at that moment, not a person |
| Account name | A credential was used, not who held it |
| Session window | When activity happened, not intent |
| Cross-network correlation | A path, not an identity |
检查 3:为你引用的证据标注日期
旧报告对时间的压缩很糟糕。从未保存的记录、因保留政策而到期的记录、曾经存在却从未在机构之间做过关联的记录,以及根本没有继续推进的调查,在现代的总结里留下的痕迹都一样:什么都没有。只有第一种才属于对技术能力的陈述。
优先使用带日期的一手文件,而不是凭记忆写下的综述,并引用你所依据的那句话。
检查 4:抵制把历史变成技术清单的冲动
历史问题在于:当时什么可以被观察到,又能从中确立什么。一份暴露服务与默认凭据的清单回答的是另一个问题,对于想理解归因的读者来说,那是错误类型的答案。它也没有必要,因为论证不需要操作细节也能成立。
如果一个例子必须靠操作步骤才显得有趣,那这个例子做的就不是该做的事。
检查 5:只陈述你能够辩护的、更窄的结论
一个站得住脚的结论是这样写的:留存记录显示,相关指导曾经存在,一些运营者确实收集过认证日志,而该具体案件没有产生足以识别某个人的证据。这比“没人在看”更窄,也更有用,因为它是可以核查的。同时记下什么本会改变结果,因为缺少关联与缺少数据是不同的失败。然后就到此为止。
关于整整十年的宽泛主张,需要那十年的记录,而不是一个关于“过去如何”的、听起来合理的故事。