一、安全开发生命周期(SDL)是什么?
SDL介绍
安全开发生命周期(SDL)即Security Development Lifecycle,是一个帮助开发人员构建更安全的软件和解决安全合规要求的同时降低开发成本的软件开发过程。 自2004年起,微软将SDL作为全公司的计划和强制政策,SDL的核心理念就是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段每都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度。安全开发生命周期 (SDL)是侧重于软件开发的安全保证过程,旨在开发出安全的软件应用。
SDL安全活动
简单来说,SDL是微软提出的从安全角度指导软件开发过程的管理模式,在传统软件开发生命周期 (SDLC) 的各个阶段增加了一些必要的安全活动,软件开发的不同阶段所执行的安全活动也不同,每个活动就算单独执行也都能对软件安全起到一定作用。当然缺少特定的安全活动也会对软件的安全性带来影响。
二、安全设计核心原则
SDL安全设计核心原则
1.Attack Surface Reduction 攻击面最小化
2.Basic Privacy 基本隐私
3.Least Privilege 权限最小化
4.Secure Defaults 默认安全
5.Defense in Depth 纵深防御
6.Threat Modeling 威胁建模
小结
在整个SDL周期中,除了安全培训这项活动,还在软件发布后增加了安全应急响应的相关活动,而目前国内大多数公司目前已经基本上具备了安全应急响应的活动和职能部门,同时包括安全编码规范、代码审计、渗透测试等安全活动也都已经基本具备甚至个别企业已经比较成熟。但在软件设计阶段的安全活动则相对较少,据我了解仅个别大型跨国企业才拥有安全设计等相关的安全活动。而根据微软多年的实践和经验,软件的安全问题很大一部分是由于不安全的设计而引入的。在设计阶段造成的安全缺陷在后期修复的成本和时间都相对较高。STRIDE威胁建模的创始人之一Taha Mir曾说过“safer applications begin with secure design”,即安全应用从安全设计开始,相应的微软SDL也提出了若干核心的安全设计原则,并提出了如攻击面最小化、STRIDE威胁建模等多种方法辅助安全人员对软件进行安全设计。
本文介绍了安全开发生命周期(SDL)的概念及其在软件开发中的应用,详细阐述了SDL如何通过在软件开发的各个阶段增加安全活动来提高软件安全性,并列举了微软提出的六大安全设计核心原则。
1404

被折叠的 条评论
为什么被折叠?



