yatuk/soc-simulation

GitHub: yatuk/soc-simulation

一个模拟SOC分析师日常工作流的全功能SIEM/SOAR/EDR演示项目,包含告警管理、事件响应、MITRE ATT&CK矩阵等模块,适合蓝队培训与安全工具原型展示。

Stars: 2 | Forks: 0

# SOC Console — 安全运营中心模拟器 [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Vite](https://img.shields.io/badge/vite-5-blue)](https://vitejs.dev/) [![TypeScript](https://img.shields.io/badge/TypeScript-5-blue)](https://www.typescriptlang.org/) [![Tailwind](https://img.shields.io/badge/Tailwind-3-38bdf8)](https://tailwindcss.com/) [![GitHub Pages](https://img.shields.io/badge/deploy-GitHub%20Pages-black)](https://pages.github.com/) [🔗 在线演示](https://yatuk.github.io/SOC-case-study-project/) · [📊 架构](./docs/ARCHITECTURE.md) · [📁 数据模型](./docs/DATA_MODEL.md) · [📖 场景](./docs/SCENARIOS.md) ## 截图 ![概览仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e1cd19e1fe200249.png) *KPI、告警趋势、严重性分布、顶级MITRE技术。* ![告警 — 筛选 + 表格](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b904433a5c200259.png) *筛选、搜索、严重性分解、IOC去混淆。* ![SOAR剧本 — 步骤流程](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/77aab93722200306.png) *剧本步骤、DAG式流程、运行历史。* ## 故事:一名SOC分析师的日记 _日期:星期一,上午 09:00_ 我叫Mehmet。我是一名SOC分析师。 喝咖啡的时候我瞥了一眼SIEM仪表盘。**420万事件**。不错,昨天只有380万。我们在进步。 **第一条告警:** "检测到可疑PowerShell活动"。 我打开它。一个用户运行了`Get-Process`。**严重级别**。当然了,这家伙好奇自己电脑上跑了哪些程序,绝对是APT29。 **第二条告警:** "不可能出行 - 用户在5分钟内从伊斯坦布尔和安卡拉登录"。 我打电话给用户。"大哥,你咋5分钟从伊斯坦布尔飞到安卡拉的?" "我用VPN。" "……" **告警关闭:误报 - VPN** **第三条告警:** "检测到暴力破解攻击 - 3次失败的登录尝试"。 三次。整整三次。攻击者要么太没耐心,要么就是个忘了密码的员工。剧透:是忘了密码的员工。 _日期:星期一,上午 11:30_ 主管来了。"Mehmet,上周的安全报告准备好了吗?" 当然准备好了。47页。内容包括: - 12页 "一切正常" - 15页 "潜在威胁"(全是误报) - 20页图表(因为领导喜欢图表) 我最喜欢的图表:"被阻止的攻击 - 月度趋势"。柱状图在上升。这是好事吗?我们阻止了更多攻击。但同时也遭到了更多攻击。薛定谔的安全。 _日期:星期一,下午 14:00_ **真正的告警来了。** 千真万确。 一个用户点击了钓鱼邮件中的链接。凭证被盗。攻击者访问了邮箱并创建了"将所有邮件导出到外部"的规则。 **经典。** 事件响应开始: 1. 锁定账户 ✓ 2. 终止会话 ✓ 3. 重置密码 ✓ 4. 强制启用MFA ✓ 5. 给用户培训"不要点击链接" ✓ 用户:"但是邮件看起来太真实了!" 邮件主题:_"紧急!!!请在5分钟内更改密码,否则您的帐户将被删除 - Microsoft安全团队 (microsoft-guvenlik-takim@gmail.com)"_ 是的。非常真实。 _日期:星期一,下午 17:45_ 一天结束。我看了评分卡: | 指标 | 数值 | | ------ | ----- | | 审查告警 | 127 | | 真实阳性 | 1 | | 误报 | 126 | | 咖啡消耗量 | 6杯 | | 脱发量 | 47根 | | 叹气次数 | 89次 | **MTTD(平均检测时间):** 4分钟 **MTTR(平均响应时间):** 23分钟 **MTTC(平均咖啡时间):** 12分钟 这个项目模拟了那一天。19条告警,9个事件,其中1个是真的。 Mehmet不在,但可以是。你。 ## 快速开始 ``` git clone https://github.com/yatuk/SOC-case-study-project.git cd SOC-case-study-project/frontend npm install npm run dev # → http://localhost:3000 ``` (可选)重新生成数据——仓库中已有现成数据: ``` python -X utf8 scripts/build_dataset.py --seed 42 --out data/normalized/ cp data/normalized/*.json frontend/public/data/ ``` 生产构建: ``` cd frontend npm run build npm run preview ``` ## 这是什么? - **SIEM:** 19条告警,可按严重性/状态/来源/源过滤。支持搜索、MITRE映射、IOC去混淆。每条告警可点击,详情页包含关联IOC、MITRE技术、建议操作。 - **事件管理:** 9个事件,每个都有杀伤链时间线(初始访问 → 执行 → …… → 数据渗出),2-3段土耳其语叙述,关联告警、SOAR剧本运行链接。包含"锁定账户"、"运行剧本"、"关闭事件"等虚构操作。 - **SOAR:** 4个剧本定义(钓鱼响应、账户劫持、恶意软件隔离、数据泄露)+ 运行历史。DAG式步骤流程,每个步骤标注自动/手动状态。 - **EDR:** 25个终端,类型过滤(工作站/笔记本/服务器/移动设备),风险评分条,隔离开关,进程树(父子关系),网络连接。 - **IOC资源管理器:** 24个IOC(域名/IP/URL/哈希/邮箱),威胁评分条,可展开的"在哪里出现过"部分,去混淆 + 复制到剪贴板。 - **MITRE ATT&CK:** 横向滚动矩阵(14个战术列 × 50+技术卡片)。覆盖的技术以填充颜色 + 告警计数徽章显示。点击弹出抽屉:相关告警。 - **检测规则:** 8条Sigma规则,可展开原始规则查看,误报率,MITRE技术标签。 - **可访问性:** 跳过内容、地标角色、键盘导航、焦点陷阱、Escape键、ARIA标签图标、`prefers-reduced-motion`。 - **零后端:** 部署在GitHub Pages上。无后端、无认证、无API密钥。只有JSON + React。 ### v2.1 — 高级功能(2026) - **取证联动:** IP、用户、资产——均可点击。真实的SOC分析师工作流。 - **AI分诊:** 每条告警都提供Mehmet风格的分析摘要(模拟,仅供培训)。 - **调查图:** 将事件实体关系以Sentinel风格的可视化图形呈现。 - **地理威胁地图:** 在世界地图上用脉冲标记显示攻击来源。 - **命令面板(Ctrl+K):** Linear风格的全局搜索 + 命令。 - **Sigma高亮 + CSV导出:** 专业级打磨。 ## 架构 ``` flowchart LR A[Raw Logs] --> B[scripts/build_dataset.py] C[IOC Feeds] --> B D[MITRE Mapping] --> B B --> E[(data/normalized/*.json)] E --> F[Vite Build] F --> G[GitHub Pages] G --> H[React + Zustand] H --> I[13 Lazy Routes] ``` 更详细内容:[docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) ## 技术栈 - **前端:** React 18, TypeScript, Vite 5, Tailwind CSS 3, Radix UI, Zustand, Recharts, lucide-react - **数据管道:** Python 3.10+(仅stdlib),确定性种子(`--seed 42`) - **部署:** GitHub Actions → GitHub Pages(原生`actions/deploy-p@v4`) - **后端:** 无。完全没有。永远没有。这是一个特性。 ## 已知限制 - 无认证——所有人都是"管理员"。因为是虚构项目。 - 数据在内存中——刷新页面后虚构操作会丢失。这不是一个真正的SIEM,而是一个展示台。 - 没有实时流——告警量是静态快照。 - 移动端(<375px)未优化,能用但不好看。 - 管道中只有19条告警(演示目的)。生产SIEM中这个数字会超过5000。 ## 路线图(或许有一天) - [ ] 真正的Sigma规则解析器 - [ ] STIX/TAXII 源集成 - [ ] 网络图视图(攻击者-资产-IOC关系) - [ ] 场景编辑模式(创建自己的事件) - [ ] PDF导出(事件报告) - [ ] 国际化:中/英切换 - [ ] Playwright e2e测试 ## 为什么? 一个作品集。一个案例研究。一个"我想在简历上展示的不仅仅是一行'我使用过现代SIEM',而是更多"的项目。 但同时:这是一个为任何想了解SOC工具长什么样、如何工作、如何误导人——而无需订阅其他工具的人准备的。 代替47页的报告,这是一个可点击、可浏览的展示台。 ## 许可证 MIT。用于教育和作品集目的时,只需注明出处。 **注意:** 所有数据、公司、域名、IP和人物**完全虚构**。与真实世界没有任何联系。
标签:AMSI绕过, Cloudflare, EDR, GitHub Pages, HTTP/HTTPS抓包, MITRE ATT&CK, OpenCanary, PB级数据处理, SOAR, SOC模拟, Tailwind CSS, TypeScript, Vite, 前端模拟, 告警管理, 威胁检测, 安全插件, 安全演练, 安全运维, 安全运营中心, 态势感知, 网络映射, 脆弱性评估, 误报分析, 逆向工具