事实与推断必须分开写
报告里的句子分两类:事实句直接引自日志或元数据,可以被读者逐字复核;推断句是分析者基于证据的判断,需要标注依据与置信度。两类混写会让读者把推断当成记录内容,一旦被追问就难以自证。规范的做法是每段先写事实,再单列推断,并明确写出推断依据的是哪条证据、置信度为何定在某档。
基本信息
| 事实句 | 直接来自日志、元数据或采集记录的可复核内容 |
|---|---|
| 推断句 | 明示「推断」,附依据与置信度 |
| 引用规范 | 原文不改写,注明文件、行号或事件编号 |
| 置信度分级 | 高(多源互证)/ 中(单源但可信)/ 低(间接推断) |
| 常见问题 | 用「显然」「必定」等词掩盖证据不足 |
| 审核步骤 | 交付前专门通读一遍措辞,逐句区分事实与推断 |
典型使用场景
- 描述登录成功事件时区分日志原文与对身份的推断
- 说明文件落地过程:落地时间来自元数据,来源判断来自日志
- 在结论章节说明哪些问题已确认、哪些仅有间接证据
- 为不同读者提供信息密度:读者可直接引用事实句,评估时参考推断句
- 处理冲突读数时不擅自合并,两者都如实呈现
- 应对质询时能快速指出某句话的依据与置信度
写法对照
写法对照
事实:auth.log 于 2026-01-02T03:22:10Z 记录来自 203.0.113.9 的 Accepted password,用户名为 ops(auth.log 第 4212 行)
推断:该时间点攻击者取得了 ops 账号的交互式访问(置信度:中;依据:其后 03:24 出现 sudo 记录,但未见上传或横向行为)
事实:/tmp/x.sh 的 inode 12845 记录 Modified 时间为 2026-01-02T03:13:04Z(istat 输出)
推断:该脚本在 03:13 被写入(置信度:高;依据:多源一致,且同刻 auditd 记录到写入进程)句类与写法要求
| 句类 | 要求 | 反面示例 |
|---|---|---|
| 事实句 | 可逐字复核,注明出处 | 「日志显示攻击者登录了」——把推断写进事实 |
| 推断句 | 标注依据与置信度 | 「显然是同一人所为」——无依据无论证 |
| 冲突读数 | 两种读数并列呈现 | 只写其中一个,抹掉不一致 |
| 引用原文 | 不改写、不美化 | 对日志内容做概括性改写 |
| 置信度 | 给出分级与理由 | 只写「较为可信」而无标准 |
把推断写成事实是报告被质疑的最常见原因。交付前专门过一遍措辞:找出所有看起来像结论但从证据到结论之间缺一步的句子。
置信度要落到文字里,不能只存在于分析者判断中。置信度分级标准最好在报告开头说明,避免同一档级在不同章节含义不一致。