3.1.4 软件保证成熟度
1.SAMM简介
软件保证成熟度模型(Software Assurance Maturity Model,简称SAMM)是一种开放的安全框架,用来帮助组织制定并实施应对软件安全风险的策略。它是OWASP组织开展和维持的项目之一,目前官方的版本1.0是在2009年3月发布的。SAMM的目的包括以下方面[3]。
1)评估一个组织已有的软件安全实践。
2)建立一个迭代的、可衡量的软件安全保证计划。
3)证明安全保证计划带来的实质性改善。
4)定义并衡量组织中与安全相关的措施。
SAMM的定义方式比较灵活,使它适用于大、中、小型组织的任何类型的软件开发。另外,此模型既适用于全组织,也适用于一个单一的项目。除了这些特点,SAMM还遵守以下原则。
1)一个组织的行为随着时间的推移而缓慢改变。一个成功的软件安全管理模型,应当详细说明每一个小的迭代步骤,以便能够提供有形的保证收益,并向项目的长期目标前进。
2)没有一种方法可以适用于所有组织。一个软件安全管理模型必须是灵活的,并允许组织可以根据他们的风险承受能力和他们的软件开发方式进行灵活调整。
3)与安全措施相关的指导必须是规范的。所有建立和评估软件安全管理体系的步骤应该是简单的、明确的和可测量的。
2.SAMM模型
SAMM规定了4个软件开发过程中的核心业务功能。每个核心业务功能具有3项安全功能,用来定义可执行安全相关活动的范围。每项安全功能又有3个级别的设置,以及相应的活动、成功标准、人员开销和相关成本,用来证明组织的管理水平是如何随着时间而改进的,如图3-4所示。
(1)治理 组织管理其软件开发的过程和活动。
(2)构造 组织在开发项目中确定目标并开发软件的过程与活动。
(3)验证 组织测试和验证软件的过程与活动。
(4)部署 组织软件发布的相关管理过程与活动。
图3-4 SAMM结构图[3]
每一个安全功能的级别设置如下:
(1)0 隐起点,措施尚未实现。
(2)1 对安全事件有了初步了解,并有所专门的提供。
(3)2 提高了安全时间的效率和(或)有效性。
(4)3 在一定规模上综合掌握了安全实践。
在采用SAMM模型评估企业的安全保证程度时,可创建记分卡来对各个安全功能进行持续衡量、差距分析和证明改善情况。同时,SAMM还为独立软件供应商、在线服务提供商、金融服务机构和政府组织提供了路线图模板,以便于这些有代表性的组织实施SAMM。