adityasaoho/blume-intelligence-390
GitHub: adityasaoho/blume-intelligence-390
一款面向网络安全教育和原型验证的云原生 SOC 平台,集成了威胁检测、日志分析、事件响应和 AI 辅助修复等企业级安全运营功能。
Stars: 0 | Forks: 0
# BLUME Intelligence 390 🛡️
### 云端情报。检测。响应。
一款现代化的企业级云原生 SOC 仪表板,模拟 SIEM 威胁日志接入、警报分诊、响应剧本执行、交互式 MITRE ATT&CK 映射、日志分析以及本地 AI 辅助事件修复。专为 BCA 网络安全专业的毕业学术提交而设计。
## 🌟 核心功能
- **中央安全仪表板**:实时统计小部件(总警报数、严重威胁、活跃案例、平均遏制 MTTR)以及交互式 Chart.js 折线图/环形图指标。
- **交互式 HTML5 Canvas 攻击地图**:实时渲染从全球源国家(如 RU、CN、NL、US)辐射至目标服务器的传入威胁连接。
- **日志接入与分析器**:深度正则表达式解析引擎,用于处理原始系统日志(Apache、Linux sshd、Windows Logon Event 4625、防火墙流量日志),并自动将安全威胁升级至警报网格。
- **MITRE ATT&CK 矩阵导航器**:发光的热力图,将活跃警报与标准的 kill-chain 战术(从 Initial Access 到 Impact)相关联。
- **事件响应与案例看板**:分屏面板工作流,跟踪状态循环(New -> Assigned -> Investigating -> Contained -> Resolved),并附带可审计的日志、时间戳和备注。
- **自动化响应剧本**:一键修复操作:
- **隔离 Endpoint**:将受感染的工作站状态设置为离线。
- **封禁源 IP**:下发网络封禁指令。
- **吊销凭证**:在 AD 中停用受损的用户名。
- **离线本地 AI SOC 助手**:专用的网络启发式模型,用于回答问题、解释警报 payload,并生成详细的修复检查清单。
- **控制台审计日志**:永久跟踪管理员和分析员的操作。
- **认证的 PDF 与 CSV 报告**:带有签名和自定义签核的结构化可打印报告。
## 🏗️ 技术架构
```
ide-project/
├── backend/ # Node.js/Express Server (TypeScript)
│ ├── src/
│ │ ├── config/ # DB (Mongoose) + Stateful Mock Store fallbacks
│ │ ├── controllers/ # Route controllers (Auth, Alerts, Incidents, AI, Logs)
│ │ ├── middleware/ # JWT validations, RBAC checks, rate limiters
│ │ ├── models/ # Mongoose Schemas (User, Alert, Incident, IOC, Audit)
│ │ ├── routes/ # REST endpoints
│ │ └── utils/ # Log Parsers, Threat Simulators
│ └── tsconfig.json
│
└── frontend/ # React 19 Client (Vite + TypeScript)
├── src/
│ ├── components/ # Reusable layout shells, protected routes
│ ├── context/ # JWT Session Auth + Session Timeout trackers
│ ├── pages/ # Dashboard, Alerts, Log Analyzer, AI, MITRE Navigator
│ └── utils/ # Fetch API client
├── tailwind.config.js
└── vite.config.ts
```
## 🚀 安装与本地运行指南
### 前置条件
- [Node.js](https://nodejs.org/)(推荐 LTS v20+ 版本)
- [npm](https://www.npmjs.com/)(随 Node.js 一起打包)
### 步骤 1:克隆并设置环境变量
在 `backend` 目录下创建一个 `.env` 文件:
```
PORT=5000
JWT_SECRET=your_super_secret_cyber_soc_key_123
MONGO_URI=mongodb+srv://:@cluster.mongodb.net/cloudsoc (Optional - defaults to Stateful Simulation offline database if left blank)
```
### 步骤 2:初始化并启动后端服务器
```
cd backend
npm install
npm run dev
```
服务器将在 `http://localhost:5000` 上以**模拟数据库模式**启动(如果提供了 `MONGO_URI`,则会以 MongoDB 连接模式启动)。威胁接入引擎将每 45 秒生成一次模拟警报数据包。
### 步骤 3:初始化并启动 React 前端
在一个新的终端窗口中:
```
cd frontend
npm install
npm run dev
```
客户端控制台将在 `http://localhost:5173/` 上启动。
## 🔑 演示预填账号
您可以使用控制台仪表板上这些预置的模拟账号登录:
- **SOC 分析员**:`analyst@cloudsoc.ai` / `analyst123`
- **SOC 经理**:`manager@cloudsoc.ai` / `manager123`
- **SOC 管理员**:`admin@cloudsoc.ai` / `admin123`
## 📡 REST API 文档
| 方法 | Endpoint | 描述 | 权限 |
| :--- | :--- | :--- | :--- |
| **POST** | `/api/auth/register` | 注册新的分析员节点 | 公开 |
| **POST** | `/api/auth/login` | 登录会话并获取 JWT token | 公开 |
| **GET** | `/api/auth/me` | 获取活跃用户凭证 | 私密 |
| **GET** | `/api/alerts` | 分页警报查询(带过滤器) | 私密 |
| **GET** | `/api/alerts/stats` | 聚合统计图表数据 | 私密 |
| **POST** | `/api/alerts/simulate` | 手动发送模拟威胁事件 | 私密 |
| **PUT** | `/api/alerts/:id/assign` | 为警报指派所有者 | 私密 |
| **GET** | `/api/incidents` | 获取活跃事件案例列表 | 私密 |
| **POST** | `/api/incidents/:id/playbook` | 执行威胁响应剧本 | 私密 |
| **POST** | `/api/logs/analyze` | 解析日志文件并触发警告 | 私密 |
| **POST** | `/api/ai/chat` | 向本地 AI SOC 引擎发送聊天查询 | 私密 |
| **GET** | `/api/settings/audit-logs` | 获取系统控制台事务审计日志 | 私密 |
| **PUT** | `/api/settings/users/:id/role`| 修改操作员角色 | 仅限管理员 |
## 🛡️ 安全实现
1. **JWT 会话认证**:采用带有客户端过期状态控制的密封 JSON Web Token。
2. **基于角色的访问控制 (RBAC)**:中间件限制特定 API(例如清除数据库痕迹)仅供经理/管理员级别使用。
3. **Helmet 标头保护**:安全的 HTTP 标头可阻止恶意脚本来源。
4. **输入速率限制器**:最大请求锁定,以应对针对 API 路由的拒绝服务 攻击。
5. **安全加密哈希**:使用 `bcryptjs` salt 对用户密钥进行密封加密。
标签:AMSI绕过, MITM代理, PE 加载器, 威胁检测, 安全运营中心, 库, 应急响应, 插件系统, 网络安全教学项目, 网络映射, 自动化攻击