karnikae/cybershield-threat-intelligence

GitHub: karnikae/cybershield-threat-intelligence

一个基于 React 和 Node.js 构建的全栈实时网络威胁情报平台,提供威胁监控、地理可视化、漏洞管理和 AI 风险评估等综合安全运营功能。

Stars: 0 | Forks: 0

# 🛡️ CyberShield — 实时网络威胁情报平台
![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white) ![Express](https://img.shields.io/badge/Express-000000?style=for-the-badge&logo=express&logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge&logo=mongodb&logoColor=white) ![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black) ![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge&logo=vite&logoColor=white) ![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white) ![JWT](https://img.shields.io/badge/JWT-000000?style=for-the-badge&logo=jsonwebtokens&logoColor=white) ![Leaflet](https://img.shields.io/badge/Leaflet-199900?style=for-the-badge&logo=leaflet&logoColor=white) **一个用于实时监控、分析和响应网络威胁的全栈网络安全仪表板。** [功能](#-features) · [技术栈](#-tech-stack) · [快速开始](#-getting-started) · [API 端点](#-api-endpoints) · [项目结构](#-project-structure)
## 📋 概述 **CyberShield** 是一个全面的网络威胁情报 (CTI) 平台,提供网络安全威胁的实时监控、可视化和管理。它具有基于角色的访问控制(Admin/User)、交互式全球威胁地图、AI 驱动的聊天机器人分析师、漏洞报告和预测分析等功能——所有这些都包含在一个时尚的深色主题 UI 中。 ## ✨ 功能 ### 🔐 身份验证与授权 - 基于 JWT 的安全身份验证 - 基于角色的访问控制(**Admin** / **User**) - 使用 bcrypt 进行密码哈希处理 - 前端和后端均提供受保护的路由 ### 📊 Admin 控制面板 - **实时威胁统计** — 高、中、低严重程度计数 - **AI 风险评分** — 带有可视化仪表的动态风险评估 - **威胁管理表** — 解决、阻止 IP 或消除威胁 - **矢量速度图表** — 7 天威胁趋势可视化 (Recharts) - **优先入侵面板** — 带有时间戳的关键警报 - **严重性矩阵** — 威胁分布的可视化分解 ### 🗺️ GeoIncursion 威胁地图 - 带有深色图块的交互式 **Leaflet** 世界地图 - 按严重程度进行颜色编码的圆形标记 (🔴 高 · 🟣 中 · 🟢 低) - 包含威胁类型、国家和源 IP 的弹出详细信息 - 在没有实时威胁时用于可视化的演示回退数据 ### 🤖 AI 聊天机器人分析师 - 连接到实时威胁数据的基于规则的网络安全聊天机器人 - 用于快速查询的预置建议提示 - 实时访问威胁数据库 - 带有清除功能的聊天记录 ### 📈 附加模块 - **漏洞报告** — 带有风险级别的系统弱点跟踪 - **预测** — 威胁预测和预报(仅限 Admin) - **建议** — 安全行动建议(仅限 Admin) - **洞察** — 威胁情报洞察和分析 - **活动日志** — 系统活动监控 ### 👤 User 仪表板 - 为标准用户提供个性化的威胁概览 - 基于用户角色的过滤访问 ## 🛠️ 技术栈 | 层级 | 技术 | | ------------ | ----------------------------------------------------------------- | | **前端** | React 19, Vite 8, Tailwind CSS 4, React Router 7, Recharts | | **后端** | Node.js, Express 5, Mongoose 9 | | **数据库** | MongoDB | | **认证** | JWT (jsonwebtoken), bcryptjs | | **地图** | Leaflet, React-Leaflet, Stadia Maps dark tiles | | **图标** | Lucide React | | **HTTP** | Axios | ## 🚀 快速开始 ### 前置条件 - **Node.js** ≥ 18.x - **MongoDB**(本地或 [MongoDB Atlas](https://www.mongodb.com/atlas)) - **Git** ### 1. 克隆仓库 ``` git clone https://github.com/YOUR_USERNAME/Cyber.git cd Cyber ``` ### 2. 设置后端 ``` cd server npm install ``` 在 `server/` 目录中创建一个 `.env` 文件: ``` PORT=5000 MONGO_URI=mongodb://localhost:27017/cyber_threat_intel JWT_SECRET=your_super_secret_key_here ``` 填充数据库(可选): ``` node seed_map_data.js node create_admin.js ``` 启动服务器: ``` npm start ``` API 将运行在 `http://localhost:5000` ### 3. 设置前端 ``` cd ../client npm install npm run dev ``` 应用将运行在 `http://localhost:5173` ## 🔌 API 端点 ### 认证路由 — `/api/auth` | 方法 | 端点 | 描述 | 认证 | | ------ | ----------- | ---------------- | ---- | | POST | `/register` | 注册新用户 | ❌ | | POST | `/login` | 登录并获取 JWT | ❌ | ### 威胁路由 — `/api/threats` 🔒 | 方法 | 端点 | 描述 | 认证 | | ------ | ------------------ | ------------------ | ---- | | GET | `/` | 获取所有威胁 | ✅ | | POST | `/` | 创建新威胁 | ✅ | | PUT | `/:id/resolve` | 解决威胁 | ✅ | | POST | `/block-ip` | 封禁 IP 地址 | ✅ | | DELETE | `/:id` | 删除威胁 | ✅ | | GET | `/risk-score` | 获取 AI 风险评分 | ✅ | ### 漏洞路由 — `/api/vulnerabilities` 🔒 | 方法 | 端点 | 描述 | 认证 | | ------ | --------- | ------------------ | ---- | | GET | `/` | 获取所有漏洞 | ✅ | | POST | `/` | 报告漏洞 | ✅ | ### 日志路由 — `/api/logs` 🔒 | 方法 | 端点 | 描述 | 认证 | | ------ | --------- | ---------------- | ---- | | GET | `/` | 获取活动日志 | ✅ | | POST | `/` | 创建日志条目 | ✅ | ## 📁 项目结构 ``` Cyber/ ├── client/ # React Frontend │ ├── public/ # Static assets │ ├── src/ │ │ ├── api/ # Axios API configuration │ │ │ └── index.js │ │ ├── assets/ # Images & SVGs │ │ ├── components/ │ │ │ ├── Navbar.jsx # Sidebar navigation │ │ │ └── ThreatMap.jsx # Leaflet threat map │ │ ├── pages/ │ │ │ ├── AdminDashboard.jsx │ │ │ ├── UserDashboard.jsx │ │ │ ├── Chatbot.jsx │ │ │ ├── ThreatList.jsx │ │ │ ├── VulnerabilityReport.jsx │ │ │ ├── Predictions.jsx │ │ │ ├── Recommendations.jsx │ │ │ ├── Insights.jsx │ │ │ ├── Login.jsx │ │ │ └── Register.jsx │ │ ├── App.jsx # Routes & layout │ │ ├── App.css # Custom styles │ │ ├── index.css # Global styles │ │ └── main.jsx # Entry point │ ├── index.html │ ├── tailwind.config.js │ ├── vite.config.js │ └── package.json │ ├── server/ # Express Backend │ ├── config/ │ │ └── db.js # MongoDB connection │ ├── controllers/ │ │ ├── authController.js │ │ ├── threatController.js │ │ ├── vulnerabilityController.js │ │ └── logController.js │ ├── middleware/ │ │ └── authMiddleware.js # JWT verification │ ├── models/ │ │ ├── User.js │ │ ├── Threat.js │ │ ├── Vulnerability.js │ │ └── Log.js │ ├── routes/ │ │ ├── authRoutes.js │ │ ├── threatRoutes.js │ │ ├── vulnerabilityRoutes.js │ │ └── logRoutes.js │ ├── seed_map_data.js # Seed geo-located threats │ ├── create_admin.js # Create admin user │ ├── server.js # Entry point │ └── package.json │ ├── .gitignore └── README.md ``` ## 🧑‍💻 默认凭据 运行 `node create_admin.js` 后: | 角色 | 电子邮件 | 密码 | | ----- | ------------------ | --------- | | Admin | admin@cyber.com | admin123 | ## 📸 截图
🖥️ Admin 仪表板
🗺️ GeoIncursion 地图
🤖 AI 聊天机器人
## 📄 许可证 该项目基于 [MIT 许可证](LICENSE) 授权。
**由 [Your Name] 使用 🔐 构建**
标签:GNU通用公共许可证, JWT, MITM代理, MongoDB, Node.js, React, Syscalls, 可视化大屏, 威胁情报, 开发者工具, 网络安全, 自定义脚本, 隐私保护