om-moon10/ThreatView

GitHub: om-moon10/ThreatView

ThreatView 是一个面向中小企业的分层威胁情报仪表盘,解决了廉价威胁监控和情报聚合的需求。

Stars: 0 | Forks: 0

# 🛡️ ThreatView — 分层威胁情报仪表盘 ![ThreatView](https://img.shields.io/badge/ThreatView-v1.0.0-red?style=for-the-badge\&logo=shield) ![FastAPI](https://img.shields.io/badge/FastAPI-0.111-009688?style=for-the-badge\&logo=fastapi) ![React](https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge\&logo=react) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?style=for-the-badge\&logo=postgresql) ![Render](https://img.shields.io/badge/Backend-Render-46E3B7?style=for-the-badge) ![Vercel](https://img.shields.io/badge/Frontend-Vercel-black?style=for-the-badge) # 🌐 在线部署 ## 前端 将您部署的 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 ![Login page](IMG1-Log In.png) SING IN ![Singin page](IMG2-Sing In.png) Dashboard ![Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/522417790b124839.png) Threat Map ![Threat Map](IMG4-Threat map.png) Search ![Search page](IMG5-Search Page.png) Alerts ![Alert page](IMG6-Alert Page.png) Alert Box ![Alert Box](IMG7-Alert boxx.png) Proflie ![Profile page](IMG8-Profile Page.png) ``` # 🐛 已知可改进之处(未来方向) # 📄 许可证 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, 中小企业安全, 交互式仪表板, 全球攻击地图, 历史威胁存储, 去重, 基于角色的访问控制, 威胁分类, 威胁情报仪表板, 威胁情报聚合, 威胁趋势分析, 安全分析平台, 实时威胁监控, 数据归一化, 数据聚合, 测试用例, 网络安全, 警报系统, 隐私保护