soham7998/sentinel_TI
GitHub: soham7998/sentinel_TI
基于可解释机器学习的实时威胁情报仪表板,实现 IP 指标自动采集、多源丰富、智能风险评分与决策解释。
Stars: 0 | Forks: 0
# 🛡️ SentinelTI — 可解释威胁情报仪表板
**理学硕士第四学期研究项目 | Somaiya Vidyavihar 大学**
## 📌 概述
SentinelTI 是一个实时、SOC 就绪的威胁情报仪表板,其功能如下:
- 从 **Abuse.ch** 和 **CINS Army** 订阅源获取 IP 指标
- 通过 **VirusTotal**、**AbuseIPDB** 和 **GeoIP** 异步丰富数据
- 使用 **Random Forest + XGBoost 堆叠集成** 对恶意程度进行评分
- 使用 **SHAP**(全局 + 局部可解释性)解释每个预测
- 在带有 LOW / MEDIUM / HIGH 风险等级的 **Streamlit SOC 仪表板** 上展示所有信息
## 🏗️ 架构
```
External Feeds (Abuse.ch, CINS Army)
↓
Fast IOC Ingestion (Normalize, Deduplicate, Limit)
↓
Async Enrichment (VirusTotal, AbuseIPDB, GeoIP/ASN)
↓
MongoDB IOC Store (Timestamps, Features, Scores)
↓
ML Risk Scoring Engine (RF + XGBoost Stacking, Score 0–1)
↓
SHAP Explainability (Global Feature Importance + Local Per-IP)
↓
SOC Dashboard (LOW / MEDIUM / HIGH — Evidence-based Decisions)
```
## 🚀 快速入门
### 前置条件
- Docker + Docker Compose
- API 密钥(免费层级):
- [AbuseIPDB](https://www.abuseipdb.com/register)
- [VirusTotal](https://www.virustotal.com/gui/join-us)
## 🖥️ 仪表板选项卡
| 选项卡 | 描述 |
|---|---|
| 📡 实时订阅源 | 具有风险着色、搜索和筛选功能的实时 IOC 表格 |
| 🧠 ML 风险评分 | 分数分布,HIGH/MEDIUM/LOW 分类明细 |
| 🔍 SHAP 全局 | 跨所有 IP 的全局特征重要性 (mean \|SHAP\|) |
| 🔎 SHAP 局部 | 单个 IP 的瀑布图解释 —— 推动评分的因素 |
| 📊 分析 | 主要国家、ISP、来源、数据丰富覆盖率 |
## 🧠 ML 模型
**堆叠集成:**
- 基础学习器:Random Forest (150棵树) + XGBoost (150轮)
- 元学习器:Logistic Regression(可解释的系数)
- 风险等级:LOW (0–0.3) | MEDIUM (0.3–0.7) | HIGH (≥0.7)
**使用的特征:**
| 特征 | 来源 |
|---|---|
| `abuse_reports` | AbuseIPDB |
| `confidence_pct` | AbuseIPDB |
| `recency_hrs` | AbuseIPDB 最后报告时间 |
| `vt_detections` | VirusTotal |
| `geo_risk` | GeoIP 国家 |
| `multi_source` | 订阅源重叠 |
| `attack_type_count` | AbuseIPDB 类别 |
| `freshness` | 从 recency 派生 |
| `source_score` | 订阅源级别权重 |
## 📊 结果(来自论文)
| 指标 | 结果 | SOC 目标 |
|---|---|---|
| Precision | 95% | >90% |
| Recall | 93% | >85% |
| F1-Score | 94% | >90% |
| False Positive Rate | 4% | <5% |
| 数据新鲜度 | <10s | <15s |
| 数据丰富覆盖率 | >95% | >90% |
## 📁 项目结构
```
sentinel_TI/
├── backend/
│ ├── main.py # FastAPI endpoints
│ ├── feeds.py # Feed ingestion + async enrichment
│ ├── ml_model.py # RF+XGBoost stacking + SHAP
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/
│ ├── app.py # Streamlit SOC dashboard
│ ├── requirements.txt
│ └── Dockerfile
├── geoip/
│ └── GeoLite2-City.mmdb
├── docker-compose.yml
├── .env.sample
└── README.md
```
## 📄 论文
Shah Soham, & Pawar Mousmi. — *An Explainable Machine Learning Framework for IP Threat Intelligence and Maliciousness Risk Scoring* — Somaiya Vidyavihar University, Mumbai
## 👤 作者
**Soham Shah** — soham27@somaiya.edu
IT 与 CS 系,Somaiya 基础与应用科学学院
标签:AbuseIPDB, Apex, Ask搜索, AV绕过, Docker, Elastic, FastAPI, GeoIP, IOC, IP 地址批量处理, Kubernetes, MongoDB, SHAP, SOC仪表盘, Streamlit, VirusTotal, XAI, XGBoost, 入侵指示器, 可解释机器学习, 堆叠集成学习, 大学研究项目, 威胁情报, 安全运营中心, 安全防御评估, 开发者工具, 异常检测, 异步数据丰富, 恶意IP检测, 机器学习, 网络信息收集, 网络安全, 网络映射, 访问控制, 请求拦截, 逆向工具, 随机森林, 隐私保护