soumi-saha12/cloud_anomaly_detection_system

GitHub: soumi-saha12/cloud_anomaly_detection_system

一个基于 Flask 与 React 的全栈云监控平台,利用机器学习算法分析云日志并自动检测基础设施异常,生成带严重性分级的事件与风险评分。

Stars: 0 | Forks: 1

# ☁️ 云异常检测系统 ### 基于 AI 的云监控与威胁检测平台 *一个全栈智能监控解决方案,能够分析云基础设施日志,使用机器学习检测异常,并将原始遥测数据转化为可执行的安全洞察。* ![Python](https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-Backend-black?logo=flask) ![React](https://img.shields.io/badge/React-Frontend-61DAFB?logo=react&logoColor=black) ![Vite](https://img.shields.io/badge/Vite-Build-646CFF?logo=vite&logoColor=white) ![SQLite](https://img.shields.io/badge/SQLite-Dev-003B57?logo=sqlite&logoColor=white) ![Scikit--Learn](https://img.shields.io/badge/Scikit--Learn-ML-F7931E?logo=scikitlearn&logoColor=white) ![Render](https://img.shields.io/badge/Render-Deploy-46E3B7?logo=render&logoColor=black) ![Vercel](https://img.shields.io/badge/Vercel-Deploy-black?logo=vercel) ## 🚀 在线部署 ### 生产环境 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 部署 - 持久化的云数据库 - 安全的后端连接 - 生产级的数据存储 ## 📸 截图 ### 登录页面 ![登录页面占位图](https://raw.githubusercontent.com/soumi-saha12/cloud_anomaly_detection_system/main/screenshots/landing-page.png) ### Dashboard ![Dashboard 占位图](https://raw.githubusercontent.com/soumi-saha12/cloud_anomaly_detection_system/main/screenshots/dashboard.png) ### 运行分析 ![运行分析占位图](https://raw.githubusercontent.com/soumi-saha12/cloud_anomaly_detection_system/main/screenshots/run-analysis.png) ### 历史记录和事件 ![历史记录占位图](https://raw.githubusercontent.com/soumi-saha12/cloud_anomaly_detection_system/main/screenshots/history.png) ## 🔮 未来增强功能 - 实时流式日志摄入 - 告警和通知集成 - 高级模型可解释性 - 多租户组织支持 - 可导出的安全报告 - 扩展的异常解释洞察 ## 👥 贡献者 - Rupsha Debnath - Soumi Saha - Soumili Saha - Srijeeta Dutta ## 📄 许可证 本项目目前未提供明确的许可证。如有需要,在公开发布前请添加相关许可证。
标签:Apex, Flask, React, Syscalls, 云监控, 安全运营, 异常检测, 扫描框架, 机器学习, 逆向工具