om-moon10/ThreatView
GitHub: om-moon10/ThreatView
ThreatView 是一个面向中小企业的分层威胁情报仪表盘,解决了廉价威胁监控和情报聚合的需求。
Stars: 0 | Forks: 0
# 🛡️ ThreatView — 分层威胁情报仪表盘






# 🌐 在线部署
## 前端
将您部署的 Vercel URL 添加至此处。
示例:
```
https://threatview.vercel.app
```
## 后端 API
```
https://threatview-6q9b.onrender.com
```
## Swagger API 文档
```
https://threatview-6q9b.onrender.com/api/docs
```
# 📌 项目概述
中小型企业是网络钓鱼、勒索软件、僵尸网络和恶意软件攻击的常见目标,但大多数企业无力负担昂贵的企业级威胁情报平台。
ThreatView 通过提供以下功能解决此问题:
* 实时网络威胁监控
* 威胁情报聚合
* 交互式仪表盘与分析
* 基于角色的访问控制
* PDF 威胁报告
* 可搜索的 IoC 数据库
* 可疑活动告警系统
ThreatView 将嘈杂的原始威胁数据源转化为易于理解的视觉情报,服务于安全团队和 IT 管理人员。
# 🚀 核心功能
## 🔄 ETL 威胁情报管道
* 聚合来自以下来源的威胁数据:
* AlienVault OTX
* PhishTank
* 使用 APScheduler 进行定时数据摄取
* 数据标准化,统一数据模式
* 支持数据去重和更新插入
* 在 PostgreSQL 中存储历史威胁数据
## 📊 交互式仪表盘
* 全球攻击地图可视化
* 威胁趋势图表
* 按国家/地区统计的攻击分析
* 最新 IoC 列表
* 威胁等级和类型分析
## 🔍 可搜索的 IoC 数据库
用户可搜索:
* IP 地址
* 域名
* URL
* 文件哈希值
并支持按以下条件过滤:
* 威胁类型
* 威胁等级
* 国家/地区
* 来源
## 🚨 告警引擎
* 创建自定义告警规则
* 在匹配到威胁时触发通知
* 支持基于行业的监控
* 支持集成邮件通知
## 📄 PDF 报告生成
PRO 和 ADMIN 用户可以:
* 生成可下载的每周威胁报告
* 将威胁摘要导出为 PDF
* 查看面向管理层的安全分析报告
## 🔐 身份验证与 RBAC
基于 JWT 的身份验证,包含以下用户角色:
* FREE 用户
* PRO 用户
* ADMIN 用户
根据不同角色实施访问限制。
# 🧱 技术栈
| 类别 | 技术 |
| ---------------- | ------------------------- |
| 前端 | React + Vite + TypeScript |
| 状态管理 | Zustand |
| 样式 | Tailwind CSS |
| 图表 | Recharts |
| 地图 | React Leaflet |
| 后端 | FastAPI |
| 数据库 | PostgreSQL (Neon) |
| ORM | SQLAlchemy Async |
| 身份验证 | JWT + Passlib |
| 调度器 | APScheduler |
| PDF 报告 | ReportLab |
| 部署 | Render + Vercel |
# 🏗️ 架构概述
```
threatview/
├── backend/
│ ├── app/
│ │ ├── api/
│ │ ├── core/
│ │ ├── db/
│ │ ├── etl/
│ │ ├── models/
│ │ ├── scheduler/
│ │ └── services/
│ └── tests/
│
└── frontend/
└── src/
├── components/
├── pages/
├── services/
├── store/
└── types/
```
# 👤 演示账户凭据
| 角色 | 用户名 | 密码 |
| --------- | ---------- | ---------- |
| 管理员 | `admin` | `admin123` |
| 专业用户 | `prouser` | `admin123` |
| 免费用户 | `freeuser` | `admin123` |
# 📡 API 端点
## 身份验证
| 方法 | 端点 |
| ------ | -------------------- |
| POST | `/api/auth/register` |
| POST | `/api/auth/login` |
| GET | `/api/auth/me` |
| PATCH | `/api/auth/me` |
## 威胁情报
| 方法 | 端点 |
| ------ | ---------------------- |
| GET | `/api/threats/recent` |
| GET | `/api/threats/search` |
| GET | `/api/stats/trends` |
| GET | `/api/stats/countries` |
| GET | `/api/stats/summary` |
## 告警
| 方法 | 端点 |
| ------ | ------------------------ |
| POST | `/api/alerts/rules` |
| GET | `/api/alerts/rules` |
| DELETE | `/api/alerts/rules/{id}` |
## 报告
| 方法 | 端点 |
| ------ | --------------------- |
| GET | `/api/reports/weekly` |
# 🔐 基于角色的访问控制
| 功能 | FREE | PRO | ADMIN |
| ------------------------ | ---- | --- | ----- |
| 查看最新威胁 | ✅ | ✅ | ✅ |
| 访问历史威胁数据 | ❌ | ✅ | ✅ |
| 搜索 IoC | ✅ | ✅ | ✅ |
| 创建告警 | ✅ | ✅ | ✅ |
| 下载 PDF 报告 | ❌ | ✅ | ✅ |
| 手动触发 ETL | ❌ | ❌ | ✅ |
| 查看 ETL 日志 | ❌ | ❌ | ✅ |
# ⚙️ 本地开发环境设置
## 后端设置
```
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8001
```
## 前端设置
```
cd frontend
npm install
npm run dev
```
# 🌍 部署
## 后端部署
* Render
* PostgreSQL 托管于 Neon
## 前端部署
* Vercel
# 📊 威胁情报来源
| 来源 | 用途 |
| -------------- | ---------------------------------- |
| AlienVault OTX | IP 信誉与恶意软件指标 |
| PhishTank | 钓鱼 URL 情报 |
# 🧪 已实现功能
* ✅ JWT 身份验证
* ✅ 基于角色的访问控制
* ✅ ETL 威胁管道
* ✅ 威胁数据标准化
* ✅ 定时威胁数据摄取
* ✅ 全球威胁地图
* ✅ 威胁趋势图表
* ✅ 可搜索的 IoC 数据库
* ✅ 告警规则引擎
* ✅ PDF 报告生成
* ✅ 云部署
* ✅ 响应式仪表盘用户界面
# 📸 截图
```
LOG IN 
SING IN 
Dashboard 
Threat Map 
Search 
Alerts 
Alert Box 
Proflie 
```
# 🐛 已知可改进之处(未来方向)
# 📄 许可证
MIT 许可证
# 👨💻 作者
**Om Moon**
GitHub:
```
https://github.com/om-moon10
```
# ⭐ 致谢
* AlienVault OTX
* PhishTank
* FastAPI
* React
* Vercel
* Render
* Neon PostgreSQL
使用 FastAPI、React、PostgreSQL、Recharts 和现代云部署基础设施 ❤️ 构建。
标签:APScheduler任务调度, AV绕过, ETL数据管道, FastAPI, IoC数据库, PDF报告生成, PostgreSQL, React, Syscalls, 中小企业安全, 交互式仪表板, 全球攻击地图, 历史威胁存储, 去重, 基于角色的访问控制, 威胁分类, 威胁情报仪表板, 威胁情报聚合, 威胁趋势分析, 安全分析平台, 实时威胁监控, 数据归一化, 数据聚合, 测试用例, 网络安全, 警报系统, 隐私保护