lekanjava/ioc-enricher
GitHub: lekanjava/ioc-enricher
自动化威胁情报富化工具,批量查询IP、域名和文件哈希的恶意性并生成带风险评分的报告,帮助安全分析师将数十分钟的手动分析缩短至三分钟。
Stars: 0 | Forks: 0
# IOC Enricher
面向安全分析师的自动化威胁情报富化工具。
接收一份入侵指标(IP、域名、文件哈希)列表,并
自动查询 VirusTotal 和 AbuseIPDB 以确定它们是否
为恶意。输出带有风险评分的 JSON 和 CSV 报告。
## 解决的问题
如果没有此工具,一名 SOC 分析师在检查 10 个可疑 IP 时必须:
1. 打开 VirusTotal,粘贴每个 IP,读取结果
2. 打开 AbuseIPDB,粘贴每个 IP,读取结果
3. 手动整合分析结果
4. 撰写报告
这需要 20 次手动查询以及 30 多分钟的工作。
使用此工具:
```
python main.py --file iocs.txt
```
所有 10 个 IOC 的检查、评分和报告均可在 3 分钟内完成。
## 功能
- 自动检测 IOC 类型(IP、域名、MD5/SHA1/SHA256 哈希)
- 并发查询 VirusTotal 和 AbuseIPDB
- 计算标准化的 0-100 风险评分
- 判定结果:MALICIOUS / SUSPICIOUS / CLEAN
- 输出完整的 JSON 报告和简明的 CSV 摘要
- 彩色终端输出
- 每次 push 时在 GitHub Actions 中自动运行
## 设置
### 1. 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/ioc-enricher.git
cd ioc-enricher
```
### 2. 创建虚拟环境
```
# Mac/Linux
python3 -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
.\venv\Scripts\Activate.ps1
```
### 3. 安装依赖
```
pip install -r requirements.txt
```
### 4. 添加 API 密钥
```
cp .env.example .env
# 编辑 .env 并添加你的真实 keys
```
从以下地址获取免费的 API 密钥:
- VirusTotal: https://www.virustotal.com/gui/join-us
- AbuseIPDB: https://www.abuseipdb.com/register
## 用法
### 检查包含 IOC 的文件
```
python main.py --file iocs.txt
```
### 检查单个 IOC
```
python main.py --ioc 185.220.101.1
python main.py --ioc malware-test.com
python main.py --ioc 44d88612fea8a8f36de82e1278abb02f
```
### 指定输出文件夹
```
python main.py --file iocs.txt --output-dir my_reports
```
## 风险评分
| 评分 | 判定结果 |
|---|---|
| 70 - 100 | MALICIOUS |
| 30 - 69 | SUSPICIOUS |
| 0 - 29 | CLEAN |
**计算公式:**
- 对于 IP:`(VirusTotal 恶意比例 × 60%) + (AbuseIPDB 置信度 × 40%)`
- 对于域名和哈希:`VirusTotal 恶意比例 × 100%`
## 项目结构
```
ioc-enricher/
├── src/
│ ├── enricher.py # Orchestrator - coordinates all API calls
│ ├── virustotal.py # VirusTotal API client
│ ├── abuseipdb.py # AbuseIPDB API client
│ ├── utils.py # IOC type detection and risk scoring
│ └── reporter.py # JSON and CSV output
├── tests/
│ └── test_enricher.py # Unit tests
├── .github/workflows/
│ └── scan.yml # GitHub Actions CI/CD pipeline
├── main.py # CLI entry point
├── iocs.txt # Input IOC list
└── requirements.txt # Python dependencies
```
## 运行测试
```
pytest tests/ -v
```
## 技术栈
- Python 3.14
- requests (HTTP API 调用)
- python-dotenv (安全的密钥管理)
- rich (终端格式化)
- pytest (单元测试)
- GitHub Actions (CI/CD 自动化)
## 作者
本项目作为一个安全自动化作品集构建,旨在展示:
威胁情报富化、API 集成、CI/CD pipeline,
以及安全的凭证处理。
标签:Python, 威胁情报, 安全规则引擎, 安全运营, 开发者工具, 扫描框架, 无后门, 网络调试, 自动化