NareenAsad/cyberguard-platform

GitHub: NareenAsad/cyberguard-platform

一个基于 Next.js 和 Supabase 的 AI 驱动威胁情报与事件响应平台,帮助用户以可视化方式完成安全运营全流程管理。

Stars: 0 | Forks: 0

# 🛡️ CyberGuard:AI 驱动的威胁情报与事件响应系统 一个企业级、AI 驱动的网络安全平台,通过智能自动化、上下文风险评估和实时威胁监控彻底改变安全运营 —— 建于拉合尔女子大学(Lahore University for Women University),作为毕业设计项目开发。 [![Next.js](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)](https://www.typescriptlang.org/) [![Supabase](https://img.shields.io/badge/Database-Supabase-3ECF8E)](https://supabase.com/) [![Tailwind CSS](https://img.shields.io/badge/Tailwind-4.x-06B6D4)](https://tailwindcss.com/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) ## ✨ 项目状态 | 组件 | 状态 | 详情 | |-----------|--------|---------| | **前端** | ✅ 已完成 | Next.js 16, React 19, 响应式设计 | | **组件架构** | ✅ 已重构 | 5 个页面中共有 20 多个可复用组件 | | **数据库集成** | ✅ 已完成 | Supabase Postgres,包含 6 个表 | | **API 层 (API Layer)** | ✅ 已完成 | 7 个端点,采用数据库优先方案 + 回退机制 | | **校验与错误处理** | ✅ 已完成 | 输入校验、参数化查询、优雅降级 | | **文档** | ✅ 已完成 | 设置指南、实现总结、检查清单 | | **AI 代理** | 🚧 开发中 | CrewAI 集成、LangChain、Groq API | | **实时更新** | 🚧 开发中 | WebSocket 集成、Socket.io | ## 🎯 核心功能 ### 仪表盘 - 实时指标(检测到的威胁、风险评分、事件、受监控系统) - 包含历史数据的威胁活动趋势图 - 带状态跟踪的近期事件列表 - 快速统计概览 - 基于数据库的指标,支持自动刷新 ### 风险分析 - 资产风险分布可视化 - 按严重程度划分的优先级风险排序 - 漏洞计数与暴露时间跟踪 - 风险评分细分与建议 - 可排序和筛选的资产列表 ### 事件响应 - 带有时间线的活动事件管理 - 事件严重程度与状态跟踪 - 处理人分配与优先级管理 - 带有校验的事件创建 - 响应 Playbook 执行 ### Playbooks - 按类别分类的预置响应流程 - 跨 Playbook 的全文搜索 - 逐步执行指导 - 与事件响应集成 - 执行历史跟踪 ### 报告 - 安全报告生成与跟踪 - 报告类型筛选(安全、合规、威胁) - 状态跟踪(已完成、进行中) - 威胁与解决统计数据 - 可下载的报告管理 ### 企业级功能 - 所有表单均进行输入校验 - 带有用户友好提示的错误处理 - 优雅回退至模拟数据 - 响应式移动端设计 - 针对安全操作优化的深色主题 ## 🚀 技术栈 ### 前端 - **Next.js 16** - App Router, SSR, 静态生成 - **React 19+** - 基于 Hooks 的组件组合 - **TypeScript 5.0** - 类型安全的开发 - **Tailwind CSS 4.x** - 基于设计令牌的实用优先样式 - **shadcn/ui** - 高质量可复用组件 - **Recharts** - 交互式数据可视化 - **Lucide React** - 统一的图标系统 ### 后端与数据库 - **Next.js API 路由** - 带有校验的 REST 端点 - **Supabase Postgres** - 托管型 PostgreSQL 数据库 - **@supabase/supabase-js** - 数据库和身份验证客户端 ### 数据库表 - `threats` - 带有严重程度/状态的威胁指标 - `risk_analyses` - 资产风险评估 - `incidents` - 带有时间线的安全事件 - `playbooks` - 事件响应流程 - `reports` - 生成的安全报告 - `dashboard_metrics` - 聚合统计数据 ## 📂 项目结构 ``` cyberguard/ ├── docs/ # Documentation files ├── prisma/ # Database schema │ └── schema.prisma # Prisma schema (6 tables) ├── public/ # Static assets ├── scripts/ # Database scripts │ ├── init-db.ts # Initialize database │ └── seed-db.ts # Seed initial data ├── src/ # Source directory │ ├── app/ # Next.js App Router │ │ ├── layout.tsx # Root layout with sidebar/header │ │ ├── page.tsx # Dashboard (refactored) │ │ ├── risk-analysis/ # Risk analysis pages │ │ ├── incident-response/ # Incident response pages │ │ ├── playbooks/ # Playbooks pages │ │ ├── reports/ # Reports pages │ │ └── api/ # Next.js API routes │ │ ├── dashboard/ │ │ ├── threats/ │ │ ├── risk-analysis/ │ │ ├── incident-response/ │ │ ├── playbooks/ │ │ └── reports/ │ ├── components/ # Reusable React components │ │ ├── layout/ │ │ ├── dashboard/ │ │ ├── risk-analysis/ │ │ ├── incident-response/ │ │ ├── playbooks/ │ │ ├── reports/ │ │ ├── shared/ │ │ └── ui/ # shadcn/ui components │ ├── hooks/ # React hooks │ │ ├── use-mobile.ts │ │ └── use-toast.ts │ ├── lib/ # Utilities & services │ │ ├── db.ts # Database query functions (8) │ │ ├── mock-data.ts # Fallback mock data │ │ ├── utils.ts # Common utilities │ │ └── constants.ts # App constants │ └── styles/ # Global styles and design tokens ├── LICENSE # MIT License └── README.md # Project documentation ``` ## 🚦 快速开始 ### 前置条件 - Node.js 20.x 或更高版本 - Supabase 项目(提供免费套餐) - Git ### 1. 安装与设置 ``` # 克隆仓库 git clone https://github.com/YOUR_USERNAME/cyberguard-platform.git cd cyberguard-platform # 安装依赖 npm install # 复制环境模板 cp .env.example .env.local # 将 Supabase 变量添加到 .env.local # NEXT_PUBLIC_SUPABASE_URL 和 SUPABASE_SERVICE_ROLE_KEY ``` ### 2. 初始化数据库 ``` # 创建表和 schema npm run db:init # 填充样本数据 npm run db:seed # 或同时执行两者 npm run db:setup ``` ### 3. 启动开发服务器 ``` npm run dev # 打开 http://localhost:3000 ``` 该应用现已使用真实的 PostgreSQL 数据库!所有端点都会查询数据库,并在数据库不可用时自动回退至模拟数据。 ### 测试 API 端点 ``` # 获取 dashboard metrics curl http://localhost:3000/api/dashboard/metrics # 获取 threats curl "http://localhost:3000/api/threats?severity=high" # 获取 risk analysis curl "http://localhost:3000/api/risk-analysis?sortBy=riskLevel" # 获取 incidents curl http://localhost:3000/api/incident-response ``` ## 🗄️ 数据库配置 ### 环境变量 ``` # .env.local NEXT_PUBLIC_SUPABASE_URL=https://.supabase.co SUPABASE_SERVICE_ROLE_KEY= ``` ### 获取 Supabase 凭证 1. 在 [supabase.com](https://supabase.com) 注册(免费套餐) 2. 创建一个新项目 3. 复制项目 URL 和服务角色密钥 4. 在 `.env.local` 中设置 `NEXT_PUBLIC_SUPABASE_URL` 和 `SUPABASE_SERVICE_ROLE_KEY` ### 数据库表 | 表名 | 列名 | 用途 | |-------|---------|---------| | `threats` | id, title, severity, status, source, created_at | 威胁跟踪 | | `risk_analyses` | id, asset, risk_level, vulnerabilities, exposure_time | 风险评估 | | `incidents` | id, title, description, severity, status, created_at | 事件管理 | | `playbooks` | id, title, category, description, steps | 响应流程 | | `reports` | id, title, type, status, threats, resolved | 报告生成 | | `dashboard_metrics` | id, threats_detected, risk_score, incidents_active | 仪表盘统计 | ## 📡 API 参考 ### 数据库支持的端点 所有端点均采用数据库优先方案,并带有向模拟数据的优雅回退机制。 ``` # Dashboard Metrics GET /api/dashboard/metrics # Real-time metrics (DB-backed) GET /api/dashboard/chart-data # Chart data aggregation # Threats GET /api/threats # List all threats GET /api/threats?severity=high # Filter by severity GET /api/threats?status=active # Filter by status GET /api/threats?page=1&limit=10 # Pagination # Risk Analysis GET /api/risk-analysis # List all risks GET /api/risk-analysis?minRisk=50 # Filter by risk range GET /api/risk-analysis?sortBy=riskLevel # Sort options # Incident Response GET /api/incident-response # List incidents GET /api/incident-response?status=active POST /api/incident-response # Create incident (validated) # Playbooks GET /api/playbooks # List playbooks GET /api/playbooks?category=malware # Filter by category GET /api/playbooks?search=ransomware # Search playbooks # Reports GET /api/reports # List reports GET /api/reports?type=security # Filter by type POST /api/reports # Generate report (validated) ``` ## 🧪 数据库集成特性 ### 输入校验 - POST 端点会校验必填字段 - 返回 400 Bad Request 及错误信息 - 防止无效数据写入数据库 ### 错误处理 - 参数化 SQL 查询(防止 SQL 注入) - 所有数据库调用均包含 Try-catch 块 - 出错时优雅回退至模拟数据 - API 响应中的警告头信息指示回退模式 ### 优雅降级 - 如果数据库不可用,应用仍可使用模拟数据正常运行 - API 响应中的警告标志:`_warning: "Using mock data - database unavailable"` - 无面向用户的错误,提供无缝体验 ### 数据库查询 ``` // 8 database query functions: 1. getDashboardMetrics() # Aggregated metrics 2. getThreats() # Threats with filters 3. getRisks() # Risk data with sorting 4. getIncidents() # Incidents CRUD 5. createIncident() # Create with validation 6. getPlaybooks() # Playbooks with search 7. getReports() # Reports with filters ``` ## 🎨 组件架构 ### 重构页面(20 多个组件) **仪表盘页面** - `MetricsGrid` - 4 列指标展示 - `ThreatChart` - 带有趋势数据的折线图 - `RecentIncidents` - 带有状态徽章的表格 - `QuickStats` - 统计面板 **风险分析页面** - `RiskDistribution` - 条形图可视化 - `RiskPrioritization` - 排序的资产列表 - `RiskStatistics` - 汇总卡片 **事件响应页面** - `IncidentsList` - 侧边栏选择器 - `IncidentDetails` - 时间线和详情 **Playbooks 页面** - `PlaybookCategories` - 类别过滤器 - `PlaybooksGrid` - 网格布局 **报告页面** - `ReportFilters` - 过滤侧边栏 - `ReportsList` - 报告列表 ### 共享组件 - `PageHeader` - 标题和描述 - `LoadingSkeleton` - 加载状态 - `Sidebar` - 导航 - `Header` - 顶部栏 ## 📚 文档 | 文档 | 用途 | |----------|---------| | [DATABASE_SETUP.md](./DATABASE_SETUP.md) | 数据库设置指南 | | [INTEGRATION_CHECKLIST.md](./INTEGRATION_CHECKLIST.md) | 逐步集成检查清单 | | [IMPLEMENTATION_SUMMARY.md](./IMPLEMENTATION_SUMMARY.md) | 技术实现细节 | | [COMPLETION_REPORT.md](./COMPLETION_REPORT.md) | 项目完成状态 | ## 🧪 测试 ``` # 运行所有测试 npm test # Watch 模式 npm run test:watch # Coverage 报告 npm run test:coverage ``` ## 🌐 部署 ### Vercel 部署(推荐) 1. 推送至 GitHub 2. 将仓库连接至 Vercel 3. 添加 Supabase 环境变量 4. 一键部署 ### 环境变量(生产环境) ``` NEXT_PUBLIC_SUPABASE_URL=https://.supabase.co SUPABASE_SERVICE_ROLE_KEY= NODE_ENV=production ``` ## ⚠️ 重要提示 ### 教育用途 本系统专为教育和研究目的而设计。虽然它实现了真实的网络安全概念,但应当: - ✅ 作为学习工具使用 - ✅ 在受控环境中进行评估 - ✅ 在投入生产前由安全专业人员进行验证 - ❌ 不可作为唯一的安全解决方案予以依赖 ### 数据隐私 - 实施适当的访问控制 - 传输中的数据加密 (HTTPS) - 安全的数据库凭证管理 - 建议定期进行安全审计 ## 🤝 贡献 1. Fork 本仓库 2. 创建一个功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 发起一个 Pull Request ## 🙏 致谢 - **Supabase** - 托管型 PostgreSQL 及平台服务 - **Vercel** - Next.js 与部署平台 - **shadcn/ui** - React 组件库 - **MITRE** - ATT&CK 框架 - **开源社区** - 提供工具与库
**由 CyberGuard 团队用 ❤️ 构建** **版本:** 1.1.0 | **状态:** 积极开发中 | **最后更新:** 2026 年 4 月 **数据库已集成 ✓** | **组件已重构 ✓** | **校验与错误处理已完成 ✓**
标签:AI安全, Chat Copilot, CISA项目, CrewAI, Groq API, IP 地址批量处理, LangChain, PostgreSQL, PyRIT, React, Rego, Socket.io, Supabase, Syscalls, Tailwind CSS, TypeScript, 企业级安全平台, 可视化分析, 多智能体系统, 大语言模型应用, 威胁情报, 安全仪表盘, 安全插件, 安全运营中心(SOC), 实时威胁分析, 开发者工具, 数据库接管, 毕业设计, 漏洞分析, 网络安全, 自动化攻击, 路径探测, 轻量级, 隐私保护