karnikae/cybershield-threat-intelligence
GitHub: karnikae/cybershield-threat-intelligence
一个基于 React 和 Node.js 构建的全栈实时网络威胁情报平台,提供威胁监控、地理可视化、漏洞管理和 AI 风险评估等综合安全运营功能。
Stars: 0 | Forks: 0
# 🛡️ CyberShield — 实时网络威胁情报平台
## 📄 许可证
该项目基于 [MIT 许可证](LICENSE) 授权。








**一个用于实时监控、分析和响应网络威胁的全栈网络安全仪表板。**
[功能](#-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 聊天机器人
**由 [Your Name] 使用 🔐 构建**
标签:GNU通用公共许可证, JWT, MITM代理, MongoDB, Node.js, React, Syscalls, 可视化大屏, 威胁情报, 开发者工具, 网络安全, 自定义脚本, 隐私保护