# Collecting Indicators Of Compromise

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

- Skill: `killvxk/collecting-indicators-of-compromise` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add killvxk/collecting-indicators-of-compromise`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/collecting-indicators-of-compromise/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/collecting-indicators-of-compromise

---


# 收集失陷指标（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
```

