一种基于执行体异构度的拟态裁决优化方法

2020-05-18 11:06武兆琪谢光伟
计算机工程 2020年5期
关键词:共模拟态置信度

武兆琪,张 帆,郭 威,卫 今,谢光伟

(1.国家数字交换系统工程技术研究中心,郑州 450001;2.复旦大学 a.计算机科学技术学院; b.大数据试验场研究院,上海 200433)

0 概述

信息技术的飞速发展使人类迈入万物互联时代,由此带来数字经济的便利性,但同时也使网络空间安全问题成为信息时代严峻的挑战[1]。造成网络安全问题的重要原因在于,信息技术的全球化趋势使得创新链、生产链、供应链等环境中隐匿后门更加容易,并且由于技术的缺陷导致漏洞广泛存在[2]。因此,少数人或团体利用少量的资源便可以侵犯个人乃至公共的隐私权,造成当前网络空间“易守难攻”的态势。在此背景下,拟态防御技术应运而生。拟态防御以其动态性、异构性和冗余性可阻断目前攻击技术所依赖的攻击链完整性,利用该技术能够从根本上摆脱目前网络空间“易守难攻”的困局[3]。

在通用的拟态架构中,对异构冗余执行体的输出进行裁决可为动态异构冗余(Dynamical Heterogeneous Redundant,DHR)架构带来对广义不确定扰动的感知功能。在标准化或可归一化的拟态界面中对给定语义和语法的多模输出矢量进行一致性判决,可以准确反映拟态界面上的非协同攻击或随机失效情况,并且裁决器可以将相关状态信息发送给拟态系统中的调度器模块。后者是DHR架构中的重要一环,其根据裁决器信息进行执行体的调度,对于拟态防御系统的安全性和效率有着直接的影响。因此,裁决器的表决策略便显得至关重要。

现有拟态系统中使用的裁决算法主要为多数一致表决算法,这对于异构性较好的执行体集尤为适用。但在现实应用中,执行体并不能完全实现异构,简单地进行多数一致表决会造成共模逃逸现象。为此,本文根据拟态架构的特点,借鉴冗余容错技术中基于历史记录的表决算法,提出一种基于执行体历史置信度和异构度的双因素表决算法。通过量化执行体的历史置信度和执行体间的异构度,同时利用动态化加权分配,选择最优的输出结果集合作为表决器的最终输出结果。

1 相关工作

目前冗余容错技术在数字电子系统和软件系统中得到了广泛的应用,主要包括N模冗余和N版本编程2种手段[4]。冗余技术大幅提高了系统的容错能力,增强了系统的可靠性。进一步地,冗余容错技术可以分为同构冗余和异构冗余2种方式。

同构冗余是指余度结构在软硬件设计、指令系统等部分中十分近似或者完全相同,这种容错技术应对差模干扰或者随机扰动较有效,但是高度相近的结构导致其有近乎相同的系统漏洞和后门等共性故障,因此无法对共模攻击产生有效防护。

异构冗余是基于相异性设计的容错机制,其选择由不同设计组在不同环境下设计的构成原理不同但功能近似或完全相同的软硬件产品,然后构成一个总的容错系统。这种相异性设计的设计理念不同,因此,理论上这些异构体的共生漏洞与相同后门微乎其微,进而能有效地防护由于单一系统设计缺陷造成的漏洞或后门引起的系统故障,可以有效地抵御攻击者发起的共模攻击。

DHR架构的核心设计思想是引入结构表征的不确定性,使传统异构冗余架构的执行体具有动态化和随机化的属性。通用的拟态防御系统架构如图1所示。

图1 拟态防御架构通用模型

在上述模型中,表决器通常有多个冗余输入,其从收到的多个冗余输入中根据设定的表决算法产生一个结果作为表决输出,对此研究者已经提出了多种表决算法,例如全体一致表决算法[5]、多数表决算法[6]、复数表决算法、中值表决算法、n取2表决算法[7]、一致性表决算法等[8],其中多数表决及其改进版本,例如基于自检测[9]、历史纪录[10]、自适应等的多数一致表决算法在系统中得到了广泛的应用。多数表决器有n个输入,如果有超过一半的输出结果一致,则这个多数结果便会被裁决器作为正确结果进行输出。

一致表决算法[8]是多数表决算法的推广,当输出结果为多数赞同,则该算法与多数表决算法一致。当输出结果有唯一最大赞同数,并且赞同数少于输出结果集的一半,仍然选择唯一最大赞同数进行输出,当有相同的最大赞同数时,便随机地从中选择一个结果进行输出,其他结果表决失效。但由于这种算法对有相同赞同数输出结果进行选择时的随机性,因此可能把错误的结果当成正确结果进行输出。

文献[11]在一致表决算法的基础上引入了构建版本历史记录信息的方法,当出现相同赞同数时,选择历史置信度较高的一组进行输出,进而提高输出结果的可靠度。但这种算法忽略了异构度较低的执行体给出一致输出的概率普遍较大的情况,如果在裁决中重复考虑容易出现共模异常输出。在这种情况下,发生共模逃逸的概率就会增大。

文献[12]在多数一致表决算法的基础上,提出一种竞赛式的仲裁模型,在不改变仲裁余度的前提下增加执行余度,这种方式可以提高仲裁的效率,但对仲裁结果的正确性没有提高作用。

在拟态防御系统裁决器的表决策略选取方面,目前研究主要是以多数一致性表决算法为主[13-15],辅以全体一致表决算法和基于历史置信度的表决算法。然而这些算法都只是借用经典的表决算法,并没有完全结合拟态防御的思想,忽略了执行体异构度对于裁决结果的影响,因此,表决的结果可能会存在共模漏洞,并且在有不同输出结果数量相同的情况下表决效率低下。

2 基于历史置信度与执行体异构度的表决算法

2.1 设计思想

由于现在拟态防御架构在如Web[16-17]、DNS[18]、路由器[14]等领域使用的调度算法基本都是随机调度算法,因此上线执行体的异构度并不能保证足够大进而避免可能发生的共模攻击。因此,假如攻击者此时发起共模攻击,而上线执行体的相似度过大,就很有可能发生共模逃逸问题,因为对于同一种攻击,相似执行体很可能产生同样的输出,所以仅根据多数一致表决或加入历史置信度的表决算法很可能导致相似执行体持续产生近似的输出,进而影响调度器的调度,增大共模逃逸的风险。

拟态架构的特点是动态异构冗余,因此,组成其执行体的重要要求便是“异构”。异构的执行体可以有效地防止攻击者利用整个系统的漏洞和后门。本文在现有基于历史信息的裁决算法基础上,提出基于历史置信度和执行体异构度的表决算法。在考虑历史置信度的基础上,进一步考虑执行体集之间异构度对表决结果的影响,通过赋予执行体输出结果在数量、历史置信度和异构度上不同的权重,充分考虑不同因素对表决结果的影响,进而提升表决结果的可信度,增强系统的安全性。

2.2 模型构建

本文在多数一致表决算法和基于历史置信度的自适应一致表决算法基础上进行改进,主要考虑执行体间的异构性对裁决结果的影响。本文算法模型通过构建执行体的历史记录信息和量化执行体间的异构性来实现,具体方法如下:

1)构建执行体的历史记录信息。

(1)构建一个n余度的异构执行体集合{e1,e2,…,en},其对应的某一次历史置信度集合为{h1,h2,…,hn},如果在表决中某个执行体输出结果通过了多数表决,则将该执行体ei对应的历史置信度设置为hi=1,否则该次结果设置为hi=0。

将历史记录作为表决的考虑因素之一,可以有效地记录执行体各个阶段的表现,通过历史表现可以更好地判断具有高鲁棒性的执行体,同时避免只利用数目表决较大的随机性。充分利用各阶段的历史信息以及攻击日志,可便于分析执行体应对不同攻击的表现,进而有利于系统做出更准确的表决和调度。

2)量化执行体间的异构性。

每个执行体可以按固定的标准分为不同的组件,每个组件又可以分为不同的类目,可以根据不同类目的具体实现对执行体的异构度进行量化。例如,对于一个拟态存储系统,可以将冗余体按具体功能划分为处理器、操作系统、应用软件等不同组件,而操作系统则有Windows、Ubuntu、CentOS、MacOS等类目,若某执行体类目为Ubuntu,则其特征向量便为[0 1 0 … 0],但同一组件各类目并不是完全独立的,功能的等价性必然会导致各类目之间存在一定程度的相似性,进而导致存在相似甚至相同的漏洞。对执行体之间的异构度可以采用异构性矩阵度量,如下所示:

通过统计各个异构执行体之间的异构性差异易知,H为对称矩阵,其中hi,j(0

2.3 算法描述

假设在线执行体的数目为n,基于历史置信度与执行体异构度的表决算法描述如下:

6)其他情况,表决失效,重新进行输入表决。

将异构度作为拟态表决算法的表决因素是必要的。动态异构冗余作为拟态架构的特性,执行体的异构性是系统安全的基础,而且异构性越大的执行体集执行体之间的共模漏洞会越少,攻击者可以利用的系统共同缺陷也就越少,进而系统也就更安全。因此,引入异构性作为表决的依据可以更好地发挥拟态架构的优势,同时避免因为历史置信度造成某个执行体长期在线上而被攻击者利用的局面。引入异构性作为表决的依据可使表决算法更充分全面,使系统时刻处于高安全的状态。

由“相对正确”公理[1]的描述可知,极少出现多数执行体在同一个地点、同一时间犯完全一样错误的情形。该公理的逻辑表达如图2所示,具有如下特点:功能等价,A1,A2,…,Ai都有独立完成任务的能力;异构冗余,A1,A2,…,Ai都有一些缺点或错误;判决空间,同一时间、同一地点都有同样内容;相对性多模大数表决。

图2 “相对正确”公理的逻辑表达

笔者认为r1相较r2和r3更为重要。这3个参数可以根据TOPSIS算法[19]来进行计算取得最优值。TOPSIS法是一种理想目标相似性的顺序选优技术,在多目标决策分析中是非常有效的方法,其通过归一化后的数据规范化矩阵找出多个目标中最优目标和最劣目标,分别计算各评价目标与理想解和反理想解的距离,获得各目标与理想解的贴近度,按理想解贴近度的大小排序,以此作为评价目标优劣的依据。TOPSIS算法是根据有限个评价对象与理想化目标的接近程度进行排序的方法,其在现有的对象中进行相对优劣的评价。输入3个参数的重要程度对比表,通过TOPSIS算法计算即可得到3个参数的最优取值。本文取r1=0.405 5,r2=0.306 9,r3=0.287 6。

根据上文分析易知,异构度对于表决结果的影响并不会随着时间的改变而发生任何变化。但历史置信度具有与时间和表决次数相关联的特性,由于随机因素的影响,在初始时刻,历史置信度仅是根据少量的表决决定的,因此此时的权重应从0开始随着时间的推移而逐渐增大。同理,对于表决结果集合中的个数,由“相对正确”公理可知,初始时刻足以对多数的表决结果表示信任。由上文可知,异构度越小的执行体越容易对同样的攻击产生相同的输出,因此,数量表征特性的权重应该随着时间的推移而适度减小。最终3个参数r1、r2和r3稳定为由TOPSIS算法计算出的3个值。

本文选取调整参数r1和r2为:

因此,最终的输出值为:

对于T的选取,笔者根据系统的实际特性认为可以选择系统的调度周期。调整参数是由Sigmoid函数转变而来,其函数特性是在固定的区间段之间单调递增输出,并且越接近于区间上下极限时变化越平缓,越远离区间极限时变化越显著,如图3所示。

图3 Sigmoid函数曲线

本文选取的调整参数随时间的变化曲线如图4所示。可以看出,初始时刻r1、r2的值变化缓慢,符合上文的分析,因为初始时刻随机性的影响过大,所以应使历史置信度的权重缓慢增大,而使结果集数量的权重缓慢下降。当系统运行一段时间后,随机性的影响逐渐变小,因此,可以使历史置信度的权重迅速增大而使结果集数量的权重迅速下降,当两者即将到达稳定值时使权重变化的速率相应减缓,以保证调节的稳定性。

图4 调整参数随时间的变化曲线

3 实验评估

本文实验主要通过以下6个指标对算法进行评价:正确结果被裁决器表决通过的概率(CAA),正确结果未被裁决器表决通过的概率(CAF),错误结果被裁决器通过表决的概率(IAA),错误结果未被裁决器表决通过的概率(IAF),输出结果被裁决器表决通过(RAA),输出的结果未被裁决器表决通过(RAF)。评价过程如图5所示。

图5 裁决器表决结果评价示意图

Fig.5 Schematic diagram of the arbiter voting results evaluation

3.1 仿真建立

本文实现了多数表决算法和基于历史置信度和执行体异构度的表决算法,采用Python和Matlab进行仿真。利用β分布[20]生成执行体之间的相似度矩阵。本文实验选取T值为40。采用蒙特卡洛法进行105次模拟实验,比较算法的相关评判指标。

3.2 仿真结果分析

3.2.1 默认条件下的仿真测试

本节首先默认选取5个执行体作为表决进行输出,输出结果的结果空间为(C1,C2,…,C5),其中,C1默认为正确结果,程序模拟的执行体大部分输出都落在C1空间中,并且每次实验时都随机注入一些异常数据,用来调节正确输出结果和不正确输出结果的比例,本次实验正确结果占87.730 6%,不正确结果占12.269 4%,即每个执行体都有87.730 6%的概率输出为C1,12.269 4%的概率输出为其他。落入其他各个结果空间的概率与执行体的相似度相关。执行体之间的相似性用参数为(5,16)的β分布基于Matlab的betarnd()函数随机生成,其概率密度曲线如图6所示。

执行体输出的错误结果随机选取,而不同执行体输出同一错误结果的概率与异构度的大小为负相关。参数达到稳定状态后2种算法的评价指标数据如表1所示。通过比较可以发现,虽然本文算法相较一致表决算法的CAA下降了0.986 8%,但其IAA下降了65.500 1%,RAA提高了1.715 5%。

图6 参数为(5,15)β分布的概率密度函数曲线

Fig.6 Probability density function curve of β distribution with parameter (5,15)

表1 一致表决算法和本文算法的评价指标数据

Table 1 Evaluation index data of consistent voting algorithm and the algorithm proposed in this paper %

评价指标一致表决算法本文算法CAA93.072192.1536CAF6.92737.8464IAA25.98628.9652IAF74.013890.3480RAA92.565994.1539RAF7.43415.8461

3.2.2 冗余度影响的仿真测试

本节通过控制变量法,在保证输出结果有相同正确率的情况下,改变上线的执行体的数量,即改变需要表决的执行体的数目。正确结果被裁决器表决通过的概率和不被裁决器表决通过的概率和为1;不正确结果被裁决器表决通过的概率和不被裁决器表决通过的概率和为1;输出结果表决通过的概率和表决没有通过的概率和为1。因此,本节仅讨论正确结果被裁决器表决通过的概率、不正确结果被裁决器表决通过的概率以及输出结果表决通过的概率。实验结果如图7~图9所示。可以看出,当执行体数量为3时,一致表决算法的CAA高于本文算法,但其IAA比本文算法要高21.19%,通过率两者基本一致。但随着执行体数量的增多,一致表决算法的CAA会相应减小,而IAA会相应增大。这是因为如果执行体数量增多就会大概率出现相同频次的结果,进而误判的可能性就会增大。而本文算法的CAA会随着执行体数量的增大而增大,这是因为本文算法充分考虑了执行体的历史信息和执行体之间的异构度对执行结果的影响。虽然出现相同频次的可能性也会增大,但不同结果的历史置信度和异构度只有很小的概率相同,因此,本文算法的CAA相较一致表决算法有一定的提升。同时由图9可知,2种算法的表决通过率会随着执行体数量的增大而出现相应下降,但本文算法明显比一致性算法下降得更为缓慢,这是因为本文算法充分考虑了不同因素对于表决结果的影响,所以使表决通过的概率大幅提高。

图7 CAA随执行体数量的变化情况

图8 IAA随执行体数量的变化情况

图9 RAA随执行体数量的变化情况

4 结束语

本文介绍拟态防御系统的原理和架构,针对其中的裁决器环节,总结现有各类表决算法的优缺点。在此基础上,结合拟态防御架构特性,提出一种结合执行体历史置信度和执行体之间异构度的表决算法。实验结果表明,与一致表决算法相比,该算法可有效提高表决器输出结果的正确率和算法执行效率,提升系统的安全性和可靠性,并且可避免共模逃逸现象。下一步将通过考虑执行体个数对调整参数的影响,改善算法在执行体个数较小情况下的表决性能。

猜你喜欢
共模拟态置信度
一种基于定位置信度预测的二阶段目标检测方法
非隔离逆变器交直流侧共模干扰耦合抑制
硼铝复合材料硼含量置信度临界安全分析研究
章鱼大师的拟态课堂
云南GNSS时间序列共模分量提取分析
共模电感的建模方法及验证
系统可靠性评估与更新方法
模仿大师——拟态章鱼
正负关联规则两级置信度阈值设置方法
关于拟声拟态词的考察