安全的开发流程
# 安全的开发流SDL
SDL的全称是Security Development Lifecycle 安全开发生命周期。美国国家标准与技术研究所NIST估计,如果是在项目发布后在执行漏洞修复计划,其修复成本相当于在设计阶段执行修复的30倍。 微软的SDL过程大致分为16个阶段:
- 培训
- 安全要求
- 质量门/bug栏
- 安全和隐私风险评估
- 设计要求
- 减少攻击面
- 威胁建模
- 使用指定的工具
- 弃用不安全的函数
- 静态分析
- 动态程序分析
- 模糊测试 是一种专门形式的动态分析,它通过故意向应用程序引入不良格式或随机数据诱发程序故障。
- 威胁模型和攻击面评析
- 时间响应计划
- 最终安全评析 FSR是在发布之前仔细检查对软件执行的所有安全活动。
- 发布/存档
# SDL的实战经验
- 项目经理进行充分沟通,排除足够时间
- 规范公司的立项流程,确保所有项目都能通知安全团队,避免遗漏。
- 树立安全部门的权威,项目必须由安全部门审核完成后才能发布。
- 将技术方案写入开发、测试的工作手册中。
- 给工程师培训安全方案。
- 记录所有安全bug,记录程序员写安全的代码
# 需求分析与设计阶段
安全专家Lenny Zelter 给出一份checklist p410
# 开发阶段
- 提供安全的函数
- 代码安全审计工具,其核心思想并非直接检查代码是否安全,而是检查开发者是否遵守了开发规范。
- 测试阶段
在Github上编辑此页 (opens new window)
上次更新: 3/22/2021, 3:47:15 AM