软件开发流程规范,微软SDL流程框架图

现今社会存在各种网络安全事件,比如勒索病毒导致许多网络系统瘫痪,大量注册用户个人数据泄露导致企业面临破产,银行职员留后门为自己牟利。网络安全形势严峻,各个国家、政府、企业、医院、学校都积极投入到捍卫网络安全,保护公司资产,维护用户合法权益的保卫战当中,网络安全工程师成为新兴和稀缺岗位。


一、优秀软件安全开发流程

微软为了提升公司研发的操作系统和各类办公软件的安全,提出了SDL security development lifecycle(安全开发生命周期),即从安全角度指导软件开发过程的管理模式。SDL是一个安全保证的过程,重点是软件开发,它在开发的所有阶段都引入了安全和隐私的原则。



主要由以下7部分组成:

1、安全培训(training):提升团队安全意识,对齐安全要求

2、需求分析(requirements): 建立安全需求管理、安全质量标准、安全与隐私风险评估

3、系统设计(design): 制定设计规范、攻击面分析、威胁建模

4、实现(implementation):使用优选工具、消减危险函数、对代码进行静态安全检查

5、验证(verification): 动态安全测试、Fuzz测试、攻击面评审

6、发布(release): 制定安全应急响应计划、最终安全审计、发布归档

7、响应(response):执行安全应急响应计划

 根据微软的SDL流程框架,我们看出软件安全开发是软件开发的必然趋势,即必须要将安全纳入到传统软件开发流程的每个环节。


二、总结软件安全开发流程新增的安全活动

1.客户需求收集
  客户安全需求收集

2.需求分析与澄清
  分析客户安全需求,制定安全标准和要求,建立安全需求管理、安全与隐私风险评估


3.软件设计
  在特性设计中结合安全设计规范进行安全设计,对模块进行威胁建模和攻击面分析

4.软件编码
  4.1 安全编码:新代码使用安全函数,老代码替换危险函数,对代码进行安全检视;
  4.2 使用第三方开源工具或者库,需要使用最好的最新的

5.版本构建
  5.1满足安全编译选项的要求
  5.2选择安全的构建工具

6.软件测试
  6.1对安全设计进行分析与评审,输出安全测试用例
  6.2对软件暴露的接口进行Fuzz测试
  6.3对软件暴露的攻击面进行攻防渗透测试
  6.4对软件进行安全扫描与漏洞挖掘

7.客户质量验收
7.1提供验收的安全交付件,如安全设计说明书、安全测试报告
7.2提供测试环境给客户,让客户进行安全评估

8.发布与运维
8.1制定安全应急响应计划,并在实际运维中落地
8.2日常运维中做好安全巡检,遇到黑客攻击,及时告警,并快速修复安全漏洞

Copyright © 2019-2059 HuWeiDun.Cn All rights reserved.
软著登字第4248884号 冀ICP备19021017号