霍立田,邵培南,徐李定,徐 駿
(中國(guó)電子科技集團(tuán)公司第三十二研究所,上海 201808)
擬態(tài)信息系統(tǒng)是實(shí)現(xiàn)擬態(tài)化構(gòu)造的信息系統(tǒng),基于鄔江興提出的擬態(tài)防御理論[1],為系統(tǒng)運(yùn)行環(huán)境的基礎(chǔ)層、應(yīng)用支撐層和應(yīng)用層(下文簡(jiǎn)稱三層)軟硬件設(shè)施可能遭受的安全威脅攻擊提供主動(dòng)防御功能[2],確保處于威脅攻擊狀態(tài)下的系統(tǒng)功能的正確可靠運(yùn)行、運(yùn)行過(guò)程數(shù)據(jù)的完整性和防竊取。擬態(tài)信息系統(tǒng)主要由系統(tǒng)客戶端程序、應(yīng)用服務(wù)程序功能等價(jià)的冗余異構(gòu)執(zhí)行體或包含冗余異構(gòu)執(zhí)行體的云容器或虛擬機(jī)應(yīng)用鏡像(下文統(tǒng)稱異構(gòu)執(zhí)行體)的集合、擬態(tài)防御架構(gòu)[3]和異構(gòu)冗余集成化運(yùn)行環(huán)境設(shè)施組成。
擬態(tài)信息系統(tǒng)按其開(kāi)發(fā)語(yǔ)言可分為腳本和源語(yǔ)言兩類,其中基于腳本的信息系統(tǒng)擬態(tài)防御產(chǎn)品已由信大開(kāi)發(fā)[4]并得到了廣泛應(yīng)用。擬態(tài)防御技術(shù)面向JAVA和C/C++開(kāi)發(fā)的B/S、C/S信息系統(tǒng),基于上述組成進(jìn)行開(kāi)發(fā)和構(gòu)建,其中擬態(tài)防御架構(gòu)由擬態(tài)通用運(yùn)行環(huán)境(Mimic Common Operating Environment,MCOE)實(shí)現(xiàn),異構(gòu)冗余集成化運(yùn)行環(huán)境由支持N異構(gòu)執(zhí)行體、MCOE各服務(wù)器運(yùn)行的具有三層軟硬件異構(gòu)特征運(yùn)行節(jié)點(diǎn)(如申威、飛騰、兆芯CPU,紅旗、麒麟操作系統(tǒng),Tomcat、JBoss Web容器)和構(gòu)造化的擬態(tài)軟件產(chǎn)品環(huán)境設(shè)施組成。
MCOE提供應(yīng)用服務(wù)請(qǐng)求的分發(fā)(N異構(gòu)執(zhí)行體運(yùn)行節(jié)點(diǎn))、執(zhí)行、表決和安全威脅診斷等服務(wù)功能,實(shí)現(xiàn)了服務(wù)請(qǐng)求執(zhí)行過(guò)程的自動(dòng)化,達(dá)到已/未知后門和漏洞主動(dòng)防御、安全威脅攻擊及時(shí)阻斷、數(shù)據(jù)完整性確保等擬態(tài)防御目標(biāo)。其由擬態(tài)分發(fā)器、N異構(gòu)執(zhí)行體服務(wù)請(qǐng)求執(zhí)行過(guò)程的內(nèi)部和服務(wù)請(qǐng)求響應(yīng)二表決器(下文稱為內(nèi)部和外部二表決器)、管理者和代理3類服務(wù)器組成。擬態(tài)分發(fā)器面向客戶端應(yīng)用服務(wù)請(qǐng)求,提供其接收、處理、分發(fā)以及N個(gè)異構(gòu)執(zhí)行體運(yùn)行節(jié)點(diǎn)服務(wù)器的服務(wù)請(qǐng)求響應(yīng)結(jié)果的接收、處理和轉(zhuǎn)發(fā)客戶端等功能。內(nèi)部和外部二表決器分別針對(duì)服務(wù)請(qǐng)求執(zhí)行過(guò)程中形成的N個(gè)關(guān)鍵結(jié)果數(shù)據(jù)(內(nèi)部)和請(qǐng)求響應(yīng)結(jié)果數(shù)據(jù)的表決調(diào)用,提供相應(yīng)表決調(diào)用服務(wù),實(shí)施表決結(jié)果的異常診斷和魯棒性處理過(guò)程,反饋表決結(jié)果。管理者提供了擬態(tài)應(yīng)用管理、擬態(tài)資源管理和擬態(tài)安全管理等功能。代理執(zhí)行管理者命令,周期性或心跳地歸集和上報(bào)各運(yùn)行環(huán)境節(jié)點(diǎn)的軟硬件運(yùn)行過(guò)程形成的數(shù)據(jù)(如日志和資源狀態(tài))。
本文主要從擬態(tài)資源的管理體系架構(gòu)、狀態(tài)管理、調(diào)度服務(wù)三方面進(jìn)行論述。為達(dá)到調(diào)度的N異構(gòu)執(zhí)行體、服務(wù)器運(yùn)行節(jié)點(diǎn)資源及其資源對(duì)象(云容器、虛擬機(jī))的隨機(jī)性、動(dòng)態(tài)性和異構(gòu)性最大化與資源調(diào)度負(fù)載均衡的目標(biāo),具體描述了擬態(tài)資源調(diào)度的算法設(shè)計(jì)與實(shí)現(xiàn)。
擬態(tài)資源管理提供擬態(tài)資源的狀態(tài)管理和調(diào)度服務(wù)[5],主要功能包括創(chuàng)建和實(shí)時(shí)維護(hù)集成化環(huán)境的運(yùn)行節(jié)點(diǎn)資源、資源對(duì)象異構(gòu)特征和狀態(tài)全局映像(擬態(tài)資源狀態(tài)管理);提供交互式資源和資源對(duì)象的狀態(tài)和調(diào)度管理;基于實(shí)時(shí)的異構(gòu)特征和狀態(tài)全局映像,提供相應(yīng)資源和資源對(duì)象異構(gòu)特征最大化的N個(gè)異構(gòu)執(zhí)行體、分發(fā)器、內(nèi)部和外部二表決器的運(yùn)行節(jié)點(diǎn)資源和資源對(duì)象的調(diào)度請(qǐng)求服務(wù)。
資源調(diào)度[6]服務(wù)請(qǐng)求響應(yīng)結(jié)果主要包括N個(gè)異構(gòu)執(zhí)行體、運(yùn)行節(jié)點(diǎn)、按需云容器或虛擬機(jī)。其中,N個(gè)異構(gòu)執(zhí)行體的源代碼以及相應(yīng)運(yùn)行節(jié)點(diǎn)三層軟硬件的異構(gòu)性,決定了擬態(tài)系統(tǒng)主動(dòng)防御[7]三層相應(yīng)軟硬件后門或漏洞安全威脅的水平[4],異構(gòu)執(zhí)行體、運(yùn)行節(jié)點(diǎn)資源和資源對(duì)象(如容器、虛擬機(jī))的調(diào)度隨機(jī)性和動(dòng)態(tài)變化性能有效阻斷黑客對(duì)系統(tǒng)的網(wǎng)絡(luò)攻擊,上述隨機(jī)性、動(dòng)態(tài)性和異構(gòu)性最大化是擬態(tài)資源調(diào)度實(shí)現(xiàn)的目標(biāo)。
因此,擬態(tài)資源管理(特別是資源調(diào)度)[8]是MCOE擬態(tài)防御機(jī)制實(shí)現(xiàn)的基礎(chǔ)和關(guān)鍵。作為擬態(tài)管理服務(wù)的組成,其與N異構(gòu)執(zhí)行體、MCOE各服務(wù)器、集成化運(yùn)行環(huán)境設(shè)施的關(guān)系見(jiàn)圖1,其中虛線框表示接口。
圖1 擬態(tài)資源管理與MCOE及其外部實(shí)體接口的交互關(guān)系
擬態(tài)資源管理基于B/S架構(gòu),為應(yīng)用客戶端程序和MCOE其他服務(wù)器提供Web服務(wù)訪問(wèn)接口組件。擬態(tài)資源管理基于擬態(tài)管理Web服務(wù)器的管理者和管理者代理(M/A)架構(gòu),實(shí)施基于命令策略文件profile驅(qū)動(dòng)的對(duì)象管理和資源狀態(tài)的實(shí)時(shí)歸集。管理者和管理者代理的接口遵循MCOE要求的HTTP通信協(xié)議,其與外部主要接口的關(guān)系見(jiàn)表1。
表1 擬態(tài)資源管理與外部實(shí)體的主要接口定義
擬態(tài)資源調(diào)度現(xiàn)有研究工作主要基于N異構(gòu)體隨機(jī)性和相似度比較方法。文獻(xiàn)[9]提出一種功能等價(jià)體調(diào)度裝置及方法,采取完全隨機(jī)選擇異構(gòu)功能等價(jià)體為外部服務(wù)請(qǐng)求提供服務(wù)的方式,降低了攻擊者對(duì)某些漏洞和后門的探知或利用的可能性。文獻(xiàn)[10-11]提出及改進(jìn)的隨機(jī)種子最小相似度算法(Random Seed and Minimum Similarity,RSMS)先隨機(jī)選取冗余體,再進(jìn)行最小相似性比較。在實(shí)際擬態(tài)應(yīng)用場(chǎng)景中,異構(gòu)執(zhí)行體和運(yùn)行環(huán)境節(jié)點(diǎn)軟硬件的相似度可預(yù)先確定,工程上需綜合考慮N異構(gòu)執(zhí)行體和運(yùn)行節(jié)點(diǎn)資源的隨機(jī)性、動(dòng)態(tài)性和異構(gòu)性。
擬態(tài)資源狀態(tài)管理為客戶端提供資源狀態(tài)查詢、監(jiān)管和調(diào)度功能,框架設(shè)計(jì)如圖2所示。
1)節(jié)點(diǎn)資源歸集和上報(bào):管理者代理心跳[12]歸集和上報(bào)分發(fā)、N異構(gòu)執(zhí)行體、內(nèi)部和外部二表決4類服務(wù)器節(jié)點(diǎn)以及相應(yīng)云容器和虛擬機(jī)資源運(yùn)行狀態(tài)信息;對(duì)于服務(wù)器或云集群,基于集群服務(wù)器[13-14]API獲取相應(yīng)節(jié)點(diǎn)或云容器和虛擬機(jī)資源狀態(tài)信息。
2)映像和表維護(hù):擬態(tài)資源異構(gòu)特征和狀態(tài)管理基于上報(bào)的節(jié)點(diǎn)資源狀態(tài)與節(jié)點(diǎn)資源狀態(tài)的變化,同步更新環(huán)境節(jié)點(diǎn)異構(gòu)特征和狀態(tài)的內(nèi)存映像和表以及運(yùn)行節(jié)點(diǎn)記錄。
3)資源調(diào)度:擬態(tài)資源調(diào)度管理依據(jù)設(shè)計(jì)的調(diào)度算法為分發(fā)、N異構(gòu)執(zhí)行體、內(nèi)部和外部二表決服務(wù)器調(diào)度相應(yīng)的運(yùn)行節(jié)點(diǎn)或云容器、虛擬機(jī)計(jì)算資源。
圖2 擬態(tài)資源管理框架
擬態(tài)資源狀態(tài)管理(如圖3所示)具體功能如下:
1)提供擬態(tài)系統(tǒng)運(yùn)行環(huán)境節(jié)點(diǎn)資源狀態(tài)整體映像和表的創(chuàng)建及實(shí)時(shí)維護(hù),并提供交互式資源的調(diào)度和管理。
2)基于擬態(tài)應(yīng)用定義的運(yùn)行環(huán)境節(jié)點(diǎn)異構(gòu)特征表、節(jié)點(diǎn)及云資源分配表,各節(jié)點(diǎn)管理者代理心跳上報(bào)的上述各節(jié)點(diǎn)的資源使用狀態(tài),動(dòng)態(tài)構(gòu)建和維護(hù)系統(tǒng)運(yùn)行節(jié)點(diǎn)資源分配的總量及可分配量(全局資源狀態(tài)內(nèi)存映射,如CPU數(shù)量、CPU頻率、內(nèi)存容量等指標(biāo)),并基于環(huán)境節(jié)點(diǎn)配置動(dòng)態(tài)更新運(yùn)行環(huán)境節(jié)點(diǎn)異構(gòu)特征表和節(jié)點(diǎn)資源及其索引表,同時(shí)更新運(yùn)行節(jié)點(diǎn)記錄。
3)管理者代理服務(wù)采用心跳方法上報(bào)獲取的OS和云容器資源狀態(tài),由全局映像及表維護(hù)線程進(jìn)行實(shí)時(shí)或按需的循環(huán)處理[15]。表2為擬態(tài)系統(tǒng)運(yùn)行環(huán)境下的節(jié)點(diǎn)資源狀態(tài)映射。
圖3 擬態(tài)資源狀態(tài)管理流程
表2 擬態(tài)系統(tǒng)運(yùn)行環(huán)境下的節(jié)點(diǎn)資源狀態(tài)映射
擬態(tài)資源調(diào)度服務(wù)主要為客戶端服務(wù)請(qǐng)求的執(zhí)行分別提供N異構(gòu)執(zhí)行體服務(wù)器、分發(fā)服務(wù)器、內(nèi)部和外部二表決服務(wù)器的運(yùn)行資源調(diào)度。其調(diào)度目標(biāo)在于最大化地確保N個(gè)服務(wù)器運(yùn)行節(jié)點(diǎn)三層軟硬件的隨機(jī)性、動(dòng)態(tài)性和異構(gòu)性,并實(shí)現(xiàn)資源的調(diào)度[16]和負(fù)載均衡[17]。
分發(fā)、內(nèi)部和外部二表決服務(wù)器的資源調(diào)度是單一服務(wù)器運(yùn)行資源的調(diào)度,是N異構(gòu)執(zhí)行體服務(wù)器的N=1特例,下文主要以N異構(gòu)執(zhí)行體為對(duì)象,描述資源調(diào)度的設(shè)計(jì)與實(shí)現(xiàn)。
擬態(tài)應(yīng)用為擬態(tài)資源管理創(chuàng)建了資源管理所需的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),表3給出了三層軟硬件通用異構(gòu)特征的8位二進(jìn)制數(shù)字化表示,其中,異構(gòu)特征表征中1位為1、7位為0,最多表示8個(gè)異構(gòu)特征,多于8個(gè)異構(gòu)特征的情況,依相似度合并為8個(gè)表征。實(shí)際上大多數(shù)軟硬件異構(gòu)特征個(gè)數(shù)小于等于3。表4為分類索引構(gòu)建的運(yùn)行節(jié)點(diǎn)全局特征(其中“/”表示沒(méi)有該值),基于此實(shí)施相應(yīng)的記錄分類,形成如表5所示的異構(gòu)執(zhí)行體分類索引。
表3 擬態(tài)運(yùn)行環(huán)境三層軟硬件通用異構(gòu)特征定義
表4 擬態(tài)系統(tǒng)異構(gòu)環(huán)境下的異構(gòu)特征映射
表5 異構(gòu)執(zhí)行體分類索引
擬態(tài)管理資源調(diào)度服務(wù)基于如下調(diào)度準(zhǔn)則實(shí)現(xiàn)N個(gè)異構(gòu)執(zhí)行體(部署服務(wù)器、云容器或虛擬機(jī))和相應(yīng)執(zhí)行體運(yùn)行節(jié)點(diǎn)資源及資源對(duì)象的調(diào)度算法:
準(zhǔn)則1N個(gè)異構(gòu)執(zhí)行體應(yīng)符合源代碼異構(gòu)特征最大化原則,具有調(diào)度的隨機(jī)性。
準(zhǔn)則2N個(gè)運(yùn)行節(jié)點(diǎn)基礎(chǔ)層應(yīng)符合軟硬件異構(gòu)特征最大化原則,并確保異構(gòu)執(zhí)行體均衡分布在不同運(yùn)行節(jié)點(diǎn)上。
準(zhǔn)則3在遵循準(zhǔn)則1和準(zhǔn)則2的前提下,N個(gè)運(yùn)行節(jié)點(diǎn)應(yīng)用支撐層軟件應(yīng)符合異構(gòu)特征最大化原則。
準(zhǔn)則4高優(yōu)先級(jí)防御的軟硬件異構(gòu)特征最大化應(yīng)優(yōu)先滿足的原則(由擬態(tài)系統(tǒng)應(yīng)用管理給出)。
準(zhǔn)則5資源調(diào)度動(dòng)態(tài)變化性和負(fù)載均衡性。
N異構(gòu)執(zhí)行體資源調(diào)度應(yīng)遵循運(yùn)行節(jié)點(diǎn)資源負(fù)載均衡,并兼顧客戶端按序服務(wù)請(qǐng)求的前后N異構(gòu)執(zhí)行體運(yùn)行節(jié)點(diǎn)資源的動(dòng)態(tài)變化性最大原則。
擬態(tài)資源管理遵循調(diào)度準(zhǔn)則,規(guī)劃運(yùn)行節(jié)點(diǎn)三層軟硬件異構(gòu)特征和負(fù)載的均衡配置及部署,擬態(tài)資源調(diào)度算法基于該均衡配置和部署假設(shè)的前提下進(jìn)行優(yōu)化設(shè)計(jì)。
擬態(tài)資源調(diào)度服務(wù)基于構(gòu)建特定系統(tǒng)應(yīng)用服務(wù)程序的異構(gòu)執(zhí)行體N元組表及全局映像按需調(diào)度具有異構(gòu)性和負(fù)載均衡的N元組,包括運(yùn)行節(jié)點(diǎn)、云容器和虛擬機(jī)。圖4為擬態(tài)資源調(diào)度功能模塊及交互示意圖,反映了擬態(tài)資源調(diào)度(擬態(tài)資源調(diào)度初始化、擬態(tài)資源對(duì)象調(diào)度服務(wù))兩個(gè)部分的交互和功能。
圖4 擬態(tài)資源調(diào)度功能模塊及交互示意圖
Fig.4 Mimic resource scheduling function module and interaction diagram
圖5為擬態(tài)資源異構(gòu)執(zhí)行N元組的調(diào)度流程。
圖5 擬態(tài)資源異構(gòu)執(zhí)行體N元組調(diào)度流程
Fig.5 Scheduling procedure of the heterogeneous executor N-tuple for mimic resources
4.4.1 異構(gòu)特征分類器構(gòu)建
構(gòu)建的異構(gòu)特征分類器[19]見(jiàn)圖6,其中,層和源代碼異構(gòu)特征分類索引最大值和標(biāo)志情況見(jiàn)表6,三層軟硬件異構(gòu)特征最大值和標(biāo)志情況見(jiàn)表7,分類索引由[I]、[I,J]、[I,J,K]、[I,J,K,L]表示,每個(gè)索引指向運(yùn)行節(jié)點(diǎn)集合和部署的異構(gòu)執(zhí)行體集合,分別表示經(jīng)過(guò)上層分類結(jié)果形成的具有異構(gòu)特征組合的分類標(biāo)志索引,索引所指向的值包括運(yùn)行節(jié)點(diǎn)索引集合和運(yùn)行節(jié)點(diǎn)部署的異構(gòu)執(zhí)行體組合。表8~表10表示相應(yīng)I、J、K索引值所定義的異構(gòu)特征。
圖6 異構(gòu)特征分類器分類示意圖
表6 層和源代碼異構(gòu)特征分類索引最大值和標(biāo)志
Table 6Maximum values and flags of heterogeneous feature classification indexes for layers and source code
層異構(gòu)特征索引分類層軟硬件數(shù)量標(biāo)志和數(shù)量值異構(gòu)特征最大值標(biāo)志數(shù)值運(yùn)行節(jié)點(diǎn)/NodeMax9基礎(chǔ)層異構(gòu)特征索引FLHSAmountFLHMax6源代碼異構(gòu)特征索引/SCodeHMax3應(yīng)用支撐層索引ASLHSAmountASLHMax2
表7 三層軟硬件異構(gòu)特征最大值和標(biāo)志
Table 7 Maximum values and flags of heterogeneous features of software and hardware resources of 3 layers
層分類異構(gòu)特征分類異構(gòu)特征最大數(shù)標(biāo)志數(shù)值基礎(chǔ)層CPUCPUHMax3OSOSHmax2云容器CloudContainerHMax2應(yīng)用支撐層Web容器WebContainerHMax2???應(yīng)用層編譯+參數(shù)CompileParaHMax5異構(gòu)執(zhí)行體ExecEntityHMax3
表8 基礎(chǔ)層異構(gòu)特征索引值和標(biāo)志
Table 8 Index values and flags of heterogeneous features of the basic layer
分類索引值(I)CPUOS云容器10000000100000001000000012000000100000001000000010????FLHMax………
表9 源代碼異構(gòu)特征索引值和標(biāo)志
Table 9 Index values and flags of heterogeneous features of the source code
分類索引值(J)異構(gòu)特征值100000001200000010??SCodeHMax…
表10 應(yīng)用支撐層異構(gòu)特征索引值和標(biāo)志
Table 10 Index values and flags of heterogeneous features of the application supporting layer
分類索引值(K)Web容器訂閱和分發(fā)服務(wù)中間件…10000000100000001…20000001000000010…????ASLHMax………
4.4.2 運(yùn)行節(jié)點(diǎn)異構(gòu)特征分類及N元組構(gòu)建
運(yùn)行節(jié)點(diǎn)異構(gòu)特征分類及N元組的構(gòu)建算法具體如下:
輸入運(yùn)行節(jié)點(diǎn)索引L(L=1,2,…,NodeMax),不同的索引代表不同的IP地址或域名,NodeG[I](I=1,2,…,FLHMax)代表I分類后,具有相同I索引值的運(yùn)行節(jié)點(diǎn)索引值數(shù)組
輸出運(yùn)行節(jié)點(diǎn)N元組集合
/*面向服務(wù)請(qǐng)求的N異構(gòu)執(zhí)行體資源調(diào)度需求,優(yōu)先選擇具有不同基礎(chǔ)層異構(gòu)特征的運(yùn)行節(jié)點(diǎn)作為N元組元素,構(gòu)建N元組集合;N大于基礎(chǔ)層異構(gòu)特征最大數(shù)FLHMax時(shí),先構(gòu)建運(yùn)行節(jié)點(diǎn)M元組集合(M=FLHMax),并基于各Node[I]的運(yùn)行節(jié)點(diǎn)數(shù),按比例均衡擴(kuò)展集合中的各M元組到N元組;最終均衡擴(kuò)展N元組集合元素,達(dá)到運(yùn)行節(jié)點(diǎn)均衡分布,以便于異構(gòu)執(zhí)行體N元組的構(gòu)建*/
1./*判斷FLHMax與N的大小關(guān)系*/
If FLHMax>N then M=N else M= FLHMax;
Repeat
從NodeG[I](I=1,2,…,FLHMax)中各NodeG[I]選擇不同L索引值組成的運(yùn)行節(jié)點(diǎn)M元組;
utill 遍歷完成
2.按比例均衡擴(kuò)展
計(jì)算1:NodeG[I]部署運(yùn)行節(jié)點(diǎn)數(shù)比例=NodeG[I]部署運(yùn)行節(jié)點(diǎn)數(shù)/部署NodeMax;
For 所有運(yùn)行節(jié)點(diǎn)M元組
{
i=0;
NM=N-M
While i { 計(jì)算2:M元組集合中的NodeG[I]運(yùn)行節(jié)點(diǎn)數(shù)比例=屬于NodeG[I]中運(yùn)行節(jié)點(diǎn)總數(shù)/(M*集合個(gè)數(shù)) i++; 選擇NodeG[I]運(yùn)行節(jié)點(diǎn)計(jì)算1與計(jì)算2的比例偏差超閾值最大的Node[I],優(yōu)先選擇Node[I]指向的運(yùn)行節(jié)點(diǎn)數(shù)組中不同的運(yùn)行節(jié)點(diǎn)索引L; 添加L(運(yùn)行節(jié)點(diǎn)索引值及標(biāo)志)成為M+i個(gè)運(yùn)行節(jié)點(diǎn)元素,形成運(yùn)行節(jié)點(diǎn)M+i元組 } } /*均衡擴(kuò)展N元組集合元素,達(dá)到運(yùn)行節(jié)點(diǎn)比例偏差小于閾值*/ 3.計(jì)算3:N元組集合NodeG[I]運(yùn)行節(jié)點(diǎn)數(shù)比例=N元組集合中屬于NodeG[I]中運(yùn)行節(jié)點(diǎn)總數(shù)/(N*集合個(gè)數(shù)); While計(jì)算1與計(jì)算3的比例實(shí)際偏差大于閾值 { 針對(duì)誤差大于閾值的NodeG[I]集合,按誤差比例選擇確定NodeG[I]的運(yùn)行節(jié)點(diǎn)數(shù)目,優(yōu)先選擇不同[j,k]的運(yùn)行節(jié)點(diǎn),形成N元組 } /*針對(duì)運(yùn)行節(jié)點(diǎn)服務(wù)器部署的多個(gè)異構(gòu)執(zhí)行體或云容器或虛擬機(jī)應(yīng)用鏡像執(zhí)行體,計(jì)算其應(yīng)用支撐層和源代碼異構(gòu)度,用于對(duì)運(yùn)行節(jié)點(diǎn)N元組的排序和分層*/ 4./*按N元組中的運(yùn)行節(jié)點(diǎn)異構(gòu)度對(duì)運(yùn)行節(jié)點(diǎn)N元組集合排序和分層,其中高優(yōu)先級(jí)的節(jié)點(diǎn)N元組優(yōu)先進(jìn)行異構(gòu)執(zhí)行體N元組的構(gòu)建*/ For 運(yùn)行節(jié)點(diǎn)N元組集合中的各N元組 { 運(yùn)行節(jié)點(diǎn)N元組異構(gòu)度=sum(該節(jié)點(diǎn)N元組中N個(gè)節(jié)點(diǎn)各軟硬件異構(gòu)特征異構(gòu)度) (各異構(gòu)特征的異構(gòu)度=該節(jié)點(diǎn)N元組中節(jié)點(diǎn)上的所有異構(gòu)執(zhí)行體對(duì)應(yīng)該異構(gòu)特征的數(shù)字化值求AND結(jié)果中1的數(shù)量) 5.合并相同運(yùn)行節(jié)點(diǎn)N元組,并按照N元組異構(gòu)度排序; 6.根據(jù)異構(gòu)度對(duì)節(jié)點(diǎn)N元組進(jìn)行三層分層:可構(gòu)成完全異構(gòu)的N異構(gòu)執(zhí)行體的節(jié)點(diǎn)N元組為一層(各層異構(gòu)特征數(shù)大于需求數(shù)的特征均不同,小于需求數(shù)的特征為該特征異構(gòu)最大值),滿足用戶要求優(yōu)先級(jí)次序的節(jié)點(diǎn)N元組為一層,可擴(kuò)展構(gòu)成的節(jié)點(diǎn)N元組為一層; 7.根據(jù)記錄的節(jié)點(diǎn)N元組的分層情況,優(yōu)先調(diào)度可構(gòu)成完全異構(gòu)的N異構(gòu)執(zhí)行體的節(jié)點(diǎn)N元組進(jìn)入下一步異構(gòu)執(zhí)行體N元組的構(gòu)建模塊; } 8.當(dāng)增加節(jié)點(diǎn)或節(jié)點(diǎn)遭到破壞的情況下,直接在該步進(jìn)行節(jié)點(diǎn)N元組的調(diào)整和更新分層(當(dāng)有節(jié)點(diǎn)遭到攻擊需要?jiǎng)h除時(shí),實(shí)時(shí)隱藏所有包含該節(jié)點(diǎn)的節(jié)點(diǎn)N元組;當(dāng)有新節(jié)點(diǎn)添加時(shí),根據(jù)新節(jié)點(diǎn)各層異構(gòu)特征修改現(xiàn)有資源映射和表),以更好地滿足基于現(xiàn)有系統(tǒng)資源和運(yùn)行狀態(tài)的動(dòng)態(tài)調(diào)度 4.4.3 異構(gòu)執(zhí)行體N元組集合構(gòu)建 異構(gòu)執(zhí)行體N元組集合構(gòu)建算法具體如下: 輸入[I,J,K,L]組合索引;ExecEntity[EEIJKL]為L(zhǎng)運(yùn)行節(jié)點(diǎn)、具有相同I、J、K異構(gòu)特征值的異構(gòu)執(zhí)行體元素構(gòu)成的數(shù)組,EIJKL為異構(gòu)執(zhí)行體元素個(gè)數(shù),每個(gè)數(shù)組元素為E,E為異構(gòu)執(zhí)行體索引;[I,J,K]定義的各軟硬件異構(gòu)特征分類、順序和最大異構(gòu)特征數(shù)量XXXMax 輸出異構(gòu)執(zhí)行體N元組集合 /* 遍歷形成異構(gòu)執(zhí)行體N元組(按照運(yùn)行節(jié)點(diǎn)N元組集合的各N元組優(yōu)先級(jí)順序,優(yōu)先選擇可構(gòu)成完全異構(gòu)的異構(gòu)執(zhí)行體層中的節(jié)點(diǎn)N元組)*/ 1.Repeat 對(duì)于節(jié)點(diǎn)N元組及其分層結(jié)果,優(yōu)先考慮完全異構(gòu)的節(jié)點(diǎn)N元組,從Li(i=1,2,…,NodeMax,Li為運(yùn)行節(jié)點(diǎn)索引值)指向的ExecEntity[EEIJKL]集合中選擇異構(gòu)執(zhí)行體,構(gòu)建異構(gòu)執(zhí)行體N元組;N元組每個(gè)元素包括{I,J,K,L,E}(E為異構(gòu)執(zhí)行體索引) /*計(jì)算異構(gòu)執(zhí)行體N元組的軟硬件異構(gòu)特征最大化原則符合度*/ { 對(duì)N元組中的異構(gòu)執(zhí)行體,分別計(jì)算I、J、K各軟硬件異構(gòu)特征數(shù)量:對(duì)各軟硬件異構(gòu)特征八位二進(jìn)制表示值進(jìn)行AND操作,軟硬件異構(gòu)特征數(shù)量= AND結(jié)果的八位二進(jìn)制中1的數(shù)量 軟硬件異構(gòu)特征最大化原則符合度=軟硬件異構(gòu)特征數(shù)量/軟硬件異構(gòu)特征XXXMax*100% /*算法設(shè)定了缺省的軟硬件異構(gòu)特征優(yōu)先級(jí)和權(quán)值,如指定優(yōu)先順序依次為源代碼、CPU、OS、容器、Web容器。其各指標(biāo)最大值分別為SCodeHMax、CPUHMax、OSHMax、CloudContainerHMax、WebContainerHMax,權(quán)值依次為0.3、0.25、0.2、0.15、0.1,如用戶定義了指定的特定一組軟硬件異構(gòu)特征優(yōu)先級(jí),其指定的軟硬件按70%總權(quán)重和優(yōu)先級(jí)分配、其他30%權(quán)重按缺省的優(yōu)先級(jí)分配。*/ 按軟硬件異構(gòu)特征優(yōu)先級(jí)計(jì)算I、J、K的異構(gòu)特征符合度=SUM(各軟硬件的權(quán)重*Min(1,異構(gòu)特征符合度) } Until 運(yùn)行節(jié)點(diǎn)N元組遍歷完成 2.合并和去重異構(gòu)執(zhí)行體N元組,形成可調(diào)度的異構(gòu)執(zhí)行體N元組集合,每個(gè)N元組包括相應(yīng)的I、J、K和軟硬件異構(gòu)特征符合度,N元組中各異構(gòu)執(zhí)行體指向的I、J、K、L、E(E為異構(gòu)執(zhí)行體索引) 3.按軟硬件優(yōu)先級(jí)和I、J、K異構(gòu)特征符合度排序并分層 4.5.1 分類器和N元組一致性更新 基于分類樹(shù),當(dāng)運(yùn)行節(jié)點(diǎn)資源(增/減)和資源對(duì)象(異構(gòu)執(zhí)行體:容器/虛擬機(jī)增/減)動(dòng)態(tài)變化時(shí),將直接針對(duì)其各層特征進(jìn)行分類器的插入和刪除,對(duì)分類器和各層輸出數(shù)據(jù)進(jìn)行一致性更新,形成動(dòng)態(tài)變化后的異構(gòu)執(zhí)行體N元組集合。 4.5.2 異構(gòu)執(zhí)行體N元組運(yùn)行資源負(fù)載均衡與調(diào)度 異構(gòu)執(zhí)行體N元組運(yùn)行資源負(fù)載均衡和調(diào)度算法的輸入為運(yùn)行節(jié)點(diǎn)和異構(gòu)執(zhí)行體N元組,輸出為異構(gòu)執(zhí)行體N元組負(fù)載均衡隊(duì)列和調(diào)度結(jié)果。圖7為N元組運(yùn)行資源負(fù)載均衡和調(diào)度活動(dòng)圖,當(dāng)資源對(duì)象為容器時(shí),需進(jìn)行容器及其所在節(jié)點(diǎn)負(fù)載情況的綜合考慮及計(jì)算。 圖7 N元組運(yùn)行資源負(fù)載均衡與調(diào)度流程 Fig.7 Procedure of load balancing and scheduling of the N-tuple running node resources 4.5.3 異構(gòu)執(zhí)行體N元組間資源負(fù)載均衡與調(diào)度 異構(gòu)執(zhí)行體N元組間資源負(fù)載均衡和調(diào)度具體如下: 1)服務(wù)器節(jié)點(diǎn)的負(fù)載均衡計(jì)算 圖8為服務(wù)器節(jié)點(diǎn)負(fù)載均衡與調(diào)度流程。 圖8 服務(wù)器節(jié)點(diǎn)負(fù)載均衡與調(diào)度流程 Fig.8 Procedure of load balancing and scheduling of the server node 對(duì)于N元組中的節(jié)點(diǎn)Ni,根據(jù)全局資源狀態(tài)表可以獲取其CPU數(shù)量m、CPU頻率FCi、內(nèi)存容量CMi、磁盤I/O速率RDi等指標(biāo),進(jìn)而計(jì)算其性能PNi: PNi=k1mFCi+k2CMi+k3RDi i=0,1,…,n-1,∑kl=1 (1) 其中,kl是各項(xiàng)指標(biāo)的權(quán)值參數(shù),反映不同類型的服務(wù)對(duì)各個(gè)指標(biāo)的影響程度,其和為1,該參數(shù)可以根據(jù)系統(tǒng)運(yùn)行情況進(jìn)行調(diào)節(jié),以期達(dá)到更好的效果。 同理,其負(fù)載LNi主要從CPU占用率OCi、內(nèi)存占用率OMi、磁盤I/O占用率ODi等指標(biāo)進(jìn)行考慮: LNi=k1OCi+k2OMi+k3ODi i=0,1,…,n-1,∑kl=1 (2) 節(jié)點(diǎn)的負(fù)載權(quán)值WNi定義為節(jié)點(diǎn)負(fù)載LNi與節(jié)點(diǎn)性能PNi的比值,采用式(3)進(jìn)行計(jì)算。 (3) 其中,WNi越大,說(shuō)明節(jié)點(diǎn)負(fù)載越重,其對(duì)應(yīng)方差越小,說(shuō)明該N元組中的不同元素負(fù)載情況更均衡,執(zhí)行時(shí)異步概率更低。根據(jù)負(fù)載排序隊(duì)列選取各N元組中負(fù)載權(quán)值及其方差最小的集合作為最終調(diào)度結(jié)果。 2)云容器和虛擬機(jī)的負(fù)載均衡計(jì)算 云容器、虛擬機(jī)均需要基于物理服務(wù)器節(jié)點(diǎn)進(jìn)行部署和分配,其負(fù)載均衡調(diào)度方式類似,本文以云容器為例進(jìn)行設(shè)計(jì)。云容器的負(fù)載均衡與調(diào)度流程如圖9所示。 圖9 云容器負(fù)載均衡與調(diào)度流程 Fig.9Procedure of load balancing and scheduling of the cloud container 云容器負(fù)載均衡計(jì)算方法具體如下: (1)容器負(fù)載權(quán)值計(jì)算 參照物理節(jié)點(diǎn)的負(fù)載計(jì)算公式,面向擬態(tài)信息系統(tǒng)訪問(wèn)程度,根據(jù)節(jié)點(diǎn)資源對(duì)象狀態(tài)映射獲取容器CPU占用率O′Ci和內(nèi)存占用率O′Mi,給出如下簡(jiǎn)化的容器負(fù)載權(quán)值W′Ni計(jì)算公式: W′Ni=kcO′Ci+kmO′Mi (4) 其中,kc、km分別為兩項(xiàng)指標(biāo)的權(quán)值參數(shù),反映不同類型的服務(wù)對(duì)各個(gè)指標(biāo)的影響程度,其和為1。 對(duì)于基于云容器部署的異構(gòu)執(zhí)行體可調(diào)度性同時(shí)受其所在物理服務(wù)器節(jié)點(diǎn)的影響,記節(jié)點(diǎn)負(fù)載權(quán)值所占比重為kn,容器負(fù)載權(quán)值所占比重為ks,其計(jì)算公式如下: Wi=knWNi+ksW′Ni (5) (2)N元組負(fù)載均衡計(jì)算 針對(duì)按序輸入的各異構(gòu)執(zhí)行體N元組,分別計(jì)算各個(gè)N元組中元素的負(fù)載Wi,取中位數(shù)Wm作為該N元組的負(fù)載性能,多線程調(diào)度時(shí)的平衡度、響應(yīng)度評(píng)價(jià)指標(biāo)。 (3)基于負(fù)載均衡的隨機(jī)調(diào)度 選取輸入的異構(gòu)執(zhí)行體N元組中同時(shí)滿足Wm小于0.7,方差小于0.5的N元組。統(tǒng)計(jì)這些N元組當(dāng)前的調(diào)度情況,哈希選取調(diào)度次數(shù)小于中位數(shù)的N元組作為調(diào)度結(jié)果,并對(duì)該N元組的調(diào)度次數(shù)加1,保證隨機(jī)性。 基于本文提出的擬態(tài)資源管理和N異構(gòu)執(zhí)行體調(diào)度方案進(jìn)行簡(jiǎn)單的實(shí)例分析與驗(yàn)證。實(shí)例基礎(chǔ)環(huán)境為包含4個(gè)節(jié)點(diǎn)、3個(gè)基礎(chǔ)支撐層(包含3種CPU、2種OS、2種容器)的異構(gòu)特征,異構(gòu)執(zhí)行體為3種異構(gòu)源代碼,應(yīng)用支撐層考慮現(xiàn)有兩種Web容器(Tomcat、JBoss);對(duì)于編譯異構(gòu)特征,假設(shè)已事先進(jìn)行關(guān)聯(lián)。 表11為實(shí)驗(yàn)所需的資源狀態(tài)基礎(chǔ)信息,其數(shù)字化值可關(guān)聯(lián)到本文資源管理部分的定義。目標(biāo)為從其中選出3個(gè)可調(diào)度的滿足異構(gòu)性最大化的執(zhí)行體。根據(jù)本文設(shè)計(jì)的調(diào)度算法,通過(guò)分類器對(duì)現(xiàn)有資源狀態(tài)進(jìn)行分類,首先得到3個(gè)不同的基礎(chǔ)層異構(gòu)執(zhí)行體池,其中1號(hào)池包含兩個(gè)節(jié)點(diǎn)(Node1、Node2),根據(jù)節(jié)點(diǎn)N元組選擇的方案,本次實(shí)驗(yàn)閾值設(shè)為0,得到4個(gè)節(jié)點(diǎn)N元組,分別是:1)Node1,Node3,Node4;2)Node2,Node3,Node4;3)Node1,Node2,Node3;4)Node1,Node2,Node4。經(jīng)過(guò)異構(gòu)度計(jì)算,元組1和元組2屬于可完全異構(gòu)層,其優(yōu)先次序優(yōu)于元組3和元組4,因此優(yōu)先基于元組1和元組2的節(jié)點(diǎn)N元組構(gòu)建異構(gòu)執(zhí)行體N元組,并根據(jù)本文算法輸出12個(gè)N元組集合及其異構(gòu)度排序,其中,2組異構(gòu)度為1的異構(gòu)執(zhí)行體N元組(完全異構(gòu)),1組異構(gòu)度為0.95的異構(gòu)執(zhí)行體N元組,6組異構(gòu)度為0.9的異構(gòu)執(zhí)行體N元組……,如表12所示為滿足完全異構(gòu)的N元組。 表11 示例實(shí)驗(yàn)資源狀態(tài)信息 表12 滿足完全異構(gòu)的節(jié)點(diǎn)N元組特征 對(duì)滿足完全異構(gòu)的兩組異構(gòu)執(zhí)行體N元組進(jìn)行負(fù)載均衡計(jì)算,經(jīng)過(guò)實(shí)驗(yàn)建立的復(fù)雜場(chǎng)選定多個(gè)權(quán)值參數(shù)kc=0.5、km=0.5、kn=0.4、ks=0.6,得到節(jié)點(diǎn)N元組1的負(fù)載權(quán)值為0.3,方差為0.26;節(jié)點(diǎn)N元組2的負(fù)載權(quán)值為 0.6,方差為0.48;均小于設(shè)定的Wm和方差閾值,滿足均衡性調(diào)度。當(dāng)前狀態(tài)兩N元組調(diào)度次數(shù)均為0,因此哈希[20]選取其中任意一組作為調(diào)度結(jié)果,保證隨機(jī)性、動(dòng)態(tài)性和異構(gòu)性三性最大化,增強(qiáng)攻擊難度。 本文基于網(wǎng)絡(luò)安全領(lǐng)域的擬態(tài)防御技術(shù),針對(duì)MCOE運(yùn)行環(huán)境中資源管理和調(diào)度問(wèn)題,論述擬態(tài)通用運(yùn)行環(huán)境的資源管理方案設(shè)計(jì)與實(shí)現(xiàn),特別是針對(duì)現(xiàn)有資源狀態(tài)的調(diào)度和實(shí)現(xiàn)。通過(guò)擬態(tài)管理服務(wù)的簡(jiǎn)單示例驗(yàn)證了對(duì)云容器集群上資源管理擬態(tài)調(diào)度方案的有效性。下一步將結(jié)合現(xiàn)有資源狀態(tài)與Kubernetes調(diào)度機(jī)制實(shí)現(xiàn)擬態(tài)資源調(diào)度算法的優(yōu)化和高效執(zhí)行。4.5 擬態(tài)資源對(duì)象調(diào)度服務(wù)
4.6 實(shí)例分析
5 結(jié)束語(yǔ)