mcpField
C
collecting-indicators-of-compromise

collecting-indicators-of-compromise

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

关于 collecting-indicators-of-compromise

面向事件响应人员的失陷指标(IOC)收集指南,涵盖从日志、取证和恶意软件分析中提取指标,并进行丰富、评分与分发。还说明如何用 STIX 2.1 与合作伙伴共享。

主要功能

  1. 01整理网络、主机和邮件指标
  2. 02从多类事件证据中提取 IOC
  3. 03补充威胁情报上下文
  4. 04评估置信度并确定优先级
  5. 05向防御系统和合作方分发

适用场景

  1. 01响应期间识别并阻断攻击基础设施
  2. 02为事后检测记录攻击者痕迹
  3. 03将 IOC 分享给 ISAC 或行业伙伴
  4. 04为 SIEM、EDR 和网络工具构建检测规则

安装

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill collecting-indicators-of-compromise

安装后在 Claude Code 中输入/collecting-indicators-of-compromise确认已加载。

包含的文件

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

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

收集入侵指标

何时使用

  • 在活跃的事件响应期间,用于识别和阻断对手基础设施
  • 在事件发生后,记录所有观察到的对手痕迹,以供未来检测
  • 在向 ISAC、行业合作伙伴或执法机构共享威胁情报时
  • 在 SIEM、EDR 或网络安全工具中构建检测规则时
  • 在使用威胁情报上下文丰富 IOC 以进行风险评分时

请勿使用于没有配套技术指标的行为 TTP 分析;行为特征描述请使用 MITRE ATT&CK 映射。

前提条件

  • 可访问事件证据来源:SIEM 日志、EDR 遥测、内存转储、磁盘镜像、网络捕获
  • 威胁情报平台(MISP、OpenCTI、ThreatConnect),用于 IOC 管理和共享
  • IOC 丰富工具:VirusTotal、OTX(AlienVault Open Threat Exchange)、Shodan、DomainTools
  • 熟悉 STIX 2.1,用于结构化 IOC 表示
  • 与相关 ISAC(FS-ISAC、H-ISAC、IT-ISAC)或行业合作伙伴签订共享协议

工作流

步骤 1:识别 IOC 类别

从事件证据中跨所有类别收集指标:

网络指标:

  • IP 地址(C2 服务、暂存服务器、外传目的地)
  • 域名(C2 域名、钓鱼域名、DGA 域名)
  • URL(恶意软件下载、C2 签到、外传端点)
  • JA3/JA3S 哈希(TLS 客户端/服务端指纹)
  • User-Agent 字符串(自定义或异常的 HTTP 标头)
  • DNS 查询模式(隧道特征、DGA 模式)

主机指标:

  • 文件哈希(恶意软件、工具、脚本的 MD5、SHA-1、SHA-256)
  • 文件路径(已知的恶意软件安装目录)
  • 注册表项(持久化机制、配置存储)
  • 计划任务和服务名称(持久化)
  • 互斥体/事件名称(恶意软件实例同步)
  • 命名管道(C2 通信通道,例如 Cobalt Strike)

电子邮件指标:

  • 发件人地址和域名(伪造或攻击者控制的)
  • 主题行和正文内容模式
  • 附件名称和哈希
  • 嵌入的 URL
  • 电子邮件标头异常(SPF/DKIM/DMARC 失败)
步骤 2:从证据来源提取 IOC

系统地从每个证据来源提取指标:

来自 SIEM/日志分析:

# Extract unique destination IPs from firewall logs
index=firewall action=blocked
| stats count by dest_ip
| where count > 100

# Extract domains from DNS query logs
index=dns query=*evil* OR query=*c2*
| stats count by query

来自内存取证:

# Extract network connections
vol -f memory.raw windows.netscan | grep ESTABLISHED

# Extract strings from suspicious process memory
vol -f memory.raw windows.memmap --pid 3847 --dump
strings -n 8 pid.3847.dmp | grep -E "(http|https)://"

来自恶意软件分析:

Sandbox Report IOC Extraction:
- Dropped files:      3 (hashes extracted)
- DNS queries:        update.evil[.]com, cdn.malware[.]net
- HTTP connections:   POST to https://185.220.101[.]42/gate.php
- Registry modified:  HKCU\Software\Microsoft\Windows\CurrentVersion\Run\svcupdate
- Mutex created:      Global\MTX_0x1234ABCD
- Named pipe:         \\.\pipe\MSSE-1234-server
步骤 3:使用上下文丰富 IOC

为每个指标添加威胁情报上下文:

IOC Enrichment Report:
━━━━━━━━━━━━━━━━━━━━━
IP: 185.220.101.42
  VirusTotal:     12/89 vendors flag as malicious
  Shodan:         Open ports: 443, 8443, 80
  Geolocation:    Netherlands, AS208476
  First Seen:     2025-10-01
  Threat Intel:   Associated with Qakbot C2 infrastructure
  Confidence:     High
  TLP:            AMBER

Domain: update.evil[.]com
  Registration:   2025-10-28 (recently registered)
  Registrar:      Namecheap
  WHOIS Privacy:  Yes
  VirusTotal:     8/89 vendors flag as malicious
  DNS History:    Resolved to 185.220.101.42, 91.215.85.17
  Confidence:     High
  TLP:            AMBER
步骤 4:对 IOC 进行评分和优先级排序

为每个指标分配置信度和风险评分:

分数置信度级别标准
90-100已确认恶意多个 TI 来源确认,在活跃攻击中观察到
70-89高度可疑单一 TI 来源确认,行为分析支持
50-69可疑TI 数据有限,上下文可疑
30-49未确认无 TI 匹配,但在环境中异常
0-29可能良性误报指标或合法基础设施
步骤 5:分发 IOC 以进行检测和阻断

将 IOC 推送到防御系统以提供即时保护:

  • 防火墙/IPS:阻断 C2 IP 和域名
  • DNS:对恶意域名进行 Sinkhole
  • EDR:将文件哈希添加到阻止列表,创建自定义 IOC 监视列表
  • 电子邮件网关:阻断发件人域名、附件哈希、恶意 URL
  • SIEM:为 IOC 匹配创建关联搜索
  • Web 代理:在 Web 过滤策略中阻断 URL 和域名
步骤 6:与合作伙伴共享 IOC

以 STIX 2.1 格式打包 IOC 以进行共享:

{
  "type": "indicator",
  "spec_version": "2.1",
  "id": "indicator--a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "created": "2025-11-15T18:00:00Z",
  "modified": "2025-11-15T18:00:00Z",
  "name": "Qakbot C2 Server IP",
  "indicator_types": ["malicious-activity"],
  "pattern": "[ipv4-addr:value = '185.220.101.42']",
  "pattern_type": "stix",
  "valid_from": "2025-11-15T14:23:00Z",
  "confidence": 95,
  "labels": ["c2", "qakbot"],
  "object_marking_refs": ["marking-definition--f88d31f6-486f-44da-b317-01333bde0b82"]
}

根据共享协议提交到 MISP、ISAC 门户和 TAXII 服务。

关键概念

术语定义
IOC(Indicator of Compromise,妥协指标)在安全事件中观测到的、表明对手存在的技术痕迹(哈希、IP、域名等)
TLP(Traffic Light Protocol,交通灯协议)对威胁情报共享限制进行分类的标准:WHITE、GREEN、AMBER、AMBER+STRICT、RED
STIX(Structured Threat Information Expression,结构化威胁信息表达)以结构化、机器可读格式表示网络威胁情报的标准语言
TAXII(Trusted Automated Exchange of Intelligence Information,可信情报信息自动交换)在组织之间共享 STIX 格式威胁情报的传输协议
置信度评分数值评分(0-100),表示分析师对某指标确实为恶意的确信程度
IOC 生命周期创建、验证、分发并最终在指标失去相关性后将其淘汰的过程
去活化(Defanging)修改报告中的恶意 URL 和域名以防止误点击的做法(如 evil[.]com)

工具与系统

  • MISP:开源威胁情报共享平台,用于管理、存储和分发 IOC
  • VirusTotal:多引擎恶意软件扫描与威胁情报平台,用于 IOC 富化
  • OpenCTI:原生支持 STIX 2.1 的开源网络威胁情报平台
  • Yeti:用于组织可观测对象、指标和 TTP 的开源平台
  • CyberChef:GCHQ 的数据转换工具,可用于解码、去活化和格式化 IOC

常见场景

场景:用于 ISAC 共享的事后 IOC 包

背景:在响应了一起导致 Cobalt Strike 部署的 Qakbot 感染后,IR 团队必须将所有 IOC 打包,以便与金融服务 ISAC(FS-ISAC)共享。

方法:

  1. 汇总调查中所有网络、主机和电子邮件指标
  2. 使用 VirusTotal 和 MISP 关联数据对每个 IOC 进行富化
  3. 根据直接观测还是二次关联来分配置信度评分
  4. 将所有 IOC 标记为 TLP:AMBER 以供合作伙伴共享
  5. 导出为 STIX 2.1 包并提交至 FS-ISAC TAXII 源
  6. 创建便于人类阅读的 IOC 摘要报告用于电子邮件分发

陷阱:

  • 在共享的 IOC 包中包含内部 IP 地址或主机名(信息泄露)
  • 将本应限制为 TLP:AMBER 的 IOC 以 TLP:WHITE 共享
  • 未在便于人类阅读的报告中为 URL 和域名去活化
  • 将合法 CDN 或云提供商的 IP 地址作为恶意 IOC 共享

输出格式

INDICATOR OF COMPROMISE REPORT
================================
Incident:     INC-2025-1547
Date:         2025-11-15
TLP:          AMBER
Sharing:      FS-ISAC, internal SOC

NETWORK INDICATORS
Type     | Value                    | Confidence | Context
---------|--------------------------|------------|--------
IPv4     | 185.220.101[.]42         | 95         | Qakbot C2 server
IPv4     | 91.215.85[.]17           | 90         | Cobalt Strike C2
Domain   | update.evil[.]com        | 95         | Staging domain
URL      | hxxps://185.220[.]101.42/gate.php | 95  | C2 check-in
JA3      | a0e9f5d64349fb13191bc7...| 80         | Qakbot TLS fingerprint

HOST INDICATORS
Type     | Value                    | Confidence | Context
---------|--------------------------|------------|--------
SHA-256  | a1b2c3d4e5f6...         | 100        | Qakbot dropper
SHA-256  | b2c3d4e5f6a7...         | 100        | Cobalt Strike beacon
FilePath | C:\Users\*\AppData\Local\Temp\update.exe | 85 | Dropper location
RegKey   | HKCU\...\Run\svcupdate  | 90         | Persistence
Mutex    | Global\MTX_0x1234ABCD   | 95         | Qakbot instance lock
Task     | WindowsUpdate           | 90         | Scheduled task persistence

EMAIL INDICATORS
Type     | Value                    | Confidence | Context
---------|--------------------------|------------|--------
Sender   | billing@spoofed[.]com   | 95         | Phishing sender
Subject  | "Invoice-Nov2025"       | 70         | Phishing subject line
Hash     | c3d4e5f6a7b8...         | 100        | Malicious .docm attachment

TOTAL: 14 indicators | HIGH confidence avg: 91

评论

支持 Markdown