基于漏洞属性分析的软件安全评估方法
2018-03-06王国仕冯世杰吕志鹏
◆刘 振 王国仕 冯世杰 吕志鹏
基于漏洞属性分析的软件安全评估方法
◆刘 振 王国仕 冯世杰 吕志鹏
(海南电网有限责任公司信息通信分公司 海南 570203)
随着科学技术发展,互联网在生活中应用日益广泛,软件工业发展的速度非常快,并且规模持续增长,软件内部逻辑变得更加复杂。软件在网络环境运行下还会面对许多不确定因素,由此使软件面临严重的安全问题。对于用户而言,软件质量与安全十分重要,因此如何确保软件安全从而使信息安全能够得到有效保障,是软件行业发展需要面对并解决的问题。本文就基于漏洞属性分析的软件安全评估方法作简要阐述。
漏洞属性分析;软件安全;评估方法
0 前言
网络与信息系统自身具有良好的开放性与复杂性,因此软件程序容易受到各方面攻击,包括内部或者是外部。漏洞始终是存在的,因此就需要工作人员通过技术更新增强安全防护从而使用户在使用软件的过程中,各方面安全能够获得保障。
1 软件安全性评估方法
风险矩阵评估方法,此种方法应用于安全分析工作是最为常见的,鉴于与安全评估工作存在关联的因素比较多,并且各项因素之间存在的非常复杂的联系,彼此之间会产生影响,因此有必要通过矩阵对其进行安全性评估。网络环境不同时,软件运行的安全性也会存在差异,同时软件受影响程度也会存在差异。风险矩阵是比较传统的方法,需要大量的数据支持开展工作,并且需要工作人员有足够丰富的工作经验,以此才能对失效严重程度及其标准率进行具体的量化,数据结果也才能够更加的准确。将此种方法应用于安全评估工作,能够使安全评估工作的客观性等级获得提升,并且评估结果的准确性也能够得到保障。
软件安全模糊评估方法,此种方法应用于安全评估工作在具体操作方面是通过输入非预期值,并且对系统异常进行监控从而发现软件存在的安全漏洞。由于软件在安全漏洞方面存在不确定性与复杂性,因此环境差异会使软件受威胁程度存在差异,并且环境存在的差异性对软件造成的危害也会存在差异,对软件进行安全性进行评估也存在较大的不确定性,采用此种方法进行评估,结果及其过程都模糊的[1]。
基于可靠性的软件安全评估方法,软件可靠与安全性是软件两种重要的属性,而软件安全与可靠性研究工作也是安全领域的难点与重点。在初级阶段,软件安全与可靠性可以考虑利用可靠性模型进行评估。此外二者研究工作的重点还在于相互比较,有研究人员认为系统不安全,因此其可靠性就一定无法得到保障,因此可以通过对软件运行的安全性进行计算与分析,从而获得与软件可靠性相关的指标,以此为开展后期工作提供帮助。
2 软件安全评估与漏洞
软件安全是指在受到外部或者是内部攻击情况下,程序依旧能够正常运行,软件安全性则是指受到外部或者内部攻击时,系统受到损害的概率。系统受到的危害可以将其分为财务损失、物理损失等。可靠与安全性作为最重要的两个属性,安全性能够为人们财产安全提供足够的保障。研究人员发现,防火墙已经逐渐失去了其原有的效果,软件安全性更加强调在某些方面可能会受到攻击,研究工作的重点在于潜在的危险。软件安全性主要体现在以下方面:可用性、完整性、责任性、保密性等。
任何软件都会存在漏洞,因此依据定义的不同可以对漏洞进行不同的分类。比如基于空间状态、访问角度、模糊定义进行划分等,不同的定义都会存在局限性。漏洞安全属性也可以将其分为多个方面,比如,攻击属性、因果关系、时间相关以及其它属性等,而对于每一类属性又可以具体进行细分。安全漏洞分类可以结合协议原因与产生后果等方面分为以下几种:依据协议进行划分,依据对系统造成的危害进行划分,依据攻击的方式进行划分,依据漏洞的起因。依据漏洞形成原因又可将其划分为分析、设计、维护、实现、配置等阶段。
3 漏洞风险与安全评估工作之间的关系
风险指的是能够导致财产受到危害或者是利用事物已有的弱点从而使其受到损害的可能性,也可以将其理解为某些特定的事件在一定环境条件发生可能性及后果的结合。安全分析工作中,软件安全性特定事件是可能会导致软件完整性、保密性及可用性受到破坏的漏洞。
对安全风险进行评估的方法有多种,常用的包括了以下几种,定量分析与定性分析、基于模型而开展的半定量分析,三种方法优缺点不同。其中定性的分析方法是利用了具体数值将风险进行量化从而计算得到结果,具有较强的客观与直观性,但是应用此种方法时,量化的方法比较难以掌握。定量分析的方法进行细分包括了模糊综合评定、社经网络等。采用定性的方法进行分析,需要结到评估人员的个人经验以及相关数据,工作结果会呈现出较强主观性,主要包括专家评价法、安全检查表、事件树与事故树分析、因果分析、潜在问题分析、作业安全分析等方法[2]。最后一种安全评估方法需要结合到被评估的具体信息而建立相应的系统从而开展工作,通过模型建立,利用多种或者是一种能够有效反映风险的系数对系统整体风险进行评估,此处方法应用于评估工作能够有效有结合前两种评估方法的优点,从而确保评估工作的结果更加准确。
风险评估早期应用于安全性方面,之后则引入并且应用于软件安全性分析,软件安全风险主要是安全漏洞可能会带来的一系列不确定的后果。而漏洞受威胁性、脆弱性与风险评估中威胁存在的可能性、脆弱性严重程度有密切对应关系。因此对漏洞进行安全分析与风险评估两者之间也存在密切关系。
软件功能在日益丰富,并且运行的环境也趋向于复杂,因此影响到软件安全运行的因素也越来越多。有研究结果表明,软件安全漏洞增长的速度与代码行数的平方成正比。对软件复杂性有影响的还包括了代码集成紧密程度,补丁以及修改后重叠率等。由此也可以得出结论,软件存在的安全漏洞数量越多,软件安全性表现就会越差。
4 基于STRIDE模型软件安全性评估
此模型是微软开发的,其主要作用在于对存在的危害进行识别分类,从而使工作人员能够对其影响进行准确的评估,基于此而找出解决问题的方法,从而使问题出现的概率最小化或者是受到的影响最低。此模型中,六方面安全威胁分别是假冒、篡改、否认、信息泄露、拒绝服务与安全权限等。而上述威胁与软件安全属性之间存在某种对应关系,因此利用该模型对软件安全性进行研究能够获得比较好的效果。
基于此模型进行的风险评估,能够将抽象的风险具体化,目标达成主要是通过模型应用。对软件运行面临的不安全因素进行分析从某种程度上来讲,就是分析软件或者软件运行环境存在的漏洞,并且将此类事件进行汇总与分析,从而与模型相对应。通过此种方法建立模型的好处在于,风险评估的结果明确并且直观,可以基于模型的六项指标从而对风险大小进行分析与判定,以此确定对漏洞进行修复的顺序。风险评估工作作用还在于能够判定软件是否能够有效承受风险,而此目标主要是在软件评估测试环节完成。如果评估的结果低于软件风险水平,则可以认为软件是安全的。从微观层面分析,导致软件面临安全风险的原因在于网络环境与软件自身在安全方面存在漏洞,因此分析工作从漏洞着手是最为有效的方法,能够从根源查找导致风险存在的因素。
5 结束语
软件功能丰富为人们生活以及生产工作的开展提供便利,但是另一方面软件漏洞是无法避免的,漏洞的存在会使软件在运行过程中的安全性受到威胁。软件功能在丰富的同时,所处地环境越复杂,软件面临的风险就会越大,因此软件漏洞数量与其复杂性是成正比的。鉴于漏洞对软件造成的严重影响,需要通过有效的方法对其进行分析与评估,从而采用针对性措施以降低风险或者是受影响的程度,确保整体系统能够安全稳定运行。
[1]韦涛,彭武,王冬海.基于漏洞属性分析的软件安全评估方法[J].电光与控制,2015.
[2]戚荣波,杜晶,杨叶.基于通用知识的软件设计安全性评估[J].计算机系统应用,2013.