# 归因决策树与证据分级 归因是推理链不是查询:每一步都要能回答「这条证据支持/反对哪个假设,强度多少」。本文档与 SKILL.md 步骤 1-4 配套使用。 ## 场景决策树(输入 → 分支) ``` 输入请求 ├─ 单 IOC / 单个样本背景 → [[re-ti]](查询即可,不进入归因) ├─ 行为判定「在干什么」→ [[re-behavior]] ├─ 「是不是同一伙」多事件串并 → 归因流程(钻石模型定位) └─ 「谁干的」组织级归因 → 归因流程 + 置信度分级 ``` 归因流程(钻石模型): ``` 四角信息盘点 ├─ 仅 1 角(只有样本或只有域名)→ 不出归因结论,输出「情报线索」级 ├─ ≥2 角且无独立证据交叉 → 「关联活动」声明(低置信度) ├─ 2 类独立证据交叉 → 「疑似同一活动」(中置信度) └─ ≥3 类 + 时间线一致 + 无反证 → 「高度疑似归属」(高置信度) ``` 证据收集子分支(每角都走): ``` 证据类型 → 区分「控制」与「共享」 ├─ 控制面证据(注册邮箱/证书私钥操作/唯一配置/自研工具)→ 可计强证据 ├─ 共享面证据(托管商/跳板/公共 C2 框架/公开工具)→ 仅弱证据,不可独立归因 └─ 时间线(活动窗口/时区校准后对齐)→ 只能佐证,不能独立定案 ``` ## 分支逻辑说明 - **入口分流**:归因请求先问「有没有两角以上」,不足则退回情报级输出(单 IOC 查询归 [[re-ti]]),这是防止「一个域名归一个组织」类错误声明的第一道闸 - **证据独立性**:两条证据来自同一条数据链(如同一份 whois 记录里的邮箱与注册者)算一类证据,不交叉;交叉 = 不同来源(whois + 证书透明 + 行为分析) - **强证据门槛**:唯一性特征(罕见字符串、自研工具、唯一注册信息)才可作强证据;「共用 C2 框架」等商品化特征一律弱证据 - **时间线只作佐证**:时间窗口重叠说明「可能同时活跃」,不说明同一归属(攻击者会复用时段);时间线缺口必须显式标注 ## 证据分级表 | 证据类型 | 弱 | 中 | 强 | 归因意义 | |---|---|---|---|---| | 基础设施 | 同托管商/同 C2 框架 | 共用 NS/ASN/证书 | 唯一注册邮箱/私钥/证书链 | 强证据可作核心,弱证据只作旁证 | | 能力/样本 | 同家族通用 TTP | 代码片段相似 | 唯一字符串/编译特征/自研模块 | 工具是商品化资源,单独不能定案 | | 行为/TTP | 同大类技术(ATT&CK 一级) | 同技术组合序列 | 罕见流程顺序+参数习惯 | 需要叠加其他角才升档 | | 时间线 | 活跃时段相近 | 时段重叠+节奏一致 | 事件序列交错(互为前置) | 只能佐证,不能独立定案 | | 反证 | 一条矛盾证据 | 多条矛盾证据 | 结构性矛盾(能力与声明不符) | 任何等级都要列出反证 | ## 置信度判定流程(组合套路) 1. 把每条证据按上表标档(弱/中/强) 2. 合并同类来源(同一数据链只算一次) 3. 统计独立证据类数(基础设施/能力/行为/时间线) 4. 对照分级:1 类弱 = 低;2 类交叉或 1 类强 = 中;≥3 类 + 无反证 = 高 5. 检查反证:有矛盾证据 → 降一级并写进报告「未决项」 6. 措辞与置信度严格对应(见 [[gotchas]] 声明边界) ## 实现教训(内化) - 「控制 vs 共享」是第一判断,不是相似度判断——先问这条证据能不能被第三方买到/租到/偷到,再谈强度 - 证据要能复现:每条证据标注来源与查询时间(whois 记录会过期,截图存档) - 分级结果不是终点:高置信度声明也要写「假设前提」(如「假设该基础设施未被劫持」) - 归因输出是概率化陈述,报告里禁用绝对化断言 ## 使用注意 - 全部在授权范围与脱敏要求内执行(不点名真实组织/受害者,见 SKILL.md 红线) - 结论按 [[re-analyze/analysis-contract]] 格式交付;对外报告与内部结论分离 - 本技能结论是情报判断,不是司法证据(标准不同,见 [[gotchas]])