---
name: re-attribution
type: atomic
description: >
  威胁归因方法论：钻石模型、基础设施图谱、置信度分级与归因报告。
  触发词：归因、APT、attribution、攻击者身份、基础设施图谱、钻石模型、威胁组织。
capabilities: [threat-intel]
---

# 威胁归因（APT Attribution）

## 何时使用 / 何时不用

- 用：情报归因请求（「谁干的」）、多事件串并（判断几起事件是否同一活动）、基础设施关联分析、样本/能力到攻击者的推理
- 用：受害环境的攻击者画像（时间线、TTP、基础设施特征综合）
- 用：同组活动排查（一次事件 → 找同基础设施/同能力的其他事件，先关联再定级）
- 不用：单个 IOC 查询（转 [[re-ti]]）；恶意行为判定（转 [[re-behavior]]）
- 不用：司法证据链（刑事标准高于情报归因，本技能结论不能直接作为司法证据，见 [[gotchas]]）
- 不用：只有单角证据时做组织级归因（仅样本或仅域名不支撑归因声明，分支判断见 [[decision-tree]]）

## 工具准备

### 关联查询工具（Passive DNS / 证书透明 / Whois）

- whois CLI（注册信息/ASN 归属）：Linux `apt install whois` / `dnf install whois`；macOS `brew install whois`；Windows 用 WSL 分支（见 [[re-analyze/platform-tips]]）
- python-whois（Python 模块）：多平台 `pip install python-whois`；验证: `python3 -c "import whois"`
- dnsx（DNS 枚举）：官方渠道为 Go 二进制——GitHub `projectdiscovery/dnsx` releases 或 `go install github.com/projectdiscovery/dnsx/cmd/dnsx@latest`；验证 `dnsx -version`（PyPI 同名包与官方工具无关，别混用）
- 证书透明日志：crt.sh 网页查询（公开服务，按域名/证书指纹检索）
- ASN 归属查询：`whois -h whois.cymru.com <IP>` 返回 AS 号与归属（Team Cymru 公开接口）

### MISP（情报关联与共享）

- Docker 部署（官方安装脚本/镜像，`apt install misp` 在发行版源不存在）或轻量替代（本地 CSV/图文件）
- 验证: 登录 MISP UI 能创建/检索事件（轻量替代用数据导入脚本自检）

### 图分析（基础设施关系）

- 多平台: `pip install networkx`（python 图分析）；验证: `python3 -c "import networkx"`

## 操作步骤

按顺序执行；全部内容脱敏处理（红线：不指向具体组织/受害者身份，只用代号与抽象描述）。

1. **钻石模型定位**：
   - 四角：受害者（已明确）/ 基础设施（C2 域名/IP/证书）/ 能力（工具/样本/漏洞利用）/ 对手（待推断）
   - 活动线：把事件建模为元组（时间、对手、能力、基础设施、受害者），多事件按共享元素连成活动线
   - 元数据要素：时间窗、受害域、行业属性——用于聚类与时间线（不单独作证据）
   - 四角信息表字段：每角列（已知项/未知项/来源/查询时间），未知项就是归因缺口
   - 产出：四角已知信息表 + 缺失角（归因目标）
   - 规则：只有两角以上才能开始推理；单角（仅样本）不支撑归因声明（判据见 [[decision-tree]]）
   - 单角输出形态：只有 1 角时交付「情报线索」级（IOC 清单 + 特征描述），标注「未进入归因」，不写组织名

2. **基础设施图谱**：
   ```sh
   # 域名/IP/证书关联聚类（示例流程，工具可替换）
   # 1) 收集 C2 域名/IP → whois 注册信息（注册者/邮箱/NS/ASN）
   # 2) 证书透明日志（crt.sh）查共用证书 → 关联其他域名
   # 3) dnsx 主动枚举关联子域/NS 记录（被动 DNS 接口看解析历史）
   # 4) networkx 图聚类：共享注册者/证书/NS/ASN 的节点合并
   ```
   - 聚类特征按区分度排序：唯一注册邮箱/证书 > 共用 NS/ASN > 同托管商
   - 被动 DNS 关注点：域名首次解析时间、解析 IP 段切换史、历史 NS 变化（注册人操作习惯特征）
   - IP 段特征：段内其他域名的用途/注册时间（同类活动聚集是弱线索，需排除托管商批量注册）
   - Whois 隐私保护：注册信息可能匿名（GDPR 后常见）——注册者字段不可用时降级用证书/NS/行为特征交叉，标注注册信息盲区
   - 域名相似性（同后缀/typosquat）只作弱线索：注册商与注册时间都可伪造
   - 跳板/托管商共存不能作为归属证据（见坑 1 与 [[gotchas]]）

3. **能力与样本归因**：
   - 代码复用：样本间字符串/函数/资源/导入表相似度（唯一性字符串优先）
   - TTP 对比：行为模式与已知活动对齐（对齐方式参考 [[re-behavior]] 与 ATT&CK 映射）——先粗对齐（技术大类）再细对齐（端口/参数/加密细节）
   - 时间线：活动窗口对齐（先归一 UTC 核对时区与时间来源，见坑 6）
   - 唯一性特征优先：独特字符串/编译特征/语言习惯（比通用 TTP 更有区分度）
   - 样本家族名是分析人员命名，不是归属证据（命名由分析习惯决定，见 [[gotchas]]）
   - 产出：能力证据表（每条证据 → 支持/反对假设，来源可追溯）

4. **置信度分级**：
   - 低：单类弱证据（特征泛化，如仅共享托管商）
   - 中：两类独立证据交叉，或单类强证据（多个唯一性特征）
   - 高：三类以上 + 时间线一致 + 无矛盾证据
   - 判定：按证据类型×强度打分，规则与反例见 [[decision-tree]] 证据分级表
   - 措辞规范：低→「关联活动」；中→「疑似同一活动」；高→「高度疑似归属」；不写绝对断言（见 [[gotchas]] 声明边界）
   - 规则：无高置信度证据时声明「关联活动」而非「归属组织」；明确列出未解决的反证
   - 不设「确认」级：情报归因无 100% 断言，最高等级也保留假设前提（如「假设该基础设施未被劫持」）

5. **报告**：
   - 结构：结论（分级声明）→ 证据链（每角证据 + 来源）→ 置信度依据 → 反证与未决项 → 方法边界（哪些无法判定）
   - 模板（脱敏版）：
     ```
     # 归因报告（内部）
     - 结论：<等级> —— 与 <代号> 活动为同一活动方（置信度：中）
     - 证据链：1) 唯一注册邮箱（whois，查询时间） 2) 共用证书（crt.sh） 3) 代码唯一字符串（样本对照）
     - 反证/未决项：时间线缺口；注册信息匿名（GDPR）
     - 方法边界：未验证 C2 行为；无法判定项清单
     ```
   - 结论与证据对照 [[re-analyze/analysis-contract]] 复核格式存档（结论/证据/置信度）
   - 脱敏：不公开受害者身份/真实组织名（用代号），不发表过度归因声明；对外口径与内部结论分开（分层输出）
   - 脱敏检查清单：受害者身份/组织名/域名/IP 全替换代号；截图中的主机名/用户名打码；引用原始情报前重查一遍

## 跨域联合

- [[re-ti]]：情报输入（IOC 查询与背景）
- [[re-ioc]]：指标提取（域名/IP/哈希）
- [[re-behavior]]：行为证据（TTP 对齐）
- [[re-protocol]]：C2 协议分析（基础设施特征）
- [[re-hunting]]：归因假设可转狩猎假设（「如果同一活动方进入环境，会在遥测中出现什么」）
- [[re-feedback]]：归因案例经验沉淀（脱敏后）
- [[re-analyze/analysis-contract]]：结论交付格式

## 常见坑与陷阱

- **基础设施重叠导致误归因**：现象——两活动共享 C2 基础设施被并为一组；原因——共用托管/被劫持基础设施；对策——区分「共享」与「控制」证据（注册信息 vs 仅托管），共享类证据降级为弱证据
- **跳板机 ≠ 归属**：现象——经第三方跳板的活动归到跳板所有者；原因——混淆路径；对策——只把「控制面证据」（注册/配置/唯一特征）算入归属
- **置信度虚高**：现象——单一独特性状（罕见字符串）即高置信度；原因——单证据强但无交叉验证；对策——按步骤 4 分级，单类弱证据最高「低」，单类强证据最高「中」
- **能力共享被误读**：现象——两家活动共用工具（公开工具/租赁平台）被归为一家；原因——能力是商品化资源，不唯一；对策——工具类证据只能作弱证据，需叠加基础设施/时间线证据
- **无证据 ≠ 排除**：现象——时间线对不齐/查不到记录即判断「无关」；原因——被动数据缺失、证据未公开；对策——标注「未发现」而非「不存在」，时间线缺口列反证
- **时间戳/日志反取证**：现象——攻击者伪造时间戳/删除日志使时间线错位；原因——主动混淆；对策——多时间来源交叉（文件时间/日志/流量时间），标注可信度
- **脱敏红线**：现象——报告中出现真实受害者/组织身份；原因——复制原始情报未处理；对策——报告前逐项检查（红线强制）
- **报告口径外泄**：现象——内部结论被当作对外声明引用；原因——口径不分层；对策——内部报告与对外摘要分开版本，对外摘要只保留分级与证据概览
- **推理链不可复核**：现象——结论无法回溯到证据；原因——假设与中间判断未记录；对策——每步假设/证据/分级全程存档（路径+时间），报告附证据索引
- 场景分支、证据分级表与更多反例见 [[decision-tree]] / [[gotchas]]
