资源描述:
《软件安全性保障框架研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、软件安全性保障框架研究近几年互联X的大量普及,软件安全问题开始愈加突显。因为互联X上的病毒和攻击者引起的身份窃取、数据丢失以及一般性的混乱事件已经随处可见。单单2008年第一季度,就有1474个不同的软件脆弱点报告上来,只有64个发布了相应的解决方案。也就是说解决率大约只有4%[1]。应用软件安全将成为信息系统安全的下一个热点。软件安全一般分为应用程序级别的安全性和操作系统级别的安全性。应用程序级别的安全性,包括对数据或业务功能的访问,在预期的安全性情况下,操只能访问应用程序的特定功能、有限的数据等。操作系统级别的安全性是确保只有具备系统平台访问权限的用户才能访
2、问,包括对系统的登录或远程访问。[2]1基于软件工程的软件安全性保障框架1.1传统开发方法在安全方面的不足在传统面向对象项目开发过程中,在安全性方面存在以下不足[3]:1)设计阶段,由于以类为单位组织建模,因此它不能全面地反映软件系统的安全需求。2)编码阶段,将数据和方法封装到类中的思想增强了数据的安全性和软件的模块化,但是有一些数据和方法是特定于应用的,对于系统安全方面的考虑比较少。3)维护阶段,一般是系统在使用过程中发现了漏洞再去修补,不仅效率低而且工作量大。2.2基于软件工程原理的软件安全性保障框架本文依据系统安全工程的原理,将软件安全引入到软件开发生命周
3、期之中。为了开发出安全的应用软件,提出一个软件安全性保障框架,将软件安全保障实施到软件开发的各个模块当中。该框架具体分为:软件安全需求分析、软件安全设计与编码、软件安全检测与评估、漏洞响应和维护阶段。首先分析软件开发中可能出现的安全问题,了解项目的安全需求,之后再要保证程序设计和编码过程中的安全性,开发完成后对软件进行安全性检测和评估,最后进行产品的维护,对产品中存在的漏洞问题进行响应和处理。2.2.1软件安全需求分析软件安全分析开始于项目开发初期并贯穿于整个系统生命周期的始终。在完成项目需求分析的同时,也要建立安全需求。在这个阶段主要完成两个任务:1)软件需求
4、危险分析计划制定在系统需求分析阶段,首先建立软件安全需求定义,确保软件安全需求定义的正确性,然后制定一个危险分析计划。2)写出初步的软件安全需求文档安全分析的结果应写成软件安全需求文档,应用到软件需求文档、软件设计文档、软件测试计划、软件维护计划中去。2.2.2软件安全设计和编码阶段安全从设计开始。设计阶段如果出了安全问题,那下一步的测试维护工作会更加困难而又低效。这个阶段主要有三个任务:1)进行软件设计危险分析明确在设计阶段有哪些安全方面的目标需要达到,识别软件可能会遇到的攻击和一些安全隐患,划出安全边界、哪些数据是比较可信的、哪些输入接口较易成为攻击目标、列
5、出潜在的攻击方式等,确保设计的完整性和正确性。2)软件安全设计进行安全分析之后,还必须进行软件安全设计。设计时要注意尽量降低危险发生率,对可能发生危险的地方要提供警告,危险发生后采取有效措施进行控制,同时还要注意所额外增加的复杂度。3)基于编码的软件安全分析在软件代码编写阶段,也要注意编码过程中是否会引入新的危险,因为编码人员可能会不小心使用一个不安全的函数。除了要求编码人员提高程序质量之外,还可以使用第三方的安全编译来提高编码阶段的安全水平。2.2.3软件安全检测与评估阶段软件安全性测试是软件安全开发生命周期不可缺少的一个组成部分,测试中的投入要远远小于项目完
6、成后再进行的漏洞修补和安全维护。安全性测试和普通的功能性测试的测试目的是不同的。软件安全测试的目的是确保软件不会去完成没有预先设计的功能,而且所有预料到的危险已经被消除或减轻。如代码运行过程中系统是不是处于安全的状态,系统运行风险是否可以接受,操作人员的失误包括极端环境在内的各种异常和故障是否被妥当控制,尽可能找到软件中的所有漏洞,减少软件遭到攻击的可能性。软件的安全检测通常包括一下几个方面:静态检测、动态检测、文档检查、出错处理和异常情况检测。1)动态检测选择合适的测试用例,实际执行待测程序,通过分析程序运行时的内存、变量、内部寄存器等中间结果来检测程序运行时
7、的正确性。2)静态检测静态检测是在程序没有运行的情况下,静态分析程序的数据流和控制流,然后给出相应的测试分析报告。3)检查文档检查需求说明书、概要设计说明书、详细设计说明书中是否有对安全性的设计和描述,对安全性的描述是否和需求一致,还有用户文档是否有安全性注意事项等。4)出错处理和异常情况检测保证各种出错和异常情况都被处理,提示给用户的出错信息不会涉及到程序设计的细节,而且软件的异常情况不能导致程序进入不可知的危险情况。2.4.4漏洞响应和维护阶段即使我们在需求分析,软件设计,代码编写,以及软件测试过程中都加入了安全因素的考虑,最终的软件产品还是可能会存在漏洞,
8、所以漏洞响应和维护是很重