软件安全开发 - 流程规范

  写一篇软件安全开发流程分享给大家,帮助从事软件开发,测试,管理的人员,规范操作,重视软件工程安全。

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

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

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

以下是微软SDL流程框架图:

软件安全开发 - 流程规范_第1张图片

其主要由以下7部分组成:

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

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

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

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

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

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

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

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

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

传统软件开发流程

软件安全开发流程新增项

客户需求收集

客户安全需求收集

需求分析与澄清

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

 

软件设计

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

软件编码

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

版本构建

  1. 满足安全编译选项的要求
  2. 选择安全的构建工具

软件测试

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

客户质量验收

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

发布与运维

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

 

 


 

你可能感兴趣的:(白客工作室,软件安全,软件安全开发,安全测试)