关于 correlating-threat-campaigns
用于关联多个威胁事件并研判其是否属于同一行动的安全技能,面向威胁情报分析人员。它通过基础设施、能力、时间和受害者特征进行比对,并强调以证据和置信度避免牵强归因。
主要功能
- 01汇集并规范化事件数据
- 02按四类维度寻找关联点
- 03计算行动归因置信度
- 04构建活动关系图
- 05编写行动情报报告
适用场景
- 01关联共享 IOC 的多个安全事件
- 02评估合作方共享指标与历史事件的联系
- 03整理跨周或跨月的攻击行动报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill correlating-threat-campaigns安装后在 Claude Code 中输入/correlating-threat-campaigns确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
关联威胁行动
适用场景
在以下情况下使用此技能:
- 多起看似互不相关的事件共享 IOC(相同的 C2 IP、相同的恶意软件哈希、相似的 TTP)
- ISAC 合作伙伴分享的事件指标与您自己的历史事件相匹配
- 编写行动报告,将数周或数月内的对手活动关联到同一项行动
不要基于薄弱信号强行关联使用此技能——错误的行动归因会误导防御人员,并导致他们在不正确的威胁模型上浪费资源。
前提条件
- 具备历史指标和事件数据的 TIP 或 SIEM(建议至少保留 90 天)
- 已启用 MISP 关联引擎,并配置好事件共享
- 用于关系可视化的图分析工具(Maltego、Neo4j 或 OpenCTI)
- 用于规范输出结构的 MITRE ATT&CK 入侵集和行动对象参考资料
工作流
步骤 1:收集并规范化事件
从以下来源收集所有待关联事件:
- 内部 SIEM(原始事件、告警历史)
- TIP(历史指标和事件)
- ISAC 共享内容(合作伙伴通过 MISP 或 TAXII 提交的事件)
- 商业情报(Recorded Future、Mandiant、CrowdStrike 报告)
将所有事件规范化为 STIX 2.1 架构,统一时间戳(UTC)、指标类型和置信度评分。确保所有指标都注明来源和收集日期。
步骤 2:识别关联切入点
围绕以下四个维度进行系统性切入点分析:
基础设施切入点:
- 不同事件中出现相同的 IP 地址或 /24 子网
- 相同的域名注册人电子邮件地址或 WHOIS 组织
- 相同的 ASN 或托管服务提供商,且账户指纹相同
- 不同 C2 域名使用相同的 SSL 证书指纹或序列号
能力切入点:
- 相同的恶意软件哈希或匹配的 YARA 签名
- 相同的 C2 通信协议(Cobalt Strike 信标配置、Sliver 植入体参数)
- 相同的漏洞利用代码或武器化文档模板
- 相同的混淆方法或加壳器指纹
时间切入点:
- 事件发生在相同时间段内(其活动时间可能表明使用了同一时区)
- 按逻辑上的杀伤链顺序发生的一系列事件
- 恶意软件编译时间戳集中在相同日期范围内
受害者特征切入点:
- 相同的目标行业(医疗保健、能源、金融)
- 相同的目标地理区域
- 相同的目标技术(特定 ERP 供应商、VPN 设备品牌)
步骤 3:计算关联置信度
应用加权评分进行行动归因:
def calculate_campaign_confidence(events: list) -> float:
scores = []
# Infrastructure overlap (highest weight — most discriminating)
infra_overlap = count_shared_infra(events) / len(events)
scores.append(infra_overlap * 40)
# Capability overlap (high weight — TTPs are durable)
capability_overlap = count_shared_ttps(events) / len(events)
scores.append(capability_overlap * 35)
# Temporal proximity (moderate weight)
temporal_score = assess_temporal_clustering(events)
scores.append(temporal_score * 15)
# Victimology alignment (lower weight — many actors target same sector)
victim_score = assess_victim_pattern(events)
scores.append(victim_score * 10)
total = sum(scores)
if total >= 70: return "HIGH"
elif total >= 45: return "MEDIUM"
else: return "LOW"
步骤 4:构建行动图谱
在 OpenCTI 或 Maltego 中构建行动图谱:
- 以行动对象(STIX)作为中心节点
- 入侵集 → 使用 → 恶意软件对象
- 入侵集 → 使用 → 基础设施对象
- 入侵集 → 以……为目标 → 身份对象(受害组织/行业)
- 行动 → 归因于 → 威胁行为者(若已完成归因)
- 指标 → 表明 → 恶意软件(将技术观测项关联到能力)
为每个关系标注证据引用和置信度。
步骤 5:编写行动情报报告
按以下结构编写行动报告:
- 行动名称:根据目标主题或所用工具指定描述性代号
- 时间线:首次/最后观察日期及活动阶段
- 归因:疑似威胁行为者及置信度
- 目标概况:行业领域、地理区域、组织规模
- TTP 概要:展示行动特定技术的 ATT&CK Navigator 热力图
- 共享指标:跨多起事件的 IOC(阻断置信度最高)
- 检测指南:针对该行动的 Sigma/YARA 规则
核心概念
| 术语 | 定义 |
|---|---|
| Campaign | 表示在特定时间段内,具有共同目标的一组对抗行为的 STIX 对象 |
| Intrusion Set | 将具有共同目标的相关入侵活动归为一组的 STIX 对象,即使无法确定攻击者身份 |
| Pivot | 利用单个数据点(IOC、基础设施、TTP)发现相关事件或对手制品 |
| Clustering | 根据特征相似性,通过机器学习或人工方式对事件进行分组,以识别 Campaign 边界 |
| False Correlation | 由于共享基础设施(CDN、共享主机)或常用工具,错误地将无关事件关联起来 |
工具与系统
- MISP Correlation Engine:自动关联 MISP 实例及联合实例中共享属性值的事件
- OpenCTI Graph:交互式关系图,用于通过 STIX 对象类型可视化 Campaign 关联
- Maltego:对多个数据源中的基础设施和能力进行关联分析
- Neo4j:图数据库,可通过 Cypher 查询大规模关联 Campaign(数百万个事件)
常见陷阱
- CDN/共享主机导致的误报:Cloudflare、AWS CloudFront 和防弹主机商会为多个威胁行为者提供服务。仅共享 IP 并不能证明 Campaign 存在关联。
- 混淆常用恶意软件:多个威胁行为者都会使用 Cobalt Strike。若无额外佐证,仅凭能力相同并不能说明是同一行为者。
- 过早进行归因:在证据达到门槛前,强行将 Campaign 归因于某个行为者,会产生错误情报,并在报告中持续流传。
- 缺少时间分析:不同年份的事件可能共享基础设施,但该基础设施可能已被其他行为者重新使用,而非属于同一 Campaign。
评论
支持 Markdown