abdullaalhussein/soc-training-simulator
GitHub: abdullaalhussein/soc-training-simulator
一个开源的AI驱动SOC分析师培训平台,支持自托管和多角色协作,帮助安全团队在可控环境中进行实战化的威胁调查训练。
Stars: 3 | Forks: 0
SOC Training Simulator
一个开源平台,让 SOC 分析师在面临真实事件之前做好充分准备。
面对全球 350 万网络安全专业人员的短缺,大多数 SOC 培训要么价格昂贵、内容静态,要么与真实调查工作流脱节。本平台填补了这一空白 —— 免费、自托管、AI 驱动。
[](https://github.com/abdullaalhussein/soc-training-simulator/stargazers)
[](https://github.com/abdullaalhussein/soc-training-simulator/actions/workflows/ci.yml)
[](https://nextjs.org/)
[](https://expressjs.com/)
[](https://www.postgresql.org/)
[](https://socket.io/)
[](https://www.prisma.io/)
[](https://www.typescriptlang.org/)
[](https://www.anthropic.com/)
[](https://vitest.dev/)
[](https://playwright.dev/)
## 功能对比
| 特性 | SOC Training Simulator | LetsDefend | TryHackMe | CyberDefenders |
|---------|----------------------|------------|-----------|----------------|
| 开源 | 是 (MIT) | 否 | 否 | 否 |
| 自托管 | 是 | 否 | 否 | 否 |
| AI 导师 / 评分 | 是 (Claude) | 否 | 否 | 否 |
| AI 场景生成器 | 是 | 否 | 否 | 否 |
| 自定义场景 | JSON 导入 + AI 生成器 | 有限 | 社区房间 | 有限 |
| 实时培训师监控 | 是 (Socket.io) | 否 | 否 | 否 |
| YARA 规则演练场 | 是 | 否 | 否 | 否 |
| MITRE ATT&CK 映射 | 是 (可搜索选择器) | 部分 | 否 | 是 |
| 多角色 (Admin/Trainer/Trainee) | 是 | 单用户 | 单用户 | 单用户 |
| 安全加固 | CSRF, 锁定, 审计日志, CSP | N/A | N/A | N/A |
| 成本 | 免费 (AI 需自带 Key) | $25/月+ | $14/月+ | 免费版受限 |
## 截图
Trainer Console
Create sessions, assign scenarios, monitor trainees in real-time
|
Investigation Workspace
3-panel layout: briefing, log viewer with filters, evidence collection
|
Scenario Management
13 built-in scenarios with MITRE ATT&CK mapping and difficulty levels
|
Trainee Dashboard
Track assigned sessions, progress stats, and start investigations
|
更多截图 (落地页, 深色模式, 课程视图)
#### 落地页
#### 调查前课程
#### 深色模式
## 核心特性
**调查与培训**
- **13 个内置场景**,涵盖从初级到高级的难度(钓鱼、暴力破解、横向移动、DNS 隧道、APT 攻击、SQL 注入、内部威胁、YARA 规则、SOC 基础知识)
- **多阶段场景调查**,具有可配置的解锁条件
- **10 种真实日志类型** — SIEM、EDR、Sysmon、Firewall、DNS、Network Flow、Proxy、Windows Event、Auth、Email Gateway
- **8 种检查点类型** — 真假判断、多选题、严重性分类、建议措施、简答题、证据选择、事件报告、YARA 规则
**AI 驱动 (自带密钥)**
- **AI SOC 导师** — 上下文感知助手,通过苏格拉底式提问引导学员(绝不直接给出答案)
- **AI 评分** — Claude 为简答题和事件报告检查点评分,并提供详细反馈
- **AI 场景生成器** — 从文本提示创建新场景,支持基于难度的 token 预算缩放
- **优雅降级** — 平台在没有 API 密钥的情况下仍可完全运行;AI 功能显示“不可用”状态
**培训师工具**
- **实时监控** 通过 Socket.io(提示、警报、暂停/恢复、聊天)
- **5 维评分** — 准确性 (35%)、调查 (20%)、证据 (20%)、响应 (15%)、报告 (10%)
- **PDF 与 CSV 报告**,包含详细的分数明细
**安全**
- httpOnly cookie 认证, CSRF 双重提交, 数据库锁定, 登录异常检测
- 答案收割防护, 提示重放保护, AI 提示注入清洗器
- Unicode 标准化, 审计日志, 内容安全策略 (CSP), 速率限制
| 角色 | 权限 |
|------|-------------|
| **Admin** | 管理用户、场景、审计日志、系统设置 |
| **Trainer** | 创建会话、实时监控学员、发送提示、调整分数 |
| **Trainee** | 调查场景、分析日志、提交证据和报告 |
## 快速开始
### 前置条件
- **Node.js 20+**
- **Docker** (用于 PostgreSQL)
- **YARA 4.5+** (可选,用于 YARA 检查点评分 — 包含在 Docker 镜像中)
### 本地设置
```
# 克隆并安装
git clone https://github.com/abdullaalhussein/soc-training-simulator.git
cd soc-training-simulator
npm install
# 配置环境
cp .env.example .env
# 启动数据库 (PostgreSQL 位于端口 5433,pgAdmin 位于端口 5050)
docker-compose up -d
# Push schema & seed demo data (包含所有 13 个场景)
npm run db:push
npm run db:seed
# 启动开发服务器
npm run dev
# Client → http://localhost:3000
# Server → http://localhost:3001
```
### 默认凭据
| 角色 | 邮箱 | 密码 |
|------|-------|----------|
| Admin | `admin@soc.local` | `Password123!` |
| Trainer | `trainer@soc.local` | `Password123!` |
| Trainee | `trainee@soc.local` | `Password123!` |
## AI 功能 (自带密钥)
| 功能 | 作用 | 无 API 密钥时是否可用? |
|---------|-------------|----------------------|
| **SOC Mentor** | 上下文感知聊天助手,利用苏格拉底式提问引导学员 | 否 (显示“不可用”状态) |
| **AI Scoring** | 为简答题和事件报告检查点评分并提供详细反馈 | 否 (回退到关键词匹配) |
| **AI Scenario Generator** | 根据文本描述创建新场景,按难度级别进行缩放 | 否 (按钮禁用并显示提示) |
| **AI Security Scan** | 扫描 AI 生成的内容是否存在提示注入风险 | 否 (禁用) |
**如需启用**,请在 `.env` 文件中设置 `ANTHROPIC_API_KEY`。有关所有 AI 相关设置,请参阅 [配置指南](docs/DEVELOPMENT.md#environment-variables)。
**如果没有 API 密钥**,平台仍可完全正常运行 —— 所有调查、评分、检查点、证据、YARA 和报告功能均可在无 AI 的情况下使用。
## 技术栈
| 层级 | 技术 |
|-------|-------------|
| **客户端** | Next.js 15, React 19, Tailwind CSS, Radix UI, Zustand, TanStack Query |
| **服务端** | Express 5, Socket.io, JWT Auth, RBAC, CSRF, Prisma ORM, Zod, Helmet |
| **AI** | Anthropic Claude API (SOC Mentor, AI 评分, 场景生成器) |
| **数据库** | PostgreSQL 16, Prisma ORM (18 个模型, 8 个枚举) |
| **测试** | Vitest (96 个单元 + 集成测试), Playwright (跨 22 个规范文件的 68 个 E2E 测试) |
| **DevOps** | Docker (多阶段构建), Railway.app, GitHub Actions CI |
## 文档
| 文档 | 描述 |
|----------|-------------|
| [开发指南](docs/DEVELOPMENT.md) | 环境变量、脚本、项目结构、测试 |
| [部署指南](docs/DEPLOYMENT.md) | Docker, Railway, CI/CD, 生产检查清单 |
| [API 参考](docs/API.md) | REST 端点, Socket.io 事件, 评分系统 |
| [架构演示](docs/presentation.html) | 14 张幻灯片, EN/AR 双语 |
| [安全策略](SECURITY.md) | 漏洞报告 |
| [威胁模型](THREAT_MODEL.md) | STRIDE 分析 — 31 个威胁, 6 个残余风险 |
## 企业与定制部署
针对需要超越开源版本的组织:
- **托管云服务** — 完全配置好的实例,无需设置
- **SSO / SAML 集成** — 连接到您组织的身份提供商
- **定制场景开发** — 针对您的威胁环境量身定制培训内容
- **专属支持 & SLA** — 为您的团队提供优先响应
**联系方式:** [abdullaalhussein@gmail.com](mailto:abdullaalhussein@gmail.com)
## 许可证
本项目基于 [MIT 许可证](LICENSE) 授权。
محاكي تدريب مركز العمليات الأمنية — منصة تدريب متعددة الأدوار لمحللي الأمن السيبراني
标签:AI驱动, Anthropic Claude, Express, PostgreSQL, Prisma, Socket.io, SOC分析师培训, TypeScript, WSL, 事件响应模拟, 多角色扮演, 安全意识, 安全插件, 安全教育, 安全运营中心, 实战演练, 开源, 测试用例, 漏洞修复, 网络安全培训, 网络映射, 网络靶场, 自动化攻击, 自动化攻击, 自托管, 请求拦截