SDL(安全开发生命周期)
1.SDL(安全开发生命周期)
SDL基于三个核心概念:教育、持续过程改进和责任。对软件开发小组中的技术工作角色进行持续不断的教育,这一点至关重要。因为安全风险不是静止不变的,所以SDL非常重视了解安全漏洞的原因和后果,要求定期评估SDL过程并随着新技术的发展和新威胁引入应对措施。
SDL将软件开发生命周期划分为七个阶段,并提出了十七项重要的安全活动,如下图所示。
这七个阶段的主要含义和目的是:
1)培训
针对开发团队和高层进行安全意识与能力的培训,以确保SDL能有效实施,同时禽邑针对新的安全问题与形式持续提升团队的能力。
2)需求
通过安全需求分析,确定软件安全需要的安全标准和相关要求。 3)设计
通过分析攻击面,设计相应的功能和策略,降低和减少不必要的安全风险。同时通过威胁建模,分析软件或系统的安全威胁,提出缓解措施。
4)实现
按设计要求,实现对应功能和策略,以及缓解措施涉及到的安全功台邑和安全策略。同时通过安全编码和禁用不安全API,减少实现时导致的安全问题,不引入编码级安全漏洞,并通过代码审计等措施来确保安全编码规范的实行。
S)验证
通过安全测试的手段,检测软件的安全漏洞,并全面核查攻击面,各个关键因素上的威胁缓解措施是否正确得以实现。
6)发布
建立相应的响应计划,进行最终安全核查,并完善相应的安全指导文档以提交给用户使用。
7)响应
响应安全事件与漏洞报告,实施漏洞修复和应急响应。同时发现新的问题与安全问题模式,学习到新的知识,将他们用于SDL的持续改进过程中。
在这七个阶段中,SDL要求前六个阶段的十六项安全活动,为开发团队必须成功完成的必需安全活动,这些必需活动由安全和隐私专家确认有效,并且会作为严格的年度评估过程的一部分,不断进行有效性评析。同日寸‘,SDL认为开发团队应保持灵活性,以便根据需要, 选择可选安全活动,如人工代码评析、渗透测试、相似应用程序的漏洞分析,以确保对某些软件组件进行更高级别的安全分析。关于这些安全活动的详细说明和最新资料可以从SDL的公开文档得到,SDL的官方网址为:http://www.mcrosoft.corn/sdl。
微软在内部开发中使用了大量自己开发的辅助安全开发过程的.工具,并且将其中的一部分发布出来。