APP下载

一种基于执行体安全性的智能仲裁算法*

2021-05-08王志浩陈迎春

通信技术 2021年4期
关键词:大数拟态异构

李 俊,王志浩,陈迎春

(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.电子科技大学,四川 成都 611731)

0 引言

随着网络信息技术的发展,网络空间已经成为人类生产生活中的“第五空间”。随之而来的就是网络空间的安全问题,“没有绝对安全的系统”,无论是硬件还是软件都不可避免地由于设计或者逻辑缺陷导致漏洞、后门等问题。然而,这些漏洞等安全问题无法从根本上杜绝,并且现有的安全防御方法大多是基于对威胁的感知、对漏洞的修补、对软硬件的更新和防火墙加固等安全保护措施,这就导致了网络空间防御相对于攻击者的被动地位。针对攻防博弈不对称,易攻难守的态势,一些学者提出了主动防御的理念,与传统的被动防御相对,主动防御能够在攻击或者入侵行为发生之前,对其采取防御措施,提升系统的安全性。主动防御技术的代表之一是移动目标防御(Moving Target Defense,MTD)技术[1],通过增加系统的动态性、随机性和多样性来构建一种不确定的网络目标环境,从而增加攻击者的攻击难度。但是,移动目标防御的局限性在于无法处理来自系统自身的安全威胁,只能通过系统攻击面的多样性和随机变化来对抗网络攻击。为了进一步提升系统对网络空间中未知的漏洞、后门甚至系统内部的缺陷的抵御能力,受到生物拟态伪装现象的启发,基于动态冗余构造(Dynamic Heterogeneous Redundant,DHR),以邬江兴院士[2]为代表的国内研究团队提出了拟态防御的思想,在DHR架构的机制中引入了动态性和随机性,以及能够显著提高系统容侵容错能力的多模裁决机制。拟态防御系统能够使系统对攻击者呈现一种显著的不确定性表征,同时提升了系统对非协同式攻击的防御能力。拟态防御系统已经被应用在包括边缘计算系统[3]、工业制造系统[4]等多种领域中,由于其内生安全的机理特性,能够使系统应用开放的、通用的并且有毒带菌的开源软硬件和中间件构建安全可靠的系统。

拟态防御通过将针对个体的单点攻击转换为针对系统层面的配合协同攻击,十分重要的机制之一是系统中的多模裁决机制。针对拟态防御系统中的执行体多模裁决或智能仲裁算法,常见的方法是采用多数执行体大数判决的方式进行裁决,即多数一致性裁决。对执行体的输出矢量进行一致性判决,并采取表决机制,能够有效地降低少量执行体故障导致系统输出错误的概率[5-8]。然而,由于大数判决机制较为简单,很多情况下,无法处理实际系统中复杂的判决问题。例如,当系统中多数一致的条件无法满足或者在强攻击的条件下,系统中多数执行体都产生了错误输出时,大数判决机制无法给出正确结果或判决机制失效。为改进简单的大数判决算法,可以通过引入策略参数的方法。魏帅等[9]提出了一种基于高阶异构度的大数判决算法,通过定义执行体高阶异构度的概念,并对系统的安全性进行了量化分析。为克服大数判决原理的简单性,一些算法中考虑了执行体的异构度、安全性和历史表现情况[10-13];沈丛麟等[14]提出了一种基于信誉度和相异度的裁决算法,分别考虑了执行体的脆弱程度和异构程度,改进了系统的调度算法和裁决机制;郭威[15]基于历史置信度的裁决机制,提出了一种基于Logistic函数的置信度修正算法及裁决算法;武兆琪等[16]考虑了执行体的异构度、执行体数目和历史表现,提出了一种拟态裁决优化方法;扈红超等[17]提出了一种基于执行体可信度的判决策略,根据历史经验和执行体状态选择正确的执行体集合。大数判决和考虑策略参数的判决方法必须满足系统中所有执行体都有输出之后再进行判决和计算,然而,不同的执行体有不同的构件,导致执行体间任务执行的效率不同,降低系统整体的效率。针对裁决机制的效率问题,吴正江等[18]提出了一种竞赛式的仲裁优化方案;王禛鹏[19]基于博弈论设计了一种预判决机制。博弈论能够将裁决建模为攻击和防御的博弈问题,能够优化裁决的正确性和效率[20]。

基于以上研究,本文提出了一种综合考虑执行体安全性和输出结果的智能仲裁算法。通过分层级的漏洞分析方法得到每个执行体的安全性,定义了执行体的安全评估系数对安全性进行量化。基于执行体集的输出空间,根据每个输出对应的执行体的安全评估系数,选择安全性最强的子集作为裁决结果。仿真结果表明,相对于大数判决算法和基于最优安全度的判决算法,本文提出的智能仲裁算法在判决准确率上有较大的提升。

1 模型介绍

1.1 拟态防御基本模型

拟态防御架构的基本模型如图1所示。拟态防御系统中的主要模块包括:输入代理模块、异构构件集合、执行体集合、执行体调度模块、多模裁决模块、负反馈控制模块。基于DHR架构,拟态防御系统引入了结构表征的不确定性,将动态化和随机化的特性引入冗余异构架构中。拟态系统对外呈现的状态与单一架构的系统是相同的,所以为用户提供的使用接口是相同的。因此,基本模型中的输入代理模块将用户的请求即系统的输入激励进行适当地预处理后分发到执行体集的每一个执行体中。执行体集是由调度算法从异构构件池中通过动态选择算法调度构建出来的。执行体集中的异构冗余执行体同时都是功能等价的,即在不出现故障和攻击的情况下,所有执行体的输出矢量是一致的。然而,在实际应用中,无法保证系统的各个构件及整个网络空间环境的“无毒无菌”,所以执行体单点故障和受攻击的可能性是存在的。因此,需要通过多模裁决机制进行执行体的错误感知,通过多数一致性判决等算法判断当前输出矢量中包含错误的执行体。

图1 拟态防御基本模型

1.2 相关定义

功能等价异构冗余执行体集E:假设系统中有n个功能等价的异构执行体e1,e2,…,en,则E=[e1,e2,…,en],且|E|=n。

执行体安全评估系数s:针对每一个执行体,定义一个安全评估系数s,可以通过执行体漏洞扫描、历史表现统计等方法进行度量,用于评估执行体的安全性,作为调度和裁决的依据。

执行体集的输出空间O:假设正确输出的执行体的输出矢量为o0,最初是由人为判定标注输出矢量的正确性和可信性。执行体由于单点故障、受攻击后被恶意改变输出等原因,产生了相异于o0的q种输出结果o1,o2,…,oq,则执行体集的输出空间为O=[o0,o1,…,oq]。除o0外,执行体输出其余所有结果都判定为出错。

1.3 问题描述

拟态防御系统中最核心的机制之一是多模裁决机制,通过动态异构冗余架构的机制,每个执行体都能得到相应的输出矢量,多模裁决机制便是通过相应的裁决机制和算法以及给定的语义语法对得到的执行体输出矢量进行一致性判决,从而得到系统最终的输出。同时,多模裁决机制能够感知到执行体中产生随机故障或收到非协同攻击的状态,通过将执行体的状态信息发送到系统中的负反馈机制中,能够优化执行体的调度方案,进一步提升系统的安全性和运行效率。然而,传统拟态防御系统中最常采用的大数判决算法即多数一致性表决算法,由于其简单的表决投票机制,导致其在应对比较复杂的场景或执行体安全性不均衡的情况,易导致判决结果出错。例如,针对5余度的拟态防御系统,如果执行体集中有部分执行体的安全性较低,表现在较低的安全评估系数,导致其受攻击的可能性较大,输出矢量遭到恶意篡改的概率较大。假设5个执行体的输出结果如表1所示,由于执行体e2、e3、e4安全性较低,导致其输出被篡改;安全性较高的执行体e1保持正确输出。如果采取大数判决算法,则输出的判决结果为错误的o1。因此,在这种情况下,大数判决方法失效,需要设计一种能够综合考虑执行体安全性和输出结果的智能仲裁算法。

表1 5个执行体输出情况

2 基于执行体安全性的智能仲裁算法

2.1 异构冗余执行体漏洞分析

拟态防御旨在通过不完美的构件组成更加安全的系统,系统中的软硬件可以采用开放、通用的软硬件设备。这些构件中一定会存在漏洞、后门等容易被利用的缺陷,于是会导致每个执行体中都包含不同的漏洞。因此,在系统运行过程中,每个执行体发生故障或者抵抗攻击的程度和能力是不同的。因此,需要对执行体集中的情况进行安全性的量化分析。

通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)是用于评估漏洞的严重程度的公开标准,广泛应用在安全评估领域中[21]。本文中采用执行体各个层级的漏洞评分对执行体整体的安全性进行量化。异构冗余执行体的异构层级包括异构CPU芯片、异构操作系统、异构服务器软件、异构数据库、异构编程语言等。调度模块部署发布得到执行体后,通过漏洞扫描器对执行体中的漏洞进行扫描,查询美国国家漏洞数据库(National Vulnerability Database,NVD)得到相应漏洞的CVSS评分,用于对漏洞安全性的量化分析。扫描得到的部分漏洞示例如表2所示。

表2 执行体部分漏洞情况

2.2 安全评估系数度量方法

基于执行体的漏洞扫描结果和CVSS评分,本文对异构冗余执行体的安全性进行了量化分析,即执行体的安全评估系数,计算方法如下:

式中,l代表执行体的异构层级数量;n为执行体集的大小,即执行体的数目;lsj表示第j层中执行体漏洞的综合评分,定义为:

式中,v代表每一个异构层级中漏洞的数量,cvssk表示第k个漏洞的CVSS漏洞评分,由NVD数据库查询得到。通过漏洞评分计算层级漏洞综合评分,归一化后得到表2中的执行体配置。只考虑表中存在的漏洞,则各异构层级的漏洞综合评分为:ls1=4.7,ls2=5.0,ls3=6.8,ls4=10.0,ls5=10.0。

则该执行体安全评估系数为:

安全评估系数越高,代表执行体中漏洞综合评分的水平就越低,表示执行体的安全性越高。根据执行体安全评估系数以及输出空间的定义,可以进一步根据执行体的输出结果及其安全性设计仲裁和调度算法。基于此,本文提出了基于执行体安全性的智能仲裁算法。

2.3 算法步骤

假设系统中执行体个数为n;输出矢量空间的大小为q+1,即一种正确,q种错误;并且每个执行体都有输出,不存在因故障导致无输出的特殊情况。

步骤1:记录n个执行体的输出矢量,表示为oe1,oe2,…,oen。将相同的值划分到同一个子集中,得到输出矢量的空间O=[o1,o2,…,oq]。

步骤2:根据执行体输出矢量的空间,将输出相同的执行体划分到一个执行体子集,得到q+1个执行体子集,表示为E0,E1,…,Eq。

步骤3:根据执行体子集中的不同执行体,计算每个执行体的安全评估系数,表示为s1,s2,…,sn。

步骤4:统计每个输出相同的子集中执行体的安全评估系数的平均值:

得到每个输出相同执行体子集的安全评估系数均值集合SA={sa0,sa1,…,saq}。统计集合SA中的最大值对应的下标m即max(SA)=sam。

步骤5:将输出空间的om判定为正确输出,其余O´=[o0,o1,…,oq]-[om]判定为出错或故障。建立一个标识矩阵F=[0,1,…,0],其中:

步骤6:将标识矩阵F发送到负反馈模块,用于优化执行体的调度与部署流程。将om发送到输出代理,响应输入的用户请求。

3 仿真分析

前文中实现了基于漏洞分析的执行体安全性度量,并根据安全性度量提出了一种基于执行体安全性的智能仲裁算法。本节采用Python 3.7和Matlab 2019b进行了算法的仿真分析和有效性验证,并且对比了所提算法与拟态防御系统中常用的大数判决与基于最高安全度判决的仲裁算法的表现。采用β分布生成执行体的安全度数据,对比了不同仿真次数、不同执行体个数下3种方法的仲裁结果,对比结果表明,相对于大数判决、基于最优安全度的判决方法,本文提出的基于执行体安全性的智能仲裁算法有更高的判决准确率。

3.1 仿真环境

基于拟态防御的基本原理,本文利用Python中多进程的机制,实现了拟态防御的基本仿真平台,平台基本架构如图2所示。平台将功能等价异构执行体实现为不同的进程,进程配置参数作为执行体不同层级的配置信息,子进程与主进程通过消息队列进行消息传播,作为请求分发和结果输出。调度模块冲异构执行体池中随机调度异构执行体,作为在线执行体的配置,将输入代理接收的请求分发给所有在线执行体。异构执行体进行并行的任务处理之后,得到的结果通过消息队列发送到智能仲裁模块。智能仲裁模块中实现了大数判决、最优安全度判决和本文提出的基于执行体安全性的智能裁决算法。经过智能仲裁模块的判断,能够得出本次调度中输出错误的执行体,将该执行体配置发送到负反馈模块中,进而调整执行体的调度算法。同时,仲裁结果将传递到输出代理,完成输入请求的响应。

图2 仿真平台架构

在上述的仿真环境中,设计了100条不同的执行体配置信息,通过调度模块随机选取不同的配置信息,部署发布执行体,同时,基于β分布生成执行体的安全评估系数,不同参数的β分布的概率密度曲线如图3所示。本文选取了参数为(0.5,0.5)的β分布,使用Python中numpy库的相应函数生成,用于模拟执行体的安全评估系数。

图3 β分布概率密度曲线

3.2 评估指标选取

为了评估3种方法在不同情况下的仲裁表现与性能,本文采取机器学习中二值分类结果评估的相关评价标准,将输出仲裁正确率转换为等价的二分类问题的正确率进行对比。采用的指标包括:正例被正确划分的个数(True Positive,TP),正例被错误划分的个数(False Positive,FP),负例被错误划分的个数(False negative,FN),负例被正确划分的个数(True Negative,TN),以及正确率(Accuracy)。其中,正例代表正确的执行体的输出结果,负例代表错误的执行体的输出结果;假设m个执行体的冗余架构进行了n轮仿真,得到的样本数则为n×m。被正确划分代表正确结果通过仲裁,错误结果未通过仲裁。4个指标的混淆矩阵如表3所示。

表3 判决指标混淆矩阵

其中,正确率Accuracy定义为:

3.3 仿真结果分析

3.3.1 安全评估系数均匀分布

首先,本文仿真分析了在无冗余度的拟态防御架构,所有执行体配置的安全评估系数均匀分布的情况下,3种仲裁算法的判决能力,通过前文定义的5个指标进行对比分析,结果如表4所示。通过对比可以发现,在给定条件下,大数判决的判决性能最差,其次为最优安全度判决,本文提出的基于执行体安全性的智能仲裁算法表现最好。大数判决算法在负例判决时的效果比较差,判决错误的概率达到了46.363%,与随机猜测的50%准确率很接近,这也导致整体的准确率低至62%。相比之下,考虑了执行体安全性的最优安全度判决算法准确率提升很高,但是由于只采用单个执行体的输出作为最终结果,该算法下的拟态防御架构的容侵和容错能力都比较弱,且很容易受到限制。本文提出的基于执行体安全性的智能仲裁算法既考虑了执行体的表决过程,也将执行体本身的抗入侵能力进行了量化,相较于大数判决算法,判决准确率提升了154%,相较于最优安全度判决算法提升了103%。

表4 3种算法判决结果

3.3.2 安全评估系数符合β分布

为了验证不同判决算法在各种场景下的性能及表现情况,本节通过产生安全评估系数符合参数为(0.5,0.5)的β分布的执行体,使系统中包含大量的安全系数低的执行体。模拟系统在执行体高度不可靠的情况下,即非常容易遭受攻击或者攻击强度很大的情况下能否保障正常运行。为了保证结果的正确性和稳定性,记录了仿真次数从10到1 000的不同仿真次数下的平均正确率,结果如图4所示。通过对比可以看出,在执行体高度不可靠的情况下,大数判决的表现最差,甚至在仿真100次准确率低于50%,即性能表现弱于随机猜测的情况。基于最优安全度的判决和本文提出的基于执行体安全性的智能仲裁算法,除在10次仿真时结果不确定较大,准确性较低外,随着仿真次数的上升,准确性逐渐稳定。通过对比,基于最优安全度的判决算法的判决准确率稳定在90%左右,而本文算法在执行体高度不可靠的情况下,仍然能够达到93%左右的判决准确度,且不会随着系统运行时间的变化而改变。因此,在给定安全评估系数符合参数为(0.5,0.5)的β分布的条件下,本文提出的基于执行体安全性的智能仲裁算法,能够很好地应对因执行体漏洞多、安全评估系数低导致的执行体高度不可靠的情况,在这种情况下,仍然能够保持比较准确的多模裁决结果。

3.3.3 执行体数量影响仿真分析

拟态防御系统最重要的特性之一就是异构冗余特性,即性能等价的异构执行体同时执行任务,最终经过多模裁决机制,防止由于单个执行体出现错误导致的系统错误。因此,异构执行体的数量是影响拟态防御系统的关键指标之一。不同的裁决算法在不同的执行体数量下的仲裁准确率都不同。基于此,本节中仿真分析了不同执行体数量下的拟态防御系统中3种判决算法的表现和性能,借助前文定义的5个评估指标进行对比分析。

100次仿真实验中,不同仲裁算法将正例划分正确的数量TP如图5所示。通过对比可以看出,大数判决算法的表现最差,并且在偶数执行体个数下分类正确的概率进一步降低。在针对正例的判决结果中,基于最优安全度的判决结果与本文提出的算法表现相近,在奇数冗余度的情况下更为接近。但是,本文提出的算法始终优于基于最优安全度的判决方法。相对于其他两种算法,本文提出的算法在正例正确分类的平均数量上分别提升了87%和1%。

图5 不同执行体个数下的TP值

类似的,本文对比了三种算法在100次仿真下的将正例错误分类的情况,即执行体的输出正常,但是仲裁算法却将其归类为异常输出的概况的数量,在不同的执行体个数下的结果如图6所示。与TP类似,在偶数冗余度的时候大数判决出错的概率显著提高。但其余两种算法的表现受执行体个数的奇偶性的影响不大,随着执行体个数的增加,裁决表现也逐渐改善,且趋于稳定。整体来讲,与基于最优安全度的判决算法相比基于最优安全度的判决算法,降低了对于输出正确的执行体判决错误的概率。相对于其他两种算法,本文提出的算法在正例错误分类的平均数量上分别降低了96%和56.8%。

图6 不同执行体个数下的FP

在针对负例的判决方面,本文算法要显著优于其余两种算法。由图7可以看出,除在5冗余执行体的情况下本文算法和基于最优安全度的算法表现相近外。整体来讲,相对于其他两种算法,本文提出的算法表现都有较大提升,在负例正确分类的平均数量的分别提升了393%和6%。

图7 不同执行体个数下的FN数量

由正例裁决和负例裁决的结果可以看出,本文算法在处理负例的样本方面有较大的提升,具体表现在负例正确分类的数量显著增加,与之相对的错误分类的数量显著减少,如图8所示。负例即表示系统中受到攻击或出现故障导致执行体输出错误的执行体,处理执行体出错是多模裁决算法需要达到的非常关键的目标之一。相对于其他两种算法,本文提出的算法在负例错误分类的平均数量的分别降低了88%和37.2%。因此,在感知执行体错误的能力方面,加载了本算法的拟态防御系统的防御能力强于传统的大数判决系统。

图8 不同执行体个数下的TN数量

最后,本文对比了3种算法在不同执行体数量下的仲裁准确性,结果如图9所示。可以看出,本文提出的基于执行体安全性的智能判决算法随着执行体数量的变化,准确性平缓增长,并且逐渐收敛到1。大数判决算法的表现最差,并且在偶数执行体情况下准确性会进一步降低。基于最优安全度的算法在执行体数量较少的情况下,变化波动幅度较大,执行体个数大于6之后,变化趋势逐渐平稳。但是整体准确性水平仍然低于本文算法。相对于其他两种算法,本文提出的算法在整体判决的准确率上分别提升了163%和3.8%。

图9 不同执行体个数下的正确率

4 结语

本文研究了拟态防御系统中的多模裁决机制,基于拟态防御系统的特性,综合考虑了执行体的安全性和输出结果空间,运用漏洞分析的方法,提出了一种基于执行体安全性的智能仲裁算法。为了验证算法的有效性,设计了仿真对比试验,仿真结果表明,相对于最常采用的大数判决算法及基于最优安全度的判决算法,本文提出的算法提升了多模裁决的准确性,进而改善了拟态防御系统整体的安全性,增强了系统在面对高强度攻击时的防御能力。

猜你喜欢

大数拟态异构
ETC拓展应用场景下的多源异构交易系统
离散异构线性多智能体系统的输出一致性
试论同课异构之“同”与“异”
章鱼大师的拟态课堂
弱大数定律分析与研究
凝聚与铺张——孙绍振教授《以丑、呆为美》两岸同课异构教学观摩后记
模仿大师——拟态章鱼
决策大数据
关于拟声拟态词的考察
大数和大树