soumi-saha12/cloud_anomaly_detection_system
GitHub: soumi-saha12/cloud_anomaly_detection_system
一个基于 Flask 与 React 的全栈云监控平台,利用机器学习算法分析云日志并自动检测基础设施异常,生成带严重性分级的事件与风险评分。
Stars: 0 | Forks: 1
# ☁️ 云异常检测系统
### 基于 AI 的云监控与威胁检测平台
*一个全栈智能监控解决方案,能够分析云基础设施日志,使用机器学习检测异常,并将原始遥测数据转化为可执行的安全洞察。*








## 🚀 在线部署
### 生产环境 URL
- Frontend: [在此添加 Vercel URL]
- Backend API: [在此添加 Render API URL]
- Database: `Render Managed Database`
### 部署架构
```
flowchart LR
User[User Browser]
Vercel[Vercel Frontend]
RenderAPI[Render Backend API]
RenderDB[(Render Database)]
User --> Vercel
Vercel --> RenderAPI
RenderAPI --> RenderDB
```
## 🔭 概述
云异常检测系统专为现代云安全运营而构建。它接收身份验证、API 和系统日志,应用基于机器学习的异常检测,关联跨来源的信号,并呈现带有事件级上下文的统一风险评分。
该项目旨在提供类似于生产级 SaaS 产品的体验:
- 安全的、经验证的身份访问
- 以 Dashboard 为先的运营可视化
- 可解释的事件输出
- 持久化的历史记录与可审计性
- 专为安全团队和审查人员设计的简洁 UI
## 🚀 为什么选择这个项目?
云环境会生成海量的遥测数据,难以通过人工进行分类筛查。重要的异常往往隐藏在日常的运营噪音中,从而导致:
- 海量的云日志数据
- 隐藏在多个来源中的异常
- 延迟的事件响应
- 增加的运营和安全风险
该平台通过在一个工作流中自动化检测、关联和风险解释,填补了这一空白。
## ✨ 平台亮点
| 类别 | 提供的功能 |
|---|---|
| 🔐 身份验证与安全 | 用户注册、登录、JWT 身份验证、受保护的路由以及基于 token 的 API 访问 |
| 📊 监控与分析 | Dashboard 指标、异常摘要、趋势视图以及风险可视化 |
| 🧠 机器学习引擎 | 使用 Isolation Forest 和 Local Outlier Factor 模型进行云日志异常检测 |
| 🚨 事件管理 | 事件生成、严重性评分以及详细的事件检查 |
| 🎨 用户体验 | 响应式界面、支持深色/浅色主题以及直观的分析工作流 |
## 🧠 智能层
该平台结合了多种异常检测方法:
- Isolation Forest
- Local Outlier Factor (LOF)
这些模型有助于识别跨身份验证、API 和系统遥测的可疑活动模式、异常资源行为以及潜在的运营风险。
随后,后端将源级别的异常关联为一个单一的风险评分和严重程度级别:
- `LOW`
- `MEDIUM`
- `HIGH`
- `CRITICAL`
## 🧩 架构概述
```
flowchart TD
A[User Uploads Logs] --> B[Data Processing]
B --> C[Feature Engineering]
C --> D[ML Anomaly Detection]
D --> E[Risk Scoring]
E --> F[Incident Generation]
F --> G[Dashboard Visualization]
```
### 系统流程
1. 用户上传日志文件
2. 后端验证并存储数据
3. ML 模型分析每个遥测源
4. 关联引擎计算综合风险评分
5. 创建并持久化事件记录
6. Dashboard、历史记录和事件页面渲染结果
## ✨ 功能矩阵
| 领域 | 功能 | 影响 |
|---|---|---|
| 身份验证与安全 | JWT 登录、注册、受保护的路由 | 确保敏感的分析视图和 API 的安全 |
| 监控与分析 | Dashboard 指标和异常摘要 | 快速提供关于风险态势的运营可视化 |
| 机器学习 | Isolation Forest + LOF 异常检测 | 无需编写手动规则即可识别异常模式 |
| 事件管理 | 事件记录和详情页面 | 将原始模型输出转化为可执行的安全发现 |
| 用户体验 | 响应式 UI、主题支持、简洁的导航 | 使平台具有现代 SaaS 产品的质感 |
## 🛠️ 技术栈
### 前端
- React
- Vite
- React Router
- Axios
### Backend
- Python
- Flask
- Flask-JWT-Extended
- Flask-SQLAlchemy
- Flask-Migrate
### Database
- 本地开发使用 SQLite
- 生产环境使用 Render 托管数据库
### 机器学习
- Isolation Forest
- Local Outlier Factor
- Scikit-learn
- Pandas
- NumPy
## 📁 项目结构
```
cloud_anomaly_detection_system/
├── backend/
│ ├── app.py
│ ├── config.py
│ ├── routes/
│ ├── services/
│ ├── models/
│ ├── migrations/
│ └── tests/
├── frontend/
│ ├── src/
│ ├── public/
│ ├── index.html
│ ├── vite.config.js
│ └── package.json
├── models/
│ ├── API/
│ ├── auth/
│ └── system/
├── results/
├── requirements.txt
├── Procfile
└── README.md
```
## ⚙️ 安装说明
### 前置条件
- Python 3.11+
- Node.js 18+
- npm 9+
### 克隆仓库
```
git clone
cd cloud_anomaly_detection_system
```
## 🖥️ Backend 设置
### Windows PowerShell
```
cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r ..\requirements.txt
$env:FLASK_APP="app.py"
$env:FLASK_ENV="development"
flask db upgrade
python app.py
```
### Linux / macOS
```
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r ../requirements.txt
export FLASK_APP=app.py
export FLASK_ENV=development
flask db upgrade
python app.py
```
## 🎨 Frontend 设置
```
cd frontend
npm install
npm run dev
```
## 🔐 环境变量
### Backend
在 `backend/` 目录下创建一个 `.env` 文件:
```
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret-key
DATABASE_URL=sqlite:///dev.db
CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173
```
### 前端
在 `frontend/` 目录下创建一个 `.env` 文件:
```
VITE_API_BASE_URL=http://127.0.0.1:5000
```
## 🗄️ Database 设置
本地开发使用 SQLite。后端启动并应用迁移时,会自动创建数据库。
```
cd backend
flask db upgrade
```
对于生产环境,应用程序通过 `DATABASE_URL` 连接到 Render 托管的数据库。
## ▶️ 运行应用程序
### 本地开发
Backend:
```
cd backend
source .venv/bin/activate
python app.py
```
Frontend:
```
cd frontend
npm run dev
```
### 生产环境启动方式
```
gunicorn --chdir backend --bind 0.0.0.0:$PORT app:app
```
## 🔎 API 概述
所有受保护的 endpoint 都需要在 `Authorization: Bearer ` 请求头中提供有效的 JWT access token。
### 身份验证
- `POST /auth/register` - 注册新用户
- `POST /auth/login` - 登录并获取 JWT token
- `POST /auth/logout` - 吊销当前活跃的 token
- `POST /auth/refresh` - 刷新 access token
- `GET /auth/profile` - 获取当前用户配置信息
### 分析
- `POST /analyze` - 上传日志并运行异常检测
### Dashboard 和历史记录
- `GET /dashboard` - Dashboard 汇总指标
- `GET /dashboard/trends` - 风险评分趋势数据
- `GET /history` - 列出所有分析运行记录
- `GET /history/` - 获取单次运行记录
- `GET /incidents` - 列出事件摘要
### 健康检查
- `GET /` - API 根消息
## 🧪 使用的机器学习模型
### 🧠 智能层
该平台结合了多种异常检测方法:
- Isolation Forest
- Local Outlier Factor (LOF)
用于识别可疑活动模式、异常资源行为以及潜在的运营风险。
### 评分 Pipeline
- 源级别的异常检测
- 跨身份验证、API 和系统遥测的关联
- 加权风险评分
- 划分为四个级别的严重性分类
## 🚀 生产环境部署
### Frontend 部署 (Vercel)
- 从 GitHub 自动部署
- 优化的 React/Vite 生产构建
- 环境变量配置
### Backend 部署 (Render)
- 在 Render 上托管 Flask API
- 生产环境变量
- 可扩展的部署配置
### Database 部署
- 持久化的云数据库
- 安全的后端连接
- 生产级的数据存储
## 📸 截图
### 登录页面

### Dashboard

### 运行分析

### 历史记录和事件

## 🔮 未来增强功能
- 实时流式日志摄入
- 告警和通知集成
- 高级模型可解释性
- 多租户组织支持
- 可导出的安全报告
- 扩展的异常解释洞察
## 👥 贡献者
- Rupsha Debnath
- Soumi Saha
- Soumili Saha
- Srijeeta Dutta
## 📄 许可证
本项目目前未提供明确的许可证。如有需要,在公开发布前请添加相关许可证。
标签:Apex, Flask, React, Syscalls, 云监控, 安全运营, 异常检测, 扫描框架, 机器学习, 逆向工具