微软SDL( Security Development Lifecycle)流程,是一种专注于软件开发安全保障的流程,为了实现保证最终的用户安全,在软件开发各阶段中引入安全和隐私问题。其中主要由以下7部分组成:
需求分析(requirements): 寻找安全嵌入的最优方式
系统设计(design): 威胁建模设计
实现(implementation): 安全开发
发布(release): 最后检查确认
响应(response):应急响应,bug跟踪解决
总结, 通过上面的介绍,我们发现微软SDL是将设计、代码和文档等与安全相关漏洞减到最少,在软件开发的生命周期中尽可能的早地发现解决相关漏洞建立的流程框架; 值得我们学习的地方是,我们可以借鉴微软SDL的流程框架建立符合公司自己的。
以下微软SDL流程框架图:
微软SDL官方地址: http://www.microsoft.com/security/sdl/default.aspx
目前多数公司在安全方面都面临者诸多问题,如:
1 安全意识不足
2 缺少安全设计
3 缺少安全编程规范
4 频繁的迭代更新版本
5 压缩项目周期
。。。等,当然还有更多,在此就不在列举
所以借鉴微软SDL流程框架,本文作者构建符合自己公司的SDL流程框架:
1 安全测试(通过黑/白盒测试,发现公司系统潜在的漏洞,构建漏洞库)
2 安全培训(通过对常见漏洞,尤其是对用户及公司造成危害性大的漏洞培训形成解决方案措施)
3 需求分析评估(确切的来讲,这个层次应属于信息安全范围,针对各层次进行安全信息识别和漏洞评估,制定相关安全目标等内容)
4 系统设计( 威胁模型建立,进行架构分析,分解各应用程序,识别风险,识别漏洞等)
5 编码实现(进行相关代码评审,漏洞扫描检查)
6 发布( 上线审核机制,安全监控(日志,网站,服务器等),Bug管理,故障事件管理等)
通过上面大家可以发现微软SDL的“响应”环节去掉了,其实响应我个人理解将其融入以上6个环节中更有效,因为每个环节都需要应对;其中将安全测试和安全培训提至最前面,因为目前国内公司对安全其实了解甚少且比较偏面,所以最好的解决方法就是将问题摆出来,然后寻求解决之道!