【应用安全】微软的安全开发生命周期(SDL)

01

SDL介绍

安全开发生命周期(SDL)即Security Development Lifecycle,是一个帮助开发人员构建更安全的软件和解决安全合规要求的同时降低开发成本的软件开发过程。

02

SDL流程

自2004年起,SDL就成为Microsoft全公司的计划和强制施行政策,其核心理念就是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段每都增加了相应的安全活动与规范,以减少软件中漏洞的数量并将安全缺陷降低到最小程度。安全开发生命周期 (SDL)是侧重于软件开发的安全保证过程,旨在开发出安全的软件应用。

Microsoft 安全开发生命周期 – 简化(英文版)

Microsoft 安全开发生命周期 – 简化(中文版)

3、 需上报问题的FSR。如果团队未满足所有SDL要求,并且安全顾问和产品团队无法达成可接受的折中,则安全顾问不能批准项目,项目不能发布。团队必须在发布之前解决所有可解决的问题,或者上报高级管理层进行抉择。

阶段16:发布/存档

在通过FSR或者虽有问题但达成一致后,可以完成产品的发布。但发布的同时仍需对各种问题和文档进行存档,为紧急响应和产品升级提供帮助。从以上的过程可以看出,微软的SDL的过程实施非常细致。微软这些年来也一直帮助公司的所有产品团队,以及合作伙伴实施SDL,效果相当显著。

SDL 过程图示:

03

SDL实战经验

准则:

  • 与项目经理进行充分沟通,排除足够的时间
  • 规范公司的立项流程,确保所有项目都能通知到安全团队,避免遗漏
  • 树立安全部门的权威,项目必须由安全部门审核完成后才能发布
  • 将技术方案写入开发、测试的工作手册中
  • 给工程师培训安全方案
  • 记录所有的安全bug,激励程序员编写安全的代码

04

总结

SDL中的方法,试图从安全漏洞产生的根源上解决问题,通过对软件工程的控制,保证产品的安全性。本文简单介绍了一下微软SDL,但流程复杂,落地难,借鉴微软SDL流程框架,思考如何构建符合自己公司的SDL流程框架。接下来会写几篇关于SDL的学习与思考,待续。

参考文献:

[1]【软件安全设计】安全开发生命周期(SDL) http://blog.nsfocus.net/sdl/
[2] 微软SDL官方地址
http://www.microsoft.com/security/sdl/default.aspx
[3] Microsoft SDL 的简化实施 
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=12379
[4] 应用安全与微软SDL-IT流程
https://blogs.technet.microsoft.com/gcrsec/2008/09/22/sdl-it/ 
[5] SDL 威胁建模工具入门
https://msdn.microsoft.com/zh-cn/magazine/dd347831.aspx

本文分享自微信公众号 - Bypass(Bypass--)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏kubernetes中文社区

Rdfind - 在Linux中查找重复文件

前段时间遇到一个问题,服务器下面一个文件夹下面的图片越来越多,由原来的5G,达到了现在的94G,其中这个文件夹下面有好多重复的图片,文件多了之后造成图片备份困难...

35760
来自专栏程序员的成长之路

必会的 24 道 Shell 脚本面试题

虽然现在 Python 在运维工作中已经使用很普遍,但是很多企业在找 Linux 云计算工程师的时候还是会问到 shell 脚本的问题,它有助于你在工作环境中自...

29130
来自专栏腾讯移动品质中心TMQ的专栏

Mac UT实践小结

开发UT实现:朱浩禹 测试UT实现:韩小晴、余轶斐 FT其他参与者:陈智、熊琦楠 (名字均按首字母排序) 一、为何要做单元测试? 腾讯视频Mac项目研发质量较...

17440
来自专栏嵌入式程序猿

分享几款J1939测试和调试的工具

J1939是CAN通讯的一种高层协议,广泛应用于商用车,和大型机械建筑设备,非路面设备,农林消防设备等,前段时间给大家做了J1939系列课的培训,关于常用的测试...

18620
来自专栏AustinDatabases

MYSQL Group replication Crash 的快速恢复方法

最近,在检测开发的语句后,发现有些语句的问题,根本不在语句优化,MYSQL的系统优化,慢的根本原因是,客户的要求太奇葩。

10920
来自专栏AustinDatabases

sysbench 1.10 为什么原来的命令无效

公司最近大量的MYSQL要上线,不做压力测试时说不过去的,所以拿出一直使用的sysbench 来压测一下MYSQL ,问题就开始了,最早用的是0.5 versi...

12920
来自专栏凯哥Java

单元测试框架系列教程6属性invocationCount、invocationTimeOut

这篇我们来学习下@Test中另外两个属性invocationCount和invocationTimeOut,前面我介绍了timOut这个属性,知道是超时监控的功...

11530
来自专栏菩提树下的杨过

Executors几种常用的线程池性能比较

java编程中,经常会利用Executors的newXXXThreasPool生成各种线程池,今天写了一小段代码,简单测试了下三种常用的线程池:

15340
来自专栏陌上风骑驴看IC

从EDA 使用,捋数字芯片设计实现流程 | 上

在各方助力下,集成电路成了时代热点,有大量文章在写芯片设计之复杂之困难,老驴打算从EDA 使用角度捋一遍芯片设计流程。在老驴画出第一副图之后,发现熟知的只有数字...

15520
来自专栏CODING DevOps

​测试工程师如何使用 CODING 进行测试管理

CODING 为您的企业提供从概念到软件开发再到产品发布的全流程全周期软件研发管理,为您的研发团队提供全程助力,帮助研发团队捋清需求、不断迭代、快速反馈并能实时...

10130

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励