joshua-m-connors/cyber-incident-bn-pymc

GitHub: joshua-m-connors/cyber-incident-bn-pymc

融合 FAIR 风险框架与 MITRE ATT&CK 的贝叶斯网络风险量化引擎,通过蒙特卡洛模拟估算攻击成功频率和年度损失分布。

Stars: 0 | Forks: 0

# FAIR MITRE ATT&CK 贝叶斯风险模拟引擎 *一个集成了 MITRE ATT&CK、依赖感知控制强度以及混合贝叶斯网络 + Monte Carlo 攻击者模拟器的量化网络风险模型。* ## 概述 本仓库实现了一个先进的网络风险量化引擎,融合了: - FAIR 风格的频率 × 影响幅度建模 - MITRE ATT&CK 技术级行为建模 - 用于估算攻击者成功率和检测概率的贝叶斯网络 - 包含重试、回退、适应性和检测的 Monte Carlo 攻击者路径模拟 - 控制依赖逻辑(组健康度、“requires”依赖关系、影响权重) - 用于攻击者能力建模的技术相关性映射 该引擎旨在支持交互式分析以及自动化集成到更大的系统中。 ## 目录结构 ``` . ├── build_mitigation_influence_template.py ├── build_technique_relevance_template.py ├── cyber_incident_pymc.py ├── mitre_control_strength_dashboard.py ├── mitigation_control_strengths.csv ├── technique_relevance.csv └── README.md ``` ## 核心能力 这些能力源自原始 README,至今依然完全有效: - 依赖感知的缓解强度计算 - 组健康度建模 - 影响权重 - 技术相关性提取 - 战术级回退模拟 - Monte Carlo 损失建模 - 泊松频率建模 - 对数正态损失严重性建模 - 灵活的 CSV 驱动配置 **新的贝叶斯模型并未移除或替换这些功能。** # 贝叶斯网络增强功能(新增) ## 1. 技术级贝叶斯网络 (BN) 当技术级输入可用时,将构建一个完全动态的贝叶斯网络。 ### BN 节点 - λ (lambda) — 年度攻击尝试频率 - 技术成功节点 — 每个 `(tactic, technique)` 对应一个 - 技术检测节点 — 每个技术对应一个 - 战术节点 — 技术成功的确定性 OR 逻辑 - 链条成功节点 — 所有相关战术节点的 AND 逻辑 技术先验概率源自有效的缓解强度,并结合依赖逻辑、组健康度和影响权重。 ### 战术过滤 零相关技术的战术会自动从 BN 链中排除。 ## 2. 混合 BN + 攻击者模拟(默认模式) 当存在技术输入时,模型使用混合方法: ### BN 提供 - 后验 λ - 后验技术成功概率 - 后验技术检测概率 ### Monte Carlo 引擎处理 - 技术选择 - 重试 - 适应性门控 - 检测增量 - 回退行为 - 最终链条成功 ### 修正后的回退行为 - 仅在明确条件下触发 - 将攻击者向后移动一个战术 - 技术选择重新随机化(可能会重复之前的技术) ### 修正后的适应性行为 适应性不再修改成功概率。 它**仅**控制是否允许重试。 ## 3. 检测建模 ### BN 衍生的检测概率 如果可用,检测概率从技术 BN 后验节点中提取。 ### 检测增量逻辑 每次尝试: ``` detect_prob += rng.uniform(DETECT_INC_MIN, DETECT_INC_MAX) ``` ### 检测结果 如果 `rng.random() < detect_prob`,链条立即终止。 ## 4. 自动模式选择 ### 技术模式(BN 混合)— 默认 只要可以构建技术输入,即激活此模式。 ### 战术模式(旧版回退) 仅在以下情况使用: - 缺少技术相关性文件 - 缓解仪表板不可用 - 无法形成任何技术先验 ## 5. 攻击者路径日志记录(可选) `_simulate_attacker_path(record_path=True)` 返回: ``` (success: bool, path_log: List[Dict]) ``` 每个日志条目包括: - tactic(战术) - technique(技术) - BN 衍生的成功概率 - BN 衍生的检测概率 - 重试次数 - 回退发生情况 - 每步结果 ## 6. 控制依赖和组健康度集成 仪表板中的所有依赖逻辑现在会影响 BN 先验: - 支持控制影响 - Requires 依赖 - 组健康度采样 - 影响权重 - 循环检测 - 纵深防御聚合 ## 7. 更新后的输出 ### 主要输出 - 年度损失分布 - 年度事件计数 - 后验 λ 分布 - 后验链条成功分布 ### 可选输出 - 技术 BN 后验转储 - 攻击者路径日志(JSON 或 CSV) # 运行模型 示例命令: ``` python cyber_incident_pymc.py \ --technique-relevance technique_relevance.csv \ --mitigation-strengths mitigation_control_strengths.csv ``` 禁用随机适应性: ``` --no-adapt-stochastic ``` 禁用随机影响减少: ``` --no-stochastic-impact ``` # 架构摘要 ### 仪表板 处理所有控制依赖和缓解强度。 ### 贝叶斯网络 构建 λ、技术成功/检测节点、战术聚合器和链条成功节点。 ### 攻击者路径模拟 技术模式(默认) 战术模式(仅作回退) ### 年度损失引擎 结合 BN 后验与 Monte Carlo 推进模拟。 ## 建议做法 1. 定期校准缓解范围 2. 使用相关性模板以专注于特定攻击者 3. 审查依赖和组定义以确保建模真实 4. 根据内部数据验证建模的 AAL 和 SLE 5. 对所有 CSV 输入进行版本控制以保留分析谱系 FAIR–MITRE ATT&CK 量化网络风险框架 版权所有 2025 Joshua M. Connors 根据 Apache 许可证 2.0 版本授权。 本软件包含来自 MITRE ATT&CK® 框架的公开数据。
标签:ATT&CK 导航器, Cloudflare, FAIR模型, MITRE ATT&CK, PyMC, Python, 严重性建模, 信息风险, 威胁建模, 安全度量, 损失预测, 攻击模拟, 数据科学, 无后门, 概率编程, 网络安全, 蒙特卡洛模拟, 贝叶斯网络, 资源验证, 逆向工具, 量化风险分析, 防御控制, 隐私保护, 频率分析, 驱动签名利用