威胁归因(APT Attribution)

SkillDev tools

威胁归因方法论:钻石模型、基础设施图谱、置信度分级与归因报告。 触发词:归因、APT、attribution、攻击者身份、基础设施图谱、钻石模型、威胁组织。

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 威胁归因(APT Attribution) skill

What this skill tells your AI

The instructions your AI receives, as published by dslsdzc/rev-skills in .claude/skills/re-attribution/SKILL.md and read by ahel’s review.

何时使用 / 何时不用

  • 用:情报归因请求(「谁干的」)、多事件串并(判断几起事件是否同一活动)、基础设施关联分析、样本/能力到攻击者的推理
  • 用:受害环境的攻击者画像(时间线、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. 基础设施图谱

    # 域名/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]]

Signals

GitHub stars
57
Forks
8
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
re-attribution
Source
github.com/dslsdzc/rev-skills