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可视化, 后端开发, 大数据分析, 威胁情报, 开发者工具, 机器学习, 请求拦截, 逆向工具