Madathanapalleleena/Bda_threat_sig
GitHub: Madathanapalleleena/Bda_threat_sig
基于PySpark和FastAPI构建的实时威胁情报仪表盘,整合多源情报API与ML管道实现网络威胁的检测、分类和可视化。
Stars: 1 | Forks: 0
# ThreatSig 实时威胁情报仪表盘
这是一个大数据分析 (BDA) 项目,利用 **PySpark MLlib**、**FastAPI**、**Kafka** 和实时威胁情报 API 来检测、分类和可视化网络威胁。
## 功能
- **实时威胁流** — 基于 WebSocket 的事件推送,带有模拟的 Kafka pipeline
- **IP 信誉查询** — AbuseIPDB API(威胁评分、国家/地区、ISP、TOR/VPN 检测)
- **邮箱泄露查询** — XposedOrNot API(泄露次数、受影响的服务)
- **地理情报** — IP 地理定位 + ASN 风险评分 (ip-api.com / ipinfo.io)
- **PySpark ML pipelines**:
- KMeans 聚类(攻击者 / 扫描器 / 垃圾邮件发送者 / 正常)
- 随机森林分类(威胁等级预测)
- 异常检测(距离聚类中心的距离)
- 线性回归(评分趋势预测)
- 使用 VectorAssembler 和 StandardScaler 进行特征组合
## 技术栈
| 层级 | 技术 |
|---|---|
| 后端 | FastAPI, Uvicorn, Python 3.10+ |
| 大数据 / ML | PySpark 3.4, scikit-learn, pandas, NumPy |
| 流处理 | WebSocket, aiokafka (可选) |
| 威胁情报 | AbuseIPDB API, XposedOrNot API |
| 地理情报 | ip-api.com, ipinfo.io |
| 容器 | Docker + Docker Compose (Kafka/Zookeeper) |
## 项目结构
```
bda/
├── main.py # FastAPI app, REST + WebSocket endpoints, Kafka integration
├── ml_engine.py # PySpark MLlib pipelines (KMeans, RF, regression)
├── geo_intel.py # IP geolocation + ASN risk enrichment
├── requirements.txt
├── commands.txt # Quick-start run guide
└── .env # API keys (do NOT commit)
```
## 设置
### 前置条件
- Python 3.10+
- Java 8+(PySpark 必需)— 设置 `JAVA_HOME`
- Docker(仅用于 Kafka 模式)
### 安装依赖
```
pip install -r requirements.txt
```
### 配置环境
创建一个 `.env` 文件:
```
ABUSEIPDB_API_KEY=your_free_key_here
```
在 [abuseipdb.com](https://www.abuseipdb.com) 获取免费 API 密钥(每天 1000 次查询,免费)。
## 运行
### 选项 A — 不使用 Kafka(最简单)
```
uvicorn main:app --reload --host 0.0.0.0 --port 8000
```
在浏览器中打开 `index.html` 或访问 `http://localhost:8000`。
流式事件将在约 5 秒内自动出现。
### 选项 B — 使用 Kafka(完整 pipeline)
```
# 启动 Kafka + Zookeeper
docker-compose up -d
# 启动 backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000
```
## API Endpoints
| 方法 | Endpoint | 描述 |
|---|---|---|
| GET | `/api/check/ip/{ip}` | IP 信誉扫描 (AbuseIPDB + ML) |
| GET | `/api/check/email/{email}` | 邮箱泄露查询 (XposedOrNot) |
| GET | `/api/stream/events` | 近期威胁事件(REST 回退) |
| GET | `/api/stats` | 实时统计数据和威胁分布 |
| GET | `/api/ml/anomaly` | 对实时事件进行 KMeans 异常检测 |
| GET | `/api/ml/analytics` | 完整 ML 批处理报告(所有 pipelines) |
| GET | `/api/ml/trend` | 线性回归评分趋势 |
| GET | `/health` | 健康检查(API 密钥、ML、Spark 状态) |
| WS | `/ws/stream` | WebSocket 实时威胁推送 |
### 快速测试扫描
```
# Threat levels
curl http://localhost:8000/api/check/ip/9.9.9.9 # Critical
curl http://localhost:8000/api/check/ip/7.7.7.7 # High
curl http://localhost:8000/api/check/ip/8.8.8.8 # Medium
# Email breach
curl "http://localhost:8000/api/check/email/test@yahoo.com"
# ML reports
curl http://localhost:8000/api/ml/analytics
curl http://localhost:8000/api/ml/trend
```
## 威胁评分等级
| 评分 | 等级 |
|---|---|
| 85 – 100 | 严重 |
| 60 – 84 | 高危 |
| 35 – 59 | 中危 |
| 0 – 34 | 低危 |
## 注意事项
- Kafka 是**可选的** — 如果 Kafka 不可用,应用将运行内置的流模拟器。
- PySpark 是**可选的** — 如果 Java/Spark 不可用,ML 引擎会平滑降级到 scikit-learn。
- 切勿提交您的 `.env` 文件 — 请将其添加到 `.gitignore` 中。
标签:Apex, AV绕过, FastAPI, PySpark, Web可视化, 后端开发, 大数据分析, 威胁情报, 开发者工具, 机器学习, 请求拦截, 逆向工具