Skip to content

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)