errmorra/IR_Sim
GitHub: errmorra/IR_Sim
一款基于NIST和MITRE ATT&CK框架的事件响应桌面模拟器,通过20个安全场景帮助蓝队和安全团队进行实战化桌面演练与GRC合规评估。
Stars: 0 | Forks: 0
# 🛡️ 事件响应桌面模拟器





## ✨ 功能
- **20 个详尽的场景** — 每次启动时随机选择,具有极高的重玩价值
- **打乱的选项顺序** — 每次注入(inject)的选项顺序都是随机的;无论显示在哪个位置,评分始终会准确对应到正确的质量级别
- **深色赛博仪表盘 GUI** — 基于 Python `tkinter` 构建(无需 Electron、Web 服务器或互联网)
- **MITRE ATT&CK 映射的注入** — 100 个注入中包含 51 个独特的 MITRE 技术编号
- **NIST SP 800-61 r2 生命周期** — 全部 5 个阶段:准备 → 检测 → 遏制 → 根除 → 事件后恢复
- **三轴 GRC 评分** — NIST IR 评分、监管合规评分、法律地位评分;全部实时更新
- **Markdown 报告导出** — 完整的事件后 GRC 合规报告,包含执行建议、监管检查清单和 MITRE 技术覆盖范围
- **数据与代码分离** — 所有场景内容均在 `scenarios.json` 中;添加新场景无需修改任何 Python 代码
- **验证脚本** — `validate_scenarios.py` 可确认任何新场景是否符合要求的 schema
## 🚀 快速开始
### 前置条件
- Python **3.9+**
- `tkinter` — 包含在 Python 标准库中
```
# 1. Clone
git clone https://github.com/errmorra/IR_Sim.git
cd IR_Sim
# 2. 可选:安装 customtkinter 以增强 widget 样式
pip install customtkinter
# 3. 运行 — 自动选择一个随机 scenario
python app.py
```
无需数据库、无需 API 密钥、无需服务器、无需 Docker。
## 🎮 如何游玩
| 步骤 | 操作 |
|------|--------|
| 1 | 阅读注入事件 — 描述您的安全团队发现状况的场景事件 |
| 2 | 查看显示当前攻击者所用技术的 MITRE ATT&CK 徽章 |
| 3 | 选择一项响应措施 — 每次的顺序都是随机的 |
| 4 | 点击 **COMMIT DECISION** |
| 5 | 阅读附带监管法规引用的 GRC 反馈 |
| 6 | 在侧边栏监控实时分数和 MITRE 追踪器 |
| 7 | 结束后,点击 **GENERATE GRC REPORT** 导出您的 Markdown 合规报告 |
| 8 | 随时点击 **↻ NEW SCENARIO** 加载新的随机场景,无需重启程序 |
**键盘快捷键:** 按 `1`–`3`(或 `A`–`C`)选择响应,按 `Enter` 提交您的决定 / 进入下一个注入。
每次启动都会随机选择不同的场景 — 游玩全部 20 个场景以获得完整体验。
## 📁 项目结构
```
IR_Sim/
├── app.py # Main GUI — all UI, session state, report export
├── scenarios.json # 20 scenarios, 100 injects, 300 choices, 51 MITRE IDs
├── validate_scenarios.py # Headless schema + scoring validator (for contributors)
├── requirements.txt # Optional dependencies
├── CONTRIBUTING.md # Scenario schema, PR process, accuracy standards
├── CHANGELOG.md # Version history
├── LICENSE # MIT
├── .gitignore
└── .github/
└── workflows/
└── ci.yml # GitHub Actions — syntax, JSON validation, logic tests
```
## 🎯 场景列表
| # | ID | 标题 | 主题 | 行业 | 严重程度 |
|---|----|-------|-------|----------|----------|
| 01 | RANSOMWARE-2024-001 | Operation Midnight Cipher | 企业勒索软件与数据泄露 | 医疗保健 | CRITICAL |
| 02 | INSIDER-2024-002 | Operation Trusted Betrayal | 恶意内部人员数据窃取 | 金融服务 | HIGH |
| 03 | SUPPLYCHAIN-2024-003 | Operation Poisoned Update | 软件供应链攻陷 | 国防 / 科技 | CRITICAL |
| 04 | CLOUD-S3-2024-004 | Operation Open Bucket | AWS S3 错误配置泄露 | 电子商务 | HIGH |
| 05 | DDOS-2024-005 | Operation Flood Wall | 多向量 DDoS 勒索 | 在线游戏 | HIGH |
| 06 | WHALING-2024-006 | Operation Silver Tongue | CEO 捕鲸攻击 / BEC 电汇欺诈 | 制造业 | HIGH |
| 07 | ZERODAY-2024-007 | Operation Silent Strike | Zero-Day VPN 设备漏洞利用 | 关键基础设施 | CRITICAL |
| 08 | PHYSICAL-2024-008 | Operation Trojan Badge | 物理入侵 / 恶意网络植入 | 制药 | HIGH |
| 09 | CRYPTOJACK-2024-009 | Operation Silent Miner | 凭据泄露导致的云加密劫持 | SaaS / 科技 | MEDIUM |
| 10 | MOBILEPHISH-2024-010 | Operation Smishing Storm | 短信钓鱼 / AiTM 会话劫持 | 零售 | HIGH |
| 11 | WEBAPP-2024-011 | Operation Broken Gate | SQL 注入与 Web 应用数据泄露 | 电子商务 | HIGH |
| 12 | ATO-2024-012 | Operation Account Harvest | 大规模撞库 / 账户接管 (ATO) | 银行 | HIGH |
| 13 | VENDOR-2024-013 | Operation Broken Chain | 第三方供应商泄露 | 保险 | HIGH |
| 14 | DEEPFAKE-2024-014 | Operation Synthetic Voice | AI 深度伪造语音社会工程学 | 媒体 | HIGH |
| 15 | MEDDEVICE-2024-015 | Operation Flatline | 医疗设备与医疗物联网攻陷 | 医院系统 | CRITICAL |
| 16 | PAM-2024-016 | Operation Root Access | 特权账户滥用 / MSP PAM 失效 | MSP | CRITICAL |
| 17 | DR-2024-017 | Operation Cold Restart | 数据中心中断与灾难恢复失败 | 银行 | HIGH |
| 18 | CONTAINER-2024-018 | Operation Broken Pod | Kubernetes 容器逃逸 | SaaS / 科技 | HIGH |
| 19 | OAUTH-2024-019 | Operation Consent Trap | 恶意 OAuth 应用授权同意 | SaaS / 科技 | HIGH |
| 20 | DEFI-2024-020 | Operation Empty Vault | DeFi 智能合约漏洞利用 | 金融科技 / 加密货币 | CRITICAL |
## 🧠 架构
四个清晰的类,完全按关注点分离:
```
ScenarioManager → loads scenarios.json, randomly selects one at startup
SimulationSession → runtime state: scores, decision log, MITRE technique tracking
ReportGenerator → stateless Markdown report builder (reads from session)
IncidentSimulatorApp → all tkinter GUI: dashboard, sidebar, meters, buttons
```
### 随机化设计
**场景选择** — `ScenarioManager.__init__` 中调用一次 `random.randrange(len(all_scenarios))`。窗口标题和页眉会显示 `Scenario N/20: Title`,以便玩家知道当前抽到的是哪一个场景。
**选项打乱** — `_load_inject()` 在每次显示注入时打乱选项列表的一个*副本*。每个按钮都被分配一个作用域令牌 `f"{inject_index}_{display_letter}"` 作为其单选按钮值。`_choice_token_map` 在 `_on_submit()` 中将令牌解析回原始选项字典 — 因此评分始终与 `quality` + `text` 挂钩,而与 A/B/C 的显示位置无关。
### 添加新场景
仅需编辑 `scenarios.json` — 无需更改 Python 代码。然后进行验证:
```
python validate_scenarios.py
```
有关完整的注入 schema 和评分增量指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 📊 评分系统
三个独立的分数均从 **50/100** 开始,并根据决策质量发生变化:
| 指标 | 衡量内容 |
|--------|-----------------|
| **NIST IR 评分** | 根据 NIST SP 800-61 r2 衡量的技术事件响应决策质量 |
| **合规评分** | 对 HIPAA、GDPR、PCI DSS、GLBA、NIST CSF 及其他适用框架的遵守程度 |
| **法律地位** | 保护组织或使其面临监管和法律责任的决策 |
**评级标准:** A (≥85) · B (≥70) · C (≥55) · D (≥40) · F (<40)
## 📄 生成的报告包含
- 包含整体评级和综合得分的执行摘要
- 包含各维度评级的 GRC 指标表
- NIST 阶段效率细分
- 完整的决策时间线 — 每次注入、您的选择、质量评级、反馈以及 MITRE 背景
- MITRE ATT&CK 检查清单 — 遇到的所有技术,已识别与遗漏的对比
- 7 项优先执行补救建议,映射至 NIST CSF 2.0、CIS Controls v8、HIPAA、DISA STIG
- 监管义务检查清单 — HIPAA OCR、OFAC、CIRCIA、FBI IC3、GLBA、GDPR、各州数据泄露法
- 适合作品集和审计文档的报告认证块
## ⚖️ 引用的监管框架
NIST SP 800-61 r2 · MITRE ATT&CK Enterprise v14 · HIPAA Security Rule · NIST CSF 2.0 · NIST SP 800-53 r5 · NIST SP 800-161r1 · GDPR · CCPA · PCI DSS v4 · GLBA Safeguards Rule · OFAC Sanctions · CIRCIA 2022 · DFARS 252.204-7012 · CMMC Level 2 · AWIA 2018 · FFIEC Authentication Guidance · NIST AI RMF 1.0 · SEC Cybersecurity Disclosure Rules (2023) · FinCEN SAR Requirements · CIS Controls v8 · ISO/IEC 27001:2022
## 🤝 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。特别欢迎提交场景 PR — 请查看上方的列表以了解尚未涵盖的主题。
## 📜 许可证
MIT — 详见 [LICENSE](LICENSE)
*框架参考:NIST SP 800-61 r2 · MITRE ATT&CK Enterprise v14 · NIST CSF 2.0*
标签:ATT&CK框架, Cloudflare, customtkinter, GRC, GUI, Homebrew安装, IR, JSON, MITRE ATT&CK, NIST, NIST SP 800-61, Python, SecOps, tkinter, 云安全架构, 人工智能安全, 合规性, 安全态势, 安全运营, 库, 应急响应, 意识培训, 扫描框架, 数据驱动, 无后门, 桌面应用, 桌面演练, 漏洞修复, 离线应用, 网络安全, 网络安全培训, 网络安全教育, 逆向工具, 隐私保护