SDL 安全开发生命周期
漏洞修复成本随开发阶段后移而上升。SDL 把安全活动嵌入软件开发的各个阶段,从源头减少漏洞。这篇讲 SDL 的概念、作用和七个阶段。
什么是 SDL
**SDL(Security Development Lifecycle,安全开发生命周期)**最早由微软提出,是从安全角度指导软件开发过程的管理模式。
作用:
- 提升 Web 应用的安全性。
- 减少 Web 应用的安全漏洞。
- 降低安全漏洞的修复成本。
SDL 七个阶段
培训 → 需求 → 设计 → 实施 → 验证 → 发布 → 响应培训
核心安全培训,针对不同人员进行不同程度的培训:
- 开发人员:偏重代码安全。
- 测试人员:偏重测试方面的安全。
- 运营人员:偏重安全意识与系统层面。
需求
- 确保安全需求得到确认:安全需求分析、应用认证、是否加密、权限审计。
- 确保质量要求和 bug 数量要求。
- 进行安全和隐私风险评估。
设计
- 设计需求分析。
- 减少攻击面:从应用和系统两方面分析,实施最小权限原则,进行威胁建模。
- 使用指定工具分析,弃用不安全的函数,进行静态分析。
实施
按设计阶段确定的安全规范编码,使用安全的函数与组件,落实静态代码分析。
验证
- 动态分析。
- 模糊测试(Fuzzing)。
- 威胁建模与攻击面分析。
发布
- 制定事件响应计划。
- 进行最终安全评析(FSR)。
- 发布存档。
响应
按事件响应计划,对发布后发现的安全漏洞和安全事件进行处置(详见漏洞与安全事件处理)。
最后更新于