首页> 中国专利> 一种基于缺陷的软件安全性测试需求的获取与分级方法

一种基于缺陷的软件安全性测试需求的获取与分级方法

摘要

本发明公开了一种基于缺陷的软件安全性测试需求的获取与分级方法,首先根据软件类型确定用户的访问类型和风险等级,及第0层带有数据交互边界的数据流图,确定可能存在缺陷的交互路径及危险等级,再对等级高的进行数据流图分解,抽取第1层基于数据交互边界的数据流图,确定穿越数据交互边界的数据流信息可能存在的缺陷,以确定软件安全性测试需求,并根据PDDAR模型实现对测试需求的分级。本发明提供的方法,能够较准确、全面地获得软件安全性测试需求,较以往主要通过描述假想的异常场景,本发明克服了人为主观造成的软件安全性需求获取的遗漏,避免测试人员评定的主观性;且能够对其进行优先级确定,提高软件安全性测试的效率。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-05-23

    授权

    授权

  • 2011-03-23

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20101022

    实质审查的生效

  • 2011-02-09

    公开

    公开

说明书

技术领域

本发明涉及软件安全性测试,尤其涉及一种基于缺陷的软件安全性测试需求的获取与分级方法。

背景技术

软件安全性测试作为保证软件安全性的一种重要途径,对于为软件产品进行安全性评价具有重要的意义。根据国家的规划,软件测试技术将作为保证软件产品安全性的重要手段,力争使测试越早介入软件开发,从而提高软件抵御潜在风险的能力,降低软件的安全缺陷率。

软件安全性测试需求的获取是生成软件安全性测试用例进行实际测试的基础。目前在提取软件安全性需求方面主要采取的是安全性用例技术,通过描述假想的异常场景,进而人工分析提出可能存在的安全性缺陷。然而这种获取软件安全性测试需求的方法缺点是:

A.需要专业的软件安全性需求分析人员,并有从事软件安全性分析的大量经验;

B.获取软件安全性需求的人为主观性较大;

C.获取软件安全性需求时容易造成遗漏或重复;

D.不能对需求进行优先级确定。

软件安全性测试需求的准确、全面获取一直是软件测试技术所追求的目标之一,但这是一个极为复杂的问题,就目前的研究成果而言,离全面准确还存在相当大的距离。但其成功解决对提高软件质量,缩短软件测试时间都具有十分重要的理论意义和使用价值。

发明内容

发明目的:为了克服现有技术中存在的不足,本发明提供一种基于缺陷的软件安全性测试需求的获取方法,以安全性缺陷为基础,在对典型缺陷进行三维结构缺陷分类的基础上,根据基于数据交互边界的方法初步确定被测件中潜在的安全性缺陷及其位置,进而得到软件安全性测试需求,并对软件安全性缺陷进行优先级划分。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种基于缺陷的软件安全性测试需求的获取方法,包括如下步骤:

(1)确定软件所涉及数据的信息来源,对用户的访问类型进行分类;

(2)根据不同的访问类型确定用户风险等级;

(3)根据软件结构绘制第0层带有数据交互边界的数据流图;

(4)抽取出第0层数据流图中的数据交互路径列表;

(5)根据用户风险等级,确定可能存在缺陷的交互路径及其危险等级;

(6)对步骤(5)中确定的危险等级高的交互路径,对第0层基于数据交互边界的数据流图进行分解,抽取第1层基于数据交互边界的数据流图;

(7)对步骤(6)中得出的第1层基于数据交互边界的数据流图,基于典型软件安全性缺陷,确定穿越数据交互边界的数据流信息可能存在的缺陷;

(8)根据步骤(7)中确定的缺陷,确定软件安全性测试需求。

一种根据上述方法获得的软件安全性测试需求,采用PDDAR模型实现对测试需求的分级的方法,包括如下步骤:

(1)确定缺陷的普遍性/流行性属性PE等级,为广泛、高、普通或者有限:

所述普遍性/流行性(PE:Prevalence):也就是缺陷在当前同类软件中可能存在的可能性。可以分为广泛、高、普通和有限四个等级:

广泛:这种缺陷在实际项目中最为常见,限制这种类型的不超过四类;

高:这种缺陷经常会遇到,但是并不是最常见的;

普通:这种缺陷偶尔也会在实际中遇到;

有限:这种缺陷在实际项目中,很少或者几乎没有被发现过。

对于普遍性的度量我们采用交叉比较的方法:a相关漏洞在CWE漏洞数据库中的排名,b软件安全性缺陷相关威胁在OWASP威胁数据库中的排名,c软件安全性缺陷相关漏洞是否在Microsoft已发布的漏洞数据库中,d相应软件安全性缺陷在以往的测试过程中出现的次数(初始设为0)。

(2)确定缺陷的危害性属性DP等级,为关键、高、中等或者低:

所述危害性(DP:Damage Potential):如果软件安全性缺陷被非法执行,则会对软件系统或者用户的使用产生的破坏程度。可以分为关键、高、中等和低四个等级:

关键:这种缺陷的危害等级最高,所以应该立即进行修正,如果这种缺陷被非法利用,则会造成严重的破坏,在选择或者相互比较确定典型缺陷列表时,通常设定危害等级为关键的一般限制在四个以内;

高:这种缺陷的危害等级也是很高,但是相对于关键类型较低;

中等:这种缺陷也是一定要上报的,但是并不是非常紧要的;

低:种缺陷不一定需要上报,或者并不需要进行及时的修改。

(3)确定缺陷的可探测性属性DE等级,为容易、一般或者困难:

所述可探测性(DE:Detectable):软件中软件安全性缺陷可能被非法用户探测到的可能性,容易探测到,意味着缺陷容易被利用,容易产生攻击。可以分为容易、一般和困难三个等级:

容易:已存在自动化工具或者技术可以自动化探测缺陷,或者通过简单的操作就可以被发现;

一般:仅仅通过自动化工具或者成熟技术不能发现缺陷,软件安全性缺陷的探测可能需求对程序的逻辑结构有一定的了解;或者通过现有的攻击工具,只能在少数情况下发现缺陷;

困难:发现这种缺陷需要花费大量的时间、手工执行的方法,以及智能的半自动化工具的支持和专业的攻击技术。

(4)确定缺陷的影响用户级别属性AU等级,为管理员、多个普通用户特殊配置用户或者Guest用户:

所述影响用户级别(AU:Affected Users):软件安全性缺陷影响到用户的级别。可以分为管理员、多个普通用户、特殊配置用户(单个)和Guest用户四个等级:

管理员:缺陷被非法利用时,管理员以及大部分用户的正常使用受到影响甚至限制,系统处于瘫痪状态;

多个普通用户:缺陷一旦被利用,多种普通用户(如图书馆信息系统中除管理员外的VIP用户,一般学生会员,图书信息上载员,图书信息审核员等)的使用受到严重影响,但是系统管理员的基本使用功能可以正常进行;

特殊配置用户(单个):这种缺陷一旦被利用,则不会影响大多数类型的用户,往往只能影响到特殊类型用户。如图书馆信息系统中一般的学生会员的借阅,或者图书信息员的上载。这种缺陷和上一级的区别在于,这种缺陷被非法利用,只会影响到一种除管理员以外的任何用户的正常使用,而不会同时影响多个类型用户;

Guest用户:这种缺陷被非法用户利用,则只会影响到类似Guest用户的使用,或者匿名用户的使用。

(5)确定缺陷的可靠性属性RE等级,为危险、一般、受限或者低:

所述可靠性(RE:Reliability):软件安全性缺陷被非法用户利用后产生的结果的可预期性。可以分为危险、一般、受限和低四个等级:

危险:非法用户利用软件安全性缺陷使用相同的方法,多次执行相同的攻击用例,可以产生相同的结果,这种缺陷对于软件系统来说,一旦被非法用户发现,就容易多次重复攻击;

一般:相对于上一级,这种缺陷被非法用户发现后,如果非法用户需要重复攻击行为,需要重新对攻击场景进行一定的修改;

受限:这种缺陷被非法用户发现后,如果非法用户需要重复攻击行为,则需要一定的辅助攻击手段或其他资源;

低:对于这种缺陷,测试人员基本可以忽略,因为就算非法用户曾经利用这种缺陷对软件系统进行了攻击,但是缺陷被重复利用的可能性极低,甚至只是理论上。

(6)对步骤(1)、(2)、(3)、(4)和(5)确定的等级,按照表1设定缺陷不同属性的权值W=(WPE,WDP,WDE,WAU,WRE):

表1

现有的DREAD模型和CWE/SANS年度报告中提出的属性对软件安全性缺陷并不是完全适用,针对软件安全性缺陷特点,我们按照上述的方法提取了五种软件安全性缺陷属性;这种分级模型考虑到的影响因素都是定性因素,只能对缺陷进行定性判断,为了定量分析优先级,得到软件安全性缺陷优先级影响因素度量表,制作上述表1,分别设定相应的定量权值为4、3、2、1。

(7)确定步骤(1)、(2)、(3)、(4)和(5)中,对每种属性的影响因素,并设定各影响因素的权值,确定影响因素集F:

F=PEDPDEAURE;

(8)根据PRIi=W·F  i=1,2,......

即:PRIi=WDPPEi+WOPDPi+WRPDEi+WAUAUi+WREREi计算第i个软件安全性测试需求的安全性缺陷优先级PRI,其中,i表示软件安全性缺陷的编号。

(9)比较各个安全性缺陷优先级PRI,计算数值越高的安全性测试需求等级越高。

有益效果:本发明提供的一种基于缺陷的软件安全性测试需求的获取方法,能够较为准确、全面地获得软件安全性测试需求,相比较以往主要通过描述假想的异常场景,进而人工分析提出可能存在的安全性缺陷的方式,本发明克服了人为主观造成的软件安全性需求获取的遗漏或错误,避免测试人员依据大量测试经验进行软件测试评定的主观性;并且在获取软件安全性需求的同时也能够对其进行优先级确定,提高软件安全性测试的效率和准确性。

附图说明

图1为本发明的流程图;

图2为软件系统第0层带有数据交互边界的数据流图;

图3为登录过程的第1层基于数据交互边界的数据流图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

本例基于软件安全漏洞机构提供的漏洞数据库和威胁数据库,抽取如表2所示的11个典型安全性缺陷,并以此进行相关分析。

表2

  符号  典型安全性缺陷  D1  缓冲区溢出缺陷  D2  整数溢出缺陷  D3  格式化字符串缺陷

  D4  竞争条件缺陷  D5  随机数缺陷  D6  元字符缺陷  D7  自动创建变量缺陷  D8  异常错误处理缺陷  D9  命令注入缺陷  D10  鉴别与授权混淆缺陷  D11  访问控制缺陷

一种基于缺陷的软件安全性测试需求的获取方法,其过程如图1所示,包括如下步骤:

(1)确定软件所涉及数据的信息来源,对用户的访问类型进行分类。

根据用户的来源,首先可以将其分为远程用户和本地用户两类。通常远程用户具有不可控性,所以认为其对系统进行非法操作的风险大于本地用户。而根据用户对系统进行操作的能力又可以对用户类型进行分类。

远程用户中对软件系统威胁最大的是匿名用户,这种用户对系统进行可能的危险操作可能造成的影响是无法估计的;其次经过身份鉴别的远程用户,如果这类用户可以进行文件管理,如增加、删除、修改等操作,则这类用户对系统进行非法操作的可能性以及对系统产生危害的可能性也是非常大的。所以这类用户访问的风险等级仅次于匿名用户;如果这类用户不具有文件操作能力,则对系统可能造成的危害程度就相对较低。

本地用户又可以分为两类:具有执行权限的用户和管理用户。前一种类型的用户对系统的访问可能造成的危害高于后一种,因为通常管理员用户都是最为可信的用户类型,这类用户通常经过一定的系统培训,对软件非常了解,所以这类用户是最为可信的一类用户,其风险等级也最低。

(2)根据不同的访问类型确定用户风险等级。

基于上述步骤(1)的解释分析,给出如表3所示的一种用户访问类型分类的风险等级示例,并按照从高风险到低风险的顺序进行了风险等级划分。

表3

(3)根据软件结构绘制第0层带有数据交互边界的数据流图。

通常的基于B/S模式的软件系统都存在典型的验证身份信息/身份鉴别、账号管理数据管理等进程,绘制如图2所示的第0层带有数据交互边界的数据流图。

(4)抽取出第0层数据流图中的数据交互路径列表。

根据图2可以得到数据流交互路径列表,如表4所示。

表4

(5)根据用户风险等级,确定可能存在缺陷的交互路径及其危险等级。根据表3和表4,确定用户类型与可能存在的缺陷的交互路径对应类表如表5所示。根据访问用户的类型同时可以确定交互路径的危险等级。在后续的分析过程中,就应该先对危险等级高的交互路径进行分析,因为这里如果存在安全性缺陷的话,产生的风险最高。

表5

(6)对步骤(5)中确定的危险等级高的交互路径,对第0层基于数据交互边界的数据流图进行分解,抽取第1层基于数据交互边界的数据流图。

第1层数据流图主要显示上层流图中每个进程的内部数据流向。对图2所示的软件第0层带有数据交互边界的数据流图进行分解,其中用户登录过程分解后的带有数据交互边界的数据流图如图3所示。

(7)对步骤(6)中得出的第1层基于数据交互边界的数据流图,基于典型软件安全性缺陷,确定穿越数据交互边界的数据流信息可能存在的缺陷。

根据表6所示给出的典型数据流与可能存在的缺陷对照表,由穿越数据交互边界的数据流信息得到该Web应用系统用户登录过程中可能存在的安全性缺陷,如表7所示。

表6

对于当前阶段的11个典型缺陷,其中【D2】整数溢出缺陷、【D4】竞争条件缺陷、【D7】自动创建变量缺陷并没有被覆盖,因为这三个缺陷大多存在于进程内部交互中,而不能通过交互边界的方法确定。

表7

(8)根据步骤(7)中确定的缺陷,确定软件安全性测试需求。

由步骤(7)得到的潜在缺陷即可确认Web应用系统用户登录过程测试的安全性需求。

(9)采用PDDAR模型对测试需求进行分级。

以本例给出的Web应用系统用户登录过程中可能存在的软件安全性缺陷列表为例,根据表1给出软件安全性缺陷的优先级影响因素度量如表8所示。

表8

  D5  D6  D8  D9  D10  D11  PE  1  2  2  4  3  1  DP  1  3  2  4  4  3  DE  1  2  2  3  3  1  AU  4  4  3  2  3  2  RE  4  1  2  3  2  3

假设各种属性权值相同,即假设软件安全性缺陷影响因素集为:W=(1,1,1,1,1);则软件安全性缺陷对应的优先级为:

PRI5=PE5+DP5+DE5+AU5+RE5=11

同理可得:PRI6=12,PRI8=11,PRI9=16,PRI10=15,PRI11=10,即得到了软件安全性缺陷的优先级。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号