一种基于建模技术的软件安全性测试方法技术

技术编号:5147730 阅读:349 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于建模技术的软件安全性测试方法,通过将软件安全性缺陷测试行为需求和软件安全性功能测试行为需求转化为形式化软件安全性测试行为需求模型,并基于获得的模型生成有穷状态机特征序列生成安全性测试用例;同时,能够对于获得的安全性测试用例提取安全性缺陷,补充完善安全性缺陷库。本发明专利技术提供的方法,解决了现行标准和工程体系中安全性测试需求提取难题,保证软件安全性测试需求的覆盖率和有效性。同时,提供了从安全性测试需求提取,需求形式化描述到测试用例自动生成的测试过程系统,形成一套完成的软件安全测试方法体系和支撑系统,在提高其针对性的同时,缩短软件安全性测试周期,有助于提高软件安全性质量。

【技术实现步骤摘要】

本专利技术涉及软件安全性测试技术,尤其涉及一种基于缺陷建模技术软件安全性测 试方法。
技术介绍
随着计算机技术的发展,软件产品在越来越多的领域得到了应用,为人们的生活 带来了极大的便利,也正在改变着人们的工作和生活方式,对人类政治、经济、军事、文化和 科技的发展都产生了深远的影响。在软件水平快速发展的同时,随着面向对象、构件软件、 分布式软件等新技术的兴起,软件的安全性也变得日益严重,并成为制约软件技术发展与 应用的一个重要因素。据美国计算机危机应急小组处理中心CERT/CC(Computer Emergency Readiness Team Coordination Center)统计报道,从1998年到2009年,软件安全性危 机事件增长了 4724%,平均每年增长394%,且近年来一直居高不下。随之而来的是软件 安全性问题造成的损失非常巨大,根据美国国家标准协会NIST(Nati0nal Institue of Standards)统计,2002年用于维护存在安全隐患软件的费用就达595亿美元,同时NIST还 发现,其中92%的安全性缺陷是由于软件自身的缺陷,而非网络等外围设备的缺陷所至。目前,我国软件信息安全水平被排在最不发达的第四类国家之列。特别是国内计 算机使用的软件产品都是引入或者基于国外软件;社会各个领域的大型基础软件,如操作 系统,办公软件等基础软件都是依赖国外公司,这就对软件产品应用的安全性提出了严峻 的考验。所以对我国而言,软件安全已成为影响国家大局和长远利益的关键问题;提高软件 安全水平、保障软件系统甚至整个计算机系统的安全是一项刻不容缓的重要课题。软件测试作为保证软件安全性的一种重要途径,对于为软件产品进行安全性评价 具有重要的意义。根据国家的规划,软件测试技术将作为保证软件产品安全性的重要手段, 力争使测试越早介入软件开发,从而提高软件抵御潜在风险的能力,降低软件的安全缺陷 率。国家高技术研究发展计划(863计划)2008年正式将软件安全性测试与评估技术作为 重点研究发展方向。国外在软件安全性测试方面的研究也取得了一定的成果。当前软件安 全性测试领域内存在的主要问题一、现行测试标准的可行性不高。目前国内在软件安全性研究领域中,主要参照标准为《计算机信息系统安全保护 等级划分准则》(GB17859-1999)和《信息技术安全性评估准则》(GB18336-2001)。这些标 准主要针对安全性评估,缺少对测试活动的规定。在软件安全性测试方面,军内相继颁布 了两种测试指南。《军用软件安全性分析指南》和《军用软件测试指南》中都对软件安全性 测试进行了相应的规定和说明。通过对其进行分析,可以看出现行的两种标准中存在以下 问题首先,将软件安全性测试(Software Security Test)和软件防危性测试(Software Safety Test)混合在一起实施;这样会误导软件测试需求分析人员将两种测试同时进行, 这样对后续的测试工作产生根本的错误指导;其次,这种概要性测试规则在实际的测试项 目中,还需要结合被测件进行相应的细化和分解,而两种指南都缺少一种分解方法或规则,但往往细化和分解工作会决定软件安全性测试的实施;最后,随着新的软件技术的出现,这 些软件安全性测试规则不全面性就越发突出,所以必须对其进行定期的扩展和更新。在国际标准方面,IS0/IEC 21827 2008, Information technology-Security techniques-Systems Security Engineering-Capability Maturity Model (SSE-CMM) 针对整个信息系统安全性需求的过程,规定了一种能力成熟度模型,从而规范了整个 安全性工程过程。但是,这个标准只是规定了系统安全性工程中的重要活动,并没有 针对具体测试活动开展的过程描述,在此标准中没有对安全性测试过程进行具体的规 范。 而 IS0/IEC24759 :2008, Information technology-Security techniques-Test requirements forcryptographic modules针对加密模块的测试需求应该采用的方法进 行了规范,可以指导特定领域软件的安全性测试需求的获取。IS0/IEC TR19791 :2010, Informationtechnology-Security techniques-Security assessment of operational systems针对操作系统的安全性评估过程进行了规定,对评估中采用的工具,评估的阶段以 及配置管理过程进行了规范。综上所述,虽然这些标准中或多或少都涉及到了测试活动,但是对于测试过程中 活动的具体实施缺少详细描述,难以指导实际的测试活动。二、安全性测试需求的不明确。在软件测试需求分析中,通常存在以下问题首先,由于测试需求分析人员通常缺 少专业的安全分析知识和敏锐的安全意识,所以造成安全性测试需求通常与软件功能测试 需求混淆;其次,测试需求分析人员即使能够考虑到软件安全性测试需求,但是由于缺少有 效的方法指导,通常也只是机械的将系统级测试需求转化为软件安全性系统级测试需求。 这种测试需求通常比较宽泛,难以指导实际的安全性测试的开展。三、缺少可行的软件安全性测试过程模型。软件安全性测试相对于功能性测试还处于一个研究阶段,根据现有的研究基础, 还没有发现国际上针对软件安全性测试过程的标准。而在国内,《军用软件安全性分析指 南》和《军用软件测试指南》虽然对软件安全性测试的进行了规范,但是还没有形成一个能 够应用于第三方软件测评中心实施的软件安全性测试过程模型。而实际的测试中,特别是 军用、通信等安全关键软件的测试活动中却迫切需要进行针对性地测试。
技术实现思路
专利技术目的为了克服现有技术中存在的不足,本专利技术提供一种基于软件安全性功 能需求与安全性缺陷建模技术的软件安全性测试方法,以解决软件安全性测试需求的获 取、描述、形式化表示以及有效测试用例的自动生成问题,该方法可用于有效指导软件安全 性的测试。技术方案为实现上述目的,本专利技术采用的技术方案为,所述安全性测试方法包括如下步骤(a)基于CWE、CERT、CVE和OWASP软件漏洞数据库,确定当前阶段软件安全性典型 缺陷集;(b)软件数据流分类描述;(c)建立通过步骤(a)获取的软件安全性典型缺陷与通过步骤(b)获取的软件数据流分类描述预对应表;(d)基于被测件数据流图,根据步骤(C)获取的软件安全性典型缺陷与数据流预 对应表,初步获取软件安全性缺陷测试需求;(e)实现对通过步骤(d)获取的软件安全性测试需求的行为描述,得到软件安全 性缺陷测试行为需求;(f)基于剖面划分方法,获取软件安全性功能测试需求;(g)通过步骤(f)获取的软件安全性功能测试需求行为描述;(h)通过步骤(e)和步骤(g)获取的软件安全性功能测试行为需求状态图描述;(i)基于有穷状态机(以下简称FSM)实现对通过步骤(h)获取的状态图的形式化 描述;(j)基于步骤(i)获取的有穷状态机生成测试用例。所述步骤(a)具体包括如下步骤(al)分别确定CWE、本文档来自技高网
...

【技术保护点】
一种基于建模技术的软件安全性测试方法,其特征在于:所述安全性测试方法包括如下步骤:(a)基于CWE、CERT、CVE和OWASP软件漏洞数据库,确定当前阶段软件安全性典型缺陷集;(b)软件数据流分类描述;(c)建立通过步骤(a)获取的软件安全性典型缺陷与通过步骤(b)获取的软件数据流分类描述预对应表;(d)基于被测件数据流图,根据步骤(c)获取的软件安全性典型缺陷与数据流预对应表,初步获取软件安全性缺陷测试需求;(e)实现对通过步骤(d)获取的软件安全性测试需求的行为描述,得到软件安全性缺陷测试行为需求;(f)基于剖面划分方法,获取软件安全性功能测试需求;(g)通过步骤(f)获取的软件安全性功能测试需求行为描述;(h)通过步骤(e)和步骤(g)获取的软件安全性功能测试行为需求状态图描述;(i)基于有穷状态机实现对通过步骤(h)获取的状态图的形式化描述;(j)基于步骤(i)获取的有穷状态机生成测试用例。

【技术特征摘要】
一种基于建模技术的软件安全性测试方法,其特征在于所述安全性测试方法包括如下步骤(a)基于CWE、CERT、CVE和OWASP软件漏洞数据库,确定当前阶段软件安全性典型缺陷集;(b)软件数据流分类描述;(c)建立通过步骤(a)获取的软件安全性典型缺陷与通过步骤(b)获取的软件数据流分类描述预对应表;(d)基于被测件数据流图,根据步骤(c)获取的软件安全性典型缺陷与数据流预对应表,初步获取软件安全性缺陷测试需求;(e)实现对通过步骤(d)获取的软件安全性测试需求的行为描述,得到软件安全性缺陷测试行为需求;(f)基于剖面划分方法,获取软件安全性功能测试需求;(g)通过步骤(f)获取的软件安全性功能测试需求行为描述;(h)通过步骤(e)和步骤(g)获取的软件安全性功能测试行为需求状态图描述;(i)基于有穷状态机实现对通过步骤(h)获取的状态图的形式化描述;(j)基于步骤(i)获取的有穷状态机生成测试用例。2.根据权利要求1所述的一种基于建模技术的软件安全性测试方法,其特征在于所 述步骤(a)具体包括如下步骤(al)分别确定CWE、CERT、CVE和OWASP统计出的软件安全性漏洞数据库,所述数据库 表示为 V= [VI, V2, V3, V4];(a2)分别设定四个漏洞数据库的权重,表示为P = [Pl,P2,P3,P4]; (a3)根据VP = VtP得到漏洞数据库中典型软件安全性漏洞的排序; (a4)选择排名在前的典型安全性漏洞,通过安全性分析确定引起安全性漏洞的软件安 全性缺陷,从而得到当前阶段软件安全性典型缺陷。3.根据权利要求1所述的一种基于建模技术的软件安全性测试方法,其特征在于所 述步骤(b)中将数据流分为如下四类进行描述类别1 操作请求信息,即当外部实体需要对数据实体进行操作时,通过数据进程向数 据实体发送的操作请求信息;类别2 操作失败返回信息,即当数据实体需要对外部实体的错误操作进行提示时,通 过数据进程向外部实体发送的提示信息;类别3 操作成功返回信息,即当数据实体需要对外部实体的正确操作进行提示时,通 过数据进程向外部实体发送的提示信息;类别4 数据信息,即以上三个类别以外的数据流信息。4.根据权利要求1所述的一种基于建模技术的软件安全性测试方法,其特征在于所 述步骤(d)具体包括如下步骤(dl)确定软件所涉及数据的信息来源,对用户的访问类型进行分类; (d2)根据不同的访问类型确定用户风险等级; (d3)根据软件结构绘制第0层带有数据交互边界的数据流图; (d4)抽取出第0层数据流图中的数据交互路径列表;(d5)根据用户风险等级,确定可能存在缺陷的交互路径及其危险等级; (d6)对步骤(d5)中确定的危险等级高的交互路径,对第0层基于数据交互边界的数据 流图进行分解,抽取第1层基于数据交互边界的数据流图;(d7)对步骤(d6)中得出的第1层基于数据交互边界的数据流图,基于步骤(c)获取的 软件安全性典型缺陷与数据流预对应表,确定穿越数据交互边界的数据流信息可能存在的 缺陷;(d8)根据步骤(d7)中确定的缺陷,确定软件安全性缺陷测试需求。5.根据权利要求1所述的一种基于建模技术的软件安全性测试方法,其特征在于所 述步骤(f)具体包括如下步骤(fl)创建软件的UML用例图与活动图;(f2)根据UML用例图与活动图建立安全性功能测试行为需求,建立安全性功能测试行 为需求包括如下步骤(f2. 1)确定UML用例图与活动图的资产,分...

【专利技术属性】
技术研发人员:刘晓明黄松惠战伟胡斌任正平姚奕洪宇郑长友饶莉萍蒋圆圆袁利华刘艳云
申请(专利权)人:中国人民解放军理工大学
类型:发明
国别省市:84[中国|南京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1