security-decision-labs 中文导航
原文: Security Decision Labs
分类: 决策科学 + 网络安全
大小: 30 MB
语言: Python
📚 仓库简介
Security Decision Labs 是一个专注于安全决策科学研究的实验室项目。它提供了一系列工具和方法,用于量化网络安全投资回报 (ROI)、信息价值 (VoI)、风险分析和因果推断。适合 CISO、安全分析师和决策研究者使用。
GitHub: https://github.com/security-decision-science/security-decision-labs
🔧 核心功能
| 功能 |
描述 |
方法 |
| ROI 分析 |
计算安全控制投资回报 |
成本效益分析 |
| VoI 分析 |
信息的价值量化 |
贝叶斯决策理论 |
| 蒙特卡洛模拟 |
不确定性建模 |
概率模拟 |
| 生存分析 |
安全事件时间分析 |
生存函数 |
| 因果推断 |
安全措施效果评估 |
因果图/DID |
📁 目录结构
security-decision-labs/
├── src/ # 源代码
│ ├── roi/ # ROI 分析模块
│ │ ├── calculator.py
│ │ └── optimizer.py
│ ├── voi/ # VoI 分析模块
│ │ ├── bayesian.py
│ │ └── value.py
│ ├── monte_carlo/ # 蒙特卡洛模拟
│ │ ├── simulator.py
│ │ └── risk.py
│ ├── survival/ # 生存分析
│ │ └── analysis.py
│ └── causal/ # 因果推断
│ ├── dag.py
│ └── estimator.py
├── examples/ # 示例代码
│ ├── roi_example.py
│ ├── voi_example.py
│ └── monte_carlo_demo.py
├── data/ # 示例数据
├── notebooks/ # Jupyter 笔记
├── docs/ # 文档
└── README.md # 主文档
🚀 快速开始
安装
# 克隆仓库
cd /workspace/code-examples/security-decision-labs
# 安装依赖
pip install -r requirements.txt
# 主要依赖:
# - numpy, pandas, scipy
# - matplotlib, seaborn
# - econml (因果推断)
# - lifelines (生存分析)
第一个示例:安全 ROI 计算
from src.roi.calculator import SecurityROICalculator
# 创建计算器
calculator = SecurityROICalculator()
# 输入参数
investment = 100000 # 安全投资 (元)
breach_probability_before = 0.3 # 实施前被攻破概率
breach_probability_after = 0.1 # 实施后被攻破概率
breach_cost = 1000000 # 被攻破成本
# 计算 ROI
roi = calculator.calculate_roi(
investment=investment,
p_before=breach_probability_before,
p_after=breach_probability_after,
loss=breach_cost
)
print(f"安全投资回报率:{roi:.2%}")
print(f"净收益:{calculator.net_benefit:,.2f} 元")
信息价值 (VoI) 分析
from src.voi.bayesian import VoIAnalyzer
# 创建 VoI 分析器
analyzer = VoIAnalyzer()
# 先验概率
prior_prob_breach = 0.2
# 假设我们获得了新的威胁情报
# 新信息会更新后验概率
likelihood_ratio = 3.0 # 似然比
# 计算信息价值
voi = analyzer.calculate_voi(
prior=prior_prob_breach,
likelihood=likelihood_ratio,
decision_value=500000 # 决策价值
)
print(f"信息价值:{voi:,.2f} 元")
蒙特卡洛风险模拟
from src.monte_carlo.simulator import RiskSimulator
# 创建模拟器
simulator = RiskSimulator(n_simulations=10000)
# 定义风险参数 (三角分布)
optimistic = 50000 # 乐观估计
most_likely = 100000 # 最可能
pessimistic = 300000 # 悲观估计
# 运行模拟
results = simulator.simulate_triangular(
optimistic=optimistic,
most_likely=most_likely,
pessimistic=pessimistic
)
# 输出结果
print(f"期望损失:{results['mean']:,.2f} 元")
print(f"95% VaR: {results['var_95']:,.2f} 元")
print(f"最大损失:{results['max']:,.2f} 元")
生存分析:安全事件时间
from src.survival.analysis import SurvivalAnalyzer
import pandas as pd
# 示例数据:安全事件发生时间
data = pd.DataFrame({
'time': [10, 20, 30, 40, 50, 60, 70, 80],
'event': [1, 1, 0, 1, 1, 0, 1, 0] # 1=事件发生,0=删失
})
# 创建分析器
analyzer = SurvivalAnalyzer()
# 拟合 Kaplan-Meier 生存曲线
km_results = analyzer.kaplan_meier(data['time'], data['event'])
# 输出中位生存时间
median_time = km_results.median_survival_time
print(f"中位生存时间:{median_time:.1f} 天")
运行示例
cd /workspace/code-examples/security-decision-labs
# 运行 ROI 示例
python examples/roi_example.py
# 运行蒙特卡洛演示
python examples/monte_carlo_demo.py
# 查看 Jupyter 笔记
jupyter notebook notebooks/
📖 关键文档
| 文档 |
说明 |
docs/roi_guide.md |
ROI 计算完整指南 |
docs/voi_tutorial.md |
VoI 分析教程 |
docs/monte_carlo.md |
蒙特卡洛模拟详解 |
notebooks/ |
交互式学习笔记 |
💡 典型应用场景
1. 安全投资优先级
问题:有限预算下,应该优先投资哪些安全控制?
方法:
1. 计算每个控制的 ROI
2. 考虑预算约束
3. 使用优化算法选择最佳组合
产出:最优投资分配方案
2. 威胁情报价值评估
问题:是否应该购买威胁情报服务?
方法:
1. 评估当前决策的不确定性
2. 计算情报的 VoI
3. 比较 VoI 与购买成本
产出:购买决策建议
3. 网络安全保险定价
问题:应该购买多少保额的网络安全保险?
方法:
1. 蒙特卡洛模拟损失分布
2. 计算不同保额下的期望效用
3. 考虑保险费和免赔额
产出:最优保额建议
4. 安全措施效果评估
问题:新部署的防火墙是否有效降低了风险?
方法:
1. 收集部署前后数据
2. 使用因果推断 (DID/匹配)
3. 估计因果效应
产出:措施有效性证明
🎯 方法论
ROI 计算公式
ROI = (收益 - 成本) / 成本
其中:
收益 = (P_before - P_after) × Loss
成本 = 安全投资总额
VoI 计算公式
VoI = E[V|新信息] - E[V|旧信息]
其中:
E[V] = 期望决策价值
生存函数
S(t) = P(T > t)
Kaplan-Meier 估计:
Ŝ(t) = Π_{t_i ≤ t} (1 - d_i / n_i)
🔗 相关资源
📚 理论基础
决策理论
| 理论 |
提出者 |
应用 |
| 期望效用理论 |
von Neumann |
风险决策 |
| 贝叶斯决策 |
Savage |
信息价值 |
| 前景理论 |
Kahneman |
行为决策 |
风险管理
| 概念 |
说明 |
工具 |
| VaR |
在险价值 |
蒙特卡洛 |
| CVaR |
条件在险价值 |
优化 |
| 敏感性分析 |
参数影响分析 |
龙卷风图 |
🛠️ 扩展阅读
书籍推荐
| 书籍 |
作者 |
主题 |
| 《How to Measure Anything》 |
Hubbard |
量化方法论 |
| 《The Failure of Risk Management》 |
Hubbard |
风险批评 |
| 《Cybersecurity and Cyberwar》 |
Singer |
网络安全 |
论文推荐
| 论文 |
年份 |
主题 |
| "The Economics of Information Security" |
Anderson |
安全经济学 |
| "Measuring the ROI of Security" |
Jaquith |
ROI 方法 |
| "Value of Information for Security" |
Gordon |
VoI 应用 |
🎓 学习路径
1. README.md → 了解项目
2. examples/roi_example.py → ROI 入门
3. examples/monte_carlo_demo.py → 风险分析
4. notebooks/ → 深入学习
5. docs/ → 理论和方法
本地路径: /workspace/code-examples/security-decision-labs/
创建时间: 2026-06-01
难度: ⭐⭐⭐⭐ (专业级)
**Security Decision Labs 中文导航 | 安全决策科学**
[返回代码索引](../../README_UPDATED.md) | [决策科学资源大全](../../docs/resources/decision-science-comprehensive-resources.md)