automating-ioc-enrichment
使用 SOAR 平台、Python 流水线或 TIP Playbook 自动化对原始失陷指标(IOC)进行多源威胁情报上下文富化,以减少分析师分诊时间并标准化富化输出。适用于构建与 SIEM 告警、邮件提交流水线或威胁情报批量 IOC 处理集成的自动化富化工作流时使用。
Best use case
automating-ioc-enrichment is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用 SOAR 平台、Python 流水线或 TIP Playbook 自动化对原始失陷指标(IOC)进行多源威胁情报上下文富化,以减少分析师分诊时间并标准化富化输出。适用于构建与 SIEM 告警、邮件提交流水线或威胁情报批量 IOC 处理集成的自动化富化工作流时使用。
Teams using automating-ioc-enrichment 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/automating-ioc-enrichment/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How automating-ioc-enrichment Compares
| Feature / Agent | automating-ioc-enrichment | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用 SOAR 平台、Python 流水线或 TIP Playbook 自动化对原始失陷指标(IOC)进行多源威胁情报上下文富化,以减少分析师分诊时间并标准化富化输出。适用于构建与 SIEM 告警、邮件提交流水线或威胁情报批量 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 富化
## 适用场景
在以下情况下使用本技能:
- 构建 SOAR Playbook,在将 SIEM 告警路由给分析师之前自动为其添加威胁情报上下文
- 创建用于对钓鱼邮件提交进行批量 IOC 富化的 Python 流水线
- 通过预填充来自 VirusTotal、Shodan 和 MISP 的告警上下文,降低分析师平均分诊时间(MTTT)
**不适用于**在没有人工审查的情况下进行全自动封锁决策——富化自动化应该辅助决策,而非对高影响行动自主执行封锁。
## 前置条件
- SOAR 平台(Cortex XSOAR、Splunk SOAR、Tines 或 n8n)或 Python 3.9+ 环境
- API 密钥:VirusTotal、AbuseIPDB、Shodan,以及至少一个 TIP(MISP 或 OpenCTI)
- 用于告警消费的 SIEM 集成端点
- 记录在案的每个 API 速率限制预算(VirusTotal:免费版 4/分钟,企业版 500/分钟)
## 工作流程
### 步骤 1:设计富化流水线架构
为每种 IOC 类型定义富化流程:
```
SIEM 告警 → 提取 IOC → 分类类型 → 路由到富化函数
IP 地址 → AbuseIPDB + Shodan + VirusTotal IP + MISP
域名 → VirusTotal Domain + PassiveTotal + Shodan + MISP
URL → URLScan.io + VirusTotal URL + Google Safe Browse
文件哈希 → VirusTotal Files + MalwareBazaar + MISP
→ 聚合结果 → 计算置信度分数 → 更新告警 → 通知分析师
```
### 步骤 2:实现 Python 富化函数
```python
import requests
import time
from dataclasses import dataclass, field
from typing import Optional
RATE_LIMIT_DELAY = 0.25 # VirusTotal 免费版速率限制:4 请求/秒
@dataclass
class EnrichmentResult:
ioc_value: str
ioc_type: str
vt_malicious: int = 0
vt_total: int = 0
abuse_confidence: int = 0
shodan_ports: list = field(default_factory=list)
misp_events: list = field(default_factory=list)
confidence_score: int = 0
def enrich_ip(ip: str, vt_key: str, abuse_key: str, shodan_key: str) -> EnrichmentResult:
result = EnrichmentResult(ip, "ip")
# VirusTotal IP 查询
vt_resp = requests.get(
f"https://www.virustotal.com/api/v3/ip_addresses/{ip}",
headers={"x-apikey": vt_key}
)
if vt_resp.status_code == 200:
stats = vt_resp.json()["data"]["attributes"]["last_analysis_stats"]
result.vt_malicious = stats.get("malicious", 0)
result.vt_total = sum(stats.values())
time.sleep(RATE_LIMIT_DELAY)
# AbuseIPDB
abuse_resp = requests.get(
"https://api.abuseipdb.com/api/v2/check",
headers={"Key": abuse_key, "Accept": "application/json"},
params={"ipAddress": ip, "maxAgeInDays": 90}
)
if abuse_resp.status_code == 200:
result.abuse_confidence = abuse_resp.json()["data"]["abuseConfidenceScore"]
# 计算复合置信度分数
result.confidence_score = min(
(result.vt_malicious / max(result.vt_total, 1)) * 60 +
(result.abuse_confidence / 100) * 40, 100
)
return result
def enrich_hash(sha256: str, vt_key: str) -> EnrichmentResult:
result = EnrichmentResult(sha256, "sha256")
vt_resp = requests.get(
f"https://www.virustotal.com/api/v3/files/{sha256}",
headers={"x-apikey": vt_key}
)
if vt_resp.status_code == 200:
stats = vt_resp.json()["data"]["attributes"]["last_analysis_stats"]
result.vt_malicious = stats.get("malicious", 0)
result.vt_total = sum(stats.values())
result.confidence_score = int((result.vt_malicious / max(result.vt_total, 1)) * 100)
return result
```
### 步骤 3:构建 SOAR Playbook(Cortex XSOAR)
在 Cortex XSOAR 中创建富化 Playbook:
1. **触发器**:SIEM 中创建告警(通过 Webhook 或轮询)
2. **提取 IOC**:使用"提取指标"任务,配合 IP、域名、URL、哈希的正则模式
3. **并行富化**:扇出到多个富化任务同步执行
4. **VirusTotal 富化**:调用 `!vt-file-scan` 或 `!vt-ip-scan` 命令
5. **AbuseIPDB 检查**:调用 `!abuseipdb-check-ip` 命令
6. **MISP 查询**:调用 `!misp-search` 进行交叉核对
7. **分数聚合**:计算复合分数的 Python 转换任务
8. **条件路由**:分数 ≥70 → 高优先级队列;40-69 → 中等;<40 → 自动关闭并记录
9. **告警富化**:将富化结果写入告警上下文供分析师查看
### 步骤 4:处理速率限制和失败
```python
import time
from functools import wraps
def rate_limited(max_per_second):
min_interval = 1.0 / max_per_second
def decorator(func):
last_called = [0.0]
@wraps(func)
def wrapper(*args, **kwargs):
elapsed = time.time() - last_called[0]
wait = min_interval - elapsed
if wait > 0:
time.sleep(wait)
result = func(*args, **kwargs)
last_called[0] = time.time()
return result
return wrapper
return decorator
def retry_on_429(max_retries=3):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
for attempt in range(max_retries):
response = func(*args, **kwargs)
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 60))
time.sleep(retry_after)
else:
return response
return wrapper
return decorator
```
### 步骤 5:指标和调优
每周追踪流水线性能:
- **富化延迟**:目标 <30 秒(从告警触发到富化输出)
- **API 成功率**:目标 >99%(识别速率限制或中断事件)
- **真正例率**:追踪分析师对自动化置信度分数的覆盖情况
- **成本**:追踪 API 调用量与预算对比(VirusTotal Enterprise:每 100 万次查询 $X)
## 核心概念
| 术语 | 定义 |
|------|-----------|
| **SOAR** | 安全编排、自动化和响应——用于自动化安全工作流程并集成不同工具的平台 |
| **富化 Playbook** | 向原始安全事件添加上下文情报的自动化工作流序列 |
| **速率限制** | API 提供商对请求频率的限制(如 VirusTotal 免费版:4 请求/分钟);流水线必须遵守这些限制 |
| **复合置信度分数** | 使用加权公式从多个富化来源聚合信号的单一分数 |
| **扇出模式** | 并行执行多个富化查询以最小化总富化延迟 |
## 工具与系统
- **Cortex XSOAR(Palo Alto)**:企业级 SOAR,拥有 700+ 市场集成,包括 VirusTotal、MISP、Shodan 和 AbuseIPDB
- **Splunk SOAR(Phantom)**:基于 Python Playbook 的 SOAR 平台;原生 Splunk SIEM 集成
- **Tines**:无代码 SOAR 平台,基于 Webhook 的自动化;对小团队具有成本效益
- **TheHive + Cortex**:开源 IR/富化平台,通过 Cortex 分析器进行可观察对象富化
## 常见陷阱
- **富化延迟导致阻塞**:如果富化超过 5 分钟,分析师会开始处理未富化的告警,使富化失去意义。设置超时限制并提供部分结果。
- **无缓存**:对同一 IOC 查询 50 次会产生不必要的 API 费用。默认将富化结果缓存 24 小时。
- **静默忽略 API 失败**:失败的富化调用应被记录并触发回退逻辑,而非静默产生看似干净的空结果。
- **仅凭富化分数自动封锁**:复合分数包含误报;对共享基础设施的封锁决策需要人工确认。Related Skills
performing-malware-hash-enrichment-with-virustotal
使用 VirusTotal API 富化恶意软件文件哈希,获取检测率、行为分析、YARA 匹配和上下文威胁情报,用于事件分类和 IOC 验证。
performing-ioc-enrichment-automation
通过编排 VirusTotal、AbuseIPDB、Shodan、MISP 和其他情报源的查询, 自动化入侵指标(IOC)丰富化,提供上下文评分和处置建议。 适用于 SOC 分析师在告警分诊或事件调查期间需要对 IP、域名、URL 和文件哈希 进行快速多源丰富化时。
building-threat-intelligence-enrichment-in-splunk
使用查询表、模块化输入和威胁情报框架,在 Splunk Enterprise Security 中构建自动化威胁情报富化流水线
building-ioc-enrichment-pipeline-with-opencti
OpenCTI 是一个以 STIX 2.1 为原生数据模型的开源网络威胁情报知识管理平台。本技能涵盖使用 OpenCTI 连接器生态系统构建自动化 IOC 富化流水线,通过 VirusTotal、Shodan、AbuseIPDB、GreyNoise 等来源对指标进行富化。
triaging-vulnerabilities-with-ssvc-framework
使用 CISA 的利益相关方特定漏洞分类(SSVC)决策树框架对漏洞进行分类和优先排序,产出可操作的修复优先级:Track、Track*、Attend 或 Act。
triaging-security-incident
使用 NIST SP 800-61r3 和 SANS PICERL 框架对安全事件进行初始分类,确定严重性、范围和所需响应行动。 按类型对事件分类,根据业务影响分配优先级,并路由到相应的响应团队。适用于事件分类、 安全告警分类、严重性评估、事件优先级排序或初始事件分析等请求场景。
triaging-security-incident-with-ir-playbook
使用结构化 IR Playbook 对安全事件进行分类和优先排序,确定严重性、分配响应团队并启动适当的响应程序。
triaging-security-alerts-in-splunk
在 Splunk Enterprise Security 中对安全告警进行分类,通过 SPL 查询和事件审查(Incident Review) 仪表板对重要事件进行严重性分类、调查、关联相关遥测并做出升级或关闭决策。 适用于 SOC 分析师需要处理关联搜索产生的告警队列、确定调查优先级, 或需要为交接给二/三级分析师记录分类决策时。
tracking-threat-actor-infrastructure
威胁行为者基础设施追踪涉及使用被动 DNS、证书透明度日志、Shodan/Censys 扫描、WHOIS 分析和网络指纹技术,对对手控制的 C2 服务器、钓鱼域名和暂存服务器等资产进行监控、映射和持续追踪
testing-websocket-api-security
测试 WebSocket API 实现中的安全漏洞,包括 WebSocket 升级时缺少身份认证、跨站 WebSocket 劫持(Cross-Site WebSocket Hijacking,CSWSH)、通过 WebSocket 消息进行的注入攻击、输入校验不足、通过消息泛洪实施拒绝服务,以及通过 WebSocket 帧造成的信息泄露。测试人员使用 Burp Suite 拦截 WebSocket 握手和消息,构造恶意 payload,并测试 WebSocket 通道上的授权绕过。适用于 WebSocket 安全测试、WS 渗透测试、CSWSH 攻击或实时 API 安全评估相关请求。
testing-oauth2-implementation-flaws
测试 OAuth 2.0 和 OpenID Connect 实现中的安全缺陷,包括授权码拦截、重定向 URI 操控、OAuth 流程中的 CSRF、令牌泄露、权限范围(scope)提升以及 PKCE 绕过。测试人员对授权服务器、客户端应用及令牌处理进行评估,发现可导致账户接管或未授权访问的常见错误配置。适用于 OAuth 安全测试、OIDC 漏洞评估、OAuth2 重定向绕过或授权码流程测试相关请求。
testing-mobile-api-authentication
测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。