软件异构冗余执行系统的安全能力分析

2021-09-28 11:03马博林张铮任权张高斐邬江兴
通信学报 2021年9期
关键词:副本漏洞安全性

马博林,张铮,任权,张高斐,邬江兴

(1.信息工程大学,河南 郑州 450001;2.网络通信与安全紫金山实验室,江苏 南京 211111)

1 引言

在网络空间安全被高度重视的今天,软件产品越来越丰富的同时,新的软件漏洞也常出现在人们的视野当中。漏洞的存在主要受以下几个因素影响:1) 软件功能复杂、代码量庞大增加了漏洞存在的可能性,并且有限的测试能力难以应对;2) 全球化市场背景下,软件产品的供应链条越来越长,供应链上的每个环节都可能成为预置漏洞的地方,美国发布的《全球供应链安全国家战略》就提到,信息技术和网络的发展是供应链风险发生的一个重要原因;3) 当前漏洞发现理论和工程技术水平都存在缺陷,在解决漏洞问题方面都不够全面彻底。因此,无论是从信息技术的发展角度还是从供应链利益的博弈角度来解释,漏洞的存在都是必然的。与此同时,软件同质化[1-2]使漏洞可以快速、广泛地传播。信息系统的建设多采用架构技术,因此在软件选择和部署上存在大量相似程序,这就使某个漏洞后门会被攻击者应用到相同环境的目标系统中,为扩大攻击范围提供便利。

软件冗余执行(SRE,software-based redundant execution)[3]利用故障发生的时空随机性质,通过表决比较软件副本的执行结果,可对软硬件故障引起的计算错误实现容错处理。吴斌等[4]率先分析了软件双冗余容错系统的容错能力和性能影响因素,在非极端情况下软件同构冗余执行的容错能力高于单个软件的容错能力。由于SRE 的容错能力是建立在随机性故障的基础上,因此其无法应对由软件漏洞和同质化带来的安全威胁。因为冗余的软件副本之间具有完全相同的设计缺陷或漏洞,在相同的攻击输入条件下,同构冗余的软件副本会遭受同样的网络攻击,产生一致的输出结果或同态故障,导致错误可以通过表决比较,失去容错能力。

软件异构冗余执行(SHRE,software-based heterogeneous redundant execution)是结合SRE和软件多样化[5],用于解决软件漏洞不可避免和同质化安全问题的主要方法。软件副本之间在结构设计和实现上存在不同,甚至是采用了完全不同的技术路线,这就保证了软件副本之间存在相同安全漏洞的概率是极低的。因此,当网络攻击输入时,软件副本产生一致的攻击成功结果,并通过表决比较是极小概率事件。SHRE 从机理上既可感知随机性故障,也可抵抗利用软件漏洞的网络攻击。

SHRE 抵抗软件漏洞攻击是否可靠,并且如何定量地分析SHRE 系统抵抗攻击的能力,仍是需要解决的问题。本文根据SHRE 抵抗软件漏洞攻击的原理,通过软件副本不同输出结果的概率分布,证明SHRE 不存在误报,抵抗攻击是可靠的;提出以多样化方式、时空维度、发生位置为基准的SHRE系统分类方法;考虑影响SHRE 系统结构的关键因素,包括N 模冗余、I/O 操作模式和受攻击软件副本的恢复能力,同时引入SHRE 系统的安全能力概念,分析对比软件单副本与S0~S4不同结构SHRE系统的安全性。

S0表示软件单副本。S1表示双模冗余结构SHRE 系统。S2表示三模冗余结构、主从模式、受攻击副本无恢复能力SHRE 系统。S3表示三模冗余结构、代理模式、受攻击副本无恢复能力SHRE 系统。S4表示三模冗余结构、受攻击副本有恢复能力SHRE 系统。其中,受攻击副本在有恢复能力的情况下,软件副本会在多种状态间转移,利用可达集连续时间马尔可夫链计算S4的安全性。

分析结果表明,采用三模冗余且受攻击软件副本具备恢复能力设计的SHRE 系统更安全,同时缩短受攻击软件副本的恢复时间能够有效提高其安全性。

2 SHRE 抵抗攻击的可靠性分析

SHRE 是在N 模冗余技术(NMR,N-modular redundancy)[6]的基础上,为解决软件同质化和漏洞不可避免的安全问题发展而来的,目前国内外研究成果主要基于双模冗余(DMR,dual modular redundancy)[7]和三模冗余(TMR,triple modular redundancy)[8]。基于DMR 的SHRE 通过比较双软件副本的结果发现异常,但是无法识别受攻击软件副本,只适用于攻击检测。基于TMR 的SHRE 能够在三软件副本的结果间进行投票表决,假设至少有2 个相同的结果被认为是正确的,系统将输出多数一致的结果,或者以这个结果继续执行,不会影响程序的正确运行,防御效果要优于DMR 结构,能够检测攻击并识别受攻击软件副本,更进一步地还可以对其进行恢复。

SHRE 系统中软件副本的执行结果不一致,一定存在软件副本产生了异常结果。下面,以DMR结构的SHRE 过程为例进行证明。DMR 结构的SHRE 如图1 所示,具有冗余的软件副本0α和1α,设定以下集合。

图1 DMR 结构的SHRE

集合S为SHRE 系统所有可能的执行结果Out[O(α0),O(α1)]组成的集合,其中O(α0)和O(α1)分别为软件副本α0和α1的执行结果。

集合X={x|x∈S∧x[0]≠x[1]}为软件副本α0和1α的执行结果不一致。

集合Y={y|y∈S∧y[0]∈}为软件副本α0产生异常执行结果。

集合Z={z|z∈S∧z[1]∈为软件副本α1产生异常执行结果。

当SHRE 系统发现软件副本α0和α1的执行结果不一致时,若存在没有软件副本产生异常结果的可能,则该情况出现的概率为

根据全概率公式可得

SHRE 系统在设计实现时充分考虑I/O 操作、系统调用序列等[9]在一次执行过程中影响软件副本执行结果一致性的因素。通过共享缓存、代理模式、冗余边界[10]等方法保证SHRE系统在正常功能范畴内的一次执行过程中,软件副本的正常执行结果是一致的。如果Out[0]∈且Out[1]∈,那么Out∈X一定不成立,所以

软件副本α0和α1相互独立运行,产生的执行结果是独立的事件,因此

将式(2)~式(4)代入式(1),得到

所以,当DMR 结构的SHRE 表决发现软件副本的执行结果不一致时,一定存在软件副本产生了异常结果。由此可得,当具有多个软件副本的SHRE表决发现结果不一致时,至少存在2 个副本(符合DMR 双模结构)之间不一致,也一定存在软件副本产生了异常结果。因此无论是DMR 结构还是具有更多副本的SHRE 抵抗攻击,都可以发现异常。

3 SHRE 的分类方法

SHRE 通过比较软件副本执行结果是否一致来发现软件是否遭受了恶意攻击。SHRE 的方式可以对单一的软件副本进行时间维度上的重复执行,也可以在空间维度上同时执行软件多副本。当然,只有时间或空间资源的冗余配置是不完全的,还需要相同功能作为时间和空间维度上的主线进行关联处理,并且考虑软件多副本间的差异化,以及冗余执行发生的位置,才能有效利用SHRE 感知异常。下面,按软件多样化、时空维度和冗余执行的发生位置对SHRE 系统进行分类。

3.1 软件多样化

SHRE 实现软件副本异构的途径通常采用软件多样化技术,依据技术实施的不同来源和动机,软件多样化方法可以分为三类[11],分别是自然多样化、自动多样化和可控多样化。因此,按照软件多样化方法的不同,将SHRE 分为基于自然多样化的SHRE、基于自动多样化的SHRE 和基于可控多样化的SHRE。

1) 基于自然多样化的SHRE

自然多样化是受使用需求、技术约束、市场竞争等因素的影响,软件在开发过程中自然形成的多样化,例如操作系统软件既包含了以Windows、Linux 为主流的国外操作系统,也包含了深度、普华等国产操作系统。被保护的程序运行在由多样化商用货架产品构建的冗余环境中运行,通过表决机制,抵御利用运行环境中商用货架产品漏洞和后门对程序的恶意攻击。马海龙等[12]在路由系统的应用层采用Cisco、Maipu、Quagga 等7 种异构冗余路由套件,实现了路由系统的主动防御。张铮等[13]基于Web 服务器的层次化结构,在操作系统层、虚拟化层、服务器软件层等进行异构冗余设计,有效抵御Web 攻击。宋克等[14]基于盛科CTC5160 交换芯片,采用异构冗余的Atom E3930-Ubuntu、QorIQ T1042-VxWorks、龙芯 2K1000-Linus 模组处理上行数据,抵御未知威胁。

基于自然多样化的SHRE 具有的优势是能够在大量的商用货架产品中快速地选择出功能等价的组件,构建SHRE 运行环境。但由于软件的定制化开发、商用产品的闭源保护、运行环境的特殊依赖等原因,软硬件的自然多样化无法为一切软件提供功能等价且异构冗余的运行环境,因此还需要基于自动多样化、可控多样化的SHRE 方法,来扩大SHRE 的应用范围。

2) 基于自动多样化的SHRE

基于自然多样化的SHRE 只能通过多样化的商用货架产品构建SHRE 运行环境,而该方法无法针对应用程序本身进行多样化变换。自动多样化就是为解决该问题提出的,其在程序的可执行文件加载到内存前,对应用程序的代码层面进行多样化变换。

第一种是对程序的源代码进行多样化变换,例如,马博林等[15]基于指令集随机化提出了抗PHP代码注入攻击的方法,通过修改应用源程序与解释器实现原型系统,攻击者由外部注入的恶意代码与可执行代码不一致,攻击无法成功。第二种是在程序的源代码编译生成可执行文件的过程中进行多样化变换,例如,张宇嘉等[16]提出了绑定程序变量的动态不透明谓词实现方法,在LLVM[17]基础上对中间代码生成阶段进行混淆,并对源程序多次编译生成异构冗余的目标代码。第三种是针对可执行程序进行二进制重写,例如,姚东等[18]提出了基于冗余执行架构的CFI(control flow integrity),通过二进制重写技术,在间接跳转/调用指令和返回指令处增加表决机制,通过反馈学习优化得到执行频率较高的子图Sub-CFG,以此对比程序当前运行状态,判断是否遭受攻击。由于编译器的修改很容易继承到大部分平台中,而二进制重写又需要对目标程序进行逆向,增加了难度,因此编译过程的多样化方法要优于对可执行程序进行二进制重写。

3) 基于可控多样化的SHRE

可控多样化相比于自然多样化和自动多样化,更注重人为控制程序产生多样性,并且可以摆脱对源代码的依赖。一方面在程序功能等价的前提下尽可能产生相对独立的程序版本,从“相对独立”的更高要求出发,以多版本程序(N-version programming)[19]为代表,广泛应用于软件容错、可靠性设计等方面,而由于云服务中的应用程序本就存在多版本特征,该方法也被用来解决云环境下虚拟机间共存攻击[20]。

另一方面控制程序加载时的运行环境,从而使冗余程序在应对攻击行为时会产生不一致的输出,该方面以多变体(N-variant)[21]执行架构为代表。例如,Cavallaro[22]设计了一种多变体架构,当2 个变体加载到该系统运行时,其中一个变体在地址空间分区的基础上,将地址空间位移多个字节,在2 个变体同时冗余执行的情况下,地址空间的相对距离产生了变化,当攻击者破坏指针进行地址覆盖攻击时,覆盖结果不同,无法取得一致的攻击结果;Salamat 等[23]则利用堆栈空间设计出Orchestra 多变体架构,冗余执行的2 个变体分别采用正向和反向的堆栈生长方式,因此,基于堆栈的攻击无法通过架构中对于I/O 操作结果的表决机制;Volckaert 等[24]基于不相交的代码布局来保证变体间的异构性,设计出GHUMVEE 系统,通过变体冗余执行和表决机制有效地防御控制流劫持漏洞攻击。

基于可控多样化的SHRE,异构性多集中在代码布局、堆栈布局、地址空间布局等软件运行时的相关因素,架构轻量、部署便捷是其主要的优势,但冗余软件副本的同步和调度等工作是实现过程中面临的主要困难。

3.2 时空维度

SHRE 还可以根据时空维度进行分类,3.1 节提及的研究成果均属于软件在空间维度上冗余执行,并行同时处理相同的输入。而阿里安全猎户座实验室联合浙江大学[25]率先提出了一种新技术,即差异重播,在vanilla memory、poisoned memory 这2 种差异的情况下串行地重放程序执行,实现了TimePlayer 原型系统,通过比较串行执行的结果有效地检测未初始化变量的使用。

软件副本在表决点的等待关系会降低SHRE 的性能,DAFT[26]假设软件副本产生异常执行结果的概率很小,改进软件副本在空间维度上需要并行同时执行,消除主副本与从副本之间在表决点的等待关系。主副本不等待表决结果继续执行,由从副本对执行结果进行表决,并发送异常处理信号。DAFT将线程级SHRE 的性能损耗降低至1.38x。

3.3 发生位置

SHRE 可从不同的位置实现,从粒度上划分可分为指令级、进程级和应用级。不同的位置和粒度会影响能够抵御的攻击类型,也决定了通过表决发现安全威胁的时机。

1) 指令级SHRE

指令级SHRE 通过指令级复制与比较实现异常数据流检查,异构化方法有等效指令替换、等效指令序列随机化、寄存器分配随机化、垃圾指令插入等。SWIFT[27]在同一线程中以指令粒度地重复执行,store 和branch 指令之前对结果进行表决,发现异常数据流,但是该方法在不同架构处理器中开销差距较大,适用范围有限。VAR3+[28]为了避免在冗余执行过程中创建多个内存位置,复制除store 和branch 指令之外的所有指令,在load、store 和branch指令之前表决执行结果,检查数据流是否存在不一致的情况,保证安全性的基础上有效减小开销。ILDC[29]使用冗余的寄存器副本复制除branch 之外的所有指令,并在store、branch 指令之前和load、move 指令之后设置表决点,比较原始操作和重复操作的结果是否一致。实验结果表明,相比于VAR3+和SWIFT,ILDC 能够检测到更多的异常,并且开销更低。

2) 进程级SHRE

进程级SHRE 采用2 个独立的进程复制应用程序,并在I/O 操作或系统调用进行表决同步,由于现代操作系统中程序与底层交互通过系统调用完成,且粗粒度I/O 过程缺乏有效的安全保障,因此大多数进程级的SHRE 将系统调用作为表决同步点。

GHUMVEE[24]是在进程副本发生系统调用时进行表决,直到进程副本都到达表决同步点并且系统调用结果一致才会恢复执行,阻止恶意访问进程空间外的代码和数据。ReMon[30]改进了GHUMVEE的表决粒度,为安全无紧密关系的系统调用设置宽松的表决策略,既保证了安全防御能力,又提高了性能。潘传幸等[31]基于等价异构程序的表决判定,保证内存地址不泄露,有效防御控制流劫持攻击,并且额外性能开销不超过13%。进程作为系统进行资源分配和调度的基本单位,进程级SHRE 的异构方法主要来自程序加载时操作系统的随机化技术,不仅可以给攻击者带来更大的不确定性,还可以与操作系统紧密配合,例如对系统调用号、动态加载库的加载位置、栈生长方向、堆布局等关键对象的随机化方法。线程是比进程更小的程序执行的基本单位,冗余线程共享同一进程下的资源,不能像进程级一样利用操作系统自身的随机化技术,异构方法较为有限,因此线程级SHRE 研究成果较少。

然而,许多程序具有不确定性行为,冗余进程间可能不具备完全相同的系统调用序列,因此会产生假阳性错误,这也是进程级SHRE 面临的主要难题之一。

3) 应用级SHRE

应用级SHRE 以整体应用为副本,更粗粒度地比较冗余应用的输出是否一致。大多数基于自然多样化的SHRE 就是在应用级实现,以提供具体应用服务的商用货架产品为冗余目标。

4 SHRE 安全能力分析

4.1 SHRE 安全能力

方滨兴院士[32]提出了网络空间安全是通过实现一组准确“控制”所获得的特定能力,根据SHRE原理,该“控制”不再是安全策略、惯例规程等,而是通过软件副本间的异构性,实现的一种内生安全构造。为准确地分析SHRE 安全能力,本节给出SHRE 安全能力的定义。

定义1SHRE 系统的安全能力是指系统在遭受漏洞攻击的情况下,漏洞利用不成功且保持系统正常可用的能力。

定义2SHRE 系统的安全性是指系统在某时刻具备安全能力的概率。

第1 节中分析了软件不可避免地会存在漏洞,Humphrey[33]对约13 000 个代表程序进行了多年研究发现,开发者每编写1 000 行代码,就会产生100~150 个错误,因此做出如下假设。

假设1冗余的软件副本都存在未知漏洞。

对于单程序副本,攻击者能够根据经验及结果不断调整攻击方法。

假设2攻击者不受专业能力、知识储备、实验环境等主客观条件的约束。

SHRE 通过表决软件副本的输出结果来发现异常,斩断攻击链,而面对内部人攻击或者内部违规操作等来自软件副本内部的风险,SHRE 无法有效抵御。

假设3不考虑由SHRE 系统内部发起的攻击或者违规操作。

当攻击者尝试的攻击次数无穷大时,可以成功对软件单副本实施有效的攻击,所以认为随着攻击时间t增加,对软件单副本攻击成功的可能性也在增加。因此软件单副本(记为S0)在持续攻击下,t时刻还未被攻击成功的可能性,即软件单副本t时刻的安全性表示为

4.2 影响SHRE 安全能力的结构

当SHRE 系统通过表决发现异常后,系统能否继续保证安全可用,主要受系统的I/O 操作模式和异常处理方法影响。

SHRE 的I/O 操作模式是为避免冗余的软件副本在重复多次执行同一读写操作后产生影响表决的假阳性问题采取的关键设计,将与读写操作相关的系统调用、功能函数或代码片段只执行一次,如图2 所示。I/O 操作模式主要分为主从模式和代理模式,其中,主从模式中冗余的软件副本分为主副本和从副本,主副本负责执行读写操作,并将执行结果复制给其他的从副本,保证了所有软件副本可以获得一致的读写结果。代理模式则由分发器代替软件副本执行读写操作,将执行结果复制给所有软件副本。

图2 解决假阳性问题的关键设计

当表决发现差异时,SHRE 系统可以选择停止所有软件副本来阻止攻击,这种情况虽然有效抵御了攻击,但影响了软件功能的可用性。为了保证软件功能持续可用,异常处理也可以选择停止或隔离异常的软件副本,加入新生成的副本,并复制获得正常副本状态。该方式对于代理模式,仅需要考虑新生成副本与异常副本之间的异构性,避免遭受连续攻击。对于主从模式,需要相对复杂的处理过程,如果主副本发生异常,因为其控制着读写操作,首先需要选择正常的从副本作为新的主副本,例如,VARAN[34]通过Unix 域套接字将文件描述符复制给新的主软件副本,同时加入新生成的从副本;如果从副本发生异常,则按照代理模式的方法进行异常副本替换。

4.3 SHRE 安全场景

SHRE 除了发现和阻断攻击以外,还可以进行反馈调整,对受攻击软件副本进行恢复,提高系统的安全性,本文第2 节分析了TMR 比DMR 结构的优势。例如,N-Variant[21]、Orchestra[23]、Buddy[35]在识别到受攻击软件副本后会通过重启的方式来恢复,Exterminator[36]则能够在运行时生成内存补丁来纠正发现的内存错误,对受攻击软件副本进行恢复。本节以受攻击软件副本是否具备恢复能力为基准,结合主从/代理模式和DMR/TMR 结构,对多种SHRE 结构进行安全能力分析。

1) 受攻击副本无恢复能力

受攻击副本无恢复能力的情况下,SHRE 不存在状态的转移和恢复,主要利用软件单副本对攻击的抵抗能力度量DMR/TMR 结构SHRE 的安全性。

DMR 结构无论是主从模式还是代理模式,任何单软件副本被攻击成功,系统通过表决感知到输出不一致后都会失去安全能力,安全场景如下。

场景1DMR 结构,双冗余软件副本均未被攻击成功。DMR 结构SHRE 系统(记为S1)的安全性可以表示为

TMR 结构在主从模式下,由于主副本负责执行读写操作,是其余2 个从副本运行的基础,因此一旦主副本被攻击成功,系统将失去安全能力;同时为不影响程序正确运行,系统必须保证不少于2 个副本未被攻击成功。安全场景如下。

场景2TMR 主从模式结构,主副本未被攻击成功且2 个从副本未被全部攻击成功。TMR 结构、主从模式、受攻击副本无恢复能力SHRE 系统(记为S2)的安全性可以表示为

TMR 结构在代理模式下,副本间不存在主从关系,只要有不少于2 个副本被攻击成功,系统将会失去安全能力。安全场景如下。

场景3TMR 代理模式结构,不少于2 个程序副本未被攻击成功。TMR 结构、代理模式、受攻击副本无恢复能力SHRE 系统(记为S3)的安全性可以表示为

2) 受攻击副本有恢复能力

受攻击副本有恢复能力的情况下,副本状态会在未被攻击成功和被攻击成功之间转移,因此利用可达集连续时间马尔可夫链(CTMC,continuous time Markov chain)模型度量TMR 结构SHRE 的安全性。

TMR 结构SHRE 的CTMC 模型如图3 所示,模型的稳定状态如表1 所示。其中,λ0、λ1、λ2分别表示副本α0、α1、α2被攻击成功的速率,即每小时可成功攻击的次数(次/小时),其倒数表示副本被攻击成功的平均时间;μ0、μ1、μ2分别表示副本α0、α1、α2被攻击成功后恢复的速率,即每小时可完成恢复的次数(次/小时),其倒数表示副本恢复的平均时间,μ值越大恢复速率越快。

图3 TMR 结构SHRE 的CTMC 模型

表1 中,状态M1表示各副本正常运行,副本漏洞均未被利用成功,称为漏洞休眠态;状态M2、M3、M4分别表示副本α0、α1、α2被攻击成功,此时SHRE 系统通过表决能够感知异常输出,阻断攻击,统称为异常感知态;状态M5表示在状态M2、M3、M4的基础上,又产生了新的被攻击成功副本,系统失去安全能力,称为系统失效态。安全场景如下。

表1 TMR 结构SHRE 系统的CTMC 模型稳定状态

场景4受攻击副本有恢复能力的情况下,系统处于漏洞休眠态和异常感知态。TMR 结构、受攻击副本有恢复能力SHRE 系统(记为S4)的安全性可以表示为

其中,P1、P2、P3、P4为CTMC 模型瞬时处于状态M1、M2、M3、M4的概率。

4.4 SHRE 安全性计算

S1~S3结构的安全性计算,只需要将式(6)代入到式(7)~式(9)中即可。S4结构的安全性计算需要先求解P1、P2、P3、P4,系统由状态Me转移至当前状态Me和下一状态Mf的转移概率分别记为Pee和Pef,因此状态之间的转移矩阵为

由U构造CTMC 模型转移速率矩阵[37],状态Me到状态Mf的转移速率可以表示为

Q是以qef为元素的矩阵。概率向量P(t)=(P1(t),P2(t),…,P5(t)),其中Pe(t)为系统处于状态Me的瞬时概率,可得到微分方程

根据CTMC 模型状态转移方程的推导方法,TMR 结构SHRE 的CTMC 模型状态转移方程为

相比于精心构造并实施一次网络攻击的速率,软件副本的恢复速率要快很多,其中λ=1/4,μ=15、30、60、120。计算得到TMR 结构SHRE 的CTMC模型各状态的瞬时概率为

因此,将式(17)和式(18)代入S4结构的安全性计算式(10)中,设μ=60,可得到系统瞬时处于漏洞休眠态、异常感知态、系统失效态的概率,计算结果如图4 所示,纵轴表示系统处于曲线所代表状态的概率,横轴表示系统遭受攻击的时间。系统处于漏洞休眠态的概率随攻击时间的持续而下降,处于系统失效态的概率随攻击时间的持续而上升。

图4 TMR 结构SHRE 系统瞬时各状态整体变化曲线

当μ=15、30、60、120 时,漏洞休眠态、异常感知态、系统失效态的对比结果分别如图5~图7所示,相应地纵轴表示在不同的副本恢复速率下系统分别处于漏洞休眠态、异常感知态、系统失效态的概率,横轴均表示系统遭受攻击的时间。系统的副本恢复速率越快,在持续攻击下系统失效越慢,反之,系统的副本恢复速率越慢,在持续攻击下系统失效越快。

图5 TMR 结构SHRE 系统瞬时漏洞休眠态变化曲线

图6 TMR 结构SHRE 系统瞬时异常感知态变化曲线

图7 TMR 结构SHRE 系统瞬时系统失效态变化曲线

完成S4结构的安全性计算分析后,令λ=1/4,μ=60,计算S1~S3结构的安全性。S0结构和S1~S4结构的安全性结果如图8 所示,纵轴表示软件单副本及不同结构SHRE 系统的安全性(即未被攻击成功)具备安全能力的概率,横轴表示系统遭受攻击的时间。

图8 软件单副本与不同结构SHRE 系统的安全性变化曲线

DMR 结构SHRE 系统中任何单软件副本被攻击成功,系统通过表决感知到输出不一致后都会失去安全能力,通过观察S1和S2的结果曲线可知,DMR 结构SHRE 系统的安全能力要低于单软件副本安全能力,这是由于系统感知异常后服务不可用造成的。但SHRE 在感知异常后能阻断攻击结果输出或基于数据流的恶意控制。而单软件副本会遭受持续的信息泄露或恶意控制,比起服务的不可用,影响更严重。

通过观察S3和S4的结果曲线可知,TMR 结构SHRE 系统的安全能力高于单软件副本安全能力,不仅可以阻断信息泄露或恶意控制,还能提高可用性,保证系统较高的安全能力。其中受攻击副本有恢复能力的TMR 结构SHRE 系统的安全性要远高于其他结构的安全性,是安全能力表现最好的SHRE 系统结构。

5 结束语

本文在研究SHRE 原理和SHRE 系统分类的基础上,引入SHRE 系统的安全能力概念,总结包括N 模冗余、I/O 操作模式以及受攻击软件副本恢复能力在内,影响系统安全能力的结构因素,分析不同结构SHRE 系统下的安全场景。计算结果表明,受攻击副本有恢复能力的TMR 结构SHRE 系统的安全性最高,安全能力表现最好,并且缩短受攻击软件副本的恢复时间能够提高系统安全性。

猜你喜欢
副本漏洞安全性
漏洞
两款输液泵的输血安全性评估
新染料可提高电动汽车安全性
某既有隔震建筑检测与安全性鉴定
加强广播电视信息安全性的思考
使用卷影副本保护数据
基于selenium的SQL注入漏洞检测方法
面向流媒体基于蚁群的副本选择算法①
一种基于可用性的动态云数据副本管理机制
漏洞在哪儿