JMTChan/red-team-sim
GitHub: JMTChan/red-team-sim
基于浏览器和强化学习的红蓝对抗模拟游戏,用于网络安全实战训练。
Stars: 0 | Forks: 0
### [▶ 现场播放](https://jmtchan.github.io/red-team-sim/)
## 灵感来源
大多数学习安全的方法都是被动的——你阅读有关杀伤链和深度防御的内容。这种方式完全相反:你面对一个真正为了胜利而战的活对手,你 *感受* 到为什么单一防火墙是不够的。
一个强化学习代理登录到工作站,横向移动到域控制器(**立足点**),然后尝试从**数据库**(皇冠上的宝石)中窃取数据。你的任务是阻止它在到达那里之前——在实时中,在紧张的信贷预算下,放置防火墙、欺骗、监控和遏制。因为代理是经过训练而不是脚本编写的,它会绕过你的防御,寻找软路径进入,并在每一轮中适应。你不是在记忆清单;你是在思考如何对抗一个会思考的对手。
## 一轮如何进行
```
flowchart LR
A["Initial Access
(workstation)"] --> B["Lateral Movement"] B --> C{"Foothold
Domain Controller"} C --> D["Collection & Exfiltration"] D --> E[("Database
breached")] C -.->|you contain it| X["Round over:
trapped / detected / timed out"] B -.->|you contain it| X ``` |observation| WK["Web Worker"] WK -->|ONNX inference| MODEL[("red_team_agent.onnx")] MODEL -->|move| UI end subgraph Offline["Training (Python, offline)"] ENV["Gymnasium env
+ curriculum + smart defender"] --> PPO["MaskablePPO"] PPO -->|export| MODEL end CI["GitHub Actions"] --> PPO CI -->|deploy| PAGES["GitHub Pages"] ``` 代理的策略是在线使用**MaskablePPO**(动作掩码使其仅限于合法动作)进行训练,导出为ONNX,并在Web Worker中客户端执行,这样UI就不会被阻塞。工作器从策略中采样每个动作(温度控制)而不是采取贪婪的argmax——这保持了游戏的决断性,同时避免了确定性循环。 ## 路线图 - 场景模式——具有明确目标的命名挑战,在固定种子上。 - 与训练过的防御者(自我对弈)对抗更强大的对手。 - 暗影战图/部分可观察性模式(以及它所支持的循环代理)。 - 难度级联的代理性格(新手级别更宽松,精英级别更残酷)。 ## 许可证 **版权所有。** 此项目是公开的,你可以探索和播放它,但它 **不** 允许在积极开发期间复制、重用或分发。 这可能在将来改变。
(workstation)"] --> B["Lateral Movement"] B --> C{"Foothold
Domain Controller"} C --> D["Collection & Exfiltration"] D --> E[("Database
breached")] C -.->|you contain it| X["Round over:
trapped / detected / timed out"] B -.->|you contain it| X ``` |observation| WK["Web Worker"] WK -->|ONNX inference| MODEL[("red_team_agent.onnx")] MODEL -->|move| UI end subgraph Offline["Training (Python, offline)"] ENV["Gymnasium env
+ curriculum + smart defender"] --> PPO["MaskablePPO"] PPO -->|export| MODEL end CI["GitHub Actions"] --> PPO CI -->|deploy| PAGES["GitHub Pages"] ``` 代理的策略是在线使用**MaskablePPO**(动作掩码使其仅限于合法动作)进行训练,导出为ONNX,并在Web Worker中客户端执行,这样UI就不会被阻塞。工作器从策略中采样每个动作(温度控制)而不是采取贪婪的argmax——这保持了游戏的决断性,同时避免了确定性循环。 ## 路线图 - 场景模式——具有明确目标的命名挑战,在固定种子上。 - 与训练过的防御者(自我对弈)对抗更强大的对手。 - 暗影战图/部分可观察性模式(以及它所支持的循环代理)。 - 难度级联的代理性格(新手级别更宽松,精英级别更残酷)。 ## 许可证 **版权所有。** 此项目是公开的,你可以探索和播放它,但它 **不** 允许在积极开发期间复制、重用或分发。 这可能在将来改变。
作为一个动手学习安全概念的方式,让你可以玩,而不仅仅是阅读。
标签:CNCF毕业项目, Go语言工具, ONNXRuntime, PPO 策略, Web Worker, 入侵模拟, 在线模拟, 安全事件响应, 安全态势感知, 安全意识提升, 安全防御技术, 实战演练, 实时对抗, 强化学习, 浏览器游戏, 漏洞修复, 网络信息收集, 网络安全, 网络安全培训, 网络安全审计, 网络安全攻防, 网络安全教育, 自动化攻击, 逆向工具, 防御策略, 隐私保护