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

上传人:000****221 文档编号:1283009 上传时间:2018-04-12 格式:PDF 页数:14 大小:579.17KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010516205.7

申请日:

2010.10.22

公开号:

CN101968768A

公开日:

2011.02.09

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20101022|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

中国人民解放军理工大学

发明人:

黄松; 胡斌; 姚奕; 刘晓明; 惠战伟; 任正平; 洪宇; 饶莉萍; 蒋圆圆; 郑长友; 袁利华; 刘艳云

地址:

210007 江苏省南京市白下区海富巷一号

优先权:

专利代理机构:

南京苏高专利商标事务所(普通合伙) 32204

代理人:

柏尚春

PDF下载: PDF下载
内容摘要

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

权利要求书

1: 一种基于缺陷的软件安全性测试需求的获取方法, 其特征在于 : 所述方法获取包括 如下步骤 : (1) 确定软件所涉及数据的信息来源, 对用户的访问类型进行分类 ; (2) 根据不同的访问类型确定用户风险等级 ; (3) 根据软件结构绘制第 0 层带有数据交互边界的数据流图 ; (4) 抽取出第 0 层数据流图中的数据交互路径列表 ; (5) 根据用户风险等级, 确定可能存在缺陷的交互路径及其危险等级 ; (6) 对步骤 (5) 中确定的危险等级高的交互路径, 对第 0 层基于数据交互边界的数据流 图进行分解, 抽取第 1 层基于数据交互边界的数据流图 ; (7) 对步骤 (6) 中得出的第 1 层基于数据交互边界的数据流图, 基于典型软件安全性缺 陷, 确定穿越数据交互边界的数据流信息可能存在的缺陷 ; (8) 根据步骤 (7) 中确定的缺陷, 确定软件安全性测试需求。
2: 一种根据权利要求 1 所述方法获得的软件安全性测试需求, 采用 PDDAR 模型实现对 测试需求的分级的方法, 其特征在于 : 所述分级方法包括如下步骤 : (1) 确定缺陷的普遍性属性 PE 等级, 为广泛、 高、 普通或者有限 ; (2) 确定缺陷的危害性属性 DP 等级, 为关键、 高、 中等或者低 ; (3) 确定缺陷的可探测性属性 DE 等级, 为容易、 一般或者困难 ; (4) 确定缺陷的影响用户级别属性 AU 等级, 为管理员、 过个普通用户特殊配置用户或 者 Guest 用户 ; (5) 确定缺陷的可靠性属性 RE 等级, 为危险、 一般、 受限或者低 ; (6) 对步骤 (1)、 (2)、 (3)、 (4) 和 (5) 确定的等级, 按照下表设定缺陷不同属性的权值 W = (WPE, WDP, WDE, WAU, WRE) : (7) 根据步骤 (1)、 (2)、 (3)、 (4) 和 (5) 中, 对每种属性的影响因素, 并设定各影响因素 的权值, 确定影响因素集 F : 2 (8) 根据 PRIi = WDPPEi+WOPDPi+WRPDEi+WAUAUi+WREREi 计算第 i 个软件安全性测试需求的 安全性缺陷优先级 PRI ; (9) 比较各个安全性缺陷优先级 PRI, 计算数值越高的安全性测试需求等级越高。

说明书


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

    技术领域 本发明涉及软件安全性测试, 尤其涉及一种基于缺陷的软件安全性测试需求的获 取与分级方法。
     背景技术 软件安全性测试作为保证软件安全性的一种重要途径, 对于为软件产品进行安全 性评价具有重要的意义。根据国家的规划, 软件测试技术将作为保证软件产品安全性的重 要手段, 力争使测试越早介入软件开发, 从而提高软件抵御潜在风险的能力, 降低软件的安 全缺陷率。
     软件安全性测试需求的获取是生成软件安全性测试用例进行实际测试的基础。 目 前在提取软件安全性需求方面主要采取的是安全性用例技术, 通过描述假想的异常场景, 进而人工分析提出可能存在的安全性缺陷。 然而这种获取软件安全性测试需求的方法缺点 是:
     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 :
     (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典型安全性缺陷 缓冲区溢出缺陷 整数溢出缺陷 格式化字符串缺陷7CN 101968768 A说D4 D5 D6 D7 D8 D9 D10 D11明书5/8 页竞争条件缺陷 随机数缺陷 元字符缺陷 自动创建变量缺陷 异常错误处理缺陷 命令注入缺陷 鉴别与授权混淆缺陷 访问控制缺陷
     一种基于缺陷的软件安全性测试需求的获取方法, 其过程如图 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 PE DP DE AU RE
     D6 2 3 2 4 1D8 2 2 2 3 2D9 4 4 3 2 3D10 3 4 3 3 2D11 1 3 1 2 31 1 1 4 4假设各种属性权值相同, 即假设软件安全性缺陷影响因素集为 : W = (1, 1, 1, 1, 1) ; 则软件安全性缺陷对应的优先级为 :
     PRI5 = PE5+DP5+DE5+AU5+RE5 = 11
     同理可得 : PRI6 = 12, PRI8 = 11, PRI9 = 16, PRI10 = 15, PRI11 = 10, 即得到了软 件安全性缺陷的优先级。
     以上所述仅是本发明的优选实施方式, 应当指出 : 对于本技术领域的普通技术人 员来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应 视为本发明的保护范围。

一种基于缺陷的软件安全性测试需求的获取与分级方法.pdf_第1页
第1页 / 共14页
一种基于缺陷的软件安全性测试需求的获取与分级方法.pdf_第2页
第2页 / 共14页
一种基于缺陷的软件安全性测试需求的获取与分级方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种基于缺陷的软件安全性测试需求的获取与分级方法.pdf》由会员分享,可在线阅读,更多相关《一种基于缺陷的软件安全性测试需求的获取与分级方法.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101968768A43申请公布日20110209CN101968768ACN101968768A21申请号201010516205722申请日20101022G06F11/3620060171申请人中国人民解放军理工大学地址210007江苏省南京市白下区海富巷一号72发明人黄松胡斌姚奕刘晓明惠战伟任正平洪宇饶莉萍蒋圆圆郑长友袁利华刘艳云74专利代理机构南京苏高专利商标事务所普通合伙32204代理人柏尚春54发明名称一种基于缺陷的软件安全性测试需求的获取与分级方法57摘要本发明公开了一种基于缺陷的软件安全性测试需求的获取与分级方法,首先根据软件类型确定用户的访问类型和风险等级。

2、,及第0层带有数据交互边界的数据流图,确定可能存在缺陷的交互路径及危险等级,再对等级高的进行数据流图分解,抽取第1层基于数据交互边界的数据流图,确定穿越数据交互边界的数据流信息可能存在的缺陷,以确定软件安全性测试需求,并根据PDDAR模型实现对测试需求的分级。本发明提供的方法,能够较准确、全面地获得软件安全性测试需求,较以往主要通过描述假想的异常场景,本发明克服了人为主观造成的软件安全性需求获取的遗漏,避免测试人员评定的主观性;且能够对其进行优先级确定,提高软件安全性测试的效率。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页附图3页CN101968768。

3、A1/2页21一种基于缺陷的软件安全性测试需求的获取方法,其特征在于所述方法获取包括如下步骤1确定软件所涉及数据的信息来源,对用户的访问类型进行分类;2根据不同的访问类型确定用户风险等级;3根据软件结构绘制第0层带有数据交互边界的数据流图;4抽取出第0层数据流图中的数据交互路径列表;5根据用户风险等级,确定可能存在缺陷的交互路径及其危险等级;6对步骤5中确定的危险等级高的交互路径,对第0层基于数据交互边界的数据流图进行分解,抽取第1层基于数据交互边界的数据流图;7对步骤6中得出的第1层基于数据交互边界的数据流图,基于典型软件安全性缺陷,确定穿越数据交互边界的数据流信息可能存在的缺陷;8根据步骤。

4、7中确定的缺陷,确定软件安全性测试需求。2一种根据权利要求1所述方法获得的软件安全性测试需求,采用PDDAR模型实现对测试需求的分级的方法,其特征在于所述分级方法包括如下步骤1确定缺陷的普遍性属性PE等级,为广泛、高、普通或者有限;2确定缺陷的危害性属性DP等级,为关键、高、中等或者低;3确定缺陷的可探测性属性DE等级,为容易、一般或者困难;4确定缺陷的影响用户级别属性AU等级,为管理员、过个普通用户特殊配置用户或者GUEST用户;5确定缺陷的可靠性属性RE等级,为危险、一般、受限或者低;6对步骤1、2、3、4和5确定的等级,按照下表设定缺陷不同属性的权值WWPE,WDP,WDE,WAU,WR。

5、E7根据步骤1、2、3、4和5中,对每种属性的影响因素,并设定各影响因素的权值,确定影响因素集F权利要求书CN101968768A2/2页38根据PRIIWDPPEIWOPDPIWRPDEIWAUAUIWREREI计算第I个软件安全性测试需求的安全性缺陷优先级PRI;9比较各个安全性缺陷优先级PRI,计算数值越高的安全性测试需求等级越高。权利要求书CN101968768A1/8页4一种基于缺陷的软件安全性测试需求的获取与分级方法技术领域0001本发明涉及软件安全性测试,尤其涉及一种基于缺陷的软件安全性测试需求的获取与分级方法。背景技术0002软件安全性测试作为保证软件安全性的一种重要途径,对于。

6、为软件产品进行安全性评价具有重要的意义。根据国家的规划,软件测试技术将作为保证软件产品安全性的重要手段,力争使测试越早介入软件开发,从而提高软件抵御潜在风险的能力,降低软件的安全缺陷率。0003软件安全性测试需求的获取是生成软件安全性测试用例进行实际测试的基础。目前在提取软件安全性需求方面主要采取的是安全性用例技术,通过描述假想的异常场景,进而人工分析提出可能存在的安全性缺陷。然而这种获取软件安全性测试需求的方法缺点是0004A需要专业的软件安全性需求分析人员,并有从事软件安全性分析的大量经验;0005B获取软件安全性需求的人为主观性较大;0006C获取软件安全性需求时容易造成遗漏或重复;00。

7、07D不能对需求进行优先级确定。0008软件安全性测试需求的准确、全面获取一直是软件测试技术所追求的目标之一,但这是一个极为复杂的问题,就目前的研究成果而言,离全面准确还存在相当大的距离。但其成功解决对提高软件质量,缩短软件测试时间都具有十分重要的理论意义和使用价值。发明内容0009发明目的为了克服现有技术中存在的不足,本发明提供一种基于缺陷的软件安全性测试需求的获取方法,以安全性缺陷为基础,在对典型缺陷进行三维结构缺陷分类的基础上,根据基于数据交互边界的方法初步确定被测件中潜在的安全性缺陷及其位置,进而得到软件安全性测试需求,并对软件安全性缺陷进行优先级划分。0010技术方案为实现上述目的,。

8、本发明采用的技术方案为0011一种基于缺陷的软件安全性测试需求的获取方法,包括如下步骤00121确定软件所涉及数据的信息来源,对用户的访问类型进行分类;00132根据不同的访问类型确定用户风险等级;00143根据软件结构绘制第0层带有数据交互边界的数据流图;00154抽取出第0层数据流图中的数据交互路径列表;00165根据用户风险等级,确定可能存在缺陷的交互路径及其危险等级;00176对步骤5中确定的危险等级高的交互路径,对第0层基于数据交互边界的数据流图进行分解,抽取第1层基于数据交互边界的数据流图;00187对步骤6中得出的第1层基于数据交互边界的数据流图,基于典型软件安全说明书CN101。

9、968768A2/8页5性缺陷,确定穿越数据交互边界的数据流信息可能存在的缺陷;00198根据步骤7中确定的缺陷,确定软件安全性测试需求。0020一种根据上述方法获得的软件安全性测试需求,采用PDDAR模型实现对测试需求的分级的方法,包括如下步骤00211确定缺陷的普遍性/流行性属性PE等级,为广泛、高、普通或者有限0022所述普遍性/流行性PEPREVALENCE也就是缺陷在当前同类软件中可能存在的可能性。可以分为广泛、高、普通和有限四个等级0023广泛这种缺陷在实际项目中最为常见,限制这种类型的不超过四类;0024高这种缺陷经常会遇到,但是并不是最常见的;0025普通这种缺陷偶尔也会在实际。

10、中遇到;0026有限这种缺陷在实际项目中,很少或者几乎没有被发现过。0027对于普遍性的度量我们采用交叉比较的方法A相关漏洞在CWE漏洞数据库中的排名,B软件安全性缺陷相关威胁在OWASP威胁数据库中的排名,C软件安全性缺陷相关漏洞是否在MICROSOFT已发布的漏洞数据库中,D相应软件安全性缺陷在以往的测试过程中出现的次数初始设为0。00282确定缺陷的危害性属性DP等级,为关键、高、中等或者低0029所述危害性DPDAMAGEPOTENTIAL如果软件安全性缺陷被非法执行,则会对软件系统或者用户的使用产生的破坏程度。可以分为关键、高、中等和低四个等级0030关键这种缺陷的危害等级最高,所以。

11、应该立即进行修正,如果这种缺陷被非法利用,则会造成严重的破坏,在选择或者相互比较确定典型缺陷列表时,通常设定危害等级为关键的一般限制在四个以内;0031高这种缺陷的危害等级也是很高,但是相对于关键类型较低;0032中等这种缺陷也是一定要上报的,但是并不是非常紧要的;0033低种缺陷不一定需要上报,或者并不需要进行及时的修改。00343确定缺陷的可探测性属性DE等级,为容易、一般或者困难0035所述可探测性DEDETECTABLE软件中软件安全性缺陷可能被非法用户探测到的可能性,容易探测到,意味着缺陷容易被利用,容易产生攻击。可以分为容易、一般和困难三个等级0036容易已存在自动化工具或者技术可。

12、以自动化探测缺陷,或者通过简单的操作就可以被发现;0037一般仅仅通过自动化工具或者成熟技术不能发现缺陷,软件安全性缺陷的探测可能需求对程序的逻辑结构有一定的了解;或者通过现有的攻击工具,只能在少数情况下发现缺陷;0038困难发现这种缺陷需要花费大量的时间、手工执行的方法,以及智能的半自动化工具的支持和专业的攻击技术。00394确定缺陷的影响用户级别属性AU等级,为管理员、多个普通用户特殊配置用户或者GUEST用户0040所述影响用户级别AUAFFECTEDUSERS软件安全性缺陷影响到用户的级别。可以分为管理员、多个普通用户、特殊配置用户单个和GUEST用户四个等级说明书CN10196876。

13、8A3/8页60041管理员缺陷被非法利用时,管理员以及大部分用户的正常使用受到影响甚至限制,系统处于瘫痪状态;0042多个普通用户缺陷一旦被利用,多种普通用户如图书馆信息系统中除管理员外的VIP用户,一般学生会员,图书信息上载员,图书信息审核员等的使用受到严重影响,但是系统管理员的基本使用功能可以正常进行;0043特殊配置用户单个这种缺陷一旦被利用,则不会影响大多数类型的用户,往往只能影响到特殊类型用户。如图书馆信息系统中一般的学生会员的借阅,或者图书信息员的上载。这种缺陷和上一级的区别在于,这种缺陷被非法利用,只会影响到一种除管理员以外的任何用户的正常使用,而不会同时影响多个类型用户;00。

14、44GUEST用户这种缺陷被非法用户利用,则只会影响到类似GUEST用户的使用,或者匿名用户的使用。00455确定缺陷的可靠性属性RE等级,为危险、一般、受限或者低0046所述可靠性RERELIABILITY软件安全性缺陷被非法用户利用后产生的结果的可预期性。可以分为危险、一般、受限和低四个等级0047危险非法用户利用软件安全性缺陷使用相同的方法,多次执行相同的攻击用例,可以产生相同的结果,这种缺陷对于软件系统来说,一旦被非法用户发现,就容易多次重复攻击;0048一般相对于上一级,这种缺陷被非法用户发现后,如果非法用户需要重复攻击行为,需要重新对攻击场景进行一定的修改;0049受限这种缺陷被非。

15、法用户发现后,如果非法用户需要重复攻击行为,则需要一定的辅助攻击手段或其他资源;0050低对于这种缺陷,测试人员基本可以忽略,因为就算非法用户曾经利用这种缺陷对软件系统进行了攻击,但是缺陷被重复利用的可能性极低,甚至只是理论上。00516对步骤1、2、3、4和5确定的等级,按照表1设定缺陷不同属性的权值WWPE,WDP,WDE,WAU,WRE0052表100530054现有的DREAD模型和CWE/SANS年度报告中提出的属性对软件安全性缺陷并不是完全适用,针对软件安全性缺陷特点,我们按照上述的方法提取了五种软件安全性缺陷属性;这种分级模型考虑到的影响因素都是定性因素,只能对缺陷进行定性判断,。

16、为了定量分说明书CN101968768A4/8页7析优先级,得到软件安全性缺陷优先级影响因素度量表,制作上述表1,分别设定相应的定量权值为4、3、2、1。00557确定步骤1、2、3、4和5中,对每种属性的影响因素,并设定各影响因素的权值,确定影响因素集F005600578根据PRIIWFI1,2,0058即PRIIWDPPEIWOPDPIWRPDEIWAUAUIWREREI计算第I个软件安全性测试需求的安全性缺陷优先级PRI,其中,I表示软件安全性缺陷的编号。00599比较各个安全性缺陷优先级PRI,计算数值越高的安全性测试需求等级越高。0060有益效果本发明提供的一种基于缺陷的软件安全性测。

17、试需求的获取方法,能够较为准确、全面地获得软件安全性测试需求,相比较以往主要通过描述假想的异常场景,进而人工分析提出可能存在的安全性缺陷的方式,本发明克服了人为主观造成的软件安全性需求获取的遗漏或错误,避免测试人员依据大量测试经验进行软件测试评定的主观性;并且在获取软件安全性需求的同时也能够对其进行优先级确定,提高软件安全性测试的效率和准确性。附图说明0061图1为本发明的流程图;0062图2为软件系统第0层带有数据交互边界的数据流图;0063图3为登录过程的第1层基于数据交互边界的数据流图。具体实施方式0064下面结合附图对本发明作更进一步的说明。0065本例基于软件安全漏洞机构提供的漏洞数。

18、据库和威胁数据库,抽取如表2所示的11个典型安全性缺陷,并以此进行相关分析。0066表20067符号典型安全性缺陷D1缓冲区溢出缺陷D2整数溢出缺陷D3格式化字符串缺陷说明书CN101968768A5/8页8D4竞争条件缺陷D5随机数缺陷D6元字符缺陷D7自动创建变量缺陷D8异常错误处理缺陷D9命令注入缺陷D10鉴别与授权混淆缺陷D11访问控制缺陷0068一种基于缺陷的软件安全性测试需求的获取方法,其过程如图1所示,包括如下步骤00691确定软件所涉及数据的信息来源,对用户的访问类型进行分类。0070根据用户的来源,首先可以将其分为远程用户和本地用户两类。通常远程用户具有不可控性,所以认为其对。

19、系统进行非法操作的风险大于本地用户。而根据用户对系统进行操作的能力又可以对用户类型进行分类。0071远程用户中对软件系统威胁最大的是匿名用户,这种用户对系统进行可能的危险操作可能造成的影响是无法估计的;其次经过身份鉴别的远程用户,如果这类用户可以进行文件管理,如增加、删除、修改等操作,则这类用户对系统进行非法操作的可能性以及对系统产生危害的可能性也是非常大的。所以这类用户访问的风险等级仅次于匿名用户;如果这类用户不具有文件操作能力,则对系统可能造成的危害程度就相对较低。0072本地用户又可以分为两类具有执行权限的用户和管理用户。前一种类型的用户对系统的访问可能造成的危害高于后一种,因为通常管理。

20、员用户都是最为可信的用户类型,这类用户通常经过一定的系统培训,对软件非常了解,所以这类用户是最为可信的一类用户,其风险等级也最低。00732根据不同的访问类型确定用户风险等级。0074基于上述步骤1的解释分析,给出如表3所示的一种用户访问类型分类的风险等级示例,并按照从高风险到低风险的顺序进行了风险等级划分。0075表3说明书CN101968768A6/8页9007600773根据软件结构绘制第0层带有数据交互边界的数据流图。0078通常的基于B/S模式的软件系统都存在典型的验证身份信息/身份鉴别、账号管理数据管理等进程,绘制如图2所示的第0层带有数据交互边界的数据流图。00794抽取出第0层。

21、数据流图中的数据交互路径列表。0080根据图2可以得到数据流交互路径列表,如表4所示。0081表4008200835根据用户风险等级,确定可能存在缺陷的交互路径及其危险等级。根据表3和表4,确定用户类型与可能存在的缺陷的交互路径对应类表如表5所示。根据访问用户的类型同时可以确定交互路径的危险等级。在后续的分析过程中,就应该先对危险等级高的交互路径进行分析,因为这里如果存在安全性缺陷的话,产生的风险最高。0084表5008500866对步骤5中确定的危险等级高的交互路径,对第0层基于数据交互边界的数据流图进行分解,抽取第1层基于数据交互边界的数据流图。0087第1层数据流图主要显示上层流图中每个。

22、进程的内部数据流向。对图2所示的软件第0层带有数据交互边界的数据流图进行分解,其中用户登录过程分解后的带有数据交说明书CN101968768A7/8页10互边界的数据流图如图3所示。00887对步骤6中得出的第1层基于数据交互边界的数据流图,基于典型软件安全性缺陷,确定穿越数据交互边界的数据流信息可能存在的缺陷。0089根据表6所示给出的典型数据流与可能存在的缺陷对照表,由穿越数据交互边界的数据流信息得到该WEB应用系统用户登录过程中可能存在的安全性缺陷,如表7所示。0090表6009100920093对于当前阶段的11个典型缺陷,其中【D2】整数溢出缺陷、【D4】竞争条件缺陷、【D7】自动创。

23、建变量缺陷并没有被覆盖,因为这三个缺陷大多存在于进程内部交互中,而不能通过交互边界的方法确定。0094表70095说明书CN101968768A8/8页1100968根据步骤7中确定的缺陷,确定软件安全性测试需求。0097由步骤7得到的潜在缺陷即可确认WEB应用系统用户登录过程测试的安全性需求。00989采用PDDAR模型对测试需求进行分级。0099以本例给出的WEB应用系统用户登录过程中可能存在的软件安全性缺陷列表为例,根据表1给出软件安全性缺陷的优先级影响因素度量如表8所示。0100表80101D5D6D8D9D10D11PE122431DP132443DE122331AU443232RE。

24、4123230102假设各种属性权值相同,即假设软件安全性缺陷影响因素集为W1,1,1,1,1;则软件安全性缺陷对应的优先级为0103PRI5PE5DP5DE5AU5RE5110104同理可得PRI612,PRI811,PRI916,PRI1015,PRI1110,即得到了软件安全性缺陷的优先级。0105以上所述仅是本发明的优选实施方式,应当指出对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。说明书CN101968768A1/3页12图1说明书附图CN101968768A2/3页13图2说明书附图CN101968768A3/3页14图3说明书附图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1