abdussalamabubakarmuhammad92-coder/threat-intel-aggregator
GitHub: abdussalamabubakarmuhammad92-coder/threat-intel-aggregator
自动化聚合多个威胁情报源的 IP 信誉数据并生成统一标准化报告的安全调查工具。
Stars: 0 | Forks: 0
# 威胁情报聚合器
自动化执行针对多个威胁情报来源的 IP 地址检查流程,省去了在调查过程中逐一手动检查的麻烦。
## 为什么开发这个工具
我开发这个工具是为了自动化收集威胁数据,从而免去在调查过程中手动检查多个安全情报源的繁琐操作。
## 功能特性
- **多源聚合** — 单次运行即可查询 VirusTotal、AbuseIPDB 和 Shodan
- **标准化报告** — 将来自不同 API(各自具有不同的响应格式)的结果合并为统一一致的报告结构
- **内置容错设计** — 如果其中一个来源失败或超时,其他来源仍会正常返回结果;整体扫描不会因此中断
- **持久化扫描历史** — 每次扫描都会带有时间戳记录到 `scans.log` 中,方便日后回顾过往的调查记录
- **可扩展的连接器模式** — 添加新的情报源只需编写一个新的连接器模块,无需改动其他任何代码
## 工作原理
1. 提供一个目标 IP 地址
2. 聚合器会针对该 IP 并发查询每个已配置的来源(VirusTotal、AbuseIPDB、Shodan)
3. 每个连接器会将其来源的响应标准化为通用格式
4. 将所有结果合并为一份报告并输出到控制台
5. 该报告会被追加到 `scans.log` 中以备存档
## 技术栈
- **Python 3**
- [`requests`](https://pypi.org/project/requests/) 用于发起 API 调用
- [`python-dotenv`](https://pypi.org/project/python-dotenv/) 用于基于环境变量的配置
## 数据来源
| 来源 | 状态 | 提供的数据 |
|---|---|---|
| [VirusTotal](https://www.virustotal.com/) | 激活 | 恶意/可疑/无害判定结果,网络所有者 |
| [AbuseIPDB](https://www.abuseipdb.com/) | 激活 | 滥用置信度评分,报告数量,ISP,国家 |
| [Shodan](https://www.shodan.io/) | 激活 | 开放端口,组织,国家 |
| [AlienVault OTX](https://otx.alienvault.com/) | 已搭建,默认禁用 | 威胁脉冲数量 |
## 快速开始
### 前置条件
- Python 3.9+
- [VirusTotal](https://www.virustotal.com/gui/join-us)、[AbuseIPDB](https://www.abuseipdb.com/register) 和 [Shodan](https://account.shodan.io/register) 的 API 密钥(均提供免费额度)
### 安装说明
```
git clone https://github.com//threat-intel-aggregator.git
cd threat-intel-aggregator
pip install -r requirements.txt
```
### 配置
复制示例环境文件并填入您自己的 API 密钥:
```
cp .env.example .env
```
然后编辑 `.env`:
```
VIRUSTOTAL_API_KEY=your_virustotal_api_key
ABUSEIPDB_API_KEY=your_abuseipdb_api_key
SHODAN_API_KEY=your_shodan_api_key
OTX_API_KEY=
```
`OTX_API_KEY` 可以留空 —— 该连接器是可选的,在未提供密钥时会自动禁用。
### 用法
```
python -m src.main
```
系统会提示您输入 IP 地址,聚合器将查询所有已配置的来源并输出一份综合报告:
```
=== THREAT INTELLIGENCE REPORT ===
VirusTotal
malicious: 0
suspicious: 0
harmless: 78
owner: Google LLC
AbuseIPDB
abuse_score: 0
total_reports: 0
country: US
isp: Google LLC
Shodan
open_ports: [443, 80]
organization: Google LLC
country: United States
```
每次扫描也会保存到 `scans.log` 中,以供日后参考。
## 项目结构
```
threat-intel-aggregator/
├── src/
│ ├── main.py # Entry point — orchestrates the scan
│ ├── config.py # Environment variable loading & validation
│ ├── connectors/ # One module per intelligence source
│ │ ├── virustotal.py
│ │ ├── abuseipdb.py
│ │ ├── shodan.py
│ │ └── alienvault.py
│ └── utils/
│ ├── parser.py # Normalizes connector output into one report
│ └── logger.py # Appends scan results to scans.log
├── tests/
├── requirements.txt
└── .env.example
```
## 未来的改进方向
- [ ] 一旦支持区域 API 访问,即刻激活 AlienVault OTX 集成
- [ ] 为每个连接器添加基于模拟 API 响应的单元测试
- [ ] 支持从文件中批量扫描多个 IP
- [ ] 添加 `--json` 输出标志以生成机器可读的报告
- [ ] 速率限制处理 / API 触发限流时的重试逻辑
## 作者
**Abdussalam Abubakar**
## 许可证
MIT
标签:API聚合, GitHub, IP信誉, Python, 代码示例, 威胁情报, 安全调查, 实时处理, 开发者工具, 数据分析, 无后门