企业的安全运营——SAMM与BSIMM
字数 2435 2025-08-22 12:22:23
企业安全运营成熟度模型:SAMM与BSIMM详解
1. 软件保障成熟度模型(SAMM)
1.1 SAMM概述
SAMM(Software Assurance Maturity Model)是一个规范性模型,旨在帮助组织建立、改进和评估其软件安全实践。它是一个易于使用、完全定义和可测量的开放框架,具有以下特点:
- 提供结构化方法,将软件安全实践分为几个阶段
- 根据每个阶段的成熟度指标进行评估
- 适用于任何开发风格的商业、中型和大型组织
- 允许组织自定义和采用,不强制要求所有类别达到最大成熟度
1.2 模型结构
SAMM模型分为五个关键业务功能,每个业务功能包含三个安全实践,共15个独立的安全实践活动:
1.2.1 治理阶段
-
战略与指标
- 目标:建立有效计划以实现组织内软件安全目标
- 活动流:A(基础)和B(进阶)
-
策略与合规
- 重点:理解和满足外部法律和规范要求,推动内部安全标准
-
教育与指导
- 重点:为软件生命周期相关人员提供安全知识和资源
1.2.2 设计阶段
-
威胁评估
- 重点:基于软件功能和运行环境识别项目级风险
-
安全需求
- 聚焦:软件相关安全需求和供应商组织相关需求
-
安全架构
- 聚焦:软件架构设计期间的组件和技术安全
1.2.3 开发阶段
-
安全构建
- 强调:标准化、可重复的构建方式和安全组件使用
-
安全部署
- 确保:部署过程不损害应用软件的安全性和完整性
-
缺陷管理
- 聚焦:收集、记录和分析软件安全缺陷
1.2.4 验证阶段
-
架构评估
- 确保:应用软件和基础架构满足安全性和合规要求
-
需求驱动的测试
- 目标:确保安全控制按预期运行并满足安全需求
-
安全测试
- 结合:自动化安全测试和人工专家深度测试
1.2.5 运营阶段
-
事件管理
- 聚焦:处理组织中的安全事件
-
环境管理
- 确保:应用软件堆栈中所有组件的安全基线配置
-
运营管理
- 聚焦:确保运营支持功能中的安全性
1.3 成熟度等级
每个安全实践定义三个成熟度等级:
- 每个等级由连续且复杂的目标定义
- 每个等级的成功指标比上一等级更苛刻
- 每类安全实践可通过相关活动优化单独改进
1.4 评分机制
- 每个活动单独评价,最后汇总打分
- 每个实践活动在不同维度下的指标执行情况定义为4个梯度(0,0.25,0.5,1)
- 每个实践活动有两个活动流,三个成熟度
- 单项活动总分为3,单项活动下每个活动流总分为1.5
2. 软件安全构建成熟度模型(BSIMM)
2.1 BSIMM概述
BSIMM(Building Security In Maturity Model)是一项针对当前软件安全方案的研究,具有以下特点:
- 数据驱动的描述性模型
- 通过评估大量企业得出的统计数据分类归纳形成
- 唯一目标是观察和报告
- 随时间不断发展演进
2.2 模型结构
BSIMM包含121项活动,分为4大领域12项实践:
2.2.1 管理领域
-
战略和指标
- 包括:规划角色职责、确定安全目标、预算和评估指标
-
合规性和政策
- 制定:企业软件安全策略并开展审核
-
培训
- 作用:弥补开发人员和架构师的安全知识不足
2.2.2 情报领域
-
攻击模型
- 采集:威胁建模、滥用案例开发、数据分类等技术攻击模式
-
安全性功能和设计
- 工作:创建安全模式、构建中间件框架、发布前瞻性安全指南
-
标准与要求
- 涉及:明确安全要求、推荐COTS、制定安全控制标准等
2.2.3 SSDL检查点领域
-
架构分析
- 包括:软件架构图表、风险威胁列表、架构风险分析等
-
代码审查
- 包括:使用审查工具、制定规则、手动分析、跟踪结果
-
安全性测试
- 涉及:发布前测试、黑盒安全工具、风险驱动白盒测试等
2.2.4 部署领域
-
渗透测试
- 涉及:由安全专家开展的"从外至内"测试
-
软件环境
- 涉及:操作系统补丁、WAF、容器化、应用监控等
-
配置管理和安全漏洞管理
- 涉及:应用程序补丁、版本控制、缺陷跟踪等
2.3 评分机制
- 根据观察活动行为存在性进行梯度打分
- 评分指标为观察到企业组织有该实践下的最高级别活动得分
2.4 BSIMM用途
- 作为标尺确定企业当前方法相对于其他企业的位置
- 企业梳理已开展活动,与BSIMM记分卡比较发现不足
- 提供行业比较的分析报告
3. SAMM与BSIMM对比
| 对比维度 | SAMM | BSIMM |
|---|---|---|
| 模型类型 | 规范性模型 | 描述性模型 |
| 模型结构 | 5个域,3个实践,3个成熟度,2个活动流 | 4个域,12个子域,122项活动 |
| 打分机制 | 对每个活动单独评价,最后汇总打分 | 根据观察活动行为存在性进行的梯度打分制 |
| 发展由来 | 由Pravir Chandra编写,经社区意见更新 | 多年评估经验,根据观察数据调整形成 |
| 模型作用 | 分析和改进软件安全状况(改善为主) | 比较企业安全活动与行业水平(评估为主) |
| 功能层面 | 提供可衡量方式改进软件安全状况 | 作为标尺衡量企业相对位置 |
| 内容层面 | 不进行行业比较,专注于自身改进 | 用于与行业进行比较,提供分析报告 |
4. 总结与建议
-
模型选择:
- SAMM适合希望系统性改进软件安全实践的组织
- BSIMM适合希望了解自身在行业中位置的组织
-
实施建议:
- 可结合使用两种模型:用BSIMM定位,用SAMM改进
- 无论使用哪种模型,关键在于人员执行和持续改进
-
关键差异:
- SAMM是"规范性"模型,提供改进路径
- BSIMM是"描述性"模型,提供行业基准
-
最终提醒:
- 两种模型都是辅助安全治理的工具
- 具体实施需根据实际情况调整
- 人员因素比模型本身更为关键
5. 参考资源
- BSIMM模型: https://www.synopsys.com/zh-cn/software-integrity/software-security-services/bsimm-maturity-model.html
- OWASP SAMM 2.0文档