abbas-babayev/ioc-investigation-platform
GitHub: abbas-babayev/ioc-investigation-platform
面向 SOC 分析师的开源 IOC 富化平台,通过 VirusTotal API 实现失陷指标的自动检测、风险评分和处置建议。
Stars: 2 | Forks: 1
# 🔍 IOC 调查平台
## 📌 描述
**IOC 调查平台** 是一个为 SOC 分析师和威胁情报工作流程构建的基于 Web 的安全工具。它通过查询 VirusTotal API 并提供带有风险评估的结构化结果,实现 IOC (Indicator of Compromise) 的自动化富化。
构建时注重简洁性 —— 无需复杂的基础设施,只需一个 FastAPI 后端和一个具有暗色终端美感的纯 HTML/CSS/JS 前端。
## ✨ 特性
- 🔎 IOC 类型的**自动检测**:IP、Domain、URL、Hash (MD5/SHA1/SHA256)
- 📡 **VirusTotal API v3** 集成 —— 实时威胁情报
- 📊 **检测统计**:恶意、可疑、无害、未检测到的数量
- 🚦 **风险评分**:低 / 中 / 高 / 严重
- 💬 基于检测数量的**分析师建议**
- 🌑 **暗色终端 UI** —— 整洁且专注
- 🐳 **Docker 支持**,便于本地部署
- 🔐 **默认安全** —— 通过 `.env` 提供 API 密钥,绝不硬编码
## 🏗️ 架构
```
Browser (Frontend)
│
│ POST /api/lookup { "ioc": "..." }
▼
FastAPI Backend
├── detector.py → Identifies IOC type
├── virustotal.py → Queries VirusTotal API
└── scoring.py → Calculates risk + recommendation
│
│ JSON response
▼
Browser renders result
```
有关完整文档,请参见 [docs/architecture.md](docs/architecture.md)。
## 🛠️ 技术栈
| 层级 | 技术 |
|----------|-----------------------------|
| Backend | Python 3.11, FastAPI |
| HTTP | httpx (异步) |
| Config | python-dotenv |
| Frontend | HTML5, CSS3, Vanilla JS |
| Server | Uvicorn |
| Deploy | Docker, Docker Compose |
| API | VirusTotal API v3 |
## 📁 项目结构
```
ioc-investigation-platform/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI app, endpoint /api/lookup
│ │ ├── detector.py # IOC type detection (regex)
│ │ ├── virustotal.py # VirusTotal API integration
│ │ └── scoring.py # Risk scoring logic
│ ├── requirements.txt
│ ├── Dockerfile
│ └── .env.example # Environment variable template
│
├── frontend/
│ ├── index.html # Main UI
│ ├── style.css # Dark theme styles
│ └── app.js # fetch() logic, DOM updates
│
├── docs/
│ └── architecture.md # Technical documentation
│
├── docker-compose.yml
├── .gitignore
├── README.md
└── LICENSE
```
## ⚙️ 安装说明
### 前置条件
- Python 3.11+
- [VirusTotal API key](https://www.virustotal.com/gui/sign-in) (提供免费套餐)
- Docker & Docker Compose (可选)
### 选项 A: 不使用 Docker 运行 (推荐用于开发)
**1. 克隆仓库**
```
git clone https://github.com/YOUR_USERNAME/ioc-investigation-platform.git
cd ioc-investigation-platform
```
**2. 配置 Python 虚拟环境**
```
cd backend
python -m venv venv
# 在 macOS/Linux 上:
source venv/bin/activate
# 在 Windows 上:
venv\Scripts\activate
```
**3. 安装依赖**
```
pip install -r requirements.txt
```
**4. 配置你的 API 密钥**
```
cp .env.example .env
# 打开 .env 并替换:VT_API_KEY=your_virustotal_api_key_here
```
**5. 启动后端**
```
uvicorn app.main:app --reload
# Server 运行于 http://localhost:8000
```
**6. 打开前端**
只需在浏览器中打开 `frontend/index.html`。
无需构建步骤 —— 它是纯 HTML。
### 选项 B: 使用 Docker 运行
**1. 配置环境**
```
cd backend
cp .env.example .env
# 编辑 .env 并添加你的 VirusTotal API key
```
**2. 启动所有服务**
```
# 在项目根目录下:
docker-compose up --build
```
**3. 访问平台**
- Frontend: http://localhost:80
- Backend API: http://localhost:8000
## 🔑 环境变量
| 变量 | 描述 | 必填 |
|-------------|--------------------------------|----------|
| `VT_API_KEY` | VirusTotal API 密钥 | ✅ 是 |
在此获取你的免费 API 密钥:https://www.virustotal.com/gui/sign-in
## 🚀 使用说明
1. 在浏览器中打开平台
2. 输入以下任意内容:
- **IP 地址**:`8.8.8.8`, `185.220.101.1`
- **域名**:`malware.example.com`, `phishing-site.ru`
- **URL**:`http://evil.com/payload.exe`
- **文件哈希**:`44d88612fea8a8f36de82e1238abc123` (MD5/SHA1/SHA256)
3. 点击 **INVESTIGATE** 或按 **Enter**
4. 查看结果:检测统计、风险级别和分析师建议
## 📡 API 参考
### `POST /api/lookup`
**请求:**
```
{
"ioc": "8.8.8.8"
}
```
**响应:**
```
{
"ioc": "8.8.8.8",
"ioc_type": "ip",
"stats": {
"malicious": 0,
"suspicious": 0,
"harmless": 79,
"undetected": 14
},
"risk_level": "Low",
"recommendation": "No threats detected. IOC appears clean...",
"error": null
}
```
**健康检查:**
```
GET /
→ { "status": "ok", "message": "IOC Investigation Platform is running" }
```
## 📸 截图
## 🗺️ 路线图
- [ ] AbuseIPDB 集成 (IP 信誉)
- [ ] 域名 WHOIS 查询
- [ ] DNS 解析 (A, MX, NS 记录)
- [ ] Shodan 集成 (开放端口)
- [ ] PDF 调查报告导出
- [ ] SQLite 历史日志
- [ ] 批量 IOC 查询 (CSV 上传)
- [ ] API 认证 (API 密钥中间件)
- [ ] OpenCTI / MISP 集成
- [ ] MITRE ATT&CK 映射
## ⚠️ 免责声明
本工具仅供**授权的安全研究和调查使用**。
- 请勿使用本工具调查你没有权限分析的系统上的 IOC
- 请勿主动连接、探测恶意 URL 或 IP,或与之交互
- VirusTotal 免费 API 存在限制:每分钟 4 次请求,每天 500 次请求
- 本工具提供威胁情报数据 —— 不构成法律或取证建议
## 📄 许可证
MIT License — 详见 [LICENSE](LICENSE)。
## 致谢
由 [@abbas-babayev](https://github.com/abbas-babayev) 和 [@nugetts](https://github.com/nugetts) 构建
标签:AMSI绕过, API集成, Ask搜索, AV绕过, CMS安全, CSS, Docker, FastAPI, Hash查询, HTML, httpx, IOC丰富化, IP 地址批量处理, IP查询, JavaScript, Python, SOC工具, URL查询, Uvicorn, VirusTotal, 可观测性, 域名查询, 失陷标示, 威胁情报, 威胁检测, 安全运营中心, 安全防御评估, 容器化部署, 开发者工具, 异步HTTP, 无后门, 暗色主题, 漏洞发现, 版权保护, 网络信息收集, 网络映射, 请求拦截, 运行时操纵