Yuntoiz/malware-analysis-quest
GitHub: Yuntoiz/malware-analysis-quest
一个面向SOC分析师的游戏化静态PE恶意软件分析训练平台,通过交互式课程和分级挑战帮助学员在不执行恶意文件的情况下掌握分析技能。
Stars: 0 | Forks: 0
# GamifiedSOC — 静态恶意软件分析训练平台
一个游戏化的 Web 应用程序,通过交互式训练模块、案例档案调查和分级挑战评估,教授静态 PE(Portable Executable)恶意软件分析。
## 项目概述
GamifiedSOC 是一个基于浏览器的训练平台,旨在教授 SOC(Security Operations Centre)分析师如何在不执行 PE 文件的情况下对其进行静态分析。该平台采用游戏化机制 — XP、等级、连续签到、徽章和限时挑战 — 在提供符合教学原则的网络安全内容的同时,保持用户的参与度。
## 本地运行
```
# Clone repository
git clone
# Install dependencies
npm install
# Start development server
npm run dev
```
应用将在 `http://localhost:8080` 上可用。
## 技术栈
| 层级 | 技术 | 理由 |
|-------|-----------|-----------|
| **Framework** | React 18 + TypeScript | 基于组件的架构,具备类型安全,利于维护 |
| **Build Tool** | Vite | 快速 HMR 和优化的生产构建 |
| **Styling** | Tailwind CSS + shadcn/ui | 实用优先的 CSS,配合可访问、可组合的 UI 原语 |
| **Animation** | Framer Motion | React 的声明式动画库;用于过渡和微交互 |
| **3D / WebGL** | Three.js | 驱动欢迎屏幕上的 LiquidEther 背景效果 |
| **Routing** | React Router v6 | 客户端路由,支持受保护的路由守卫 |
| **State** | React Context + TanStack Query | Context 用于认证/进度;TanStack Query 用于服务器状态缓存 |
| **Backend** | Supabase (PostgreSQL + Auth + Edge Functions) | 开源 Firebase 替代品,提供认证、数据库和无服务器函数 |
| **Testing** | Vitest + jsdom | 兼容 Vite 的单元/集成测试框架 |
## 架构与设计决策
### 游戏化框架
游戏化设计借鉴了教育游戏设计中既定的框架:
- **XP & Levelling** — 提供与正确答案和挑战完成情况挂钩的可见进度指标。
- **Streak System** — 鼓励日常参与;连续答对可倍增 XP 奖励。
- **Tiered Evidence Model** — 挑战分为三个深度递增的层级,灵感源自布鲁姆分类法(回忆 → 分析 → 评估)。
- **Automation Bias Detection** — 平台故意引入 AI "Sentinel" 判定,以测试分析师是否盲目信任自动化工具,从而强化批判性思维。
### 训练内容结构
每个训练模块遵循 **Briefing → Learn → Challenge** 流程:
1. **Triage Phase** — 分析师工作站模拟,学生在此与 PE 元数据交互。
2. **Learn Phase** — 结构化课程,包含关键知识点,在终端美学风格的 UI 中呈现。
3. **Challenge Phase** — 限时多选题、排序、匹配和填空题。
### 数据集
该平台使用源自 **EMBER 2024** (Endgame Malware BEnchmark for Research) 数据集的元数据。不包含真实的恶意软件二进制文件 — 仅使用提取的特征向量(熵值、导入表、节区头、字符串指标)用于教学展示。
## 灵感与来源
### 学术来源
- Anderson, H.S. & Roth, P. (2018). *EMBER: An Open Dataset for Training Static PE Malware Machine Learning Models*. arXiv:1804.04637.
- Sikorski, M. & Honig, A. (2012). *Practical Malware Analysis*. No Starch Press — 静态和动态分析技术的黄金标准教科书。
- Bloom, B.S. (1956). *Taxonomy of Educational Objectives* — 为分级证据/挑战模型提供了参考。
### 平台灵感
- **KC7 Cyber** (https://kc7cyber.com) — Microsoft 支持的网络安全训练游戏,使用 KQL 查询;启发了叙事驱动、基于任务的教学法。
- **TryHackMe** (https://tryhackme.com) — 游戏化网络安全实验室;启发了房间/模块结构和 XP 进度系统。
- **LetsDefend** (https://letsdefend.io) — 带有模拟警报分类的 SOC 分析师训练;启发了工作站模拟和判定提交流程。
- **PicoCTF** (https://picoctf.org) — 面向初学者的 CTF 风格挑战;为渐进式难度曲线提供了参考。
### 设计与 UX 灵感
- 终端/黑客美学取材于网络安全工具界面(Ghidra, IDA Pro, PE-bear)。
- "Shift Report" 完成总结模仿了真实的 SOC 交接文档。
- 徽章系统灵感来自 Duolingo 和 Khan Academy 等平台的成就机制。
### 技术参考
- Microsoft PE Format specification (https://learn.microsoft.com/en-us/windows/win32/debug/pe-format)
- YARA documentation (https://yara.readthedocs.io) — 用于 YARA 规则编写模块。
- MITRE ATT&CK Framework (https://attack.mitre.org) — 挑战反馈中显示的技术映射。
## 项目结构
```
src/
├── assets/ # Static images (room thumbnails, avatars, logos)
├── components/ # Reusable UI components
│ ├── artifacts/ # Analysis tool panels (HexViewer, SectionMap, etc.)
│ ├── diagrams/ # Visual diagrams (PE structure)
│ ├── ui/ # shadcn/ui primitives
│ └── workstation/ # Analysis workstation simulation
├── data/ # Static training content (lessons, questions, samples)
├── hooks/ # Custom React hooks (auth, progress, theme, etc.)
├── integrations/ # Backend client configuration
├── pages/ # Route-level page components
└── test/ # Test configuration and specs
```
## 许可证
本项目作为学术论文的一部分开发。所有训练内容均为原创或源自公开可用的数据集和规范。
标签:DAST, meg, PE文件分析, React, SOC分析师, Supabase, Syscalls, TypeScript, Vite, 云安全监控, 信息安全, 安全插件, 安全教育, 恶意软件分析, 技能提升, 测试用例, 游戏化学习, 漏洞修复, 网络安全培训, 网络靶场, 自动化攻击, 静态分析