安全开发生命周期(1)-SDL简介
SDL, Security Development Cycle(安全开发周期)。
换一种说法,就是安全开发流程,就是项目管理流程中的安全控制。
在讨论SDL之前,需要先了解下企业在网络安全上的痛点、风险产生的原因。
安全上的痛点
安全漏洞的危害
为什么会产生这些漏洞呢?
那就让我们看看产品从开始到上线的各个过程中,存在哪些问题吧。
方案设计过程中的安全问题
开发过程中的安全问题
测试过程中的安全问题
部署过程中的安全问题
总结一下:
安全漏洞的原因分析总结
如何从源头开始规避漏洞
有人说,我们已经采购了很多扫描器,或者说渗透测试很厉害,但实际效果如何呢?
美国国家安全局(NSA)的一项研究表明,一般的应用安全测试工具(各种扫描器或渗透测试工具)的漏洞发现率只有14%左右(可搜索“NSA调查称全球没有一款漏洞扫描工具真正有效”了解更进一步的信息)。
14%,很难接受的一个数字,但实际差不多就是如此。
事后的扫描是靠不住的,只有从源头开始规避大部分漏洞,才能将主要的问题和风险消除在萌芽状态,这就要靠组织和流程来保障;将安全要素融入项目管理流程,启用安全开发流程,关键项目阶段要添加相应的安全任务。
这个安全开发流程,或融入安全要素的项目管理流程,即为SDL (Security Development Lifecycle, 安全开发生命周期)。
项目的各个阶段,有自己的安全任务。这些任务如果未完成,则意味着本阶段的安全问题/风险没有解决,带给下一阶段,并最终带入生产环境。通过流程保障,不将问题、风险、缺陷带给下一阶段。
SDL通过规范的项目管理过程和关键安全任务的引入,确保开发设计及部署过程中遵从安全标准与规范,保障所交付产品在全生命周期过程中的安全性。其核心理念就是将安全集成到应用开发的每一个阶段。
安全开发流程最大的价值,就是用标准和流程的确定性,来降低开发过程中的不确定性。