软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架,是从软件项目需求定义直至软件使用后废弃为止,包括整个软件生命周期的运作和维护所实施的全部过程、活动和任务。它为软件项目的管理提供里程碑和进度表,为软件开发提供原则和方法。
几种典型软件开发模型
典型软件开发模型包括瀑布模型、快速原型模型和螺旋模型。瀑布模型中所有阶段顺序执行且相邻阶段之间存在因果关系,适用于软件需求可以完全确定的项目;快速原型模型将很少的时间用于需求确认,快速开发出一个原型系统,并随着需求的动态变化调整系统,适用于需求动态变化,事先难以确定的项目;螺旋模型支持风险分析,可降低或者消除软件开发风险,适用于需求动态变化,事先难以确定并且开发风险较大的项目。
什么是软件安全开发生命周期(SDL)
软件安全开发生命周期(SDL)是微软提出的从安全角度指导软件开发过程的管理模式。
传统的软件开发模型主要围绕产品功能,没有安全方面的考虑,无法开发出安全的软件。SDL定义了一组必需的安全活动,按传统软件生命周期的各阶段分组,通过在软件生命周期的每个阶段执行必要的安全活动,强调在软 件的开发和部署过程中对安全给予充分的关注,帮助软件设计和开发人员从安全的角度分析项目。
SDL还提供了一个把安全活动融合到软件生命周期的所有阶段的框架:从软件开始设计、研发到运维、废弃,每一阶段都包括一组最简化的安全步骤,有效地在软件开发过程中将安全与系统融合。
什么是威胁建模
威胁建模是在软件安全开发生命周期的安全设计阶段使用的一种以结构化的方式来标识、定位和定量威胁的分析方法,帮助软件设计人员及时发现和防止安全缺陷,避免在软件设计和开发的后期进行成本高昂的补救。
与传统的风险分析和渗透测试等威胁分析方法相比,威胁建模在软件生命周期需求设计阶段就介入进行全面的威胁分析,使得安全防护成本更低,并且具有最大的灵活性。
威胁建模主要步骤
威胁建模方法一般分为六个步骤:创建应用程序或系统的概图、分解应用程序或系统、确定资产、确定威胁、评估攻击路径和威胁、选择缓和方法与技术。通过迭代这一系列活动,软件设计人员能够确定并分析应用程序或系统所面临的主要威胁。