安全开发流程(SDL)学习概述

1.简介

SDL的全称是Security Development Lifecycle,即:安全开发生命周期。由微软最早提出,是一种专注于软件开发的安全保障流程。为实现保护最终用户为目标,它在软件开发流程的各个阶段引入安全和隐私问题。

2.流程

SDL大致如下,包括了以下七个阶段:

• 安全培训:安全培训体系:安全意识+安全测试+安全开发+安全运维+安全产品
• 需求分析:确定安全需求和投入占比,寻找安全嵌入的最优方式
• 系统设计:确定设计要求,分析攻击面,威胁建模
• 实现:使用标准的工具,弃用不安全的函数,静态分析(安全开发规范+代码审计)
• 验证:黑白盒测试,攻击面评估
• 发布:安全事件响应计划、周期性安全评估
• 响应:应急响应,BUG跟踪

3.SDL实战经验

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

4.需求分析与设计

引用一份之前看到的美的执行SDL的checklist。如下:

5.开发与测试

  • 使用安全的函数,比如 OWASP ESAPI
  • 代码审计工具--Fortify SCA
  • 测试阶段--漏洞扫描器 appscan,awvs,webinspect

6.总结:

听了很多安全同仁的想法,中小企业不建议推动SDL,可以做攻防驱动类型的SDL,因为SDL往往需要从上往下推动,归根到底还是“人”的问题。SDL的成功实施,与管理层支持力度有很多关系。

 

 参考文献:

《白帽子讲Web安全》

 https://mp.weixin.qq.com/s/MR3SmOLj834LK4RBMcZ2pg?

 https://xz.aliyun.com/t/226

猜你喜欢

转载自www.cnblogs.com/whoami101/p/9914862.html