mcpField
C
correlating-threat-campaigns

correlating-threat-campaigns

github.com/mukul975安全35.2k71 次安装8 周前更新
代码仓库

关于 correlating-threat-campaigns

用于关联多个威胁事件并研判其是否属于同一行动的安全技能,面向威胁情报分析人员。它通过基础设施、能力、时间和受害者特征进行比对,并强调以证据和置信度避免牵强归因。

主要功能

  1. 01汇集并规范化事件数据
  2. 02按四类维度寻找关联点
  3. 03计算行动归因置信度
  4. 04构建活动关系图
  5. 05编写行动情报报告

适用场景

  1. 01关联共享 IOC 的多个安全事件
  2. 02评估合作方共享指标与历史事件的联系
  3. 03整理跨周或跨月的攻击行动报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill correlating-threat-campaigns

安装后在 Claude Code 中输入/correlating-threat-campaigns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
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:编写行动情报报告

按以下结构编写行动报告:

  1. 行动名称:根据目标主题或所用工具指定描述性代号
  2. 时间线:首次/最后观察日期及活动阶段
  3. 归因:疑似威胁行为者及置信度
  4. 目标概况:行业领域、地理区域、组织规模
  5. TTP 概要:展示行动特定技术的 ATT&CK Navigator 热力图
  6. 共享指标:跨多起事件的 IOC(阻断置信度最高)
  7. 检测指南:针对该行动的 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