AbhigyanPratap007/THREAT-INTELLIGENCE-IOC-ENRICHMENT-TOOL
GitHub: AbhigyanPratap007/THREAT-INTELLIGENCE-IOC-ENRICHMENT-TOOL
一款基于 Python 和 VirusTotal API 的威胁情报 IOC 富化工具,支持批量分析 IP、域名、URL 和文件哈希并自动生成带威胁评分的结构化报告。
Stars: 0 | Forks: 0
# 威胁情报 IOC 富化工具
一个基于 Python 的威胁情报富化工具,它使用 VirusTotal API 来分析和分类失陷指标 (IOC),包括 IP 地址、域名、URL 和文件哈希。
该工具支持 IOC 类型检测、批量 IOC 处理、威胁评分、生成 JSON/CSV 报告,并根据 VirusTotal 安全厂商的恶意和可疑判定计数提供分析师风格的建议。它被设计为一款实用的蓝队工具,适用于 SOC 分流、威胁情报富化、恶意软件调查支持以及事件响应工作流。
## 项目摘要
**项目:** 威胁情报 IOC 富化工具
**工具:** Python, VirusTotal API
**重点领域:** 威胁情报, IOC 分析, SOC 自动化, 恶意软件分析支持
**状态:** 可用的作品集项目
使用 VirusTotal API 开发了一个基于 Python 的威胁情报富化工具,用于分析 IP、域名、URL 和文件哈希。实现了对 4 种 IOC 类型的支持、批量 IOC 处理、威胁评分,以及生成带有分析师风格建议的 JSON/CSV 报告,这些建议基于 60 多家安全厂商的恶意判定计数。使用已知的恶意软件哈希验证了该工具,以便为 SOC 工作流生成结构化的威胁情报报告。
## 核心功能
- 分析多种 IOC 类型:
- IP 地址
- 域名
- URL
- 文件哈希:MD5, SHA1, SHA256
- 使用 VirusTotal API v3 进行富化
- 自动检测 IOC 类型
- 支持单个 IOC 分析
- 支持从文本文件进行批量 IOC 处理
- 根据恶意和可疑判定计数分配威胁等级
- 生成分析师风格的建议
- 以 JSON 和 CSV 格式导出结构化报告
- 处理常见的 API 状况,包括:
- 未找到 IOC
- API 速率限制
- API 请求错误
- 使用环境变量将 VirusTotal API 密钥保留在源代码之外
## 使用的技术
- Python 3
- VirusTotal API v3
- requests
- argparse
- csv
- json
- base64
- regex
## 仓库结构
```
ioc-threat-intel-enricher/
|
├── threat_intel_enricher.py
├── requirements.txt
├── iocs.txt
├── threat_intel_report.json
├── threat_intel_report.csv
├── README.md
└── screenshots/
├── terminal_output.png
└── sample_report.png
```
## 安装说明
克隆仓库:
```
git clone https://github.com/YOUR_USERNAME/ioc-threat-intel-enricher.git
cd ioc-threat-intel-enricher
```
安装依赖项:
```
pip install -r requirements.txt
```
## requirements.txt
```
requests
```
## VirusTotal API 设置
此工具需要 VirusTotal API 密钥。
1. 创建或登录 VirusTotal 账户。
2. 前往您的 API 密钥页面。
3. 复制您的 API 密钥。
4. 将其设置为环境变量。
### Windows PowerShell
```
$env:VT_API_KEY="YOUR_API_KEY_HERE"
```
### Linux/macOS
```
export VT_API_KEY="YOUR_API_KEY_HERE"
```
不应将 API 密钥硬编码到 Python 脚本中或上传到 GitHub。
## 用法
### 分析单个 IOC
```
python threat_intel_enricher.py -i 8.8.8.8
```
### 分析域名
```
python threat_intel_enricher.py -i google.com
```
### 分析 URL
```
python threat_intel_enricher.py -i https://example.com
```
### 分析文件哈希
```
python threat_intel_enricher.py -i 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f
```
## 批量 IOC 处理
创建一个名为 `iocs.txt` 的文件,每行一个 IOC:
```
8.8.8.8
google.com
https://example.com
275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f
```
以批量模式运行该工具:
```
python threat_intel_enricher.py -f iocs.txt
```
## 输出文件
默认情况下,该工具会生成两个结构化的输出文件:
```
threat_intel_report.json
threat_intel_report.csv
```
您也可以指定自定义输出名称:
```
python threat_intel_enricher.py -f iocs.txt --json results.json --csv results.csv
```
## 终端输出示例
```
Threat Intelligence Report
==================================================
ioc: 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f
ioc_type: file_hash
status: success
malicious: 66
suspicious: 0
harmless: 0
undetected: 2
reputation: 3742
threat_level: HIGH
recommendation: Block immediately and investigate related activity.
generated_at: 2026-05-22T17:06:58.451962
```
## 威胁评分逻辑
该工具根据 VirusTotal 的恶意和可疑判定计数分配威胁等级。
| 威胁等级 | 逻辑 | 分析师含义 |
|---|---|---|
| HIGH | 20+ 次恶意检测 | 强烈的恶意共识。阻止并调查。 |
| MEDIUM | 5+ 次恶意或可疑检测 | 潜在威胁。查看日志和相关活动。 |
| LOW | 1-4 次恶意/可疑检测 | 弱信号。建议人工审查。 |
| INFO | 无检测但具有负面信誉 | 无确认的检测,但应审查上下文。 |
| CLEAN/UNKNOWN | 无恶意/可疑检测 | 未发现即时的恶意指标。 |
## 分析师建议
该工具根据 IOC 风险等级生成实用建议,例如:
- 立即阻止并调查相关的端点、网络和用户活动。
- 调查 IOC 并检查相关日志。
- 在采取行动之前进行人工审查。
- 在信任具有负面信誉的指标之前审查上下文。
- 未检测到即时的恶意指标。
这些建议旨在支持 SOC 分流,并应结合内部日志、资产上下文和业务影响进行验证。
## SOC 用例
此项目可以支持初级 SOC 和蓝队工作流,例如:
- IOC 分流
- 恶意软件哈希信誉检查
- 威胁情报富化
- 事件响应调查
- 钓鱼调查支持
- 威胁狩猎准备
- 在阻止或升级之前富化指标
- 为分析师记录生成结构化证据
## 安全考量
- 不要将您的 VirusTotal API 密钥上传到 GitHub。
- 对敏感信息使用环境变量。
- 在采取行动之前,使用内部遥测数据验证结果。
- 将第三方信誉数据视为辅助证据,而不是唯一的决策点。
- 在运行批量 IOC 检查时注意 API 速率限制。
## 局限性
- 该工具依赖于 VirusTotal API 的可用性和速率限制。
- 它不提交新文件或引爆恶意软件样本。
- 它不能替代完整的恶意软件分析或沙箱。
- 厂商检测计数会随时间变化。
- 干净的结果并不能保证 IOC 是安全的。
## 未来改进
- ANY.RUN 沙箱集成
- AbuseIPDB 集成
- MITRE ATT&CK 映射
- HTML/PDF 报告生成
- YARA 规则支持
- 电子邮件告警
- SIEM 集成
- IOC 白名单和黑名单对比
- 基于 IOC 类型和厂商共识的置信度评分
标签:IOC分析, Python, 威胁情报, 安全运营自动化, 开发者工具, 无后门, 瑞士军刀, 逆向工具