mohitpoonia22/Threat-Intelligence
GitHub: mohitpoonia22/Threat-Intelligence
一个轻量级 AI 驱动威胁情报仪表板,自动聚合多个公开源的 IOC 数据并通过机器学习异常检测进行评分和可视化展示。
Stars: 0 | Forks: 0
# AI 驱动的威胁情报仪表板
一个全栈 Web 应用程序,从公共威胁信息源收集数据,使用 ML 异常检测模型对指标进行评分,并通过交互式仪表板展示具有可操作性的洞察。
## 架构
```
┌─────────────────────────────────────────────────────┐
│ React Frontend │
│ StatCards · PieCharts · IndicatorTable · Lookup │
└──────────────────────┬──────────────────────────────┘
│ HTTP (Vite proxy)
┌──────────────────────▼──────────────────────────────┐
│ FastAPI Backend │
│ /api/threats/ · /api/threats/stats │
│ /api/threats/lookup/{indicator} │
│ /api/threats/train (POST) │
│ │ │
│ APScheduler → fetcher.py (every N minutes) │
│ IsolationForest model (scikit-learn) │
└──────────────────────┬──────────────────────────────┘
│ SQLAlchemy ORM
┌──────────────────────▼──────────────────────────────┐
│ SQLite / PostgreSQL Database │
│ threat_indicators table │
└─────────────────────────────────────────────────────┘
```
## 技术栈
| 层级 | 技术 |
|----------|------------------------------------|
| 后端 | Python 3.11+, FastAPI, SQLAlchemy |
| 数据库 | SQLite (开发) / PostgreSQL (生产) |
| ML | scikit-learn (Isolation Forest) |
| 前端 | React 18, Chart.js, Vite |
| 信息源 | AbuseIPDB, AlienVault OTX, VirusTotal |
## 快速开始
### 1. 后端
```
cd backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
copy .env.example .env # then add your API keys
python seed_demo_data.py # optional: seed 250 demo rows
uvicorn app.main:app --reload
```
API 文档可通过 **http://localhost:8000/docs** 访问
### 2. 前端
```
cd frontend
npm install
npm run dev
```
仪表板可通过 **http://localhost:5173** 访问
## API 密钥(均为免费套餐)
| 服务 | 注册地址 | 所需密钥用途 |
|--------------|-------------------------------------|--------------------------|
| AbuseIPDB | https://www.abuseipdb.com/register | IP 黑名单与检查 |
| AlienVault OTX | https://otx.alienvault.com | 基于 Pulse 的 IOC |
| VirusTotal | https://www.virustotal.com/gui/join | 按需查询 |
将密钥添加到 `backend/.env` 中:
```
ABUSEIPDB_API_KEY=...
OTX_API_KEY=...
VIRUSTOTAL_API_KEY=...
```
## ML 模型
异常检测 Pipeline 使用了 scikit-learn 的 **Isolation Forest** 算法。
**使用的特征:**
- `abuse_score`(归一化至 0–1)
- `indicator_type`(独热编码:ip / domain / hash)
- `has_country`(布尔值)
**训练:** 在获取至少 50 个指标后,点击仪表板中的“Train ML Model”。模型将保存至 `data/model.joblib`,并在后续每次评分时重新加载。
**局限性:**
- Isolation Forest 是一种无监督学习算法——它标记的是统计异常值,而非已验证的恶意活动。请将评分视为分类排查的参考信号,而非绝对事实。
- 当数据少于 50 行时,模型将回退至使用归一化的 `abuse_score`。
- 在 AbuseIPDB 黑名单上的准确率大约在 80–85% 之间(异常值往往是高置信度的滥用者)。
## 未来规划
- 通过 OTX Pulse 标签字段添加 MITRE ATT&CK 战术标签
- 集成 CICIDS-2017 数据集以进行监督分类
- 时间序列趋势图:每天新增的恶意 IP 数量
- 用户身份验证 + 已保存的监控列表
- 针对高风险指标的 Slack / 电子邮件告警
- 使用 Docker Compose + Nginx 进行部署
## 项目结构
```
Security/
├── backend/
│ ├── app/
│ │ ├── api/ # FastAPI routers
│ │ ├── ml/ # Isolation Forest model
│ │ ├── models/ # SQLAlchemy ORM models
│ │ ├── services/ # Fetcher + lookup logic
│ │ ├── config.py
│ │ ├── database.py
│ │ └── main.py
│ ├── seed_demo_data.py
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── components/ # StatCard, PieChart, LookupPanel, IndicatorTable
│ │ ├── App.jsx
│ │ └── api.js
│ └── package.json
└── README.md
```
标签:AI安全, Apex, AV绕过, Chat Copilot, FastAPI, HTTP/HTTPS抓包, IoC分析, IP 地址批量处理, IsolationForest, PostgreSQL, Python, React, Scikit-learn, SQLAlchemy, SQLite, Syscalls, 后端开发, 威胁情报, 威胁指标, 安全仪表盘, 密码管理, 开发者工具, 异常检测, 态势感知, 情报聚合, 数据库, 无后门, 机器学习, 测试用例, 网络信息收集, 网络安全, 网络安全数据看板, 自动化数据采集, 逆向工具, 隐私保护