# Analyzing Indicators Of Compromise

> >

- **Type:** Skill
- **Install:** `agentstack add skill-killvxk-cybersecurity-skills-zh-analyzing-indicators-of-compromise`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [killvxk](https://agentstack.voostack.com/s/killvxk)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [killvxk](https://github.com/killvxk)
- **Source:** https://github.com/killvxk/cybersecurity-skills-zh/tree/master/skills/analyzing-indicators-of-compromise

## Install

```sh
agentstack add skill-killvxk-cybersecurity-skills-zh-analyzing-indicators-of-compromise
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 分析失陷指标

## 适用场景

在以下情况下使用本技能：
- 钓鱼邮件或告警产生需要快速分诊的 IOC（URL、IP 地址、文件哈希）
- 自动化情报推送批量投递需要在进入封锁控制前进行置信度评分的 IOC
- 事件调查需要对观察到的网络工件进行上下文富化

**不适用于**将本技能单独用于高风险封锁决策——始终将自动化富化与分析师判断结合使用，特别是对于共享基础设施（CDN、云服务商）的情况。

## 前置条件

- VirusTotal API 密钥（免费或企业版），用于多引擎杀毒软件和沙箱查询
- AbuseIPDB API 密钥，用于 IP 信誉检查
- MISP 实例或威胁情报平台（TIP），用于与已知攻击活动交叉核对
- 安装有 `requests` 和 `vt-py` 库的 Python，或带有预构建连接器的 SOAR 平台

## 工作流程

### 步骤 1：规范化并分类 IOC 类型

在富化之前，对每个 IOC 进行分类：
- **IPv4/IPv6 地址**：检查是否为 RFC 1918 私有地址（跳过外部富化），验证格式
- **域名/FQDN**：为安全处理进行去激活（`evil[.]com`），使用 tldextract 提取注册域名
- **URL**：分别提取域名和路径；检查是否存在重定向
- **文件哈希**：识别哈希类型（MD5/SHA-1/SHA-256）；优先使用 SHA-256 确保唯一性
- **电子邮件地址**：拆分为域名部分（检查 MX/DMARC）和本地部分进行模式分析

在文档中对 IOC 进行去激活处理（将 `.` 替换为 `[.]`，将 `://` 替换为 `[://]`），防止意外点击。

### 步骤 2：多源富化

**VirusTotal（文件哈希、URL、IP、域名）**：
```python
import vt

client = vt.Client("YOUR_VT_API_KEY")

# 文件哈希查询
file_obj = client.get_object(f"/files/{sha256_hash}")
detections = file_obj.last_analysis_stats
print(f"Malicious: {detections['malicious']}/{sum(detections.values())}")

# 域名分析
domain_obj = client.get_object(f"/domains/{domain}")
print(domain_obj.last_analysis_stats)
print(domain_obj.reputation)
client.close()
```

**AbuseIPDB（IP 地址）**：
```python
import requests

response = requests.get(
    "https://api.abuseipdb.com/api/v2/check",
    headers={"Key": "YOUR_KEY", "Accept": "application/json"},
    params={"ipAddress": "1.2.3.4", "maxAgeInDays": 90}
)
data = response.json()["data"]
print(f"Confidence: {data['abuseConfidenceScore']}%, Reports: {data['totalReports']}")
```

**MalwareBazaar（文件哈希）**：
```python
response = requests.post(
    "https://mb-api.abuse.ch/api/v1/",
    data={"query": "get_info", "hash": sha256_hash}
)
result = response.json()
if result["query_status"] == "ok":
    print(result["data"][0]["tags"], result["data"][0]["signature"])
```

### 步骤 3：结合攻击活动溯源归因进行上下文分析

在 MISP 中查询匹配 IOC 的现有事件：
```python
from pymisp import PyMISP

misp = PyMISP("https://misp.example.com", "API_KEY")
results = misp.search(value="evil-domain.com", type_attribute="domain")
for event in results:
    print(event["Event"]["info"], event["Event"]["threat_level_id"])
```

使用 Shodan 获取 IP 上下文（托管服务商、开放端口、Banner 信息），识别 IP 是否属于防弹托管（Bulletproof Hosting）或合法云服务商（存在误报风险）。

### 步骤 4：分配置信度分数和处置决定

应用分层决策框架：
- **封锁（高置信度 ≥70%）**：VirusTotal ≥15 个引擎检测为恶意，AbuseIPDB 分数 ≥70，匹配已知恶意软件家族或攻击活动
- **监控/告警（中置信度 40-69%）**：5-14 个引擎检测，AbuseIPDB 分数中等，无攻击活动溯源
- **白名单/调查（低置信度 <40%）**：≤4 个引擎检测，无滥用报告，合法服务（Google、Cloudflare CDN IP）
- **误报（False Positive）**：被错误标记的合法业务服务；记录并从未来告警中排除

### 步骤 5：记录并分发

在 TIP/MISP 中记录发现结果，包含：
- 收集的所有富化数据（时间戳、来源、分数）
- 处置决定及理由
- 已采取的封锁措施（防火墙、代理、DNS 黑洞）
- 相关事件工单编号

以适当置信度字段导出为 STIX 指标（indicator）对象。

## 核心概念

| 术语 | 定义 |
|------|-----------|
| **IOC（失陷指标）** | 表明潜在失陷的可观测网络或主机工件 |
| **富化（Enrichment）** | 从多个情报来源向原始 IOC 添加上下文数据的过程 |
| **去激活（Defanging）** | 修改 IOC（将 `.` 替换为 `[.]`）以防止在文档中意外激活 |
| **误报率（False Positive Rate）** | 被错误标记为恶意的良性工件百分比；对于调整封锁阈值至关重要 |
| **黑洞（Sinkhole）** | 将恶意域名查询重定向到良性 IP 的 DNS 服务器，用于在不完全封锁流量的情况下进行检测 |
| **TTL** | IOC 在封锁控制中的存活时间；IP 指标应在 30 天后过期，域名在 90 天后过期 |

## 工具与系统

- **VirusTotal**：多引擎恶意软件扫描器和威胁情报平台，拥有 70+ 杀毒引擎、沙箱报告和社区评论
- **AbuseIPDB**：社区维护的 IP 信誉数据库，具有 90 天滥用报告历史
- **MalwareBazaar (abuse.ch)**：免费恶意软件哈希仓库，关联 YARA 规则并进行恶意软件家族标记
- **URLScan.io**：免费 URL 分析服务，捕获截图、DOM 和网络请求用于钓鱼 URL 分诊
- **Shodan**：全网扫描数据，提供托管服务商、开放端口和 Banner 信息用于 IP 富化

## 常见陷阱

- **封锁共享基础设施**：CDN IP（Cloudflare 104.21.x.x、AWS CloudFront）可能合法托管恶意内容，但封锁该 IP 会中断成千上万个合法站点。
- **过度依赖 VirusTotal 分数**：低 VirusTotal 检测数量并不意味着安全——零日恶意软件和自定义 APT 工具初始得分通常为 0。需检查沙箱行为、MISP 和被动 DNS。
- **遗漏去激活**：在邮件或 Confluence 文档中粘贴活跃 IOC 可能触发自动 URL 扫描器或钓鱼工具。
- **无过期策略**：没有 TTL 的 IOC 会无限期积累在封锁列表中，当基础设施被合法用户重新利用时产生误报。
- **过度依赖单一来源**：VirusTotal 汇聚了杀毒软件的意见——所有意见都可能是错误的或落后于新兴恶意软件。高风险决策应使用 3 个以上独立来源。

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [killvxk](https://github.com/killvxk)
- **Source:** [killvxk/cybersecurity-skills-zh](https://github.com/killvxk/cybersecurity-skills-zh)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-killvxk-cybersecurity-skills-zh-analyzing-indicators-of-compromise
- Seller: https://agentstack.voostack.com/s/killvxk
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
