collecting-indicators-of-compromise

在安全事件期间和之后,系统性地收集、分类和分发失陷指标(Indicators of Compromise,IOC),以支持检测、阻断和威胁情报共享。涵盖网络、主机、邮件和行为指标,使用 STIX/TAXII 格式和威胁情报平台。适用于 IOC 收集、指标提取、威胁指标共享、失陷指标、STIX 导出或 IOC 情报丰富化相关请求。

9 stars

Best use case

collecting-indicators-of-compromise is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

在安全事件期间和之后,系统性地收集、分类和分发失陷指标(Indicators of Compromise,IOC),以支持检测、阻断和威胁情报共享。涵盖网络、主机、邮件和行为指标,使用 STIX/TAXII 格式和威胁情报平台。适用于 IOC 收集、指标提取、威胁指标共享、失陷指标、STIX 导出或 IOC 情报丰富化相关请求。

Teams using collecting-indicators-of-compromise should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/collecting-indicators-of-compromise/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/collecting-indicators-of-compromise/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/collecting-indicators-of-compromise/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How collecting-indicators-of-compromise Compares

Feature / Agentcollecting-indicators-of-compromiseStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

在安全事件期间和之后,系统性地收集、分类和分发失陷指标(Indicators of Compromise,IOC),以支持检测、阻断和威胁情报共享。涵盖网络、主机、邮件和行为指标,使用 STIX/TAXII 格式和威胁情报平台。适用于 IOC 收集、指标提取、威胁指标共享、失陷指标、STIX 导出或 IOC 情报丰富化相关请求。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 收集失陷指标(IOC)

## 适用场景

- 在主动事件响应期间,识别并阻断对手基础设施
- 事件结束后,记录所有观察到的对手产物,用于未来检测
- 向 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/日志分析:**
```
# 从防火墙日志中提取唯一目标 IP
index=firewall action=blocked
| stats count by dest_ip
| where count > 100

# 从 DNS 查询日志中提取域名
index=dns query=*evil* OR query=*c2*
| stats count by query
```

**从内存取证:**
```bash
# 提取网络连接
vol -f memory.raw windows.netscan | grep ESTABLISHED

# 从可疑进程内存中提取字符串
vol -f memory.raw windows.memmap --pid 3847 --dump
strings -n 8 pid.3847.dmp | grep -E "(http|https)://"
```

**从恶意软件分析:**
```
沙箱报告 IOC 提取:
- 释放的文件:      3 个(哈希已提取)
- DNS 查询:        update.evil[.]com, cdn.malware[.]net
- HTTP 连接:       POST 到 https://185.220.101[.]42/gate.php
- 修改的注册表:    HKCU\Software\Microsoft\Windows\CurrentVersion\Run\svcupdate
- 创建的互斥量:    Global\MTX_0x1234ABCD
- 命名管道:        \\.\pipe\MSSE-1234-server
```

### 步骤 3:用上下文对 IOC 进行情报丰富化

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

```
IOC 情报丰富化报告:
━━━━━━━━━━━━━━━━━━━━━
IP: 185.220.101.42
  VirusTotal:     12/89 家厂商标记为恶意
  Shodan:         开放端口:443, 8443, 80
  地理位置:       荷兰,AS208476
  首次发现:       2025-10-01
  威胁情报:       与 Qakbot C2 基础设施关联
  置信度:         高
  TLP:            AMBER

域名: update.evil[.]com
  注册时间:       2025-10-28(近期注册)
  注册商:         Namecheap
  WHOIS 隐私:     是
  VirusTotal:     8/89 家厂商标记为恶意
  DNS 历史:       曾解析到 185.220.101.42, 91.215.85.17
  置信度:         高
  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

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

```json
{
  "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 服务器 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(失陷指标)** | 安全事件期间观察到的、表明对手存在的技术产物(哈希、IP、域名等) |
| **TLP(流量灯协议)** | 威胁情报共享限制分类标准:WHITE、GREEN、AMBER、AMBER+STRICT、RED |
| **STIX(结构化威胁信息表达)** | 以结构化、机器可读格式表示网络威胁情报的标准语言 |
| **TAXII(可信自动化情报交换信息)** | 在组织间共享 STIX 格式威胁情报的传输协议 |
| **置信度评分** | 表示分析师确信某指标为真实恶意的数字评级(0-100) |
| **IOC 生命周期** | 创建、验证、分发并最终在指标失去相关性时予以退役的过程 |
| **去毒化(Defanging)** | 在报告中修改恶意 URL 和域名以防止意外点击的做法(例如 evil[.]com) |

## 工具与系统

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

## 常见场景

### 场景:为 ISAC 共享准备事件后 IOC 包

**场景背景**:在响应 Qakbot 感染并导致 Cobalt Strike 部署后,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 共享

## 输出格式

```
失陷指标报告
================================
事件:      INC-2025-1547
日期:      2025-11-15
TLP:       AMBER
共享对象:  FS-ISAC, 内部 SOC

网络指标
类型     | 值                               | 置信度 | 上下文
---------|----------------------------------|--------|--------
IPv4     | 185.220.101[.]42                 | 95     | Qakbot C2 服务器
IPv4     | 91.215.85[.]17                   | 90     | Cobalt Strike C2
域名     | update.evil[.]com                | 95     | 暂存域名
URL      | hxxps://185.220[.]101.42/gate.php| 95     | C2 签到地址
JA3      | a0e9f5d64349fb13191bc7...        | 80     | Qakbot TLS 指纹

主机指标
类型     | 值                               | 置信度 | 上下文
---------|----------------------------------|--------|--------
SHA-256  | a1b2c3d4e5f6...                  | 100    | Qakbot 加载器
SHA-256  | b2c3d4e5f6a7...                  | 100    | Cobalt Strike 信标
文件路径 | C:\Users\*\AppData\Local\Temp\update.exe | 85 | 加载器位置
注册表键 | HKCU\...\Run\svcupdate           | 90     | 持久化
互斥量   | Global\MTX_0x1234ABCD            | 95     | Qakbot 实例锁
计划任务 | WindowsUpdate                    | 90     | 计划任务持久化

邮件指标
类型     | 值                               | 置信度 | 上下文
---------|----------------------------------|--------|--------
发件人   | billing@spoofed[.]com            | 95     | 钓鱼发件人
主题     | "Invoice-Nov2025"                | 70     | 钓鱼主题行
哈希     | c3d4e5f6a7b8...                  | 100    | 恶意 .docm 附件

总计:14 个指标 | 高置信度平均值:91
```

Related Skills

performing-active-directory-compromise-investigation

9
from killvxk/cybersecurity-skills-zh

通过分析认证日志、复制元数据、组策略变更和 Kerberos 票据异常,调查 Active Directory 攻陷事件,识别攻击者持久化机制和横向移动路径。

investigating-insider-threat-indicators

9
from killvxk/cybersecurity-skills-zh

调查内部威胁(Insider Threat)指标,包括数据渗漏(Data Exfiltration)尝试、未授权访问模式、 策略违规和离职前行为,结合 SIEM 分析、DLP 告警和 HR 数据关联进行调查。 适用于 SOC 团队收到 HR 内部威胁转介、检测到员工异常数据移动, 或需要为潜在内部威胁建立调查时间线时。

hunting-for-supply-chain-compromise

9
from killvxk/cybersecurity-skills-zh

狩猎供应链入侵指标,包括木马化软件更新、受损依赖项、未授权代码修改和被篡改的构建产物。

hunting-for-spearphishing-indicators

9
from killvxk/cybersecurity-skills-zh

跨电子邮件日志、终端遥测和网络数据狩猎鱼叉式网络钓鱼活动指标,检测定向邮件攻击。

hunting-for-data-exfiltration-indicators

9
from killvxk/cybersecurity-skills-zh

通过网络流量分析狩猎数据外泄行为,检测异常数据流、DNS 隧道、云存储上传以及加密通道滥用。

detecting-email-account-compromise

9
from killvxk/cybersecurity-skills-zh

通过分析收件箱规则创建、可疑登录位置、邮件转发规则和异常 API 访问模式,检测受攻陷的 O365 和 Google Workspace 邮件账号。

detecting-compromised-cloud-credentials

9
from killvxk/cybersecurity-skills-zh

通过分析异常 API 活动、不可能旅行模式、未授权资源配置以及凭据滥用指标,使用 GuardDuty、Defender for Identity 和 SCC 事件威胁检测,检测 AWS、Azure 和 GCP 中被盗用的云凭据。

detecting-business-email-compromise

9
from killvxk/cybersecurity-skills-zh

商业邮件欺诈(BEC)是一种复杂的欺诈方案,攻击者冒充高管、供应商或可信合作伙伴,诱骗员工转账、共享敏感数据或更改付款信息。本技能涵盖使用邮件网关规则、行为分析和财务流程控制进行 BEC 检测。

detecting-business-email-compromise-with-ai

9
from killvxk/cybersecurity-skills-zh

部署 AI 和 NLP 驱动的检测系统,通过分析写作风格、行为模式和上下文异常来识别规避传统基于规则的过滤器的商业邮件欺诈(BEC)攻击。

collecting-volatile-evidence-from-compromised-host

9
from killvxk/cybersecurity-skills-zh

按照易失性顺序从受攻陷系统收集易失性取证证据,在数据丢失前保全内存、网络连接、进程和系统状态。

collecting-threat-intelligence-with-misp

9
from killvxk/cybersecurity-skills-zh

MISP(恶意软件信息共享平台)是一个开源威胁情报平台,用于收集、共享、存储和关联定向攻击的失陷指标(IOC)、威胁情报、金融欺诈信息、漏洞信息或反恐信息。

collecting-open-source-intelligence

9
from killvxk/cybersecurity-skills-zh

使用公开可用的数据源、被动侦察工具和暗网监控,收集并综合关于威胁行为者、恶意基础设施和攻击活动的开源情报(OSINT)。适用于调查外部威胁行为者基础设施、为授权红队评估执行预参与侦察,或使用公开对手上下文丰富 CTI 报告。适用于涉及 Maltego、Shodan、OSINT framework、SpiderFoot 或基础设施侦察的请求。