CosmicViraj/sentinel-cyber-portal

GitHub: CosmicViraj/sentinel-cyber-portal

一套轻量级 AI 驱动的网络事件报告与威胁情报门户,为安全团队提供实时威胁监控、智能事件分诊和全球攻击可视化能力。

Stars: 0 | Forks: 0

# SENTINEL — 国防部网络事件与安全门户 ![SENTINEL Dashboard](https://raw.githubusercontent.com/CosmicViraj/sentinel-cyber-portal/main/[https://sentinel-sp7p.onrender.com/index.html](https://sentinel-sp7p.onrender.com/pages/signup.html)) [![实时演示](https://img.shields.io/badge/Live%20Demo-sentinel--sp7p.onrender.com-00d4ff?style=flat-square)](https://sentinel-sp7p.onrender.com) [![License: MIT](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) [![Node.js](https://img.shields.io/badge/Node.js-18+-339933?style=flat-square&logo=node.js)](https://nodejs.org) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-4169E1?style=flat-square&logo=postgresql)](https://postgresql.org) [![欢迎贡献](https://img.shields.io/badge/Contributions-Welcome-brightgreen?style=flat-square)](CONTRIBUTING.md) ## 🖥️ 实时演示 **[https://sentinel-sp7p.onrender.com](https://sentinel-sp7p.onrender.com)** | 用户名 | 密码 | 角色 | |---|---|---| | `admin` | `Admin@Sentinel123` | 管理员 | | `analyst.patel` | `Analyst@Sentinel123` | 分析师 | ## ✨ 功能 - **🛡️ 实时威胁仪表板** — 实时 KPI 统计、事件动态、动画全球攻击地图 - **🤖 AI 威胁分析** — 由 Groq (LLaMA 3.3 70B) 提供支持,用于即时事件分诊、威胁简报、钓鱼扫描 - **📋 事件管理** — 具有严重性分类和状态跟踪的完整 CRUD 事件注册表 - **🗺️ 全球威胁地图** — 针对英国基础设施的实时攻击向量的动画 canvas 可视化 - **🔐 JWT 认证** — 具有 5 个权限级别的基于角色的访问控制 - **📊 资产注册表** — 监控 348+ 资产及其健康分数和状态跟踪 - **📜 不可变审计日志** — 用于合规性的完整操作日志 - **⚡ 响应协议** — 12 个带有审查跟踪的活动安全协议 - **💬 AI 聊天** — 用于威胁情报查询的交互式 SENTINEL AI 助手 ## 🏗️ 技术栈 | 层级 | 技术 | |---|---| | **运行时** | Node.js 18+ | | **框架** | Express.js | | **数据库** | PostgreSQL 15+ | | **AI 引擎** | Groq SDK (LLaMA 3.3 70B) | | **认证** | JWT + bcryptjs | | **前端** | 原生 HTML/CSS/JS | | **部署** | Render.com | | **安全** | Helmet, CORS, Rate Limiting | ## 📁 项目结构 ``` sentinel-cyber-portal/ ├── config/ │ └── database.js # PostgreSQL connection pool ├── src/ │ ├── server.js # Express app entry point │ ├── middleware/ │ │ └── auth.middleware.js # JWT verification + RBAC │ ├── routes/ │ │ ├── auth.routes.js # Login, register, password reset │ │ ├── incident.routes.js # Incident CRUD │ │ ├── dashboard.routes.js # Stats and activity feed │ │ ├── ai.routes.js # AI analysis endpoints │ │ └── asset.routes.js # Asset management │ └── services/ │ └── ai.service.js # Groq AI integration ├── scripts/ │ ├── migrate.js # Database schema creation │ └── seed.js # Demo data + default users ├── pages/ │ ├── login.html # Authentication page │ ├── incidents.html # Incident registry │ ├── ai-chat.html # AI assistant │ ├── assets.html # Asset registry │ ├── threats.html # Global threat map │ ├── protocols.html # Response protocols │ ├── audit.html # Audit log │ ├── report.html # Report incident │ └── settings.html # System settings └── index.html # Main dashboard ``` ## 🚀 入门指南 ### 前置条件 - Node.js 18+ - PostgreSQL 15+ - Groq API 密钥 (可在 [console.groq.com](https://console.groq.com) 免费获取) ### 1. 克隆仓库 ``` git clone https://github.com/CosmicViraj/sentinel-cyber-portal.git cd sentinel-cyber-portal ``` ### 2. 安装依赖 ``` npm install ``` ### 3. 配置环境 ``` cp .env.example .env ``` 编辑 `.env`: ``` NODE_ENV=development PORT=5000 JWT_SECRET=your_jwt_secret_here GROQ_API_KEY=your_groq_api_key_here DB_HOST=localhost DB_PORT=5432 DB_NAME=sentinel_db DB_USER=postgres DB_PASSWORD=your_password_here ``` ### 4. 创建数据库 ``` psql -U postgres -c "CREATE DATABASE sentinel_db;" ``` ### 5. 运行迁移 ``` npm run migrate ``` ### 6. 填充演示数据 ``` npm run seed ``` ### 7. 启动服务器 ``` npm run dev # Development (with nodemon) npm start # Production ``` 访问 `http://localhost:5000` ## 🌐 部署到 Render (免费) 1. Fork 此仓库 2. 前往 [render.com](https://render.com) → New → Web Service 3. 连接您 Fork 的仓库 4. 设置 **Build Command**:`npm install` 5. 设置 **Start Command**:`node scripts/migrate.js && node src/server.js` 6. 从您的 `.env` 中添加环境变量 7. 在 Render 上添加一个免费的 PostgreSQL 数据库并复制连接详情 ## 🔌 API 参考 ### 认证 | 方法 | 端点 | 描述 | |---|---|---| | POST | `/api/auth/login` | 登录 — 返回 JWT | | POST | `/api/auth/register` | 注册新用户 | | GET | `/api/auth/me` | 当前用户资料 | ### 事件 | 方法 | 端点 | 描述 | |---|---|---| | GET | `/api/incidents` | 列出所有事件 | | POST | `/api/incidents` | 创建事件 + AI 分诊 | | PATCH | `/api/incidents/:id` | 更新状态 | ### AI | 方法 | 端点 | 描述 | |---|---|---| | POST | `/api/ai/chat` | 与 SENTINEL AI 聊天 | | POST | `/api/ai/analyse/:id` | 重新运行 AI 分析 | | GET | `/api/ai/briefing` | 威胁情报简报 | | POST | `/api/ai/phishing-scan` | 扫描 URL 是否存在钓鱼 | | POST | `/api/ai/vuln-scan` | 漏洞评估 | ### 仪表板 | 方法 | 端点 | 描述 | |---|---|---| | GET | `/api/dashboard/stats` | KPI 计数 | | GET | `/api/dashboard/activity-feed` | 近期事件 | | GET | `/api/dashboard/system-health` | 资产健康评分 | ## 👥 用户角色 | 角色 | 权限级别 | 访问权限 | |---|---|---| | `admin` | 5 | 完全访问 | | `commander` | 4 | 所有操作 + 审计 | | `analyst` | 3 | 事件、AI、资产 | | `operator` | 2 | 查看 + 创建事件 | | `viewer` | 1 | 只读 | ### 适合新手的 Issues - [ ] 移动端响应式布局 - [ ] 实时 WebSocket 警报 - [ ] 严重事件的电子邮件通知 - [ ] 深色/浅色主题切换 - [ ] 将事件导出为 PDF/CSV - [ ] 双重身份验证 - [ ] 威胁情报源集成 ## 🔒 安全说明 - 所有路由均需要 JWT 认证 - 密码使用 bcrypt 哈希 (cost factor 12) - 所有端点均有速率限制 - 通过参数化查询防止 SQL 注入 - Helmet.js 设置安全的 HTTP 头 - 生产环境强制对数据库使用 SSL ## 📄 许可证 MIT — 详见 [LICENSE](LICENSE) ## ⚠️ 免责声明 这是一个演示/教育项目。不隶属于英国国防部,也未受其认可。在任何实际部署中应立即更改默认凭据。
CosmicViraj 用 ⚡ 构建 — 如果您觉得有用,请点亮 Star ⭐!
标签:AI人工智能, AI分流, AI聊天助手, DLL 劫持, DNS解析, GNU通用公共许可证, JWT认证, LLaMA, MITM代理, Node.js, PostgreSQL, RBAC, 事件管理, 人工智能, 全球攻击地图, 军工安全, 占用监测, 后端开发, 国防, 国防部, 基于角色的访问控制, 多模态安全, 大语言模型, 威胁分析, 威胁可视化, 威胁情报, 安全仪表盘, 安全协议, 安全应急响应, 安全门户, 开发者工具, 开源项目, 数据可视化, 测试用例, 用户模式Hook绕过, 网络安全, 网络钓鱼扫描, 自动化侦查工具, 自动化评估, 资产管理, 隐私保护