跳至内容
SDL 安全开发生命周期

SDL 安全开发生命周期

漏洞修复成本随开发阶段后移而上升。SDL 把安全活动嵌入软件开发的各个阶段,从源头减少漏洞。这篇讲 SDL 的概念、作用和七个阶段。

什么是 SDL

**SDL(Security Development Lifecycle,安全开发生命周期)**最早由微软提出,是从安全角度指导软件开发过程的管理模式。

作用:

  • 提升 Web 应用的安全性。
  • 减少 Web 应用的安全漏洞。
  • 降低安全漏洞的修复成本。

SDL 七个阶段

培训 → 需求 → 设计 → 实施 → 验证 → 发布 → 响应

培训

核心安全培训,针对不同人员进行不同程度的培训:

  • 开发人员:偏重代码安全。
  • 测试人员:偏重测试方面的安全。
  • 运营人员:偏重安全意识与系统层面。

需求

  • 确保安全需求得到确认:安全需求分析、应用认证、是否加密、权限审计。
  • 确保质量要求和 bug 数量要求。
  • 进行安全和隐私风险评估。

设计

  • 设计需求分析。
  • 减少攻击面:从应用和系统两方面分析,实施最小权限原则,进行威胁建模
  • 使用指定工具分析,弃用不安全的函数,进行静态分析。

实施

按设计阶段确定的安全规范编码,使用安全的函数与组件,落实静态代码分析。

验证

  • 动态分析。
  • 模糊测试(Fuzzing)。
  • 威胁建模与攻击面分析。

发布

  • 制定事件响应计划。
  • 进行最终安全评析(FSR)。
  • 发布存档。

响应

按事件响应计划,对发布后发现的安全漏洞和安全事件进行处置(详见漏洞与安全事件处理)。

最后更新于