Yash-Patil-1/SOCLearn

GitHub: Yash-Patil-1/SOCLearn

SOCLearn 是一个交互式 SOC 分析师培训平台,通过结构化课程、检测规则库、SIEM 查询、Playbooks 和测验引擎帮助用户系统学习安全运营中心的各项核心技能。

Stars: 1 | Forks: 0

# 🛡️ SOCLearn — SOC 操作学习平台 ![Python](https://img.shields.io/badge/Python-3.10+-blue?logo=python) ![React](https://img.shields.io/badge/React-18-61DAFB?logo=react) ![Flask](https://img.shields.io/badge/Flask-3.0+-000000?logo=flask) ![License](https://img.shields.io/badge/License-MIT-green) ## 🖼️ 截图 | 仪表盘与连击 | 课程查看器 | 测验引擎 | |:--:|:--:|:--:| | ![仪表盘](https://raw.githubusercontent.com/Yash-Patil-1/SOCLearn/main/docs/screenshots/soclearn-dashboard.png) | ![课程](https://raw.githubusercontent.com/Yash-Patil-1/SOCLearn/main/docs/screenshots/soclearn-lesson.png) | ![测验](https://raw.githubusercontent.com/Yash-Patil-1/SOCLearn/main/docs/screenshots/soclearn-quiz.png) | | 检测规则 | SIEM 查询 | Playbooks | |:--:|:--:|:--:| | ![规则](https://raw.githubusercontent.com/Yash-Patil-1/SOCLearn/main/docs/screenshots/soclearn-rules.png) | ![SIEM](https://raw.githubusercontent.com/Yash-Patil-1/SOCLearn/main/docs/screenshots/soclearn-siem.png) | ![Playbooks](https://raw.githubusercontent.com/Yash-Patil-1/SOCLearn/main/docs/screenshots/soclearn-playbooks.png) | ## ✨ 功能 | 功能 | 描述 | |---------|-------------| | 📖 **引导式课程** | 10 个章节,40 节课程,涵盖 SOC 基础、威胁情报、检测工程、SIEM、事件响应等 | | 🧠 **测验引擎** | 涵盖 10 个主题领域的 500 道测验题,包含评分、提示和章节级评估 | | 🎯 **检测规则** | 300 条带有 MITRE ATT&CK 映射的真实场景检测规则 | | 🔍 **SIEM 查询** | 200 条 SIEM 查询语句,涵盖 Splunk、Elastic、QRadar、Sentinel 等 | | 📋 **Playbooks** | 100 个事件响应 Playbooks,包含详细的操作步骤 | | 📡 **日志源** | 150 种日志源,提供事件 ID、字段映射和收集指南 | | 📚 **术语表** | 420 个 SOC 和网络安全术语,包含定义和分类 | | 🔎 **统一搜索** | 对检测规则、SIEM 查询、Playbooks、日志源、术语表和课程进行全文搜索 | | 📊 **进度追踪** | XP、等级、连击、每日目标以及逐章节的完成进度追踪 | | 🏆 **游戏化** | 等级(最高 10 级)、连击、每日目标和 XP 奖励让您保持学习动力 | | 🎨 **Ferrari 主题** | 暗色主题 —— 碳黑、钛金、Ferrari 红、银色 | ## 📊 平台统计数据 | 指标 | 数量 | |--------|-------| | 章节 | 10 | | 课程 | 40 | | 检测规则 | 300 | | SIEM 查询 | 200 | | Playbooks | 100 | | 日志源 | 150 | | 术语表词汇 | 420 | | 测验问题 | 500 | ## 🚀 快速开始 ### 前置条件 - Python 3.10+ - Node.js 18+ - npm ### 安装 ``` # Clone 仓库 git clone https://github.com/Yash-Patil-1/SOCLearn.git cd SOCLearn # Backend 设置 cd backend python -m venv venv source venv/bin/activate pip install -r requirements.txt # Frontend 设置 cd ../frontend npm install ``` ### 运行应用 ``` # Terminal 1 — Backend cd backend ./venv/bin/python app.py # Starts on http://localhost:8003 # Terminal 2 — Frontend cd frontend npm run dev # Starts on http://localhost:5176 ``` 打开 **http://localhost:5176** ## 🏗️ 技术栈 | 层级 | 技术 | |-------|-----------| | 前端 | React 18, Vite 8, Tailwind CSS v4, Lucide Icons, React Router 6, Axios, react-markdown | | 后端 | Flask 3.0+, Python 3.10+ | | 数据库 | JSON 文件(所有数据) | | 设计 | **Ferrari** —— 碳黑 (#0A0A0C)、钛金 (#1A1A1E)、Ferrari 红 (#E80020)、银色 (#C0C0C8) | ## 🔌 API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/` | 平台信息 | | GET | `/health` | 健康检查 | | GET | `/api/search?q=` | 跨所有资源的统一搜索 | | GET | `/api/course` | 列出所有章节(含进度) | | GET | `/api/chapter/{id}` | 包含课程的章节详情 | | GET | `/api/lesson/{chapter_id}/{lesson_id}` | 完整的课程内容 | | GET | `/api/detection_rules` | 列出检测规则 | | GET | `/api/detection_rules/{id}` | 检测规则详情 | | GET | `/api/siem_queries` | 列出 SIEM 查询 | | GET | `/api/siem_queries/{id}` | SIEM 查询详情 | | GET | `/api/playbooks` | 列出 Playbooks | | GET | `/api/playbooks/{id}` | Playbook 详情 | | GET | `/api/log_sources` | 列出日志源 | | GET | `/api/log_sources/{id}` | 日志源详情 | | GET | `/api/glossary` | 列出术语表(支持可选的 `?q=` 过滤) | | GET | `/api/quiz/next` | 获取下一道测验题 | | POST | `/api/quiz/answer` | 提交测验答案 | | GET | `/api/quiz/stats` | 测验表现统计 | | GET | `/api/streak` | XP、连击、等级、每日目标 | | POST | `/api/lesson/complete` | 标记课程完成(奖励 XP) | | POST | `/api/quiz/chapter/{id}/submit` | 提交章节测验 | ## 📁 项目结构 ``` SOCLearn/ ├── backend/ │ ├── app.py # Flask application │ ├── requirements.txt # Python dependencies │ ├── data/ │ │ ├── chapters.json # 10 chapters, 40 lessons (~59k words) │ │ ├── detection_rules.json # 300 detection rules │ │ ├── siem_queries.json # 200 SIEM queries │ │ ├── playbooks.json # 100 playbooks │ │ ├── log_sources.json # 150 log sources │ │ ├── glossary.json # 420 glossary terms │ │ ├── quiz.json # 500 quiz questions │ │ ├── stats.json # User progress, streak, XP │ │ └── assemble_chapters.py # Chapter assembler script │ └── services/ │ ├── quiz_engine.py # Question selection + validation │ └── stats.py # XP, level, streak logic ├── frontend/ │ ├── src/ │ │ ├── components/ # React components (Sidebar, StreakBadge, etc.) │ │ ├── pages/ # Page views (Dashboard, Course, Quiz, etc.) │ │ ├── hooks/ # Custom hooks (keyboard shortcuts) │ │ └── styles/ # Tailwind CSS with Ferrari theme tokens │ ├── index.html │ ├── package.json │ └── vite.config.js ├── docs/ │ ├── screenshots/ # UI screenshots │ └── ... # Design docs, PRD, TRD, plans ├── .gitignore ├── LICENSE └── README.md ``` ## 🧪 测试 ``` cd backend ./venv/bin/python -m pytest tests/ -v ``` ## 📖 课程大纲 | # | 章节 | 课程 | |---|---------|--------| | 1 | SOC 简介 | SOC 概述、角色、服务、指标 | | 2 | 威胁情报 | 威胁情报生命周期、TTPs、情报源、分析 | | 3 | 日志管理 | 日志类型、收集、存储、保留 | | 4 | SIEM 基础 | SIEM 架构、关联、规则、仪表盘 | | 5 | 检测工程 | 检测设计、Sigma 规则、测试、调优 | | 6 | 事件响应 | 事件响应生命周期、分类、遏制、根除 | | 7 | 数字取证 | 证据收集、分析、证据监管链 | | 8 | 威胁狩猎 | 假设、数据源、技术、自动化 | | 9 | SOC 运营 | 轮班交接、升级、报告、指标 | | 10 | 进阶主题 | 云 SOC、MITRE ATT&CK、Purple Teaming | ## 🎨 设计 **Ferrari 设计语言:** - 采用碳黑 (#0A0A0C) 背景的 **暗色主题** - **Ferrari 红** (#E80020) 作为主要品牌色 - **钛金** (#1A1A1E) 用于表面/容器背景 - **银色** (#C0C0C8) 用于主要文本 - **Orbitron** 用于标题(科技/赛车感) - **JetBrains Mono** 用于代码和技术内容 - 干净、高对比度的间距和充足的填充 - 流畅的悬停过渡和微交互 ## 🔒 重要提示 这是一个**教育平台**。它不会: - 连接到真实的 SIEM 系统 - 执行实际的安全监控 - 取代专业的 SOC 工具 - 调用外部 AI API - 需要云或虚拟机 它旨在教授 SOC 概念,解释检测技术,并建立您的理解。一切均在本地运行。 ## 👤 作者 **Yash Patil** — B.Tech IT | CEH 🌐 [yashpatil.online](https://www.yashpatil.online/) · 🐙 [GitHub](https://github.com/Yash-Patil-1) · 💼 [LinkedIn](https://www.linkedin.com/in/yash-patil-997357330/) ## 📄 许可证 该项目基于 MIT 许可证授权 —— 详情请参阅 [LICENSE](LICENSE) 文件。
标签:Flask, Homebrew安装, SOC培训, 在线教育平台, 威胁情报, 安全运营, 库, 应急响应, 开发者工具, 扫描框架, 自定义脚本, 逆向工具