4.3.1 漏洞安全危害属性分析

4.3.1 漏洞安全危害属性分析

信息系统安全漏洞的危害性和多种因素相关联,目前国内外相关的研究基本上是给漏洞一种“高”“中”“低”类型的定性结论,而且对这种定性的结论给予很少或者简单的解释,缺乏一种科学、权威的分析过程和规范。

漏洞安全危害及影响,从攻击的角度来看,主要涉及四个方面的因素:一是漏洞攻击利用需要的条件;二是攻击成功的可能性;三是成功利用后造成的访问权限和安全损害;四是具体的系统环境,决定了实际环境中风险的大小。

1.攻击条件

攻击条件主要是要利用漏洞所需要的客观环境和条件的特征,如攻击位置、鉴别认证、攻击代码等部分内容。

(1)攻击位置

对漏洞发起攻击时,根据攻击者在本地还是远程,具体可分为以下三种。

本地:漏洞只能被本地利用,攻击者需要能够物理接触有漏洞的系统或者具有能够访问系统的本地账号,如火线/USB DMA攻击,本地账号权限提升攻击。

本地网络:需要接入目标系统所在的本地网络,如本地IP子网络、蓝牙网络、IEEE 802.8无线局域网、本地以太网络等。

远程:漏洞可被远程利用(也可以本地利用),利用该漏洞不需要本地访问和本地网络访问,如RPC漏洞可以通过互联网络远程成功利用。

(2)鉴别认证

鉴别认证说明利用漏洞攻击目标系统需要的鉴别次数。该属性不衡量鉴别进程的强度或复杂度,只是用来说明攻击者在攻击之前需要出具的凭证。

该项属性的假设条件是目标系统已经被攻击成功,对于本地利用漏洞而言,该属性值只能是一次或多次,并不考虑是否登录到目标系统中。举例说明:一个运行在监听UNIX系统域socket接口的数据库引擎进程,该进程存在可被本地成功利用的漏洞,如果攻击者必须作为数据库的合法用户通过鉴别才能利用该漏洞,则该项属性的值为“单个”。

该属性主要基于攻击者发起攻击前需要通过鉴别的次数,举例说明:一个远程的email服务器存在命令执行漏洞,如果攻击者不需要鉴别即可执行命令,则该属性的值为“无”;如果攻击者只有通过鉴别才能执行有漏洞的命令,则该属性的值为“单次”或“多次”,具体值取决于在执行漏洞命令前需要进行的鉴别次数。

1)多次:需要经过多次鉴别,如先进行服务的鉴别,然后进行操作系统的鉴别。

2)单次:需要一次鉴别。

3)不需要:不需要鉴别。

(3)利用代码

该属性衡量了利用技术或利用代码的现状,公众越容易获得利用代码,则潜在的攻击者会越多,其中包括技能不高的攻击者,因此增加了漏洞的严重程度。

漏洞刚刚发现时,漏洞利用仅停留在理论层面,然后公布概念性验证代码、功能性利用代码或者利用该漏洞必需的足够技术细节。被运用得很成功的技术是研究概念性验证代码,然后开发出利用代码,最为严重的情况是漏洞可能被基于网络的蠕虫或病毒作为传播载体,可以分为以下几类。

1)无:没有利用代码或者利用完全停留在理论层面。

2)概念验证代码:有概念验证代码或者已有的攻击演示对大多数系统不实用。已有的代码或技术在所有的条件下均不具备实战功能,需要高技能的攻击者进行大量的修改。

3)功能性利用代码:有功能性的利用代码可用,可应用于大多数有漏洞的场景。

4)完整的利用代码:利用代码能够在任一场景下工作,或能借助病毒、蠕虫等移动的媒介自动传播。功能性的代码能够利用漏洞或漏洞利用的技术细节被广泛传播。

(4)目标系统分布情况

该属性衡量受漏洞影响的系统的分布情况,计算出受影响系统的近似比例。受影响系统比例越高则漏洞的攻击条件越容易满足。此漏洞影响的系统分布情况可以分为以下几类。

1)无:没有受影响的系统,或者受影响的系统只存在于实验环境,比例为0%。

2)低:系统在实际网络和信息系统环境中存在,规模很小。环境的1%~25%存在风险。

3)中:系统在实际网络和信息系统环境中存在,规模中等。环境的26%~75%存在风险。

4)高:系统在实际网络和信息系统中存在,规模较大。环境的76%~100%存在风险。

2.攻击复杂性

漏洞的攻击复杂性受到多种因素的影响,例如,攻击工具、攻击时间、攻击者的计算资源等,有时候还受限于系统用户的行为。这一系列的变量可以综合表达为此漏洞的攻击复杂性。建立这些变量和攻击复杂性的函数关系有以下三种方法。

(1)分析各种攻击过程和攻击事件,监视攻击者的行为,根据入侵时间、方法,分析所涉及漏洞的攻击复杂性。但是这种详细的攻击过程很难被记录下来,比较多的是各个安全组织统计的攻击发生时间、攻击类型和攻击次数。

(2)安全专家通过漏洞库里面的漏洞相关信息,结合自己的安全经验和知识,根据评估方法和策略,定义出自己的攻击复杂性赋值函数。

(3)在TCSEC和CC的文档里面,详细定义过与攻击漏洞难度有关的指标:标识和挖掘时间(Elapsed Time)、专家知识(Specialist Expertise)、关于评估对象的知识(Knowledge of TOE)、机会窗口(Window of Opportunity)、硬件软件和其他设备的要求。

按照上述方法分析,攻击复杂性可以按照高、中、低的等级划分。

1)高:攻击条件非常特殊,竞争窗口时间非常短。

特定系统环境,攻击需要的配置在实际系统中很少见。

依赖于社会工程,并且该手段容易被发现,如需要诱使受骗者做出几个可疑的或非典型的操作。

需要预先提取权限或已经成功欺骗目标系统的附属系统(如DNS欺骗)。

2)中:攻击条件有些特殊。

攻击者拥有某种受限的系统用户权限。

攻击前必须收集某些信息。

目标系统的配置非默认配置,且通常不使用该配置。

在一定程度上依赖社会工程,并且该手段不易被发现,如通过修改Web浏览器的状态条来显示错误连接的钓鱼攻击,进行即时通信攻击前必须成为目标用户的好友。

3)低:不需要特殊攻击条件或攻击行为无法绕过。

目标系统通常需要接受大范围的系统、用户访问,如Web服务。

目标系统默认配置。

对攻击者的技能要求不高或不需要收集信息。

竞争窗口时间很长。

影响攻击复杂性的多维因素可以映射到以某个单变量的函数,从数学的眼光来看,就是建立一种从髙维空间到低维空间的一种映射,这种映射能保持漏洞在高维空间的属性。在评价某种对象的安全问题时,习惯用无故障安全时间或者失效率这样的参数来描述,为了能够定量地描述漏洞的这一攻击复杂性属性,可以引入漏洞安全失效率的概念。

漏洞安全失效函数是信息技术产品或系统在正常使用情况下,针对其中的某个漏洞,在(t,t+Δt)时间间隔内能够被恶意主体成功发掘利用的概率,记为λ(t)。安全机构曾经给出一个λ(t)趋势分析图,如图4.30所示。图4.30中的A、B、C、D、E、F表示了一个理想化漏洞的发掘利用周期,从图4.30中可以看出λ(t)的值从A区开始增加,在E区达到最大,随后由于软件补丁或安全措施的发布及攻击者利用新的漏洞,在F区λ(t)开始减小。但是网络安全事件的统计表明,大多数计算机系统由于各方面的原因,很难及时安装补丁或者采取一定的安全措施,而使得计算机系统中的软件漏洞失效概率在E区持续很长时间,即漏洞的安全失效函数λ(t)经过一段变化之后保持在一个常数λ上,称之为漏洞安全失效率。

图4.30 漏洞安全失效函数λ(t)的变化

3.攻击后果

攻击后果是漏洞被成功利用后,攻击者所能进行的行为和对系统的影响,如权限提升、假冒、数据篡改、信息泄露等。

(1)权限提升

网络攻击对安全性直接影响最大的就是恶意用户所具有的访问权限。系统设备在实际的应用环境中,系统访问者可以按照具有不同的访问权限来进行分类,国内外的许多研究者都进行了这方面研究,将访问者和访问特权结合起来,将系统所有可能的访问权限按用户的身份角色分类,如表4.5所示。系统所有可能的访问权限集合为Pconsumer={Access,Guest,User,Supuser,Root}。

表4.5 用户等级

(2)机密性影响属性

机密性指受限的信息访问或信息只对授权用户开放,同时阻止非授权用户访问或获得。利用漏洞成功攻击目标系统后对机密性的影响可以分为以下几类。

1)不影响:不影响系统的机密性。

2)部分:对机密性有一定的影响,但不能掌握所有的机密信息。能够访问部分系统文件,但是攻击者不能随心所欲地获得或丢弃目标系统的信息,如某个数据库的漏洞只是暴露了部分数据表。

3)完全:全部信息都暴露在外,导致重要的系统信息完全泄露,攻击者能够阅读所有的系统数据,如内存、文件等。

(3)完整性影响属性

完整性指信息的内容和顺序都不受破坏和修改的可信度和保证度。利用漏洞成功攻击目标系统后对系统完整性的影响可以分为以下几类:

1)无:不影响。

2)部分:部分地破坏了系统完整性,能够修改部分文件或系统信息,但不能随心所欲地选择文件进行破坏,或者说攻击者影响的信息范围有限。

3)完全:系统完整性彻底被破坏。系统保护机制完全失效,导致整个系统瘫痪,攻击者能够破坏目标系统中的任意文件。

(4)可用性影响属性

可用性指信息资源的可访问度,攻击消耗带宽、处理器时间或磁盘空间均能破坏系统的可用性。利用漏洞成功攻击目标系统后对可用性的影响可以分为以下几类。

1)无:不影响。

2)部分:会造成性能下降或者中断,如网络中的洪泛攻击会导致互联网服务只能接受有限的正常用户连接请求。

3)完全:资源完全不可用,如攻击导致服务停止。

4.应用环境

组织和风险承担者在不同的环境下对漏洞造成的风险容忍度不同,环境类属性主要关注漏洞与用户的IT环境相关特点。

(1)修补措施

漏洞的修补措施对漏洞的危害程度是一个非常重要的影响因素。通常情况下,漏洞在最初发布时没有修补措施,在官方补丁或更新没有发布前可能会有临时解决方案或工具,根据系统的修复程度可以分为以下几类。

1)官方正式补丁:根据完整的生产厂商发布的修补措施进行了安全改进,包括官方补丁和升级包。

2)官方临时措施:釆用了生产厂商发布的临时修补措施,包括临时补丁、工具和临时解决方案。

3)非官方措施:采用了非官方、非厂商发布的解决方案。某些情况下,受影响的用户会自己开发补丁或临时解决方案,或采用其他方式减缓漏洞的影响。

4)没有补丁:没有补丁或无法使用。

(2)间接破坏风险

该属性衡量漏洞对生命、物理资产、财富失窃、装备造成损失的可能性,也用来衡量产品或税收的经济损失,可以分为以下几类。

1)无:不会造成生命、物理资产、财产、税收损失。

2)低:成功利用漏洞可能导致轻度的物理或财富损失,或对组织造成轻度的产品或财富损失。

3)中:成功利用漏洞可能导致严重的物理或财富损失,或对组织造成严重的产品或财富损失。

4)高:成功利用漏洞可能导致灾难性的物理或财富损失,或对组织造成灾难性的产品或财富损失。

5)未定义:可以忽略不计该属性。

(3)安全要求

该属性能够使分析者根据受影响资产在组织结构中的重要性,按照“机密性、完整性、可用性”的要求来计算分值。也就是说,如果IT资产支撑的业务非常重要,则分析者对可用性的赋值要比其他两属性高,每一种安全要求均有三个值“低”“中”“高”。

对环境分值的全部影响由相应的业务基本影响属性来决定,也就是说,通过业务对三个属性的要求来修改环境分值。举例说明,如果业务对机密性要求为“高”,则机密影响属性的分值增加;同样的,如果业务对机密性要求为“低”,则机密影响属性的分值降低;如果业务对机密性要求为“中”,则机密影响属性的分值为中等。同样的逻辑可以应用在“完整性”“可用性”两个属性要求上。

许多组织根据网络位置、业务功能和可能造成的生命财产损失程度将IT资源划分为不同的危险级别。例如,美国政府将IT资产分为不同系统,根据三个安全目标:机密性、完整性、可用性,对每个系统都设定为三个潜在影响级别:低、中、高。该部分内容在FIPS199中进行了描述,但是没有强制要求组织机构使用任何系统评定。

1)低:机密性、完整性、可用性的损失只会对组织或与组织相关的个人造成有限的反作用。

2)中:机密性、完整性、可用性的损失只会对组织或与组织相关的个人造成严重的反作用。

3)高:机密性、完整性、可用性的损失只会对组织或与组织相关的个人造成灾难性的反作用。