--- 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 ` 返回 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]]