1. 背景
SDL 全称 security development lifecycle (安全开发生命周期), 是微软提出的从安全角度指导软件开发过程的管理模式. SDL 是一个安全保证的过程, 起重点是软件开发, 它在开发的所有阶段都引入了安全和隐私的原则
在软件应用生命周期中, 修复漏洞的成本随着发现漏洞阶段的进程呈几何级数增长, 传统的漏洞检测方法通常只能在业务系统开发完成后才能介入, 这导致漏洞的修复成本高昂, 甚至很多漏洞在安全事件发生后, 才会被发现及修正
2. SDL 流程
SDL 分为六个阶段
- 安全培训
根据行业企业实际需求, 提供安全培训体系, 包含安全意识, 安全基础知识, 安全开发生命周期流程及安全专业知识的培训
- 安全需求
安全人员从业务的角度思考安全风险, 通过自身丰富的安全攻防经验, 更好地挖掘和规避安全风险问题, 形成安全需求清单
- 安全设计
仔细思系统的安全设计和用户隐私问题, 提供安全方案设计及威胁建模
- 安全开发
定制开发者的开发规范, 便于开发真写出安全的代码, 如安全编码规范, 安全函数库及代码审计方法
- 安全测试
基于威胁建模的测试设计, Fuzzing 测试, 渗透测试, 新系统需求上线前安全保障
- 安全部署
漏洞, 补丁安全事件管理, 安全基线, 对操作系统, 数据库, 中间件制定安全加固规范
3. SDL 工作流程
扫描器集群支持的工具
- Fortify
- Black Duck
- IAST
- DAST
- APP 加固
- HiveSQL
一致性检查涉及的检查项目
- 扫描器集群的扫描结果
- 安全需求评审结果
- 渗透测试结果