background image

软件安全性测试技术探析

    摘 要 随着网络技术的发达以及计算机技术的使用,软件的普及率越来越高,其复杂程度
以及具备的规模也不断提高,软件中的漏洞以及安全性的缺乏给人们造成的损失也不断增
加,软件安全性问题突出已经引起了全社会的关注。而软件的安全性测试技术正是为了弥补
软件运用中所存在的这一缺陷而诞生的。软件安全性测试是降低软件运用风险,保证软件使
用安全性的重要手段,通晓软件安全性测试技术,将使我们更好、更全面地了解日常使用的
软件,以及学会如果更好地规避软件使用中的风险。本文将重点关注软件安全性的测试技术,
并从软件安全性测试的特点、分类,主要的测试方法和安全性测试工具分类与功能这三个方
面进行相关的论述与探析。

 

  关键词

 软件;安全性;测试技术 

  软件的安全性主要包括软件的失效安全性以及保密安全性。失效安全性是指软件在不间
断运行中,不发生系统事故的能力。其包括:因安全性失效可能造成单位的财产与人员损失、
环境污染等重大安全事故。而保密安全性是指软件所具有的可以防止对数据和程序进行非法
存取的预防能力。在我国,相关的软件技术人员更多的是侧重于软件的失效安全性。建立在
可靠性理论基础上的失效安全性主要度量标准有软件事故率、失效度、安全度以及平均事故
间隔时间。目前常有的测试方法有基于最小割集的测试、故障树的测试、

ISO9126 质量模型、

基于模型的测试、基于属性的测试等。

 

  

1 软件安全性测试的特点和分类 

  软件安全性测试是通过测试手段,来确定软件的安全性是否与预期结果保持一致的过
程。软件安全性的测试,是区别与其它软件的测试类型,它具有自身的特殊性、安全性,相
关缺陷也与一般软件缺陷相区别的特点。软件的安全性测试主要包括验证,渗透测试,安全
功能测试的过程。与其他传统测试软件相比,软件的安全性测试最大不同之处:软件安全性
测试强调软件

“不应该做什么”,而不是“应该做什么”,比如软件缺陷所产生的影响甚微,

但难以发现的软件漏洞可能是致命错误,能让客户蒙受重大损失。软件安全性测试的这种不
同,正是由其特殊性、安全性所决定的。相比软件中的非安全性测试,安全性测试更强调的
是软件的否定需求,比如用户在使用该软件的时候,如果登陆三次失败就锁定账号。相比非
安全性测试中的违反常规,安全性测试的缺点是由软件的副作用引起的。比如,在非安全性
测试缺陷下,本来软件应该做

G 的,但它却做了 F;而在安全性测试缺陷下,本来软件应

该做

G 的,但是它在做完 G 的同时也顺带完成了 F。 

  软件的安全测试主要包括:安全漏洞的测试与安全功能的测试。所谓软件的安全漏洞指
软件系统在设计、使用等方面,存在可被利用的漏洞。当不法分子发现或者利用这些软件漏
洞时,软件便处于不安全的状态。所以,利用软件的安全漏洞测试才能发现并识别软件中的
这些漏洞,并及时加以修补。而所谓的安全功能需求包括数据的机密性,完整性以及可靠性,
不可否认性,还包括身份认证,访问设置,跟踪追查,安全管理,隐私保护等。而基于软件
的安全功能需求的安全功能测试,就是用来测试该软件是否具备与预期相一致的功能的。

 

  

2 软件安全性测试主要方法 

  

2.1 基于故障注入的安全性测试 

  故障注入的软件安全性测试,就是指通过构造各类协议数据包来植入故障,以测试目
标软件是否能正确处理这些预置故障。该测试方法是

Wenling Du 建立的一种软件与环境交