企业的安全运营——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 治理阶段

  1. 战略与指标

    • 目标:建立有效计划以实现组织内软件安全目标
    • 活动流:A(基础)和B(进阶)
  2. 策略与合规

    • 重点:理解和满足外部法律和规范要求,推动内部安全标准
  3. 教育与指导

    • 重点:为软件生命周期相关人员提供安全知识和资源

1.2.2 设计阶段

  1. 威胁评估

    • 重点:基于软件功能和运行环境识别项目级风险
  2. 安全需求

    • 聚焦:软件相关安全需求和供应商组织相关需求
  3. 安全架构

    • 聚焦:软件架构设计期间的组件和技术安全

1.2.3 开发阶段

  1. 安全构建

    • 强调:标准化、可重复的构建方式和安全组件使用
  2. 安全部署

    • 确保:部署过程不损害应用软件的安全性和完整性
  3. 缺陷管理

    • 聚焦:收集、记录和分析软件安全缺陷

1.2.4 验证阶段

  1. 架构评估

    • 确保:应用软件和基础架构满足安全性和合规要求
  2. 需求驱动的测试

    • 目标:确保安全控制按预期运行并满足安全需求
  3. 安全测试

    • 结合:自动化安全测试和人工专家深度测试

1.2.5 运营阶段

  1. 事件管理

    • 聚焦:处理组织中的安全事件
  2. 环境管理

    • 确保:应用软件堆栈中所有组件的安全基线配置
  3. 运营管理

    • 聚焦:确保运营支持功能中的安全性

1.3 成熟度等级

每个安全实践定义三个成熟度等级:

  1. 每个等级由连续且复杂的目标定义
  2. 每个等级的成功指标比上一等级更苛刻
  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 管理领域

  1. 战略和指标

    • 包括:规划角色职责、确定安全目标、预算和评估指标
  2. 合规性和政策

    • 制定:企业软件安全策略并开展审核
  3. 培训

    • 作用:弥补开发人员和架构师的安全知识不足

2.2.2 情报领域

  1. 攻击模型

    • 采集:威胁建模、滥用案例开发、数据分类等技术攻击模式
  2. 安全性功能和设计

    • 工作:创建安全模式、构建中间件框架、发布前瞻性安全指南
  3. 标准与要求

    • 涉及:明确安全要求、推荐COTS、制定安全控制标准等

2.2.3 SSDL检查点领域

  1. 架构分析

    • 包括:软件架构图表、风险威胁列表、架构风险分析等
  2. 代码审查

    • 包括:使用审查工具、制定规则、手动分析、跟踪结果
  3. 安全性测试

    • 涉及:发布前测试、黑盒安全工具、风险驱动白盒测试等

2.2.4 部署领域

  1. 渗透测试

    • 涉及:由安全专家开展的"从外至内"测试
  2. 软件环境

    • 涉及:操作系统补丁、WAF、容器化、应用监控等
  3. 配置管理和安全漏洞管理

    • 涉及:应用程序补丁、版本控制、缺陷跟踪等

2.3 评分机制

  • 根据观察活动行为存在性进行梯度打分
  • 评分指标为观察到企业组织有该实践下的最高级别活动得分

2.4 BSIMM用途

  • 作为标尺确定企业当前方法相对于其他企业的位置
  • 企业梳理已开展活动,与BSIMM记分卡比较发现不足
  • 提供行业比较的分析报告

3. SAMM与BSIMM对比

对比维度 SAMM BSIMM
模型类型 规范性模型 描述性模型
模型结构 5个域,3个实践,3个成熟度,2个活动流 4个域,12个子域,122项活动
打分机制 对每个活动单独评价,最后汇总打分 根据观察活动行为存在性进行的梯度打分制
发展由来 由Pravir Chandra编写,经社区意见更新 多年评估经验,根据观察数据调整形成
模型作用 分析和改进软件安全状况(改善为主) 比较企业安全活动与行业水平(评估为主)
功能层面 提供可衡量方式改进软件安全状况 作为标尺衡量企业相对位置
内容层面 不进行行业比较,专注于自身改进 用于与行业进行比较,提供分析报告

4. 总结与建议

  1. 模型选择

    • SAMM适合希望系统性改进软件安全实践的组织
    • BSIMM适合希望了解自身在行业中位置的组织
  2. 实施建议

    • 可结合使用两种模型:用BSIMM定位,用SAMM改进
    • 无论使用哪种模型,关键在于人员执行和持续改进
  3. 关键差异

    • SAMM是"规范性"模型,提供改进路径
    • BSIMM是"描述性"模型,提供行业基准
  4. 最终提醒

    • 两种模型都是辅助安全治理的工具
    • 具体实施需根据实际情况调整
    • 人员因素比模型本身更为关键

5. 参考资源

  1. BSIMM模型: https://www.synopsys.com/zh-cn/software-integrity/software-security-services/bsimm-maturity-model.html
  2. OWASP SAMM 2.0文档
企业安全运营成熟度模型: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文档