blackapple805/Capstone
GitHub: blackapple805/Capstone
一款 AI 辅助的实时网络安全威胁检测与响应仪表盘,整合第三方威胁情报 API 并提供统一的全栈可视化界面。
Stars: 2 | Forks: 1
# 🛡️ CyberGuardian — 网络安全威胁检测与响应
CyberGuardian 是一款 AI 辅助的实时网络安全威胁检测与响应工具。它将第三方威胁情报 API 与全栈 Web 应用相结合,通过统一的仪表盘来展示、情境化并协助响应潜在威胁。
基于 **React**、**Node.js/Express** 和 **MySQL** 构建,并使用 **Docker** 进行了完全容器化。
## 我的贡献
我在这个项目中参与了全栈开发——包括 React 前端(仪表盘、威胁检测视图、身份验证流程)、Node/Express 后端及 API,以及威胁检测逻辑。团队在加利福尼亚州完成了最终的现场展示汇报,而我是从巴黎远程参与的。
## ✨ 功能
- **威胁检测**:由第三方威胁情报 API(IPQualityScore、RapidAPI)提供支持
- **仪表盘**:一目了然地概览检测到的威胁和系统状态
- **用户身份验证** — 安全的注册、登录和受保护的路由 (JWT)
- **威胁上下文视图**:用于调查单个检测结果
- **技术方案与帮助部分**:提供指导和文档说明
- **响应式 React UI**:采用可复用组件构建
## 🛠 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React.js |
| 后端 | Node.js, Express |
| 数据库 | MySQL |
| 身份验证 | JSON Web Tokens (JWT) |
| 威胁数据 | IPQualityScore API, RapidAPI 服务 |
| 部署 | Docker, Docker Compose |
## 📁 项目结构
```
Capstone/
├── backend/ # Node/Express API
│ ├── server.js # API entry point
│ ├── Dockerfile
│ ├── .env.example # Template for required environment variables
│ └── package.json
├── frontend/ # React application
│ ├── public/
│ ├── src/
│ │ ├── components/ # Dashboard, ThreatDetection, Login, etc.
│ │ └── App.js
│ ├── Dockerfile
│ └── package.json
├── docker-compose.yml # Orchestrates frontend, backend, and database
└── README.md
```
## 🚀 快速开始
### 前置条件
- Docker 和 Docker Compose
- Node.js v16+(仅用于本地非 Docker 开发)
- MySQL(由 Docker 处理,或在本地安装)
### 克隆仓库
```
git clone https://github.com/blackapple805/Capstone.git
cd Capstone
```
## 🔑 环境变量
后端需要配置几个环境变量。请复制示例文件并填入你自己的值:
```
cp backend/.env.example backend/.env
```
| 变量 | 说明 |
|---|---|
| `PORT` | 后端服务器运行的端口(默认为 3001) |
| `DB_HOST` | MySQL 主机 |
| `DB_NAME` | 数据库名称 |
| `DB_USER` | 数据库用户名 |
| `DB_PASSWORD` | 数据库密码 |
| `SECRET_KEY` | 用于签发 JWT 身份验证 token 的密钥 |
| `IPQUALITYSCORE_API_KEY` | 用于 IPQualityScore 威胁查询的 API key |
| `RAPIDAPI_KEY_2` | 用于威胁情报服务的 RapidAPI key |
| `RAPIDAPI_KEY_3` | 额外的 RapidAPI key |
## 🐳 使用 Docker 运行
运行整个技术栈最简单的方法:
```
docker-compose up --build
```
容器启动后:
- 前端:http://localhost:3000
- 后端 API:http://localhost:3001
停止所有服务:
```
docker-compose down
```
## 💻 本地运行(不使用 Docker)
**后端:**
```
cd backend
npm install
npm start
```
**前端**(在另一个独立的终端中):
```
cd frontend
npm install
npm start
```
前端将在 http://localhost:3000 启动,并将 API 请求代理到 http://localhost:3001 的后端。
## 🧰 故障排除
- **数据库连接错误** — 请确认 `backend/.env` 中的 `DB_*` 变量与你的 MySQL 设置是否匹配,并确保数据库容器正在运行。
- **API 请求失败** — 请检查你的威胁情报 API keys 是否有效,以及是否触发了速率限制。
- **端口被占用** — 修改 `backend/.env` 中的 `PORT`,或者停止占用该端口的进程。
- **Docker 构建问题** — 运行 `docker-compose down`,然后运行 `docker-compose up --build` 进行干净的重新构建。
## 🙌 致谢
作为小组毕业设计开发。团队成员:
- [@YuukiCJ](https://github.com/YuukiCJ)
- [@visioninhope](https://github.com/visioninhope)
- [@blackapple805](https://github.com/blackapple805)
标签:AMSI绕过, Docker, GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, 威胁检测, 安全运营, 安全防御评估, 扫描框架, 版权保护, 自定义脚本, 请求拦截