| name | correlating-threat-campaigns |
| description | 关联不同时间和组织的安全事件、IOC 和对手行为,识别统一的威胁活动,将其归因于共同的威胁行为者,并提取共享指标以改善检测效果。适用于多起事件出现重叠指标、需要跨组织分析行业范围内攻击活动,或构建活动级别情报产品时。适用于涉及活动分析、事件聚类、跨组织 IOC 关联或 MISP 关联引擎的请求。
|
| domain | cybersecurity |
| subdomain | threat-intelligence |
| tags | ["campaign-analysis","correlation","MISP","ATT&CK","threat-actor","intrusion-set","clustering","CTI"] |
| version | 1.0.0 |
| author | team-cybersecurity |
| license | Apache-2.0 |
关联威胁活动
适用场景
在以下情况下使用本技能:
- 多起表面上无关的事件共享 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 beacon 配置、Sliver 植入参数)
- 相同的漏洞利用代码或武器化文档模板
- 相同的混淆方法或打包程序指纹
时间枢纽:
- 事件发生在同一时间窗口内(操作时间表明相同时区)
- 具有逻辑杀伤链进展的顺序事件
- 恶意软件编译时间戳集中在同一日期范围内
受害者学枢纽:
- 相同的目标行业(医疗、能源、金融)
- 相同的目标地区
- 相同的目标技术(特定 ERP 供应商、VPN 设备品牌)
步骤 3:计算关联置信度
为活动归因应用加权评分:
def calculate_campaign_confidence(events: list) -> float:
scores = []
infra_overlap = count_shared_infra(events) / len(events)
scores.append(infra_overlap * 40)
capability_overlap = count_shared_ttps(events) / len(events)
scores.append(capability_overlap * 35)
temporal_score = assess_temporal_clustering(events)
scores.append(temporal_score * 15)
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) | 基于特征相似性对事件进行机器学习或人工分组,以识别活动边界 |
| 错误关联(False Correlation) | 因共享基础设施(CDN、共享托管)或通用工具导致不相关事件被错误关联 |
工具与系统
- MISP 关联引擎:自动关联跨 MISP 实例和联合实例中共享属性值的事件
- OpenCTI 图谱:用于可视化活动关联的交互式关系图,支持 STIX 对象类型
- Maltego:跨多数据源进行基础设施和能力枢纽的链接分析
- Neo4j:支持 Cypher 查询的图数据库,用于大规模活动关联(百万级事件)
常见陷阱
- CDN/共享托管误报:Cloudflare、AWS CloudFront 和防弹托管服务同时服务多个威胁行为者。仅凭共享 IP 不能建立活动关联。
- 通用恶意软件混淆:多个威胁行为者使用 Cobalt Strike。没有其他佐证时,共享能力不能表明相同行为者。
- 过早归因:在达到证据阈值前强制进行活动到行为者归因,会产生在报告中持续存在的错误情报。
- 忽视时间分析:不同年份的事件可能共享已被不同行为者回收利用的基础设施,并非同一活动。