1、SDL是什么?
SDL(Security Development Lifecycle)安全开发生命周期。是微软提出的从安全角度指导软件开发的管理模式,在软件开发的生命周期中尽可能地发现安全隐患,降低安全风险。
SDL的核心理念就是把安全考虑集成到软件开发的每一个阶段:需求分析、设计、编码、测试、维护。
2、没有SDL参与的研发流程以及弊端
需求分析、系统设计、产品研发、系统测试、系统部署
每个环节都存在安全风险
-
需求分析:缺少必要的安全需求介入,导致后续缺少必要的安全模块设计
-
设计阶段:设计阶段缺乏安全,导致系统架构缺陷后期难以修复
-
产品研发:研发缺少安全意识,代码存在安全隐患
-
系统测试:缺少安全测试,安全问题不能提前暴露
-
部署上线:攻击面暴露,攻击者入侵,资产受损
3、SDL介入的研发流程
安全培训、安全需求分析、安全设计、安全测试、渗透测试、应急响应
-
安全培训:安全意识、研发安全技术、安全编码规范(唯品会安全培训参考、【SDL最初实践】安全培训)
-
安全设计:威胁建模
-
安全测试:自研线上扫描平台、浏览器插件、白盒黑盒、github开源扫描器
-
渗透测试:自动化扫描工具、内部测试、外部众测、白帽子
学习资料:
https://xz.aliyun.com/t/226 初探SDL
https://xz.aliyun.com/t/2089 金融行业SDL安全设计checklist
https://github.com/Cryin/Paper
https://www.microsoft.com/en-us/securityengineering/sdl/threatmodeling
网友评论