软件开发安全

软件开发安全

软件安全开发生命周期

软件生命周期模型

软件的定义
软件是与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据

软件生命周期模型
瀑布模型
迭代模型
增量模型
快速原型模型
螺旋模型
净室模型

软件生命周期模型-瀑布模型

最早出现的软件开发模型
核心思想
按工序将问题简化
将功能的实现与设计分开
不足
没有对开发周期后期发现错误做出相应的规定
突出特点:不支持用户参与,要求预先确定需求
适合场景:需求易于完善定义且不易变更的软件系统
在这里插入图片描述

软件生命周期模型-迭代模型

瀑布模型的小型化应用
完整的工作流程
降低风险
增加开支的风险
产品无法按期进入市场的风险
加快开发进度
任务清晰
需求更容易随需而变
突出特点:逐步获取用户需求、完善软件产品的过程
适合场景:需求难以确定、不断变更的软件系统
在这里插入图片描述

软件生命周期模型-增量模型

融合了瀑布模型和迭代模型的特征
本质上是迭代,每个增量发布一个可操作产品
突出特点:软件产品是被增量式地一块块开发的,允许开发活动并行和重叠
适合场景:技术风险较大,用户需求较为稳定的软件系统

在这里插入图片描述

软件生命周期模型-快速原型模型

快速原型模型又称原型模型,它是增量模型的另一种形式
快速原型模型是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作
突出特点:不要求需求预先完备定义,支持用户参与,支持需求的渐进式完善和确认
适合场景:需求复杂、难以确定、动态变化的软件系统

软件生命周期模型-螺旋模型

兼顾快速原型的迭代的特征以及瀑布模型的系统化与严格监控
引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失
构建原型是螺旋模型用以减小风险的途径
突出特点:引入了其他模型不具备的风险分析
适合场景:需求难以获取和确定、软件开发风险较大的软件系统(比如大型的、昂贵的系统级软件应用)

在这里插入图片描述

软件生命周期模型-净室模型

净室是一种应用数学与统计学理论以经济的方式生产高质量软件的工程技术。力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷
突出特点:严格的工程化预防缺陷的产生
适合场景:质量要求非常高的项目(比如航天系统、洲际导弹系统)

软件安全重要性–软件危机

第一次“软件危机”- 20世纪60年代
根源:日益庞大和复杂的程序对开发管理的要求越来越高
解决:软件工程

第二次“软件危机”- 20世纪80年代
根源:软件规模继续扩大,程序数百万行,数百人同时开发,可维护性难
解决:面向对象语言-C++/java/c#

第三次“软件危机”- 21世纪头十年
根源:软件安全
解决:软件安全开发生命周期管理

软件缺陷普遍存在

软件安全问题产生-内因

软件规模增大,功能越来越多,越来越复杂
软件模块复用,导致安全漏洞延续
软件扩展模块带来的安全问题

软件安全问题产生-外因

互联网发展对软件安全的挑战

开发环境和开发人员对软件安全的挑战
开发者缺乏安全开发的动机
• 市场和业务要求将交付期和软件功能做主要因素
• 用户方没有提供安全方面的压力
开发者缺乏相关知识
• 软件复杂性加大,开发者需要学习更多东西
• 传统软件开发不进行安全教育
缺乏安全开发工具
• 缺乏安全开发配套管理、测试等工具

软件安全保障

贯彻风险管理的思想
安全不必是完美无缺的,但风险必须是可管理的
树立对软件安全控制的信心,该信心是通过保障活动来获取的
通过在软件开发生命周期各阶段采取必要的、相适应的安全措施来避免绝大多数的安全漏洞

采取措施只能有效减少,但并不能完全杜绝所有的安全漏洞!

软件安全开发生命周期

软件安全开发覆盖软件整个生命周期
需求分析阶段考虑软件的安全需求
在设计阶段设计符合安全准则的功能
编码阶段保证开发的代码符合安全编码规范
安全测试和运行维护确保安全需求、安全设计、安全编码各个环节得以正确有效的实施

在软件的各个阶段引入安全措施!

软件安全问题越早解决成本越低

在软件开发生命周期中,后面的阶段改正错误开销比前面的阶段要高出数倍
NIST:在软件发布以后进行修复的代价是在软件设计和编码阶段即进行修复所花代价的30倍
在这里插入图片描述

相关模型和研究

安全软件开发生命周期
安全设计原则
安全开发方法
最佳实践
安全专家经验
多种模型被提出和研究
可信计算安全开发生命周期(微软)
CLASP(OWASP)综合的轻量应用安全过程
BSI系列模

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值