拟态通用运行环境的资源管理与调度技术

2020-02-19 11:26霍立田邵培南徐李定
计算机工程 2020年2期
关键词:元组拟态异构

霍立田,邵培南,徐李定,徐 骏

(中国电子科技集团公司第三十二研究所,上海 201808)

0 概述

拟态信息系统是实现拟态化构造的信息系统,基于邬江兴提出的拟态防御理论[1],为系统运行环境的基础层、应用支撑层和应用层(下文简称三层)软硬件设施可能遭受的安全威胁攻击提供主动防御功能[2],确保处于威胁攻击状态下的系统功能的正确可靠运行、运行过程数据的完整性和防窃取。拟态信息系统主要由系统客户端程序、应用服务程序功能等价的冗余异构执行体或包含冗余异构执行体的云容器或虚拟机应用镜像(下文统称异构执行体)的集合、拟态防御架构[3]和异构冗余集成化运行环境设施组成。

拟态信息系统按其开发语言可分为脚本和源语言两类,其中基于脚本的信息系统拟态防御产品已由信大开发[4]并得到了广泛应用。拟态防御技术面向JAVA和C/C++开发的B/S、C/S信息系统,基于上述组成进行开发和构建,其中拟态防御架构由拟态通用运行环境(Mimic Common Operating Environment,MCOE)实现,异构冗余集成化运行环境由支持N异构执行体、MCOE各服务器运行的具有三层软硬件异构特征运行节点(如申威、飞腾、兆芯CPU,红旗、麒麟操作系统,Tomcat、JBoss Web容器)和构造化的拟态软件产品环境设施组成。

MCOE提供应用服务请求的分发(N异构执行体运行节点)、执行、表决和安全威胁诊断等服务功能,实现了服务请求执行过程的自动化,达到已/未知后门和漏洞主动防御、安全威胁攻击及时阻断、数据完整性确保等拟态防御目标。其由拟态分发器、N异构执行体服务请求执行过程的内部和服务请求响应二表决器(下文称为内部和外部二表决器)、管理者和代理3类服务器组成。拟态分发器面向客户端应用服务请求,提供其接收、处理、分发以及N个异构执行体运行节点服务器的服务请求响应结果的接收、处理和转发客户端等功能。内部和外部二表决器分别针对服务请求执行过程中形成的N个关键结果数据(内部)和请求响应结果数据的表决调用,提供相应表决调用服务,实施表决结果的异常诊断和鲁棒性处理过程,反馈表决结果。管理者提供了拟态应用管理、拟态资源管理和拟态安全管理等功能。代理执行管理者命令,周期性或心跳地归集和上报各运行环境节点的软硬件运行过程形成的数据(如日志和资源状态)。

本文主要从拟态资源的管理体系架构、状态管理、调度服务三方面进行论述。为达到调度的N异构执行体、服务器运行节点资源及其资源对象(云容器、虚拟机)的随机性、动态性和异构性最大化与资源调度负载均衡的目标,具体描述了拟态资源调度的算法设计与实现。

1 拟态资源管理与MCOE框架的交互设计

拟态资源管理提供拟态资源的状态管理和调度服务[5],主要功能包括创建和实时维护集成化环境的运行节点资源、资源对象异构特征和状态全局映像(拟态资源状态管理);提供交互式资源和资源对象的状态和调度管理;基于实时的异构特征和状态全局映像,提供相应资源和资源对象异构特征最大化的N个异构执行体、分发器、内部和外部二表决器的运行节点资源和资源对象的调度请求服务。

资源调度[6]服务请求响应结果主要包括N个异构执行体、运行节点、按需云容器或虚拟机。其中,N个异构执行体的源代码以及相应运行节点三层软硬件的异构性,决定了拟态系统主动防御[7]三层相应软硬件后门或漏洞安全威胁的水平[4],异构执行体、运行节点资源和资源对象(如容器、虚拟机)的调度随机性和动态变化性能有效阻断黑客对系统的网络攻击,上述随机性、动态性和异构性最大化是拟态资源调度实现的目标。

因此,拟态资源管理(特别是资源调度)[8]是MCOE拟态防御机制实现的基础和关键。作为拟态管理服务的组成,其与N异构执行体、MCOE各服务器、集成化运行环境设施的关系见图1,其中虚线框表示接口。

图1 拟态资源管理与MCOE及其外部实体接口的交互关系

拟态资源管理基于B/S架构,为应用客户端程序和MCOE其他服务器提供Web服务访问接口组件。拟态资源管理基于拟态管理Web服务器的管理者和管理者代理(M/A)架构,实施基于命令策略文件profile驱动的对象管理和资源状态的实时归集。管理者和管理者代理的接口遵循MCOE要求的HTTP通信协议,其与外部主要接口的关系见表1。

表1 拟态资源管理与外部实体的主要接口定义

拟态资源调度现有研究工作主要基于N异构体随机性和相似度比较方法。文献[9]提出一种功能等价体调度装置及方法,采取完全随机选择异构功能等价体为外部服务请求提供服务的方式,降低了攻击者对某些漏洞和后门的探知或利用的可能性。文献[10-11]提出及改进的随机种子最小相似度算法(Random Seed and Minimum Similarity,RSMS)先随机选取冗余体,再进行最小相似性比较。在实际拟态应用场景中,异构执行体和运行环境节点软硬件的相似度可预先确定,工程上需综合考虑N异构执行体和运行节点资源的随机性、动态性和异构性。

2 拟态资源管理服务框架设计

拟态资源状态管理为客户端提供资源状态查询、监管和调度功能,框架设计如图2所示。

1)节点资源归集和上报:管理者代理心跳[12]归集和上报分发、N异构执行体、内部和外部二表决4类服务器节点以及相应云容器和虚拟机资源运行状态信息;对于服务器或云集群,基于集群服务器[13-14]API获取相应节点或云容器和虚拟机资源状态信息。

2)映像和表维护:拟态资源异构特征和状态管理基于上报的节点资源状态与节点资源状态的变化,同步更新环境节点异构特征和状态的内存映像和表以及运行节点记录。

3)资源调度:拟态资源调度管理依据设计的调度算法为分发、N异构执行体、内部和外部二表决服务器调度相应的运行节点或云容器、虚拟机计算资源。

图2 拟态资源管理框架

3 拟态资源状态管理

拟态资源状态管理(如图3所示)具体功能如下:

1)提供拟态系统运行环境节点资源状态整体映像和表的创建及实时维护,并提供交互式资源的调度和管理。

2)基于拟态应用定义的运行环境节点异构特征表、节点及云资源分配表,各节点管理者代理心跳上报的上述各节点的资源使用状态,动态构建和维护系统运行节点资源分配的总量及可分配量(全局资源状态内存映射,如CPU数量、CPU频率、内存容量等指标),并基于环境节点配置动态更新运行环境节点异构特征表和节点资源及其索引表,同时更新运行节点记录。

3)管理者代理服务采用心跳方法上报获取的OS和云容器资源状态,由全局映像及表维护线程进行实时或按需的循环处理[15]。表2为拟态系统运行环境下的节点资源状态映射。

图3 拟态资源状态管理流程

表2 拟态系统运行环境下的节点资源状态映射

4 拟态资源调度服务

拟态资源调度服务主要为客户端服务请求的执行分别提供N异构执行体服务器、分发服务器、内部和外部二表决服务器的运行资源调度。其调度目标在于最大化地确保N个服务器运行节点三层软硬件的随机性、动态性和异构性,并实现资源的调度[16]和负载均衡[17]。

分发、内部和外部二表决服务器的资源调度是单一服务器运行资源的调度,是N异构执行体服务器的N=1特例,下文主要以N异构执行体为对象,描述资源调度的设计与实现。

4.1 拟态资源调度的基础数据结构

拟态应用为拟态资源管理创建了资源管理所需的基础数据结构,表3给出了三层软硬件通用异构特征的8位二进制数字化表示,其中,异构特征表征中1位为1、7位为0,最多表示8个异构特征,多于8个异构特征的情况,依相似度合并为8个表征。实际上大多数软硬件异构特征个数小于等于3。表4为分类索引构建的运行节点全局特征(其中“/”表示没有该值),基于此实施相应的记录分类,形成如表5所示的异构执行体分类索引。

表3 拟态运行环境三层软硬件通用异构特征定义

表4 拟态系统异构环境下的异构特征映射

表5 异构执行体分类索引

4.2 拟态资源调度准则和资源部署规划需求

拟态管理资源调度服务基于如下调度准则实现N个异构执行体(部署服务器、云容器或虚拟机)和相应执行体运行节点资源及资源对象的调度算法:

准则1N个异构执行体应符合源代码异构特征最大化原则,具有调度的随机性。

准则2N个运行节点基础层应符合软硬件异构特征最大化原则,并确保异构执行体均衡分布在不同运行节点上。

准则3在遵循准则1和准则2的前提下,N个运行节点应用支撑层软件应符合异构特征最大化原则。

准则4高优先级防御的软硬件异构特征最大化应优先满足的原则(由拟态系统应用管理给出)。

准则5资源调度动态变化性和负载均衡性。

N异构执行体资源调度应遵循运行节点资源负载均衡,并兼顾客户端按序服务请求的前后N异构执行体运行节点资源的动态变化性最大原则。

拟态资源管理遵循调度准则,规划运行节点三层软硬件异构特征和负载的均衡配置及部署,拟态资源调度算法基于该均衡配置和部署假设的前提下进行优化设计。

4.3 拟态资源调度概要设计

拟态资源调度服务基于构建特定系统应用服务程序的异构执行体N元组表及全局映像按需调度具有异构性和负载均衡的N元组,包括运行节点、云容器和虚拟机。图4为拟态资源调度功能模块及交互示意图,反映了拟态资源调度(拟态资源调度初始化、拟态资源对象调度服务)两个部分的交互和功能。

图4 拟态资源调度功能模块及交互示意图

Fig.4 Mimic resource scheduling function module and interaction diagram

4.4 拟态资源调度初始化

图5为拟态资源异构执行N元组的调度流程。

图5 拟态资源异构执行体N元组调度流程

Fig.5 Scheduling procedure of the heterogeneous executor N-tuple for mimic resources

4.4.1 异构特征分类器构建

构建的异构特征分类器[19]见图6,其中,层和源代码异构特征分类索引最大值和标志情况见表6,三层软硬件异构特征最大值和标志情况见表7,分类索引由[I]、[I,J]、[I,J,K]、[I,J,K,L]表示,每个索引指向运行节点集合和部署的异构执行体集合,分别表示经过上层分类结果形成的具有异构特征组合的分类标志索引,索引所指向的值包括运行节点索引集合和运行节点部署的异构执行体组合。表8~表10表示相应I、J、K索引值所定义的异构特征。

图6 异构特征分类器分类示意图

表6 层和源代码异构特征分类索引最大值和标志

Table 6Maximum values and flags of heterogeneous feature classification indexes for layers and source code

层异构特征索引分类层软硬件数量标志和数量值异构特征最大值标志数值运行节点/NodeMax9基础层异构特征索引FLHSAmountFLHMax6源代码异构特征索引/SCodeHMax3应用支撑层索引ASLHSAmountASLHMax2

表7 三层软硬件异构特征最大值和标志

Table 7 Maximum values and flags of heterogeneous features of software and hardware resources of 3 layers

层分类异构特征分类异构特征最大数标志数值基础层CPUCPUHMax3OSOSHmax2云容器CloudContainerHMax2应用支撑层Web容器WebContainerHMax2︙︙︙应用层编译+参数CompileParaHMax5异构执行体ExecEntityHMax3

表8 基础层异构特征索引值和标志

Table 8 Index values and flags of heterogeneous features of the basic layer

分类索引值(I)CPUOS云容器10000000100000001000000012000000100000001000000010︙︙︙︙FLHMax………

表9 源代码异构特征索引值和标志

Table 9 Index values and flags of heterogeneous features of the source code

分类索引值(J)异构特征值100000001200000010︙︙SCodeHMax…

表10 应用支撑层异构特征索引值和标志

Table 10 Index values and flags of heterogeneous features of the application supporting layer

分类索引值(K)Web容器订阅和分发服务中间件…10000000100000001…20000001000000010…︙︙︙︙ASLHMax………

4.4.2 运行节点异构特征分类及N元组构建

运行节点异构特征分类及N元组的构建算法具体如下:

输入运行节点索引L(L=1,2,…,NodeMax),不同的索引代表不同的IP地址或域名,NodeG[I](I=1,2,…,FLHMax)代表I分类后,具有相同I索引值的运行节点索引值数组

输出运行节点N元组集合

/*面向服务请求的N异构执行体资源调度需求,优先选择具有不同基础层异构特征的运行节点作为N元组元素,构建N元组集合;N大于基础层异构特征最大数FLHMax时,先构建运行节点M元组集合(M=FLHMax),并基于各Node[I]的运行节点数,按比例均衡扩展集合中的各M元组到N元组;最终均衡扩展N元组集合元素,达到运行节点均衡分布,以便于异构执行体N元组的构建*/

1./*判断FLHMax与N的大小关系*/

If FLHMax>N then M=N else M= FLHMax;

Repeat

从NodeG[I](I=1,2,…,FLHMax)中各NodeG[I]选择不同L索引值组成的运行节点M元组;

utill 遍历完成

2.按比例均衡扩展

计算1:NodeG[I]部署运行节点数比例=NodeG[I]部署运行节点数/部署NodeMax;

For 所有运行节点M元组

{

i=0;

NM=N-M

While i

{

计算2:M元组集合中的NodeG[I]运行节点数比例=属于NodeG[I]中运行节点总数/(M*集合个数)

i++;

选择NodeG[I]运行节点计算1与计算2的比例偏差超阈值最大的Node[I],优先选择Node[I]指向的运行节点数组中不同的运行节点索引L;

添加L(运行节点索引值及标志)成为M+i个运行节点元素,形成运行节点M+i元组

}

}

/*均衡扩展N元组集合元素,达到运行节点比例偏差小于阈值*/

3.计算3:N元组集合NodeG[I]运行节点数比例=N元组集合中属于NodeG[I]中运行节点总数/(N*集合个数);

While计算1与计算3的比例实际偏差大于阈值

{

针对误差大于阈值的NodeG[I]集合,按误差比例选择确定NodeG[I]的运行节点数目,优先选择不同[j,k]的运行节点,形成N元组

}

/*针对运行节点服务器部署的多个异构执行体或云容器或虚拟机应用镜像执行体,计算其应用支撑层和源代码异构度,用于对运行节点N元组的排序和分层*/

4./*按N元组中的运行节点异构度对运行节点N元组集合排序和分层,其中高优先级的节点N元组优先进行异构执行体N元组的构建*/

For 运行节点N元组集合中的各N元组

{

运行节点N元组异构度=sum(该节点N元组中N个节点各软硬件异构特征异构度)

(各异构特征的异构度=该节点N元组中节点上的所有异构执行体对应该异构特征的数字化值求AND结果中1的数量)

5.合并相同运行节点N元组,并按照N元组异构度排序;

6.根据异构度对节点N元组进行三层分层:可构成完全异构的N异构执行体的节点N元组为一层(各层异构特征数大于需求数的特征均不同,小于需求数的特征为该特征异构最大值),满足用户要求优先级次序的节点N元组为一层,可扩展构成的节点N元组为一层;

7.根据记录的节点N元组的分层情况,优先调度可构成完全异构的N异构执行体的节点N元组进入下一步异构执行体N元组的构建模块;

}

8.当增加节点或节点遭到破坏的情况下,直接在该步进行节点N元组的调整和更新分层(当有节点遭到攻击需要删除时,实时隐藏所有包含该节点的节点N元组;当有新节点添加时,根据新节点各层异构特征修改现有资源映射和表),以更好地满足基于现有系统资源和运行状态的动态调度

4.4.3 异构执行体N元组集合构建

异构执行体N元组集合构建算法具体如下:

输入[I,J,K,L]组合索引;ExecEntity[EEIJKL]为L运行节点、具有相同I、J、K异构特征值的异构执行体元素构成的数组,EIJKL为异构执行体元素个数,每个数组元素为E,E为异构执行体索引;[I,J,K]定义的各软硬件异构特征分类、顺序和最大异构特征数量XXXMax

输出异构执行体N元组集合

/* 遍历形成异构执行体N元组(按照运行节点N元组集合的各N元组优先级顺序,优先选择可构成完全异构的异构执行体层中的节点N元组)*/

1.Repeat

对于节点N元组及其分层结果,优先考虑完全异构的节点N元组,从Li(i=1,2,…,NodeMax,Li为运行节点索引值)指向的ExecEntity[EEIJKL]集合中选择异构执行体,构建异构执行体N元组;N元组每个元素包括{I,J,K,L,E}(E为异构执行体索引)

/*计算异构执行体N元组的软硬件异构特征最大化原则符合度*/

{

对N元组中的异构执行体,分别计算I、J、K各软硬件异构特征数量:对各软硬件异构特征八位二进制表示值进行AND操作,软硬件异构特征数量= AND结果的八位二进制中1的数量

软硬件异构特征最大化原则符合度=软硬件异构特征数量/软硬件异构特征XXXMax*100%

/*算法设定了缺省的软硬件异构特征优先级和权值,如指定优先顺序依次为源代码、CPU、OS、容器、Web容器。其各指标最大值分别为SCodeHMax、CPUHMax、OSHMax、CloudContainerHMax、WebContainerHMax,权值依次为0.3、0.25、0.2、0.15、0.1,如用户定义了指定的特定一组软硬件异构特征优先级,其指定的软硬件按70%总权重和优先级分配、其他30%权重按缺省的优先级分配。*/

按软硬件异构特征优先级计算I、J、K的异构特征符合度=SUM(各软硬件的权重*Min(1,异构特征符合度)

}

Until 运行节点N元组遍历完成

2.合并和去重异构执行体N元组,形成可调度的异构执行体N元组集合,每个N元组包括相应的I、J、K和软硬件异构特征符合度,N元组中各异构执行体指向的I、J、K、L、E(E为异构执行体索引)

3.按软硬件优先级和I、J、K异构特征符合度排序并分层

4.5 拟态资源对象调度服务

4.5.1 分类器和N元组一致性更新

基于分类树,当运行节点资源(增/减)和资源对象(异构执行体:容器/虚拟机增/减)动态变化时,将直接针对其各层特征进行分类器的插入和删除,对分类器和各层输出数据进行一致性更新,形成动态变化后的异构执行体N元组集合。

4.5.2 异构执行体N元组运行资源负载均衡与调度

异构执行体N元组运行资源负载均衡和调度算法的输入为运行节点和异构执行体N元组,输出为异构执行体N元组负载均衡队列和调度结果。图7为N元组运行资源负载均衡和调度活动图,当资源对象为容器时,需进行容器及其所在节点负载情况的综合考虑及计算。

图7 N元组运行资源负载均衡与调度流程

Fig.7 Procedure of load balancing and scheduling of the N-tuple running node resources

4.5.3 异构执行体N元组间资源负载均衡与调度

异构执行体N元组间资源负载均衡和调度具体如下:

1)服务器节点的负载均衡计算

图8为服务器节点负载均衡与调度流程。

图8 服务器节点负载均衡与调度流程

Fig.8 Procedure of load balancing and scheduling of the server node

对于N元组中的节点Ni,根据全局资源状态表可以获取其CPU数量m、CPU频率FCi、内存容量CMi、磁盘I/O速率RDi等指标,进而计算其性能PNi:

PNi=k1mFCi+k2CMi+k3RDi

i=0,1,…,n-1,∑kl=1

(1)

其中,kl是各项指标的权值参数,反映不同类型的服务对各个指标的影响程度,其和为1,该参数可以根据系统运行情况进行调节,以期达到更好的效果。

同理,其负载LNi主要从CPU占用率OCi、内存占用率OMi、磁盘I/O占用率ODi等指标进行考虑:

LNi=k1OCi+k2OMi+k3ODi

i=0,1,…,n-1,∑kl=1

(2)

节点的负载权值WNi定义为节点负载LNi与节点性能PNi的比值,采用式(3)进行计算。

(3)

其中,WNi越大,说明节点负载越重,其对应方差越小,说明该N元组中的不同元素负载情况更均衡,执行时异步概率更低。根据负载排序队列选取各N元组中负载权值及其方差最小的集合作为最终调度结果。

2)云容器和虚拟机的负载均衡计算

云容器、虚拟机均需要基于物理服务器节点进行部署和分配,其负载均衡调度方式类似,本文以云容器为例进行设计。云容器的负载均衡与调度流程如图9所示。

图9 云容器负载均衡与调度流程

Fig.9Procedure of load balancing and scheduling of the cloud container

云容器负载均衡计算方法具体如下:

(1)容器负载权值计算

参照物理节点的负载计算公式,面向拟态信息系统访问程度,根据节点资源对象状态映射获取容器CPU占用率O′Ci和内存占用率O′Mi,给出如下简化的容器负载权值W′Ni计算公式:

W′Ni=kcO′Ci+kmO′Mi

(4)

其中,kc、km分别为两项指标的权值参数,反映不同类型的服务对各个指标的影响程度,其和为1。

对于基于云容器部署的异构执行体可调度性同时受其所在物理服务器节点的影响,记节点负载权值所占比重为kn,容器负载权值所占比重为ks,其计算公式如下:

Wi=knWNi+ksW′Ni

(5)

(2)N元组负载均衡计算

针对按序输入的各异构执行体N元组,分别计算各个N元组中元素的负载Wi,取中位数Wm作为该N元组的负载性能,多线程调度时的平衡度、响应度评价指标。

(3)基于负载均衡的随机调度

选取输入的异构执行体N元组中同时满足Wm小于0.7,方差小于0.5的N元组。统计这些N元组当前的调度情况,哈希选取调度次数小于中位数的N元组作为调度结果,并对该N元组的调度次数加1,保证随机性。

4.6 实例分析

基于本文提出的拟态资源管理和N异构执行体调度方案进行简单的实例分析与验证。实例基础环境为包含4个节点、3个基础支撑层(包含3种CPU、2种OS、2种容器)的异构特征,异构执行体为3种异构源代码,应用支撑层考虑现有两种Web容器(Tomcat、JBoss);对于编译异构特征,假设已事先进行关联。

表11为实验所需的资源状态基础信息,其数字化值可关联到本文资源管理部分的定义。目标为从其中选出3个可调度的满足异构性最大化的执行体。根据本文设计的调度算法,通过分类器对现有资源状态进行分类,首先得到3个不同的基础层异构执行体池,其中1号池包含两个节点(Node1、Node2),根据节点N元组选择的方案,本次实验阈值设为0,得到4个节点N元组,分别是:1)Node1,Node3,Node4;2)Node2,Node3,Node4;3)Node1,Node2,Node3;4)Node1,Node2,Node4。经过异构度计算,元组1和元组2属于可完全异构层,其优先次序优于元组3和元组4,因此优先基于元组1和元组2的节点N元组构建异构执行体N元组,并根据本文算法输出12个N元组集合及其异构度排序,其中,2组异构度为1的异构执行体N元组(完全异构),1组异构度为0.95的异构执行体N元组,6组异构度为0.9的异构执行体N元组……,如表12所示为满足完全异构的N元组。

表11 示例实验资源状态信息

表12 满足完全异构的节点N元组特征

对满足完全异构的两组异构执行体N元组进行负载均衡计算,经过实验建立的复杂场选定多个权值参数kc=0.5、km=0.5、kn=0.4、ks=0.6,得到节点N元组1的负载权值为0.3,方差为0.26;节点N元组2的负载权值为 0.6,方差为0.48;均小于设定的Wm和方差阈值,满足均衡性调度。当前状态两N元组调度次数均为0,因此哈希[20]选取其中任意一组作为调度结果,保证随机性、动态性和异构性三性最大化,增强攻击难度。

5 结束语

本文基于网络安全领域的拟态防御技术,针对MCOE运行环境中资源管理和调度问题,论述拟态通用运行环境的资源管理方案设计与实现,特别是针对现有资源状态的调度和实现。通过拟态管理服务的简单示例验证了对云容器集群上资源管理拟态调度方案的有效性。下一步将结合现有资源状态与Kubernetes调度机制实现拟态资源调度算法的优化和高效执行。

猜你喜欢
元组拟态异构
试论同课异构之“同”与“异”
章鱼大师的拟态课堂
Python核心语法
一种基于时间戳的简单表缩减算法∗
海量数据上有效的top-kSkyline查询算法*
吴健:多元异构的数字敦煌
模仿大师——拟态章鱼
基于减少检索的负表约束优化算法
关于拟声拟态词的考察
“拟态边疆”:媒介化社会中的涉藏边疆传播研究