AKSHOBHYA-KASHYAP/cloud-threat-intelligence-platform
GitHub: AKSHOBHYA-KASHYAP/cloud-threat-intelligence-platform
企业级云威胁情报运营平台,提供威胁事件管理、动态告警引擎、多角色权限控制和数据可视化的一站式安全控制台。
Stars: 0 | Forks: 0
# 云威胁情报平台 (CTIP)
一个企业级、全栈的网络安全运营与威胁情报控制台。使用 Node.js、Express、MongoDB 和 React with Vite 构建,遵循工业级安全软件的布局与可视化模式。
## 🚀 技术架构
### 后端 API
- **Node.js & Express**:模块化的 endpoint 路由、全面的 logger 中间件、集中式的验证逻辑以及安全的错误处理边界。
- **MongoDB & Mongoose**:具备 pre-save hashing、验证器、引用字段的 schema,以及优化的索引,确保时序聚合查询响应时间在 **200ms** 以内。
- **JWT & RBAC 安全**:采用基于轮换的 JWT 策略实现的多层 Authentication。通过安全的 `httpOnly` cookie 刷新 token。RBAC 中间件限制 endpoint 仅对 `admin`、`analyst` 或 `viewer` 账户开放。
- **告警引擎**:在滑动窗口内动态评估接入指标,当告警量超过阈值时自动触发严重告警。
- **审计追踪**:全面记录账户安全事件(登录、密码修改、资源更新)至 MongoDB 审计集合中。
### 前端控制台
- **React + Vite**:高性能的单页应用结构。
- **代码分割与懒加载**:对页面进行懒加载分块,以优化 bundle 大小并加快首次渲染速度。
- **Grafana/Datadog 设计系统**:采用简洁的原生 CSS 自定义属性系统构建。具有精细的边框、中性的色调、加载骨架屏以及交互式组件。
- **真实的图表 (Chart.js)**:将历史指标聚合为折线图、柱状图、环形图、面积图和水平条形图。
- **CSV 数据导出器**:将加载的威胁遥测数据格式化为标准的 CSV 文件,供离线电子表格使用。
## 📁 仓库目录结构
```
cloud-threat-intelligence-platform/
├── backend/
│ ├── config/ # MongoDB database config
│ ├── controllers/ # API handlers (auth, threats, alerts, users, analytics)
│ ├── middleware/ # Auth checks, logger, error boundaries
│ ├── models/ # User, ThreatEvent, Alert, ActivityLog models
│ ├── routes/ # Router definitions
│ ├── services/ # alertEngine rule checker
│ ├── utils/ # Token signers, activity logging helpers
│ ├── server.js # Entry point
│ ├── seed.js # Security dataset seeder
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── components/ # StatsCard, SeverityBadge, LoadingSpinner, DataTable, PrivateRoute
│ │ ├── contexts/ # AuthContext Session State
│ │ ├── hooks/ # useAuth Hook
│ │ ├── layouts/ # MainLayout Shell
│ │ ├── pages/ # 8 lazy-loaded view components
│ │ ├── services/ # Axios instance & data fetch wrappers
│ │ ├── utils/ # RBAC checks
│ │ ├── App.jsx # Route guard definitions
│ │ ├── index.css # Dark-mode design system stylesheet
│ │ └── main.jsx # Client render entry point
│ ├── vite.config.js # Build config with API reverse proxy
│ ├── package.json
│ └── index.html
└── README.md
```
## 🔑 演示访问账户
数据库填充程序开箱即用地初始化了三个角色,默认密码格式为:`@1234`。
| 用户名 | 角色 | 权限说明 |
|---|---|---|
| `admin@ctip.io` | **Admin** | 全系统操作,更改角色,激活/停用账户,删除告警 |
| `sarah.chen@ctip.io` | **Security Analyst** | 确认/解决/忽略系统告警,管理威胁日志 |
| `james.wilson@ctip.io` | **Viewer** | 控制台概览,威胁搜索,告警列表(只读) |
## 🚦 入门指南与验证
### 前置条件
- [Node.js](https://nodejs.org) (v18+)
- [MongoDB](https://www.mongodb.com/try/download/community) (在本地 27017 端口运行,或者在 `.env` 中配置自定义的 URI)
### 1. 设置后端
```
# 导航到 backend 目录
cd backend
# 安装生产环境和开发环境依赖
npm install
# 导入并用威胁情报指标填充数据库
npm run seed
# 启动 Express API Server (运行于 http://localhost:5000)
npm run dev
```
### 2. 设置前端
```
# 导航到 frontend 目录
cd frontend
# 安装客户端包
npm install
# 运行 Vite Dev Server (通过代理配置运行于 http://localhost:5173)
npm run dev
```
标签:GNU通用公共许可证, MITM代理, MongoDB, Node.js, React, Syscalls, TCP/IP协议栈, 可视化面板, 威胁情报, 开发者工具, 网络安全平台, 自定义脚本