“ 写一篇软件安全开发流程分享给大家,帮助从事软件开发,测试,管理的人员,规范操作,重视软件工程安全。”
现今 会存在各种 络安全事件,比如勒索病毒导致许多 络系统瘫痪,大量注册用户个人数据泄露导致企业面临破产,银行职员留后门为自己牟利。 络安全形势严峻,各个国家、政府、企业、医院、学校都积极投入到捍卫 络安全,保护公司资产,维护用户合法权益的保卫战当中, 络安全工程师成为新兴和稀缺岗位。
一、优秀软件安全开发流程
微软为了提升公司研发的操作系统和各类办公软件的安全,提出了SDL security development lifecycle(安全开发生命周期),即从安全角度指导软件开发过程的管理模式。SDL是一个安全保证的过程,重点是软件开发,它在开发的所有阶段都引入了安全和隐私的原则。
以下是微软SDL流程框架图:
其主要由以下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、日常运维中做好安全巡检,遇到黑客攻击,及时告警,并快速修复安全漏洞 |
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!