基于软件缺陷的软件可信性定量评估方法

文档序号:6601894阅读:170来源:国知局

专利名称::基于软件缺陷的软件可信性定量评估方法
技术领域
:本发明以软件的可信性质为主要研究对象,致力于量化度量软件的可信性质及可信程度,属于软件安全领域。
背景技术
:随着信息时代软件行业的迅速发展,软件已经渗透到现代生活的方方面面,然而信息产业在让更多的用户感受到便利的同时,也导致了大量的安全隐患。如何保障软件的服务质量与服务品质就自然成为广大用户关注的重大问题。在这样的背景下,信息安全技术的重要性不言而喻,可信软件的概念及相关技术也应运而生。与美国及欧洲部分国家相比,我国在可信软件方面的研究起步较晚。然而国家高技术研究发展计划(863计划)的信息技术方向自2007年起陆续启动了多项与可信软件相关的重大项目,投入了大量人力物力,充分体现了国家信息领域对该问题的重视及解决这一重大课题的决心。与其它科研领域相比较,信息安全领域又存在着高机密性、高风险性的特征,这对我国的自主科研能力提出了更高的要求。可以毫不夸张的说,我国只有拥有了自己的可信标准、可信平台和可信工具,才能真正保证我国信息安全技术在可信软件领域的独立自主,才能真正保证国家信息安全不受外力威胁。关于软件可信性的评估,已存在若干解决办法。BijayK.Jayaswal与PeterC.Patton在其合著[1]中将软件可信定位在以下五个要素上可靠性、人身安全、软件安全、可维护性及客户响应。我国的陈火旺院士在其论文[2]中指出,可信软件应具体如下几方面特征可靠性、可靠安全性、保密安全性、生存性、容错性、实时性。现有的软件可信评估方法都是针对软件成品进行,而且难以量化。因此本发明提出一种可以在软件开发整个过程中的进行评估的量化方法。
发明内容本发明的目的是,综合考虑现有方法的利弊,提出一种基于软件缺陷的可信性评估方法,该评估方法通过对软件模型或产品中暴露出的缺陷的评价,来预测和考量软件成品的可信程度,可以在软件开发的整个过程中对软件的可信性进行相对完整、准确、定量的阶段性评估。通过采用本发明提出的评估方法,可以使开发人员更清楚的了解到其软件产品面临的安全问题,并重新改进其薄弱之处,直至达到满意的效果。本发明提出的一种基于软件缺陷的软件可信性定量评估方法,包括下列步骤(1)通过对UML图分析,得到该软件可能存在的缺陷;(2)根据可信的定义,将每个缺陷归属到安全攸关类、隐私安全攸关类及容错攸关类缺陷中的一类;(3)确定各个缺陷可能存在的攻击模式;(4)通过对所涉及的攻击模式所造成的危害程度的分析,按照危害程度的高低,确定各个攻击模式相应的威胁程度Damage等级,并对各个威胁程度Damage等级进行量化,危害程度越高,量化数值越高;(5)对于每个缺陷,在可能存在的各个攻击模式中,选取相应的威胁程度Damage量化数值最大的,作为该缺陷的缺陷危害程度DW;(6)根据每个缺陷对软件的影响程度,确定各个缺陷对软件整体的影响因子EfC的等级及其量化数值,影响程度越大,量化数值越高;(7)对于某一类缺陷,设属于该类的各个缺陷的陷威胁程度分别为DW1,DW2,……DWn,相应缺陷的影响因子分别为EfCl,EfC2,……EfCn,根据可信性度量公式Trustworthy=10*Εχρ[-Σ(DWi*EfCi)/10]+l,确定该类缺陷的可信性度量值Trustworthy。本发明以软件缺陷为入手点来量化评估软件的可信程度,存在如下三个明显的优点1.传统的可信评估方式是将关键特性作为可信载体、通过估计关键特性来估计可信程度,所得出的结论仅可以从若干要素的角度描述软件的可信性,无法精确量化。而通过评估软件本身所包含的缺陷来评价软件整体可信性能时,软件整体可信性是可以通过对缺陷的量化评价来实现的。2.这种评估方法不但可以用来评价软件成品的可信性能,同时也可以用来评价开发中软件或软件设计的可信程度。事实上,目前的评估体系也正是将这一部分作为重点。3.传统可信评价的办法对评估人本身的专业素质要求非常高,若要针对某一软件进行评价,就必须请评估专家对该软件进行全面分析。而通过评价缺陷来进行评估的话,评估专家只需要提供与缺陷库中缺陷相关的评价即可,而不必逐一分析待评价的软件。这样就为机器自动分析提供了充分可能,从而大幅降低软件可信评估的成本。图1、可信性的维度。图2、软件评价概图。图3、本发明的整体的评估过程示意图。图4、登录活动图。图5、登录时序图。具体实施例方式1.问题的确切定位虽然对可信性的精确定义尚无定论,但是概念上讲,可以将可信性定位为一种系统应该得到信任的保证无论是在环境干扰、人为操作错误、恶意攻击或设计实现错误的情况下,系统行为都不超出预期。这一定义涵盖的特性包括正确性、可靠性、安全性(秘密性、保密性、完整性、可用性)、隐私安全和容错性[3]等。上述各概念的准确界定可在文献[3]中找到,它们之间的层次关系如图1所示。正确性是与软件攻击密切相关的性质,可以通过模型检测及功能性测试来评价;可靠性是指软件提供稳定服务的能力,可以通过对软件成品的性能测试进行评价。这两个方面的性质通常是在软件完成后才可以测得的,且所用技术相对成熟,所以未将其纳入到研究的范围之内。而安全性、隐私安全、容错性这三者是可以通过对相应类别软件缺陷的评价来间接考量的,是本发明研究的重点。本发明即是将软件可信性的评估定位在对安全性(S)、隐私安全(P)性及容错性(E)的量化上,即是说,软件的可信程度将以一个三维向量[S,P,E]的方式表示。对于情况未知的软件,其可信度初始值为[_1,-1,-1],随着对其各方面特性的了解,可以在此基础上对各向量分量的值进行修改。最后的运算结果限定在0-10之间;数值越大则表示其可信程度较好;反之,则可信度不理想。2.总体路线I软件可信性评估方法以软件在生命周期内任意一段时间内产生的软件缺陷为入手点,对软件本身的可信性进行评估。具体的讲,就是通过相应工具检测出软件设计或软件产品中的软件缺陷。一个软件实体包含的软件缺陷会影响其安全性、容错性等各方面可信性能。如果我们将软件缺陷的范围进行扩展,即是说将不够好的设计及实现归结为一种缺陷,就可以得出这样的结论软件的可信程度依赖于软件缺陷的严重程度。这个结论在绝大部分情况下是成立的。那么通过对一个软件实体内含有的软件缺陷进行评价,再综合考虑缺陷对软件整体的影响(OverallEffect),就可以得到软件本身可信性的量化评价。其主要过程如图2所示。II软件缺陷的评价软件缺陷(Weakness)的概念与软件脆弱点(Vulnerability)有所不同,它侧重描述软件在开发过程中表现出的不足。若开发过程中出现的缺陷不能及时修复,出现在软件成品中的将是软件脆弱点,其导致的后果会更严重,修复的代价也更高昂。但由于软件脆弱点是在软件成品中出现的,它易于通过测试及使用过程监督等办法进行检测。目前对软件脆弱点的评价已出现一些比较通用的方法,例如由FIRST(ForumofIncidentResponseandSecurityTeams)赞助支持的CommonVulnerabilityScoringSystem-SpecialInterestGroup(CVSS-SIG)提出并维护的CVSS评价体系,已经得到许多公司的认可,取得了较好的成果。但针对于缺陷的评价却仍然没有一个相对完整的体系可循。由于软件缺陷是在软件开发过程中出现的,并没有软件成品可供测试或检测,所以其威胁程度很难得到。因此,本发明将采用攻击模式为入手点,来解决这一问题。攻击模式是在众多攻击方法中抽象出的行为模型,它描述攻击者实施攻击的前置条件、行为路线等。简单的讲,攻击模式就是一个攻击的蓝图。而这个蓝图实施后的结果及危害性等是可以通过对实际攻击行为的监测得到的。从根本上讲,攻击行为之所以可以得逞,是因为软件本身存在着不足。换言之,软件本身存在的缺陷是攻击模式的前置条件。这样的关联就建立起了攻击模式与软件缺陷之间的对应关系。现在假设我们已经得到了攻击模式的危害程度(Damage),那么基于危害程度的相关数据,就可以对攻击模式的威胁程度进行评价。更进一步的,可以对软件缺陷进行评价。其总体过程如图3所示与图3保持一致的,椭圆框标记的项目为需要测得的数据。本发明分别以CWE(CommonWeaknessEnumeration)及CAPEC(CommonAttackPatternEnumerationandClassification)作为软件缺陷库与攻击模式库。二者的完备性和实时性较高,且库内部分缺陷与攻击模式之间的对应关系已经建立,为进一步评估创造了良好的前提条件。III软件可信性评价对软件缺陷的评价后根据可信的定义将缺陷进行归类。本发明中是以可信关键性质为标准进行分类,即是说若某缺陷的出现将影响到软件产品的该项属性,则将此缺陷归为此属性对应的缺陷类。具体的讲,就是要将缺陷分为安全攸关类、隐私安全攸关类及容错攸关类。在不同的可信类别下,结合缺陷评价的相关数据和该缺陷对软件整体的影响因子就可以达到对软件相应属性的可信性的全面完整地度量。3、具体评价方案为了对软件缺陷的威胁性进行评价,针对各安全要素提出如下量化方案I攻击模式威胁性的评估根据攻击造成的危害程度将攻击模式威胁程度Damage分为四个级别A、严重危害重要信息数据丢失,系统崩溃,或系统功能失效,遭遇后无法恢复(量化数值9-10);B、较严重危害密码等重要信息丢失,会导致系统功能失效,遭遇后较难恢复(量化数值6-8);C、一股性危害对系统性能有轻微影响,较容易恢复。(量化数值3-5);D、小的影响影响操作使用,极易恢复。(量化数值1-2)。上述分类的量化数值是根据相应级别对最终值影响的趋势拟定的,需要对攻击模式进行一定的分析。II缺陷的危险程度评估假设缺陷WeaknessA,可能被攻击模式Al,A2,…,An所攻击,各攻击模式威胁程度Damage量化值为Dl,D2-Dn,则该缺陷危险程度值DW定义为DW=Max{D1,D2...Dn);III.软件整体影响的评估将缺陷对软件整体的影响用影响因子EfC表示,并将EfC分为四个级别None该缺陷对当前环境下的软件无影响(量化值0%);Low该缺陷对当前环境下的软件影响较小(量化值1%-25%);Medium该缺陷对当前环境下软件影响达到一定的程度(量化值26%-75%);High该缺陷对当前环境下的软件影响非常大(量化值76%-100%);IV软件的可信度量化将软件缺陷进行分类(安全攸关类、隐私安全攸关类、容错攸关类),某一特定类别的缺陷会影响软件整体在该方面的可信特性。设相应类别的缺陷威胁程度分别为DW1,DW2,……DWn,相应缺陷的影响因子分别为EfCl,EfC2,......EfCn;则此类别可信性度量值为Trustworthy=10*Εχρ[-Σ(Dffi^EfCi)/10]+1下面通过一个在线银行应用程序的设计及实现过程来展示本发明的作用和效果。通过对在线网上银行应用程序进行建模,绘制活动图和时序图作为描述整个应用程序的概图如图4、5所示。通过人工对活动图的分析,在CWE缺陷库中发现对用户账号密码进行验证这部分存在不合适的身份验证缺陷(CWE-287ImproperAuthentication)。接下来通过对登录时序图的分析(如图5),发现进行验证过程中存在明文传输敏感信息缺陷(CWE-319:CleartextTransmissionofSensitiveInformation)。CWE-287和CWE319缺陷相关的攻击模式在CAPEC(CommonAttackPatternEnumerationandClassification)攻击模式库中可获得(表1)。表1<table>tableseeoriginaldocumentpage7</column></row><table>通过对攻击模式危害性分析并赋值,取相关攻击模式的最大危害值作为对应缺陷的威胁度量。对于缺陷CWE-287,其威胁程度量化值为8,对应CAPEC-114攻击模式的危害值;对于缺陷CWE-319,其威胁程度量化值为7,对应CAPEC-102攻击模式的危害值。再结合各缺陷特性及对软件整体的影响进行分析量化,CWE-287影响软件系统的Security属性,其对软件整体的影响因子量化为0.8;CWE-319影响软件系统的Security属性,其对软件整体的影响因子量化为0.9,综合得出软件缺陷的总体评价(表2)。表2<table>tableseeoriginaldocumentpage8</column></row><table>根据各个缺陷的总体评价,最后利用软件可信性评价公式Trustworthy=10*Εχρ[-Σ(Dffi^EfCi)/10]+1可以得出软件可信性评价(表3)。此处假设在线银行应用程序的缺陷仅为以上两个,而CWE-287和CWE-319均影响软件系统的Security属性,故属于S类别。系统在S向量上可信得分为2.8,而P、E向量上的可信情况未知,所以均记为-1。表3<table>tableseeoriginaldocumentpage8</column></row><table>参考文献[1],ISBN0131872508,DesignforTrustworthySoftware[S].2008.[2],陈火旺,王戟等.高可信软件工程技术[J].电子学报,2004,(31)1934-1938.[3].SteffenBecker,MarkoBoskovic,etc.TrustworthySoftwareSystems:ADiscussionofBasicConceptsandTerminology[J].ACMSIGSOFTSoftwareEngineeringNotes,2006,(31).权利要求一种基于软件缺陷的软件可信性定量评估方法,包括下列步骤(1)通过对UML图分析,得到该软件可能存在的缺陷;(2)根据可信的定义,将每个缺陷归属到安全攸关类、隐私安全攸关类及容错攸关类缺陷中的一类;(3)确定各个缺陷可能存在的攻击模式;(4)通过对所涉及的攻击模式所造成的危害程度的分析,按照危害程度的高低,确定各个攻击模式相应的威胁程度Damage等级,并对各个威胁程度Damage等级进行量化,危害程度越高,量化数值越高;(5)对于每个缺陷,在可能存在的各个攻击模式中,选取相应的威胁程度Damage量化数值最大的,作为该缺陷的缺陷危害程度DW;(6)根据每个缺陷对软件的影响程度,确定各个缺陷对软件整体的影响因子EfC的等级及其量化数值,影响程度越大,量化数值越高;(7)对于某一类缺陷,设属于该类的各个缺陷的陷威胁程度分别为DW1,DW2,……DWn,相应缺陷的影响因子分别为EfC1,EfC2,……EfCn,根据可信性度量公式Trustworthy=10*Exp[-∑(DWi*EfCi)/10]+1,确定该类缺陷的可信性度量值Trustworthy。全文摘要本发明属于软件安全领域,涉及一种基于软件缺陷的软件可信性定量评估方法,该方法包括根据可信的定义,将每个缺陷归类;确定各个缺陷可能存在的攻击模式;通过对所涉及的攻击模式所造成的危害程度的分析,按照危害程度的高低,确定各个攻击模式相应的威胁程度等级;对于每个缺陷,在可能存在的各个攻击模式中,选取相应的威胁程度量化数值最大的,作为该缺陷的缺陷危害程度;根据每个缺陷对软件的影响程度,确定各个缺陷对软件整体的影响因子的等级;对于某一类缺陷,根据可信性度量公式确定该类缺陷的可信性度量值。采用本发明提出的方法,可使开发人员更清楚的了解到其软件产品面临的安全问题,并重新改进其薄弱之处,直至达到满意的效果。文档编号G06F21/00GK101819617SQ20101016461公开日2010年9月1日申请日期2010年5月6日优先权日2010年5月6日发明者曹燕,李晓红,杜洪伟,王翔宇,胡昌申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1