可信计算软件安全开发生命周期
软件安全开发,在微软、IBM等大厂那里早已取得不错的成果,像微软公司的可信计算软件安全开发生命周期模型,目前有40多家公司研究的内建安全成熟度模型。
下面介绍下微软公司的可信计算软件安全开发生命周期,简称安全开发生命周期(Security Development Lifecycle,SDL)。
2004年以来,微软一直将SDL作为全公司的强制性策略,用于减少软件中安全漏洞的数量和严重性。Vista是微软第一个采用SDL过程开发的操作系统。
SDL从安全角度指导软件开发过程,包括威胁建模、静态分析和安全审查等安全技术,确保减少微软产品的安全漏洞,保证最终用户的信息安全。
SDL将软件开发生命周期划分为7个阶段,提出17项重要的安全活动,如下图所示:
SDL各阶段的主要任务和目的如下:
-
培训
对开发团队和高层管理者进行安全意识与安全开发能力的培训,确保管理者对安全开发足够重视,提供必要的支持;确保开发人员有足够的能力,完成软件安全开发的任务。
-
需求
在软件需求开发阶段,开发团队与高层管理者确定软件需要遵循的安全标准和相关要求,分析软件的安全需求,建立最低可接受安全级别。
-
设计
在软件设计阶段,根据开发的安全需求,从安全性的角度定义软件的总体结构。通过分析攻击面,设计相应的功能和策略,规避或减少安全风险,同时通过威胁建模,分析软件或系统的安全威胁,提出缓解措施。
-
实施
在软件实现阶段,按照安全设计要求,对软件进行编码和集成,实现满足安全设计要求的功能、策略以及缓解措施。在该阶段通过遵循安全编码规则和禁用不安全的API,减少编码引入的安全漏洞,并通过代码静态分析等措施来确保安全编码规范的实施。
-
验证
通过动态分析和安全性测试,核查攻击面,检测软件是否存在安全漏洞,检查各个安全措施是否得以正确实现。
-
发布
在产品发布阶段,建立可持续的安全维护计划,对软件进行最终安全核查。本阶段应将所有相关信息和数据存档,建立并实施移交计划,以便对软件进行发布与维护。
-
响应
在产品交付用户使用后,及时响应安全事件与用户提交的漏洞报告,实施漏洞修复和应急响应。同时对发现问题,尤其是安全问题进行分析,并将分析结果用于SDL的持续改进。
在这7个阶段中,前6个阶段的16项安全活动是开发团队必须成功完成的,活动是否成功由安全专家确认,并且会作为评估过程的一部分,不断进行有效性评判。
军用软件的安全开发也可从中获取经验。比如:对开发人员和管理者开展安全意识与能力的培训,建立安全编码规则,开展安全性测试,并且在开发过程中进行安全开发有效性评估。
这正是:
安全开发有借鉴,微软定义新周期
七个阶段不陌生,重视安全为要义
参考书目:软件安全开发,作者:吴世忠 李斌 张晓菲 梁洪亮,出版社:机械工业出版社
作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。
《可信计算软件安全开发生命周期》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/1755.html