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检测, 机器学习, 网络信息收集, 网络安全, 网络映射, 访问控制, 请求拦截, 逆向工具, 随机森林, 隐私保护