软件的安全开发模型

一、软件开发模型

1、软件生命周期

如正常事务的诞生一样,软件也有其孕育、诞生、成长、成熟和消亡的阶段,一般称其过程为软件生命周期。
通常情况下,概括的说,软件生命周期由定义、开发和维护三个时期组成,灭一个阶段又可以划分为若干阶段。
软件定义时期:
定义时期通常是确定软件开发过程中必完成的总目标,确定工程的可行性,估计需要的资源,制定标准以及策略。主要分为问题定义、可行性研究和需求分析。
软件开发时期:
通常由四个阶段组成,包括总体设计、详细设计、编码和单元测试,以及综合测试。
软件维护时期
该时期的任务是使软件能持久性的满足用户的需求,对软件使用过程中的错误加以修正,并及时改变以适应新的环境。

2、软件工程与开发模型

基本概念:
软件开发模型是跨越整个软件生命周期的洗头系统开发、运行和维护所实施的全部工作任务的结构框架,它给出了软件开发活动阶段的关系。
软件开发模型能清晰、直观的表达软件开发全过程,明确了主要活动和任务,是软件开发的基础。以下是几个典型的软件开发模型:

  • 瀑布模型:其特点是开发呈线性,需要在需求分析阶段确定全部需求,几乎不可能完成;开发结果未经测试时,用户无法看到软件效果;开发前期的错误未经发现传到后续阶段容易造成扩散而导致项目失败。
  • 增量模型:把软件系统模块化,分批次、分模块进行分析设计、编码与测试。将每个模块作为一个增量,软件开发过程呈递增式的过程。
  • 快速原型模型:构建一个在计算机上的原型系统,让用户试用并返回意见之后再进行开发。
  • 螺旋模型:基本做法是把项目分解成一个个的小项目,再每个小项目开始之前引入非常严格的风险识别、风险分析和风险控制,在开发前及确定相关风险因素。
  • 喷泉模型:典型的面向对象的开发模型,一用户需求为驱动力,一对象来描述开发过程。
  • Rational统一过程:采用迭代和就按车的方式来开发软件,整个过程由多个迭代组成。
  • 极限编程和敏捷开发:一种近螺旋式的开发模型,将开发过程分为一个个小周期,通过与客户交流的方法清晰的掌握项目的进度和问题。
  • 微软过程:多年时间证明的成功并且有效的开发模型。共分为五个阶段的(规划阶段、设计阶段、开发阶段、稳定阶段和发布阶段),每个阶段由溢出迭代完成。

二、软件安全开发模型

1、微软的安全开发生命周期模型(SDL)

该安全模型由2002年提出,原名为可信计算安全开发生命周期模型。是由软件工程和瀑布模型发展来,在瀑布模型的各个阶段添加了安全活动和业务活动目标。一共包含了七个阶段:

  • 安全培训:包括安全设计培训、威胁建模培训、安全编码培训、隐私保护培训等。
  • 需求分析:主要包括确定安全需求,创订质量门/缺陷等级、安全隐患和风险评估。
  • 安全设计:包括确定设计要求、减少攻击面、威胁建模
  • 安全实施:主要内容是使用批准的工具、弃用不安全的函数、静态代码分析
  • 安全验证:主要内容是动态程序分析、模糊测试、威胁模型与攻击面评析
  • 安全发布:主要内容是制定事件响应计划、最终的安全审核以及最后的发布/存档。
  • 安全响应:在响应阶段,响应安全事件与漏洞报告,实施漏洞修复和应急响应。同时发现新的问题与安全问题模式,最终将其用户持续优化SDL流程。

2、McGraw 的内建安全模型(BSI)

该模型由Mcgraw博士于2006年在SDL基础之上,聚焦于软件开发生命周期的每一个阶段进行风险,提出了BSI内建安全模型。
在这里插入图片描述

模型主要内容: 以风险管理、软件安全接触点和安全知识作为软件安全的三根支柱。

  • 风险管理:一种贯穿整个开发生命周期的指导性方针。
  • 软件安全接触点:通过灭个阶段的一些安全接触点来保证软件开发的安全性,从而从整体上保证软件安全。
  • 安全知识:强调对专业的安全知识和经验进行汇总,对软件开发人员进行培训,并通过实际接触点保障其运行到项目开发中。

3、NIST安全开发生命周期模型

思想与特点:
其特点主要体现在两个方面:

  1. 明确提出了软件安全控制的经济性问题。基于风险管理的系统或开发项目,将安全因素集成到系统开发各个阶段,包括规划、采购、开发和部署。
  2. 明确提出了软件开发控制门的概念。

模型主要内容:

  • 供应链和软件保障
  • 面就像服务的结构
  • 安全模型重用的具体认可机制
  • 交叉组织解决方案
  • 技术升级与迁移
  • 数据中兴及IT设备开发
  • 虚拟化

4、OWASP的轻量级应用安全过程(CLASP)

综合的轻量应用安全过程(Comprehensive Lightweight Application Security Process,CLASP) 最初由安全软件公司(Secure Software,Inc.) 提出,后来由OWASP完善、维护并推广,该模型由一系列安全活动驱动。
该方案指定了软件开发不同阶段的安全活动需要指派不同的角色负责和参与。这些角色分别包括:项目经理、需求专家、软件架构师、设计者、实施人员、集成和编译人员、测试者和测试分析师、安全审计员。对于每一个角色的安全活动,CLASP都对以下问题进行了描述:安全活动应该在什么时间实施、如何实施;如果不进行这项安全活动,将会带来多大的风险;如果实施这项安全活动,估计需要多少成本。

Guess you like

Origin blog.csdn.net/qq_45590334/article/details/111947671