gresstechs/threat_intel_platform
GitHub: gresstechs/threat_intel_platform
一个集成多源威胁情报与机器学习的自动化关联平台,旨在通过智能分类和告警优先级排序减轻 SOC 分析师的警报疲劳问题。
Stars: 0 | Forks: 0
# 自动化威胁情报关联平台
## 概述
一个自动化威胁情报关联平台,集成了三个开源威胁情报源 — **AlienVault OTX**、**VirusTotal** 和 **AbuseIPDB** — 并结合集成机器学习(Random Forest + XGBoost),以提高威胁检测准确性并减轻安全运营中心(SOC)分析师的工作量。
本项目直接解决了 Sundaramurthy 等人 (2022) 记录的 SOC 信息过载问题,在该问题中,分析师每天处理 12,000+ 个警报,误报率高达 85%。通过 ML 关联多源情报,该平台的目标是实现 **40% 的分析师工作量减少** 和 **>95% 的威胁分类准确性**。
## 研究问题
## 项目目标
| # | 目标 | 成功标准 |
|---|-----------|-------------------|
| O1 | 集成 OTX、VirusTotal 和 AbuseIPDB API,实现标准化及 PostgreSQL 存储 | 每个指标 < 5 秒 |
| O2 | 用于多类威胁分类的集成 ML 模型(Random Forest + XGBoost) | 准确率 > 95%,F1 > 0.93 |
| O3 | 自动化警报优先级排序系统 | 工作量减少 ≥ 40% |
| O4 | Grafana 实时监控仪表板 | 8+ 个面板,响应时间 < 2 秒 |
| O5 | 5 个自动化 MITRE ATT&CK 响应 Playbook | 执行成功率 > 90% |
## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ Threat Intelligence Platform │
├──────────────┬──────────────────┬──────────────────────────────┤
│ Data Sources │ Correlation │ Response & Visualisation │
│ │ Engine │ │
│ OTX API ───►│ │ Grafana Dashboards (8+) │
│ VT API ───►│ Normaliser ───►│ Alert Prioritisation │
│ Abuse ───►│ ML Classifier │ MITRE ATT&CK Playbooks (5) │
│ │ (RF + XGBoost) │ Jenkins CI/CD Pipeline │
├──────────────┴──────────────────┴──────────────────────────────┤
│ PostgreSQL Database │
│ threat_indicators | correlation_results | ingestion_log │
└─────────────────────────────────────────────────────────────────┘
```
## 仓库结构
```
threat-intel-platform/
├── src/
│ ├── api/
│ │ ├── otx_client.py # AlienVault OTX API v1 client
│ │ ├── virustotal_client.py # VirusTotal API v3 client
│ │ └── abuseipdb_client.py # AbuseIPDB API v2 client
│ ├── core/
│ │ ├── normaliser.py # Unified ThreatIndicator schema
│ │ ├── db.py # PostgreSQL schema & CRUD
│ │ └── config.py # Configuration management
│ ├── ml/
│ │ ├── feature_engineering.py # Feature extraction pipeline
│ │ ├── model_trainer.py # RF + XGBoost training
│ │ └── predictor.py # Inference & scoring
│ ├── automation/
│ │ ├── alert_prioritiser.py # Alert ranking algorithm
│ │ └── playbooks/ # 5 MITRE ATT&CK playbooks
│ └── main.py # CLI orchestrator
├── tests/
│ └── test_platform.py # 42+ unit tests (pytest)
├── dashboards/
│ └── grafana/ # Grafana dashboard JSON configs
├── docs/
│ └── D1.3_api_integration.docx # Technical documentation
├── jenkins/
│ └── Jenkinsfile # CI/CD pipeline definition
├── .env.example # Environment variable template
├── .gitignore
├── requirements.txt
└── README.md
```
## 快速开始
### 前置条件
- Python 3.12+
- PostgreSQL 14+
- OTX、VirusTotal 和 AbuseIPDB 的 API 密钥(免费层)
### 安装
```
# 1. 克隆仓库
git clone https://github.com/gresstechs/threat-intel-platform.git
cd threat-intel-platform
# 2. 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 3. 安装依赖
pip install -r requirements.txt
# 4. 配置环境
cp .env.example .env
# 编辑 .env 填入您的 API keys 和数据库凭据
```
### 数据库设置
```
# 创建 PostgreSQL 数据库
psql -U postgres -c "CREATE DATABASE threat_intel;"
psql -U postgres -c "CREATE USER threat_user WITH PASSWORD 'yourpassword';"
psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE threat_intel TO threat_user;"
```
Schema 将在首次运行时通过 `db.py` 自动创建。
### 使用方法
```
# 查询单个 indicator 在所有三个 feeds 中的信息
python src/main.py --indicator 198.51.100.1 --type ip
# 运行批量摄入循环 (OTX pulses + AbuseIPDB blacklist)
python src/main.py --ingest
# 打印数据库统计信息
python src/main.py --stats
```
## 运行测试
```
# 运行带 coverage 的完整测试套件
pytest tests/ -v --cov=src --cov-report=term-missing
# 预期输出:42 passed
```
## 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 语言 | Python 3.12 |
| 数据库 | PostgreSQL 14 |
| ML 框架 | scikit-learn, XGBoost |
| CI/CD | Jenkins |
| 仪表板 | Grafana |
| API 客户端 | requests, tenacity |
| 测试 | pytest, pytest-cov |
| 配置 | python-dotenv |
## 进度
| 交付物 | 状态 | 截止日期 |
|-------------|--------|----------|
| D1.1 文献综述 | ✅ 已完成 | 第 4 周 |
| D1.2 伦理审批 | ✅ 已完成 | 第 3 周 |
| D1.3 API 集成模块 | ✅ 已完成 | 第 6 周 |
| D1.4 PostgreSQL 数据库 | 🔄 进行中 | 第 8 周 |
| D2.1 训练数据集 | ⏳ 待定 | 第 10 周 |
| D2.2 ML 模型(准确率 >95%) | ⏳ 待定 | 第 14 周 |
| D3.1 警报优先级排序 | ⏳ 待定 | 第 16 周 |
| D3.2 Jenkins CI/CD | ⏳ 待定 | 第 18 周 |
| D3.3 响应 Playbook | ⏳ 待定 | 第 20 周 |
| D4.1 Grafana 仪表板 | ⏳ 待定 | 第 20 周 |
| D5.1 性能报告 | ⏳ 待定 | 第 22 周 |
| D5.2 评估报告 | ⏳ 待定 | 第 23 周 |
| D6.1 学位论文 | ⏳ 待定 | 第 26 周 |
## 安全性
- API 密钥仅存储在 `.env` 中 — 绝不提交到版本控制
- `.env` 已列入 `.gitignore`
- 所有 API 访问均为只读(不向外部服务提交数据)
- 测试使用模拟数据 — 单元测试期间不进行实时 API 调用
- 平台专为**防御性安全**设计
## 学术背景
- **专业:** MSc Applied Computing,桑德兰大学 (University of Sunderland)
- **模块:** PROM03 — MSc Dissertation
- **时间线:** 2026 年 2 月 – 8 月(26 周)
- **基于:** CTI 实习,实现了 99.88% 的恶意软件检测准确率(单源)
- **扩展至:** 基于 ML 分类的多源关联
## 许可证
本项目为学术研究目的而开发。
© 2026 Chidera Progress Nwaokwa — 桑德兰大学 (University of Sunderland)。
未获授权不得用于商业用途。
标签:AbuseIPDB, AMSI绕过, Apex, Ask搜索, CISA项目, Cloudflare, Grafana, HTTP/HTTPS抓包, IP 地址批量处理, MITRE ATT&CK, PostgreSQL, SOAR, VirusTotal, XGBoost, 分类算法, 告警关联, 威胁情报, 威胁检测, 安全数据分析, 安全编排与自动化, 安全规则引擎, 安全运营中心, 开发者工具, 异常检测, 态势感知, 情报源集成, 机器学习, 网络安全, 网络映射, 自动化分类, 自动化响应, 误报率降低, 随机森林, 隐私保护, 集成学习