CN103366123A - 基于缺陷分析的软件风险评估方法 - Google Patents

基于缺陷分析的软件风险评估方法 Download PDF

Info

Publication number
CN103366123A
CN103366123A CN2013101646628A CN201310164662A CN103366123A CN 103366123 A CN103366123 A CN 103366123A CN 2013101646628 A CN2013101646628 A CN 2013101646628A CN 201310164662 A CN201310164662 A CN 201310164662A CN 103366123 A CN103366123 A CN 103366123A
Authority
CN
China
Prior art keywords
risk
software
defective
consequence
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013101646628A
Other languages
English (en)
Other versions
CN103366123B (zh
Inventor
李晓红
吴晓菲
韩卓兵
胡静
朱明悦
杜长霄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201310164662.8A priority Critical patent/CN103366123B/zh
Publication of CN103366123A publication Critical patent/CN103366123A/zh
Application granted granted Critical
Publication of CN103366123B publication Critical patent/CN103366123B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于缺陷分析的软件风险评估方法,该风险评估方法包括以下步骤:通过软件资产识别、缺陷分析、后果属性评定获取风险计算所需输入数据及输入关系;计算各个功能模块中每一个后果属性的后果属性因子;计算整个软件各个后果属性的风险度sumRtk;根据软件各个功能模块的权重(pwti)对各个后果属性的风险度计算加权平均值,得到整个软件各个后果属性的风险度sumRtk。;计算软件整体风险值,根据各个后果属性的权重(rwtk)对整个软件的各个后果属性的风险度计算加权平均值,得到软件最终的风险值Risk;评定风险等级,根据软件的风险值Risk,得到一个软件风险等级作为评估结果。本发明克服了目前大多数风险评估模型中的各风险要素赋值涉及较多的专家意见,且存在一些难以量化的问题;最大程度地避免了风险重复计算。

Description

基于缺陷分析的软件风险评估方法
技术领域
本发明涉及可信计算领域;特别是涉及一种软件风险评估方法。 
背景技术
随着软件产业的迅速发展和通过网络的快速传播,软件产品的安全问题受到越来越多的关注。那么,如何评估软件的安全性的高低好坏呢?软件风险评估技术为评估软件安全性提供了依据。软件风险评估是从风险管理角度,运用科学的方法和手段,系统地分析某个软件产品所面临的威胁及其存在的漏洞,评估安全缺陷事件一旦发生可能造成的危害程度,为防范和化解软件风险,或者将风险控制在可接受的水平,从而最大限度地保障软件安全提供科学依据。 
在人类社会经济活动和日常生活中,风险一词是经常谈论的,但是从理论上给风险下一个科学的统一定义并不容易,至今都还没有做到。经济学家、行为学家、风险理论家、统计学者和保险精算师们对风险都有自己不同的定义。一般来说,风险一词包括了三个方面的内涵:一是指风险是客观存在的,不管人们是否意识到,也不管人们是否估计出其大小,风险本身的存在是“绝对的”;二是指风险意味着出现了损失,或者是未能实现预期的目标;三是指损失是否出现是一种不确定的随机现象,可以用概率表示出现的可能程度,但不能做出确定性判断。在ISO13335-1:1996中,风险是这样定义的:给定威胁攻击一个或一组资产并因此对组织结构引起损害的潜在可能[2]。在这个概念的基础之上,风险评估即为以找出资产漏洞,分析资产威胁,威胁的潜在损失及威胁发生的可能性为出发点,对系统中的风险进行分析和 测量。 
风险评估主要是运用科学的方法和手段分析风险、评估确定风险结果并提出建议。风险评估过程:风险评估过程是基于风险评估的知识,将搜集、整理和分析风险有关的资产、漏洞、威胁、影响等要素资料的步骤和流程进行总结,风险评估工程实施流程的最佳实践和指南。虽然有很多风险评估过程,但分析评估过程的本质是搜集资产、威胁、漏洞、影响等资料和数据,因此其过程和流程都有一定的通用性。在此,给出一个通用的风险评估过程示例,所示例的风险评估过程是风险评估的原理性示例介绍,较适用于执行定性风险评估,也为论文中基于缺陷分析的软件风险评估工作提供了依据和参考。该通用风险评估过程示例包括以下8个主要步骤:识别和特征化系统;识别和特征化漏洞;识别和特征化威胁;识别和特征化安全控制措施;确定可能性;分析影响;确定风险;编制风险评估报告和推荐安全控制措施。 
通过对一些传统风险评估模型的分析发现这些评估模型存在以下问题:1)风险评估过程很多步骤需要专家的参与,并且依赖于安全专家的主观经验,存在一些难以量化的问题,尤其在风险发生概率和危害程度的评定上直接影响了软件安全评定的准确性。2)现有的很多风险评估模型存在风险事件的重复计算,这导致软件风险的评定上会出现较大误差。 
发明内容
鉴于目前已有的软件风险评估模型存在的问题,本发明提出了一种基于缺陷分析的软件风险评估方法,通过将软件模块化、缺陷识别、缺陷发生概率和危害程度的统计、软件后果属性的确定等多个步骤获得风险计算所需的输入数据,再利用这些数据进行后果属性因子和风险度的计算,最后通过计算加权平均数获得软件整体的风险值,并将风险定性到一个风险级别上。 
本发明提出一种基于缺陷分析的软件风险评估方法,预先特征化软件产品资产,即将软件产品划分成不同的功能模块(Part),模块的数量记为partNum,使软件产品 可识别,该风险评估方法包括以下步骤: 
步骤1、通过软件资产识别,缺陷分析和后果属性的评定获取风险计算所需输入数据及输入关系,包括: 
输入数据一:各个功能模块Part:{pi|i=1,2,...,partNum}; 
输入数据二:软件各个功能模块对应的权重 
PartWeight:{pwti|i=1,2,...,partNum}; 
权值通过AHP层次分析法得出,具体如下: 
a)将各个功能模块列成比较矩阵A; 
a)将各个功能模块的比较矩阵按照1-9标度法进行两两比较; 
b)进行权值计算,包括: 
将A的每一列向量归一化。 
a ij ‾ = a ij / Σ k = 1 n a kj , ( i = 1,2 , . . . , n ) - - - ( 1 )
对按列归一化的判断矩阵,再按行求和。 
W i ‾ = Σ j = 1 n a ij ‾ , ( i = 1,2 , . . . , n ) - - - ( 2 )
将向量 W i ‾ = [ W 1 ‾ , W 2 ‾ , . . . , W n ‾ ] T 归一化 
W i = W i ‾ / Σ i = 1 n W i ‾ , ( i = 1,2 , . . . , n ) - - - ( 3 )
c)一致性检验 
计算最大特征根: 
λ max = Σ i = 1 n ( AW ) i nw i - - - ( 4 )
计算一致性指标: 
CI = λ max - n n - 1 - - - ( 5 )
计算一致性比例: 
CR = CI RI - - - ( 6 )
当CR<0.1时,认为判断矩阵的一致性可以接受; 
通过上述方法,获得各个功能模块对应的权重。 
输入数据三:软件系统中存在的所有缺陷种类 
Defect:{wj|j=1,2,...,m},m为系统中存在缺陷的种类数; 
输入关系一:功能模块与缺陷多对多的映射关系; 
输入数据四:各个缺陷的危害程度和缺陷发生概率 
DemageWeight:{dwj|j=1,2,...,m},m为系统中存在缺陷的种类数; 
输入数据五:各个缺陷在软件中出现的概率 
Probability:{pwj|j=1,2,...,m},m为系统中存在缺陷的种类数; 
输入数据六:后果属性类型。 
Result:{rk|k=1,2,...resultNum};resultNum为后果属性的数量; 
输入关系二:缺陷与后果属性多对多的映射关系。 
输入数据七:后果属性对应的权重 
ResultWeight:{rwtk|k=1,2,...,resultNum};resultNum为后果属性的数量;后果属性对应的权重也由AHP层次分析法得出; 
将后果属性、缺陷发生概率、缺陷的危害程度作为扩展属性添加到缺陷库,该缺陷库以CWE数据库为基准; 
步骤2,计算各个模块各个后果属性的风险度Rt,包括:首先计算各个功能模块中每一个后果属性的后果属性因子,假设一个功能模块中检测出的缺陷为1…n,各个缺陷对应的缺陷危害程度和各个缺陷在软件中出现的概率分别为dw1,dw2…dwn和pw1,pw2…pwn,由此计算出后果属性因子 
&Sigma; j = 1 n dw j * pw j - - - ( 7 ) ,
n为一个模块中影响后果属性rk的缺陷个数; 
再以后果属性因子进一步计算出各个模块各个后果属性的风险度Rt: 
Rt k = &alpha; * exp - { &Sigma; j = 1 n dw j * pw j / &beta; } - - - ( 8 ) ,
n为一个模块中影响后果属性rk的缺陷个数,α,β为影响软件后果属性风险度总体趋势的系数; 
步骤3、计算整个软件各个后果属性的风险度sumRtk,包括:根据软件各个功能模块的权重(pwti)对各个后果属性的风险度计算加权平均值,得到整个软件各个后果属性的风险度sumRtk。 
sumRt k = &Sigma; i = 1 partNum pwt i * &alpha; * exp { - &Sigma; j = 1 n dw j * pw j / &beta; } , - - - ( 9 )
n为模块pi中影响后果属性rk的缺陷个数; 
步骤4、计算软件整体风险值,包括:根据各个后果属性的权重(rwtk)对整个软件的各个后果属性的风险度计算加权平均值,得到软件最终的风险值Risk 
Risk = &Sigma; k = 1 resultNum rwt k * &Sigma; i = 1 partNum pwt i * &alpha; * exp { - &Sigma; j = 1 n dw j * pw j / &beta; } , - - - ( 10 )
n为模块pi中影响后果属性rk的缺陷个数; 
步骤5、评定风险等级,包括:根据软件的风险值Risk,得到一个软件风险等级作为评估结果,风险值越低,风险等级越高,即软件的风险越大。根据风险结果取值范围的不同对风险等级划分标准进行调整。 
与现有技术相比,本发明具有如下优点:本发明克服了目前很多风险评估模型存在风险重复计算的问题,通过分析功能模块和缺陷多对多的关系和缺陷与后果属性多对对的关系,使用加权求平均值的方法计算软件整体风险值,最大程度地避免了风险重复计算的问题。由于目前大多数风险评估模型中的各风险要素赋值涉及较多的专家意见,且存在一些难以量化的问题。本方法最大程度避免了目前很多评估模型中存在的风险重复计算问题,采用层次分析法(AHP)来确定风险评估过程中所需要素的权重值,对其进行一致性检验,解决了目前很多风险评估模型中各风险要素赋值涉及较多专家意见 和一些难以量化的问题。通过这种风险评估方法,在软件测试阶段,软件工程师对软件系统的风险值进行评估,及时修复软件,提高软件开发的质量和效率,将软件风险控制在可接受的水平;同时,这种定量的评估方法也为软件产品的甄选、分级等提供了重要参考。 
附图说明
图1为本发明的基于缺陷分析的软件风险评估方法的整体流程图; 
图2为用户回执和软件项目风险关系示意图。 
具体实施方式
本发明的软件评估方法采用层次分析法(AHP)来确定风险评估过程中所需要素的权重值,并对其进行一致性检验。通过分析被评估的软件的功能模块与缺陷之间多对多的关系、缺陷与后果属性之间多对对的关系,使用加权求平均值的方法计算软件整体风险值,最大程度地避免了风险事件的重复计算。 
表1:1-9标度法及含义 
取值 比较结果的量化
1 同样重要
3 稍重要
5 明显重要
7 重要得多
9 极端重要
2,4,6,8 上述两相邻判断的折中
上述个数的倒数 反比较
[0063] 表2:平均随机一致性标度 
阶数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RI 0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45 1.49 1.52 1.54 1.56 1.58 1.59
表3:风险等级对照表 
风险值 0~2.0 2.1~4.0 4.1~6.0 6.1~8.0 8.1~10.0
风险等级 5 4 3 2 1
描述 很高 中等 很低
下面结合附图,进一步详细说明本发明的具体实施方式。 
以基于Altoro Mutual网上银行系统(http://demo.testfire.net)软件为例,来说明本发明的基于缺陷分析的风险评估方法。 
步骤1、通过软件资产识别、缺陷分析、后果属性评定获取风险计算所需输入数据及输入关系。 
软件资产识别: 
对被评估软件进行功能模块划分并对划分结果进行权重分配。根据AppScan扫描到的所有URL以及软件整体功能分析,为软件划分功能模块并根据各个功能模块在整个软件中的重要性划分权重PartWeight。在此软件中,网上银行相关操作即查看存款和账单、查看最近交易和转账等功能在软件中占得比重相对较重,在分配模块权重方面有所体现。从单纯功能上来讲,例如:登录并不是提供给用户的服务,而是为用户提供服务的入口,对应用软件的运行至关重要。所以,登陆模块容易引入缺陷,在此加重了登陆模块权重,重点分析登录功能。经AHP方法对权值进行一致性检验,得到各后果属性对应的权重值。如表4所示的软件的各个模块名称和相应权重,作为输入数据一和输入数据二。 
表4:Altoro Mutual功能简表 
Figure BDA00003155087300081
软件缺陷分析: 
识别出软件中存在的缺陷后,需要对软件缺陷的危害程度和缺陷在该软件中发生的概率进行分析和计算。缺陷的危害程度可以通过分析CWE缺陷库对该缺陷的描述以及组织机构等大量历史数据的统计、分析和计算得出。目前,现有的缺陷监测工具,在检测出缺陷后,会给出缺陷的严重性的描述,通过这种方式也可以确定缺陷的危害程度。 
选取IBM Rational AppScan8.0作为缺陷扫描工具对Altoro Mutual网站系统软件的各个URL进行扫描,共扫描到123个(31种)缺陷,作为输入数据三。分析扫描到的各个URL属于哪个功能模块,得到功能模块与缺陷多对多的映射关系,作为输入关系一。由上述的扫描结果对应读取预先设置的CWE缺陷库得到计算软件风险所需要的所有缺陷id和缺陷严重性等级。根据扫描得到的缺陷数目以及缺陷种类数目,按照公式(11)计算各个缺陷发生的概率pw。将概率pw再通过专家商议确定最终的值,分别作为输入数据四和输入数据五。目前,有很多漏洞监测工具可以帮助完成软件缺陷的识别。由于缺陷发生的概率问题很难特征化和量化,在此只是提出一种 计算方法作为参考,即,缺陷发生概率pwj
pwj=defectNumj/allDefectNum      (11), 
defectNj为m某一缺陷在此软件中出现的次数,allDefectNum为软件中检测到的所有缺陷数目; 
通过此计算方法得出来的概率值,需要再通过专家评审进行进一步的界定,确定其最终的值。 
缺陷越多,软件的风险也就越大。由上式可以看出后果属性因子越大,即缺陷越多,后果属性的风险度Rtk越小。也就是Rtk越小表示风险越大,Rtk越大表示风险越小。之所以采用这种方法,是因为软件风险值的总体变化趋势与指数函数相同。随着缺陷的增多,软件的风险也就越大。当缺陷多到某一程度后,软件的风险值也就失去了意义,因为软件本身已经失去了意义。当没有缺陷的时候,Rtk的值最大,即为α。但是根据风险的特点,风险是客观存在的,并不存在“0”风险的软件。在这里是对软件进行定量的风险评估,需要给出软件确定的风险值,但是需要注意的是当Rtk取最大值的时候,并不代表没有风险。其中α,β为影响软件后果属性风险度总体趋势的系数,在实验过程中可以通过调节该系数调整运算结果的精确度。为了给软件最终的风险分等级,可以通过调整α,β参数,将Rtk的值调整到0-10之间。 
根据被评估软件系统的实际情况,确定安全事件发生后的后果属性类型即可能在哪些方面对软件系统造成安全危害。后果属性的个数为resultNum。确定了后果属性后,需要对软件扫描出来的缺陷进行分析,确定缺陷会导致哪种后果属性的发生。缺陷与后果属性是多对多的映射关系,即一个缺陷可以导致多种后果属性,同样一种后果属性可以由多种缺陷产生。缺陷与后果属性的映射关系,需要具有大量知识和经验的安全专家进行评定。 
以Altoro Mutual网上银行系统为例,确定后果属性包括:失去完整性、失去可 用性、失去保密性。确定的依据是作为网上银行系统其保密性是非常重要的,如果用户信息被攻击者所获得,造成的危害程度不可想象,因此用户存在银行里的钱有可能被窃取,用户个人信息会被盗取。经过专家讨论,在分配后果属性权重方面,加重失去保密性的权重。经AHP方法对权值进行一致性检验,得到各后果属性对应的权重值。Altoro Mutual网上银行系统后果属性及相应权重作为输入数据六和输入数据七,如表5所示。 
表5:Altoro Mutual后果属性及其权重表 
后果属性 权重
失去完整性 30%
失去可用性 30%
失去保密性 40%
接下来需要确定后果属性的权重,即各个后果属性影响软件的整体比重。根据不同软件的特点由安全专家进行评定。如网上银行系统,其失去保密性相对于其他后果属性对应的权重占的比例就多。软件后果属性的数量为resultNum。后果属性的权重问题和功能模块权重的分配问题类似。采用前文提到的AHP层次分析法来确定各个后果属性的权重。根据IBM Rational AppScan扫描到的所有缺陷提供的安全风险信息及常见缺陷列表CWE(Common Weakness Enumeration)对缺陷信息的描述,确定该缺陷会导致哪种软件后果属性,得到输入关系二。通过分析整理,得到的扩展缺陷库包含如下内容:缺陷id,缺陷名字,缺陷导致的后果属性,缺陷发生概率和缺陷的严重性。表6列出了部分扩展缺陷库。AppScan还扫描到了4个没有在CWE中列出的缺陷,这里用+1,+2,+3,+4作为id号进行标识。 
表6:Altoro Mutual扩展缺陷库 
Figure BDA00003155087300101
Figure BDA00003155087300111
步骤2:计算各个模块各个后果属性的风险度Rt,如表7所示。 
由于AppScan将各个缺陷的危害程度分为高、中、低、参考信息四个级别。为了便于计算风险值将其分别赋予数值4、3、2、1。 
第一步:为各个模块的各个后果属性计算后果属性因子
Figure BDA00003155087300112
n为一个模块中影响某一后果属性的缺陷个数。 
第二步:根据下式计算出各个模块中各个后果属性的风险度Rtk。如表2-4所示。 
Rt k = &alpha; * exp - { &Sigma; j = 1 n dw j * pw j / &beta; }
因为缺陷越多,软件的风险也就越大。由上式可以看出后果属性因子越大,即缺陷越多,后果属性的风险度Rtk越小。也就是Rtk越小表示风险越大,Rtk越大表示风险越小。之所以采用这种方法,是因为软件风险值的总体变化趋势与指数函数相同。随着缺陷的增多,软件的风险也就越大。当缺陷多到某一程度后,软件的风险值也就失去了意义,因为软件本身已经失去了意义。当没有缺陷的时候,Rtk的值最大,即为α。但是根据风险的特点,风险是客观存在的,并不存在“0”风险的软件。在这里是对软件进行定量的风险评估,需要给出软件确定的风险值,但是需要注意的是当Rtk取最大值的时候,并不代表没有风险。其中α,β为影响软件后果属性风险度总体趋势的系数,在实验过程中可以通过调节该系数调整运算结果的精确度。为了给软件最终的风险分等级,可 以通过调整α,β参数,将Rtk的值调整到0-10之间。 
表7Altoro Mutual功能模块风险度列表 
Figure BDA00003155087300121
Figure BDA00003155087300131
步骤3:根据公式9计算软件各个后果属性的风险度sumRtk。 
失去完整性:sumRt1=3.2*10%+10*10%+7.6*5%+10*5%+2.8*2%+0.7*15%+ 2.3*15%+1.4*15%+1.1*10%+10*5%+6.1*5%+3.4*3%=3.9 
失去可用性:sumRt1=8.6*10%+10*10%+9.4*5%+9.9*5%+9.4*2%+8.8*15%+9.4*15%+8.6*15%+7.3*10%+9.1*5%+9.0*5%+7.7*3%=8.9 
失去保密性:sumRt1=2.7*10%+7.4*10%+7.2*5%+10*5%+2.8*2%+0.5*15%+1.9*15%+0.4*15%+0.9*10%+9.5*5%+5.6*5%+1.8*3%=3.3 
步骤4:根据公式10计算软件整体风险值: 
Risk=3.9*30%+8.9*30%+3.3*40%=5.2 
步骤5:根据Risk=5.2参照表8得出软件的风险等级为3,即中等。 
表8:风险等级对照表 
风险值 0~2.0 2.1~4.0 4.1~6.0 6.1~8.0 8.1~10.0
风险等级 5 4 3 2 1
描述 很高 中等 很低
评估效果分析 
由于本评估方法,涉及到软件的缺陷扫描、缺陷分类、缺陷严重性及概率的统计等方面内容,在此过程中受到许多客观环境的限制,也引入了一定程度的主观判断,这些都将对评估的准确性产生影响。但由于风险本身就是一个混合的主、客观要素的非定量概念,故此,风险评估结果在总体趋势上的吻合性也就保证了评估方法的合理性、可行性。 
参照IBM Rational AppScan工具导出的综合安全报告,报告的内容包括有漏洞的URL和无漏洞的URL的比较、安全性问题(按照威胁分类)、安全性问题(按照问题类型)以及软件漏洞的详细信息等方面。这些结果并不能直接反应软件总体的风险值,所以需要通过参考这些信息人为分析软件的风险。经过安全专家的评阅,最后得到Altoro Mutual网站的安全性能一般,与软件风险评估得出的风险值和风险等级相一致。证明了此风险计算方法的准确性。 
为了进一步验证此评估方法的合理性,将用户体验与此方法计算的风险值进行 比对,验证风险值是否与用户感受相一致。为此对acoforum网站,Crack Me Bank网站等软件系统进行缺陷分析,统计所需数据计算出各网站系统的风险值。再通过问卷调查法调查用户对软件系统的信任程度。使用0~10数值区间标识用户对软件信任程度的反馈。分数越高表明用户对软件系统信任程度越高,意味着软件风险越低。软件风险值的范围是0~10,如前文所述,风险值越高意味风险越低。如图2所示,此方法计算的风险值与用户感受成正比例关系,因此进一步验证了此方法的合理性。 
通过这种风险评估方法,在软件测试阶段,软件工程师对软件系统的风险值进行评估,及时修复软件,提高软件开发的质量和效率,将软件风险控制在可接受的水平;同时,这种定量的评估方法也为软件产品的甄选、分级等提供了重要参考。主要用于在软件测试阶段,软件工程师对软件系统的风险值进行评估,及时修复软件,提高软件开发的质量和效率,将软件风险控制在可接受的水平;同时,这种定量的评估方法也为软件产品的甄选、分级等提供了重要参考。 
使用该工具,得到每个缺陷在CWE缺陷库中的对应的缺陷id、危害程度和安全风险描述,运用统计的方法对缺陷发生概率进行计算,再运用发明内容中提到的风险计算方法进行风险计算,最后得出该系统的风险评估值。 

Claims (1)

1.一种基于缺陷分析的软件风险评估方法,预先特征化软件产品资产,即将软件产品划分成不同的功能模块,模块的数量记为partNum,使软件产品可识别,其特征在于,该风险评估方法包括以下步骤:
步骤(1)、通过软件资产识别、缺陷分析、后果属性评定获取风险计算所需输入数据及输入关系,包括:
输入数据一:各个功能模块Part:{pi|i=1,2,...,partNum};
输入数据二:软件各个功能模块对应的权重
PartWeight:{pwti|i=1,2,...,partNum};
权值通过AHP层次分析法得出,具体如下:
a)将各个功能模块列成比较矩阵A;
b)将各个功能模块的比较矩阵按照1-9标度法进行两两比较;
c)进行权值计算,包括:
将A的每一列向量归一化。
a ij &OverBar; = a ij / &Sigma; k = 1 n a kj , ( i = 1,2 , . . . , n ) - - - ( 1 )
对按列归一化的判断矩阵,再按行求和。
W i &OverBar; = &Sigma; j = 1 n a ij &OverBar; , ( i = 1,2 , . . . n ) - - - ( 2 )
将向量 W i &OverBar; = [ W 1 &OverBar; , W 2 &OverBar; , . . . , W n &OverBar; ] T 归一化
W i = W i &OverBar; / &Sigma; i = 1 n W i &OverBar; , ( i = 1,2 , . . . , n ) - - - ( 3 )
a)一致性检验
计算最大特征根:
&lambda; max = &Sigma; i = 1 n ( AW ) i nw i - - - ( 4 )
计算一致性指标:
CI = &lambda; max - n n - 1 - - - ( 5 )
计算一致性比例:
CR = CI RI - - - ( 6 )
当CR<0.1时,认为判断矩阵的一致性可以接受;
通过上述方法,获得各个功能模块对应的权重。
输入数据三:软件系统中存在的所有缺陷种类
Defect:{wj|j=1,2,...,m},m为系统中存在缺陷的种类数;
输入关系一:功能模块与缺陷多对多的映射关系;
输入数据四:各个缺陷的危害程度和缺陷发生概率
DemageWeight:{dwj|j=1,2,...,m},m为系统中存在缺陷的种类数;
输入数据五:各个缺陷在软件中出现的概率
Probability:{pwj|j=1,2,...,m},m为系统中存在缺陷的种类数;
输入数据六:后果属性类型。
Result:{rk|k=1,2,...resultNum};resultNum为后果属性的数量;
输入关系二:缺陷与后果属性多对多的映射关系。
输入数据七:后果属性对应的权重
ResultWeight:{rwtk|k=1,2,...,resultNum};resultNum为后果属性的数量;
将后果属性、缺陷发生概率、缺陷的危害程度作为扩展属性添加到缺陷库,该缺陷库以CWE数据库为基准;
步骤(2),计算各个模块各个后果属性的风险度Rt,包括:首先计算各个功能模块中每一个后果属性的后果属性因子,假设一个功能模块中检测出的缺陷为1…n,各个缺陷对应的缺陷危害程度和各个缺陷在软件中出现的概率分别为dw1,dw2…dwn和pw1,pw2…pwn,由此计算出后果属性因子
&Sigma; j = 1 n dw j * pw j - - - ( 7 ) ,
n为一个模块中影响后果属性rk的缺陷个数;
再以后果属性因子进一步计算出各个模块各个后果属性的风险度Rt:
Rt k = &alpha; * exp - { &Sigma; j = 1 n dw j * pw j / &beta; } - - - ( 8 ) ,
n为一个模块中影响后果属性rk的缺陷个数,α,β为影响软件后果属性风险度总体趋势的系数;
步骤(3)、计算整个软件各个后果属性的风险度sumRtk,包括:根据软件各个功能模块的权重(pwti)对各个后果属性的风险度计算加权平均值,得到整个软件各个后果属性的风险度sumRtk
sumRt k = &Sigma; i = 1 partNum pwt i * &alpha; * exp { - &Sigma; j = 1 n dw j * pw j / &beta; } , - - - ( 9 )
n为模块pi中影响后果属性rk的缺陷个数;
步骤(4)、计算软件整体风险值,包括:根据各个后果属性的权重(rwtk)对整个软件的各个后果属性的风险度计算加权平均值,得到软件最终的风险值Risk
Risk = &Sigma; k = 1 resultNum rwt k * &Sigma; i = 1 partNum pwt i * &alpha; * exp { - &Sigma; j = 1 n dw j * pw j / &beta; } , - - - ( 10 )
n为模块pi中影响后果属性rk的缺陷个数;
步骤(5)、评定风险等级,包括:根据软件的风险值Risk,得到一个软件风险等级作为评估结果,风险值越低,风险等级越高,即软件的风险越大。
CN201310164662.8A 2013-05-07 2013-05-07 基于缺陷分析的软件风险评估方法 Expired - Fee Related CN103366123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310164662.8A CN103366123B (zh) 2013-05-07 2013-05-07 基于缺陷分析的软件风险评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310164662.8A CN103366123B (zh) 2013-05-07 2013-05-07 基于缺陷分析的软件风险评估方法

Publications (2)

Publication Number Publication Date
CN103366123A true CN103366123A (zh) 2013-10-23
CN103366123B CN103366123B (zh) 2016-05-11

Family

ID=49367441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310164662.8A Expired - Fee Related CN103366123B (zh) 2013-05-07 2013-05-07 基于缺陷分析的软件风险评估方法

Country Status (1)

Country Link
CN (1) CN103366123B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008057A (zh) * 2014-06-13 2014-08-27 国家电网公司 一种基于缺陷分析的代码安全性评价方法
CN104376418A (zh) * 2014-11-20 2015-02-25 上海新炬网络信息技术有限公司 基于业务的系统变更风险控制方法
CN104915600A (zh) * 2015-04-28 2015-09-16 北京邮电大学 一种Android应用程序安全风险评估方法与装置
CN105407514A (zh) * 2015-11-23 2016-03-16 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种基于ahp/r-topsis的无线网络垂直切换方法
CN105719181A (zh) * 2014-12-05 2016-06-29 航天信息股份有限公司 风险等级评估方法及装置
CN106682161A (zh) * 2016-12-26 2017-05-17 北华大学 一种日语发音矫正系统
CN107301283A (zh) * 2017-06-12 2017-10-27 西北工业大学 基于设计变化矩阵的产品方案设计阶段风险评估方法
CN108563566A (zh) * 2018-04-09 2018-09-21 郑州云海信息技术有限公司 一种系统的风险分析方法及系统
CN108874676A (zh) * 2018-06-27 2018-11-23 北京金山安全软件有限公司 测试资源的分配方法及装置
CN110083514A (zh) * 2019-03-19 2019-08-02 深圳壹账通智能科技有限公司 软件测试缺陷评估方法、装置、计算机设备及存储介质
CN110163532A (zh) * 2019-05-30 2019-08-23 深圳前海微众银行股份有限公司 风险评估方法、风险管理方法、装置、设备及存储介质
CN110276201A (zh) * 2019-06-18 2019-09-24 广州小鹏汽车科技有限公司 一种车载系统的安全检测方法、系统及服务设备
CN111291375A (zh) * 2020-02-25 2020-06-16 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 应用程序评估方法、装置、计算机设备和存储介质
CN112651620A (zh) * 2020-12-22 2021-04-13 深圳创维-Rgb电子有限公司 系统级软件需求处理方法、装置、终端设备及存储介质
CN113435195A (zh) * 2021-07-01 2021-09-24 贵州电网有限责任公司 一种基于主变负载特性的缺陷智能诊断模型构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210241A (ja) * 2007-02-27 2008-09-11 Mitsubishi Electric Corp インストール支援装置及びインストール支援プログラム及びインストール支援方法
CN101819617A (zh) * 2010-05-06 2010-09-01 天津大学 基于软件缺陷的软件可信性定量评估方法
CN102073823A (zh) * 2011-02-25 2011-05-25 天津大学 一种基于缺陷分析的软件可信性评价方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210241A (ja) * 2007-02-27 2008-09-11 Mitsubishi Electric Corp インストール支援装置及びインストール支援プログラム及びインストール支援方法
CN101819617A (zh) * 2010-05-06 2010-09-01 天津大学 基于软件缺陷的软件可信性定量评估方法
CN102073823A (zh) * 2011-02-25 2011-05-25 天津大学 一种基于缺陷分析的软件可信性评价方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李晓红等: "基于缺陷分析与测试评审的软件可信性评价方法", 《清华大学学报》, vol. 51, no. 10, 15 October 2011 (2011-10-15) *
杨晓明等: "信息系统安全风险评估技术分析", 《计算机应用》, vol. 28, no. 8, 31 August 2008 (2008-08-31) *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008057A (zh) * 2014-06-13 2014-08-27 国家电网公司 一种基于缺陷分析的代码安全性评价方法
CN104376418A (zh) * 2014-11-20 2015-02-25 上海新炬网络信息技术有限公司 基于业务的系统变更风险控制方法
CN104376418B (zh) * 2014-11-20 2018-05-25 上海新炬网络信息技术股份有限公司 基于业务的系统变更风险控制方法
CN105719181A (zh) * 2014-12-05 2016-06-29 航天信息股份有限公司 风险等级评估方法及装置
CN104915600A (zh) * 2015-04-28 2015-09-16 北京邮电大学 一种Android应用程序安全风险评估方法与装置
CN104915600B (zh) * 2015-04-28 2017-11-10 北京邮电大学 一种Android应用程序安全风险评估方法与装置
CN105407514A (zh) * 2015-11-23 2016-03-16 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种基于ahp/r-topsis的无线网络垂直切换方法
CN106682161A (zh) * 2016-12-26 2017-05-17 北华大学 一种日语发音矫正系统
CN107301283B (zh) * 2017-06-12 2020-05-01 西北工业大学 基于设计变化矩阵的产品方案设计阶段风险评估方法
CN107301283A (zh) * 2017-06-12 2017-10-27 西北工业大学 基于设计变化矩阵的产品方案设计阶段风险评估方法
CN108563566A (zh) * 2018-04-09 2018-09-21 郑州云海信息技术有限公司 一种系统的风险分析方法及系统
CN108874676A (zh) * 2018-06-27 2018-11-23 北京金山安全软件有限公司 测试资源的分配方法及装置
CN110083514A (zh) * 2019-03-19 2019-08-02 深圳壹账通智能科技有限公司 软件测试缺陷评估方法、装置、计算机设备及存储介质
CN110083514B (zh) * 2019-03-19 2023-03-10 深圳壹账通智能科技有限公司 软件测试缺陷评估方法、装置、计算机设备及存储介质
CN110163532A (zh) * 2019-05-30 2019-08-23 深圳前海微众银行股份有限公司 风险评估方法、风险管理方法、装置、设备及存储介质
CN110276201A (zh) * 2019-06-18 2019-09-24 广州小鹏汽车科技有限公司 一种车载系统的安全检测方法、系统及服务设备
CN110276201B (zh) * 2019-06-18 2021-09-03 广州小鹏汽车科技有限公司 一种车载系统的安全检测方法、系统及服务设备
CN111291375A (zh) * 2020-02-25 2020-06-16 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 应用程序评估方法、装置、计算机设备和存储介质
CN111291375B (zh) * 2020-02-25 2022-04-26 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 应用程序评估方法、装置、计算机设备和存储介质
CN112651620A (zh) * 2020-12-22 2021-04-13 深圳创维-Rgb电子有限公司 系统级软件需求处理方法、装置、终端设备及存储介质
CN113435195A (zh) * 2021-07-01 2021-09-24 贵州电网有限责任公司 一种基于主变负载特性的缺陷智能诊断模型构建方法
CN113435195B (zh) * 2021-07-01 2023-10-03 贵州电网有限责任公司 一种基于主变负载特性的缺陷智能诊断模型构建方法

Also Published As

Publication number Publication date
CN103366123B (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN103366123A (zh) 基于缺陷分析的软件风险评估方法
CN110634080B (zh) 异常用电检测方法、装置、设备及计算机可读存储介质
Angelos et al. Detection and identification of abnormalities in customer consumptions in power distribution systems
CN103247008B (zh) 一种电力统计指标数据的质量评估方法
CN106650797B (zh) 一种基于集成elm的配电网窃电嫌疑用户智能识别方法
CN104376400A (zh) 基于模糊矩阵层次分析法的风险评估方法
CN106651169A (zh) 基于模糊综合评价的配电自动化终端状态评价方法及系统
CN104035431B (zh) 用于非线性过程监控的核函数参数的获取方法和系统
CN102467684A (zh) 基于改进雷达图的综合性能评估系统和方法
CN110619467B (zh) 一种基于告警大数据信息的电力设备状态评估方法
CN102609778A (zh) 一种电力通信网风险评估方法及装置
CN103065050A (zh) 一种信息系统运维期健康度状态层次判断方法
CN104243478A (zh) 网络设备的安全防护能力评估方法及设备
CN101226614A (zh) 一种网络资产重要性评估方法
CN111401784B (zh) 一种消防安全等级评估方法
CN115471097A (zh) 一种数据驱动的井下局部区域安全状态评估方法
CN104766250A (zh) 一种管廊管道的风险因素权重值计算方法
CN113408114A (zh) 一种评估电力监控系统设备脆弱性威胁程度的方法及系统
CN103970651A (zh) 基于组件安全属性的软件体系结构安全性评估方法
CN115345414A (zh) 一种输油气管道工控网络信息安全性评价方法及系统
Kim et al. Ensemble CNN model for effective pipe burst detection in water distribution systems
CN113919932A (zh) 一种基于贷款申请评分模型的客户评分偏移检测方法
CN101527016A (zh) 出入境检验检疫符合性条件的筛选方法
CN105930638A (zh) 基于退化数据的产品零部件可靠性评估方法
Aboshady et al. A fuzzy risk management framework for the Egyptian real estate development projects

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160511