首页> 中国专利> 一种基于缺陷检测的软件安全风险评估方法

一种基于缺陷检测的软件安全风险评估方法

摘要

本发明公开了一种基于缺陷检测的软件安全风险评估方法,包括以下步骤:步骤一、构建评估指标体系,;步骤二、采用各种缺陷检测工具对软件进行安全缺陷检测;步骤三、根据软件安全检测报告进行缺陷风险值的初步融合,逐层计算软件安全风险值;步骤四、基于D-S证据理论的软件安全风险进行量化评估。与现有技术相比,本发明采用了多种检测工具检测结果融合的方法来提高评估结果的准备性。预期的有益效果包括:1、便于对CWE缺陷安全性进行分析。2、便于对软件进行安全风险评估。

著录项

  • 公开/公告号CN103984623A

    专利类型发明专利

  • 公开/公告日2014-08-13

    原文格式PDF

  • 申请/专利权人 天津大学;

    申请/专利号CN201410174435.8

  • 申请日2014-04-28

  • 分类号G06F11/36(20060101);

  • 代理机构12201 天津市北洋有限责任专利代理事务所;

  • 代理人李素兰

  • 地址 300072 天津市南开区卫津路72号

  • 入库时间 2023-12-17 00:30:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-25

    授权

    授权

  • 2014-09-10

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

    实质审查的生效

  • 2014-08-13

    公开

    公开

说明书

技术领域

本发明涉及软件设计技术领域,特别是涉及一种软件安全风险评估方法。

背景技术

所谓软件安全缺陷,就是指软件系统或系统成分中,那些可能导致其整体或局 部无法实现预期安全目标的不足点。软件中不可避免地存在一些安全缺陷,一旦这 些安全缺陷在某一时刻被攻击者利用,软件就会面临风险,严重的就会导致攻击者 完全接管软件控制、窃取私密数据、让软件系统崩溃等危险后果,这将对个人乃至 国家造成重大损失。因此,评估软件系统中存在的安全风险等级是十分必要的。通 过分析系统中已存在或是可能存在的风险,将风险量化为具体的数值,可以使系统 管理人员直观地了解到系统中存在的风险。根据风险等级的大小,有优先级的采取 安全措施来预防、控制、降低安全时间的发生。这样可以使软件处于相对安全的状 态,避免了安全事件发生所造成的大量损失。

软件安全评估需要获取软件中存在的安全缺陷。近年来,随着软件缺陷检测技 术的迅速发展,出现了越来越多的安全缺陷检测工具,可以应用各种技术对软件系 统进行分析和评估,识别出大量的潜在缺陷。但是由于不同的缺陷检测工具的检测 能力不同,不同的检测工具各有优缺点,因此综合多种检测工具来协作获取安全缺 陷,能够更全面、更深入地发现软件中存在的安全隐患问题。这些缺陷检测结果是 评估软件安全风险的重要依据。与此同时,不同检测工具之间的差异会对检测结果 的整合产生不利影响,这些不利影响使得评估过程中难以计算软件整体的安全风险。 一方面体现在检测工具采用的缺陷库不同,检测结果用不同的缺陷分类来表示,导 致缺陷检测结果难以互相比较,影响风险值的计算;另一方面,不同的缺陷检测工 具的检测能力不同,检测结果中既存在不相交的部分,又存在重叠的部分,而重叠 的部分会导致风险的重复计算,影响风险评估的准确性。

现有的基于缺陷检测的软件安全风险评估方法无法满足风险评估的准确性和全 面性的要求。其存在的根据问题是由于没有采用多种缺陷检测工具结果融合的方法 进行安全评估,并鉴于不同检测工具之间存在差异这一实际情况,对评估过程中可 能存在的不一致的问题进行处理。本发明在分析CWE缺陷的基础上,给出了CWE 缺陷相对于安全属性的风险分析方法,可以为软件安全相关的诸多工具提供数据支 持。并构建了基于缺陷检测的软件安全风险评估指标体系,提出了基于D-S证据理 论的软件安全风险评估方法,提高了安全风险评估结果的全面性和准确性。

发明内容

为了克服上述现有技术存在的问题,本发明提出了一种基于缺陷检测的软件安 全风险评估方法,通过对CWE缺陷相对于安全属性的风险分析,建立软件安全风险 评估模型,并基于该模型和D-S证据理论对软件安全风险进行评估,达到提高软件 安全性的目的。

本发明提出了一种基于缺陷检测的软件安全风险评估方法,该方法包括以下步 骤:

步骤一、构建评估指标体系,所述指标体系包括整体层、模块层、安全属性层 以及测试结果层共4个层次的指标;该步骤具体为安全属性定义和建立安全缺陷相 对于安全属性的风险分析;其中安全属性定义了保密性、完整性、可用性、访问控 制、可审计性和无安全隐患作为其子属性;而建立安全缺陷相对于安全属性的风险 分析则包括软件缺陷安全风险定性评价、安全属性与技术损害间的间接对应关系构 建、安全缺陷对安全属性危害程度分析、安全缺陷被利用可能性分析、安全缺陷在 安全属性上的风险分析;在风险分析中还需要确定指标体系中模块曾各模块之间的 权重和安全属性层各安全属性之间的权重和安全缺陷检测工具权重;

步骤二、采用各种缺陷检测工具对软件进行安全缺陷检测;

步骤三、根据软件安全检测报告进行缺陷风险值的初步融合,逐层计算软件安 全风险值,具体包括:安全缺陷类型归一化、安全缺陷按模块重组织和安全缺陷风 险值计算,根据缺陷的组织结构,进行信任度计算:

先计算安全属性层中每个安全属性识别框架{严重,高,中,低,注意}的信任度:

m(A)=Σi=1n(SumiASumiALL*ωi)

其中:

A是评估框架子集中的一个元素,A∈{注意,低,中,高,严重};

m(A)是评估框架A的信任度;

i是所采用的缺陷检测工具集合中一个元素;

SumiA是缺陷检测工具i所检测出的风险度为A的缺陷数量;

SumiALL是缺陷检测工具i所检测出的所有缺陷数量;

ωi是缺陷检测工具i所占的权重;

计算安全属性层中每个安全属性识别框架{不确定度}的信任度,公式如下

其中:

B是评估框架子集中的一个元素,B∈{不确定性};

m(B)是评估框架B的信任度;

是评估框架子集A全部信任度之和;

然后进行折扣计算,最终得到评估指标中安全属性层的识别框架信任度,计算 如下:

m(A)=ΣAi=Ai=1n(1-i)mi(Ai)1-ΣAi=Φi=1m(1-i)mi(Ai)

m(Θ)=(1-i)m(Θ)+i

识别框架Θ上有多个置信函数,其基本置信函数为mi,Ai表示各焦元,其权重 为W=(ω1...ωn),则折扣率为函数m:2θ→[0,1]:

步骤四、基于D-S证据理论的软件安全风险进行量化评估。

与现有技术相比,本发明通过对CWE缺陷以及缺陷检测工具进行分析,建立了 提出了一种基于缺陷检测的软件安全风险评估方法,并采用了多种检测工具检测结 果融合的方法来提高评估结果的准备性。预期的有益效果包括:

1、便于对CWE缺陷安全性进行分析。本发明可以根据CWE中已有的缺陷信息, 通过安全属性分析CWE缺陷的安全风险情况,为风险评估提供数据支持。

2、便于对软件进行安全风险评估。本发明建立了基于D-S证据理论的软件安全 风险评估模型,给出了详尽的风险评估流程和安全风险计算方法。该方法可以降低 缺陷检测工具差异性对风险评估过程的影响,充分利用检测结果的互补性,提高软 件安全风险评估结果的全面性和准确性。

附图说明

图1软件安全风险评估流程;

图2安全风险评估指标体系。

具体实施方式

下面将结合附图对本发明具体实施方式作进一步地详细描述。

基于缺陷检测的软件安全风险评估方法评估流程可以分为如图1所示的4个步 骤进行。

第一步:构建评估指标体系

软件安全风险评估准备工作主要分为3部分,包括构建评估指标体系、确定评 估指标权重和确定缺陷检测工具权重。具体描述如下:

1、构建软件系统的评估指标体系

本发明将评估指标分解为整体层、模块层、安全属性层以及测试结果层共4个 层次的指标,通过递阶层次的评估得到较为准确的安全风险评价。评估模型的分层 模型如图2所示。

本步骤主要包括定义安全属性和建立CWE缺陷相对于安全属性的风险分析。

1.1、定义安全属性

安全属性,即软件的安全特性,指软件产品应具有保护信息和数据的能力,防 止未授权的用户访问或修改数据,其中包含若干子属性。

目前对软件安全属性的子属性定义各不相同。本发明在安全属性定义的基础上, 参考已有的研究成果及安全标准,将安全属性的子属性定义为保密性、完整性、可 用性、访问控制、可审计性和无安全隐患。

1.2、基于安全属性的CWE缺陷风险分析

CWE常见缺陷列表是MITRE公司开发的安全缺陷词典,该词典作为识别、减 轻、阻止软件缺陷的通用标准,提供了一份通用软件缺陷列表,列出目前已知软件 缺陷的通用描述。缺陷风险分析工具选择CWE作为缺陷标识,可以给用户提供更通 用的安全信息,方便用户进行缺陷管理和风险评估。

软件缺陷风险分析与软件安全属性的映射,是分析软件安全性的基础。软件的6 个安全子属性,概括了一个软件系统在安全性上的要求。分析软件的安全性,也就 是分析软件缺陷在6个安全子属性上所造成的影响程度。

1.2.1、软件缺陷安全风险定性评价

软件缺陷安全风险定性评价,是定性评价软件缺陷对软件安全属性所形成的风 险程度。包括缺陷对安全属性的危害性、缺陷被利用的可能性和缺陷对安全属性的 定性评价方法。

1.2.2构建安全属性与技术损害的间接对应关系

在CWE缺陷信息中,“Consequence_Scope”用于表示缺陷在被恶意利用后对系 统造成的抽象损失,共定义了8种抽象的损失,经分析软件安全属性与 “Consequence_Scope”损失之间有如表1所示的一对多的关系。

表1软件安全属性与“Consequence_Scope”的对应关系

在CWE缺陷信息中,“Consequence_Impact”用于表示缺陷在被恶意利用后对软 件造成的具体技术损害,共21种损害。“Consequence_Scope”与“Consequence_Impact 间有多对多的关系,由此可以得到如表2所示的软件安全属性与 “Consequence_Impact”的间接的多对多的关系。

表2软件安全属性与“Consequence_Impact”的间接对应关系

1.2.3、缺陷对安全属性危害程度的分析

在CWE中,缺陷对软件造成的技术影响(Consequence_Impact)共有21种,在 表2中已经给出了技术影响与安全属性的间接对应关系。下面通过考虑安全属性的 评价指标,确定技术影响对安全属性所造成的危害程度,危害程度用高、中、低定 性表示。

(1)保密性的危害分析

保密性的评价指标是有多少信息被泄露,信息的关键程度,结合安全知识得出 定性评估,如表3所示:

表3保密性的危害分析

(2)完整性的危害分析

完整性的评价指标是有多少数据被破坏,破坏的程度如何,结合安全知识得出 定性评估,如表4所示:

表4完整性的危害分析

(3)可用性的危害分析

可用性的评价指标是有多少服务被中断,重要程度如何,结合安全知识得出定 性评估,如表5所示:

表5可用性的危害分析

(4)访问控制的危害分析

访问控制的评价指标是软件安全机制的失效范围,结合安全知识得出定性评估, 如表6所示:

表6访问控制的危害分析

(5)可审计性的危害分析

可审计性的评价指标是不可追溯行为的数量,结合安全知识得出定性评估,如 表7所示:

表7可审计性的危害分析

(6)无安全隐患的危害分析

无安全隐患的评价指标是软件执行出错的可能性,结合安全知识得出定性评估, 如表8所示:

表8无安全隐患的危害分析

(7)安全属性危害分析总表

安全属性危害分析总表如表9所示,纵轴是安全属性,横轴是21种技术危害:

表9安全属性危害分析总表

1.2.4、缺陷被利用可能性分析

在CWE中,“Likelihood_of_Exploit”项描述“缺陷被利用的可能性”,即评估攻 击者发现和利用特定缺陷可能性的粗略计量。在CWE中该项取值共8种,但由于影 响“缺陷被利用的可能性”的因素较多,用过于细化的描述并不能精确反应可能性, 为了方便计算,本评估方法将8种程度映射为“低、中、高”三种。对应方式如表 10所示:

表10缺陷被利用的可能性分析

1.2.5缺陷安全风险分析

评估缺陷在安全属性上的风险,需要确定缺陷在安全属性上的危害(如表9)和 缺陷被利用的可能性(如表10)。

根据风险对系统的危害程度,本发明将缺陷在安全属性上的安全风险分为5级, 如表11所示,分别为注意、低、中、高、严重。根据表9和表10得到的缺陷在各安 全属性上的风险程度如表12所示。

表11基于D-S证据理论的安全风险评估模型识别框架

表12安全风险对照表

2、确定评估指标权重

确定指标体系中第二层各模块之间的权重和第三层各安全属性之间的权重。权 重的分配主要根据该层指标对上一层指标的重要程度决定,权重总和为1。本发明采 用主观的专家打分法来确定评估指标的权重。

3、确定缺陷检测工具权重

由于检测工具所采用的技术不同、工具的缺陷模式库规模不同等均会影响扫描 工具的检测能力。因此缺陷扫描工具权重的分配,主要考虑检测工具扫描缺陷的能 力来分配权重,扫描工具的权重总和为1。本发明采用主观的专家打分法来确定缺陷 检测工具的权重。

第二步:对软件进行缺陷检测

在本阶段,采用不同的缺陷检测工具对软件进行安全检测。在进行缺陷检测时, 需要了解不同测试工具的特点和使用方法,才能有效地对软件进行全面的检测。

第三步:对检测结果进行初步整合

在本阶段,根据软件安全检测报告进行缺陷风险值的初步融合,分为3个步骤。

1、缺陷类型归一化

不同工具的检测结果可能采用不同的缺陷分类表示,因此需要将不同工具的检 测结果转换为CWE缺陷,在类型转换时可能遇到检测工具不支持CWE缺陷分类的 情况,这时需要由安全专家确定工具支持的缺陷分类与CWE缺陷之间的映射关系, 再根据映射关系将检测结果间接转换为CWE缺陷。

2、缺陷按模块重组织

在本步骤中,打破缺陷按照检测工具组织在一起的方式,,将缺陷按照其影响到 的模块重新组织,为下一步风险值融合做准备。

3、缺陷风险值计算

根据缺陷的组织结构,使用公式三、公式四对各安全属性识别框架的信任度进 行计算后,再用公式一、公式二进行折扣计算,最终得到评估指标中第三层安全属 性层的识别框架信任度。

第四步:基于D-S证据理论的软件安全风险评估方法

在对软件进行安全风险评估的过程中,各种风险因素的不确定性很大,具有模 糊性,使传统的基于概率论和数理统计理论的风险评估模型已不再适用。因此,本 发明采用D-S证据理论对信息系统所面临的安全风险进行量化评估。

1、D-S证据理论的冲突处理算法

证据理论是关于证据的数学理论,能够将不同证据源的证据融合为一个。证据 融合

理论有一定的缺陷,即证据间有冲突计算出的结果是不可信的。本文借鉴Murphy 的方法对证据模型进行改进。

设权重向量W=(ω1...ωn),满足:且令则称为wi的“折扣率”,可得新的相对权重向量W=(ω1ω2。。。ωn)/ωmax,将证据理论的信度函数 表达式修正为:m(A)=(1-i)m(A),m(Θ)=(1-i)m(Θ)+i,然后修正过的信度函数 带入原证据合成公式中,得到关联各指标权重的证据理论合成公式如下:

识别框架Θ上有多个置信函数,其基本置信函数为mi,Ai表示各焦元,其权重 为W=(ω1。。。ωn),则折扣率为函数m:2θ→[0,1]:

m(A)=ΣAi=Ai=1n(1-i)mi(Ai)1-ΣAi=Φi=1m(1-i)mi(Ai)             (公式一)

m(Θ)=(1-i)m(Θ)+i              (公式二)

2、缺陷检测结果融合方法

缺陷检测结果融合方法,用于根据缺陷检测结果计算安全属性层中识别框架的 信任度。

缺陷检测结果融合方法输入一:软件安全缺陷检测结果。在缺陷检测结果中, 每一个检测工具均报告了软件所含的安全缺陷情况,包括缺陷的类型、缺陷所在的 模块。缺陷检测结果融合方法输入二:安全缺陷风险知识库。在安全缺陷风险知识 库中,保存了安全缺陷的安全风险信息,即缺陷在不同安全属性上的风险值。

公式三用来计算安全属性层中每个安全属性识别框架{严重,高,中,低,注意} 的信任度。公式四用来计算安全属性层中每个安全属性识别框架{不确定度}的信任 度。

缺陷检测结果融合方法计算公式如下:

m(A)=Σi=1n(SumiASumiALL*ωi)          (公式三)

其中:

A是评估框架子集中的一个元素,A∈{注意,低,中,高,严重};

m(A)是评估框架A的信任度;

i是所采用的缺陷检测工具集合中一个元素;

SumiA是缺陷检测工具i所检测出的风险度为A的缺陷数量;

SumiALL是缺陷检测工具i所检测出的所有缺陷数量;

ωi是缺陷检测工具i所占的权重;

          (公式四)

其中:

B是评估框架子集中的一个元素,B∈{不确定性};

m(B)是评估框架B的信任度;

是评估框架子集A全部信任度之和;

3、逐层计算软件安全风险值

首先根据公式一到公式四,将第三层安全属性层信任度向量折扣后融合,得到 第二层模块层识别框架信任值;再对第二层识别框架仍然采用上一步的计算方法, 折扣后求出其识别框架信任值,即第一层软件整体风险的识别框架向量。

下面基于AltoroMutual网上银行系统(http://demo.testfire.net),使用本文中的 平台工具进行安全风险评估,选取黑盒测试工具IBM Rational AppScan8.5和HP  WebInspect10.0为缺陷扫描工具,选取CWE2.5作为缺陷风险知识库的基础,从而验 证本评估方法的可行性。

1)构建评估指标体系

1、构建模块层并确定各模块权重,如表14所示。

表14模块层权重划分

主界面展示模块 搜索新闻模块 用户登录模块 管理员模块 金融业务模块 15% 10% 20% 20% 35%

根据各模块对安全的要求,设置安全属性层指标权重如表15所示:

表15安全属性层权重划分

2、确定检测工具权重

经过综合考虑两个检测工具检测能力的差异,将两者权重划分如表16所示:

表16检测工具权重划分

工具 权重 IBM Appscan 70% HP WebInspect 30%

2)检测软件缺陷

安全检测结束后,得到了IBM Appscan检测出的49个CWE缺陷和HP WebInspect 检测出的32个CWE缺陷。

2.1检测结果初步整合

2.1.1缺陷类型归一化

该步骤需要将不同缺陷检测工具检测结果都转变为CWE缺陷的展现形式。由于 IBM Appscan和HP WebInspect均支持CWE缺陷作为输出,本实例不需要改动检测 结果。

2.1.2检测结果重组织

第一步:先将检测结果的缺陷按模块重组织,如表17所示:

表17缺陷重组织

第二步:根据缺陷安全风险库,统计缺陷的风险情况。例如用户登陆模块的缺陷风 险统计如表18所示:

表18用户登录模块的缺陷风险统计

第三步:缺陷风险值计算

根据缺陷的组织结构,使用公式三、公式四对安全属性识别框架的信任度进行计算 后,再用公式一、公式二进行折扣计算,最终得到评估指标中第三层安全属性层的 识别框架信任度。例如用户登录模块安全属性评估框架信任度计算结果如表19所示:

表19用户登录模块安全属性评估框架信任度计算结果

3)软件安全风险计算

第一步:使用D-S证据理论计算方法和上一步计算好的安全属性评估框架信任 度计算结果,计算出软件安全风险评估指标体系第二层的值,即模块层评估框架的 信任度,如表20所示:

表20模块层评估框架信任度计算结果

第二步:再次使用D-S证据理论计算方法和上一步计算好的模块层评估框架信任度 计算结果,计算出软件安全风险评估指标体系第一层的值,即软件整体评估框架的 信任度,如表21所示:

表21软件整体评估框架的信任度计算结果

4)评估结果分析

经过基于缺陷检测的软件安全风险评估方法进行评估,Altoro Mutual网上银行系统 的安全风险结果如表21所示,即安全性风险为“严重”的概率为0.2643,安全性风 险为“高”的概率为0.2809,安全性风险为“中”的概率为0.4547,其他均为0。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号