sofiaboiko/soc-training-platform

GitHub: sofiaboiko/soc-training-platform

一个自托管的双语 SOC 分析师培训与评估平台,结合理论卡片、场景实操和随机化考试来系统化提升安全运营人员技能并追踪学习进度。

Stars: 0 | Forks: 0

# SOC 培训平台 ![Python](https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-3.x-000000?logo=flask&logoColor=white) ![SQLite](https://img.shields.io/badge/SQLite-local%20storage-003B57?logo=sqlite&logoColor=white) ![JavaScript](https://img.shields.io/badge/JavaScript-vanilla-F7DF1E?logo=javascript&logoColor=black) ![Bilingual](https://img.shields.io/badge/Language-EN%20%2F%20UA-blue) ![License](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey) **一个双语(EN/UA)的自主托管培训平台,专为 SOC Analyst 的备考、技能评估和知识检验而设计。** SOC 培训平台是一个本地、独立的 Flask 应用程序,旨在帮助安全团队和个人学习者学习、练习和验证跨三个难度级别(初级 → Level 3)的 SOC Analyst 知识。它将理论(抽认卡、攻击参考库)、动手实践(场景识别、日志识别、事件响应流程构建)和结构化考试(术语、攻击知识、事件响应)与本地持久化的进度追踪器结合在一起。 该应用程序完全双语:每个页面、问题和卡片都提供**英语**和**乌克兰语**版本,因此它同样适用于讲乌克兰语的学员,以及需要纯英语轨道的国际候选人、学生或招聘流程。 ## 适用人群? - **有志成为 SOC 分析师的人员**,正在准备面试或认证类评估。 - **安全团队**,需要一种轻量级的方式来入职、 benchmark 并定期重新测试员工的知识(Level 1–3)。 - **招聘经理 / 招聘人员**,希望有一种结构化的方式来评估 SOC 候选人。 - **培训师和导师**,正在运行内部技能提升计划。 - **国际学习者**,希望学习英语的 SOC 基础知识,并可选乌克兰语轨道。 ## 核心功能 - **理论** - 抽认卡牌组(A–L):缩写、通俗易懂的安全术语、MITRE ATT&CK 技术/战术、Windows Event ID、HTTP 状态码、常用端口、Linux/Windows/网络命令以及 Linux 日志位置。 - 攻击参考库(涵盖 3 个级别的 60 种攻击),包含 MITRE 映射、检测指导和响应步骤。 - “标记为已学习”追踪功能,支持单张卡片和整个卡牌组级别,以及按级别对每种攻击进行追踪——所有这些都会反映在进度中。 - **实践** - 场景识别——阅读场景描述,选择匹配的攻击。 - 日志识别——阅读原始日志,输入攻击名称(容忍拼写错误,接受常见表述,提供非剧透提示)。 - 事件响应流程构建器——拖放以排列出正确的确认/响应顺序。 - 单个任务可以标记为已学习;已完成的任务将固定在列表底部,并且不会被重新洗牌。 - **考试** - **术语检查**——每次尝试都是从所有理论卡牌组(A–L)中抽取 200 个术语进行全新且独一无二的随机洗牌。答案支持内联核对(✔/✘),并具有拼写/变体容忍度,如果检查器误判了有效答案,还可以进行手动覆盖。 - **攻击知识**——基于场景和日志的识别任务,每次尝试都会按级别重新生成。 - **事件响应(关联分析)**——每次尝试从每个级别包含 30 个真实、非通用的关联分析场景题库中随机抽取 10 个场景(混合了真实事件与误报/分诊判断)。每个问题都有自己的倒计时器,根据级别和场景的紧急程度进行校准——超时将计为错误并自动跳过。这里的及格线为 80%(其他考试为 85%),反映出了每道题更高的难度。 - 每次尝试结束都会显示通过/未通过界面,并提供完整的逐题回顾(支持两种语言),该回顾将在进度页面保留 24 小时,之后才会过期。 - **进度** - 本地持久化历史记录:按格式/级别统计的实践准确率(紧凑的颜色编码表格)、包含通过/失败状态的考试尝试历史记录以及指向该次尝试回顾报告的链接,以及已学习理论内容的细分(卡片、卡牌组、各级别攻击、各模块/级别的实践任务)。 - 用于查看理论覆盖率、实践准确率和考试分数趋势的图表。 - **天生的双语设计**——所有面向学习者的字符串,包括考试反馈、回顾报告和进度标签,均提供英语和乌克兰语版本,并在考试结果/报告界面上提供原地语言切换功能。 ## 路线图 - 除目前面向初级的 Level 1–3 范围外,增加 Middle / Senior 难度轨道。 - 扩展到相邻领域(例如渗透测试、SOC 工程)。 - 为 SOC 团队日常使用的特定工具和技术栈提供实操模块。 - 根据实际使用情况持续修复 bug 和优化用户体验。 ## 快速开始 ### 前置条件 - Python 3.10+ ### 安装说明 ``` python -m venv .venv # Windows .venv\Scripts\activate # macOS/Linux source .venv/bin/activate pip install -r requirements.txt python run.py ``` 然后在浏览器中打开 **http://127.0.0.1:5000**。 进度数据存储在本地 SQLite 数据库(`data/soc_training_progress.sqlite3`)中,永远不会离开您的计算机。 ## 项目结构 ``` app/ routes/ Flask blueprints — pages and JSON API endpoints services/ Data loading and domain logic (decoupled from routes) templates/ Jinja2 templates, grouped by module static/ CSS and JS, one file per feature area data/ terms/ Theory flashcard content (decks A–L) attacks/ Attack reference library practice/ Scenario/log/incident-flow practice content exam/ Fixed exam content (incident response, answer aliases) ``` ## 内容数据 所有学习内容都以带版本的 JSON 格式存放在 `data/` 目录下,方便审查、扩展或翻译: - 抽认卡:`data/terms/*.json` - 攻击:`data/attacks/attacks.json` - 实践任务:`data/practice/*.json` - 事件响应关联场景:`data/exam/incident_response.json`(每个级别 30 个,总共 90 个) ## 反馈 发现 bug、有建议或想分享反馈?请提交一个 [GitHub Issue](../../issues) —— 您可以直接在 issue 中附上截图。 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解更多额外说明。 ## 许可证 © 2026 Sofia Boiko。基于 **[CC BY-NC-ND 4.0](LICENSE)** 发布 —— 可**保留署名**自由使用和分享,**仅限非商业用途**,** **禁止修改/衍生副本。请参阅 [NOTICE.md](NOTICE.md) 了解这在** 实际应用中的含义以及署名详细信息。
标签:Flask, Python, SOC分析师, SQLite, 安全培训, 教育平台, 数据可视化, 无后门, 自定义脚本, 调试辅助, 逆向工具