朱正彬,劉勤讓,劉冬培,王崇
(信息工程大學信息技術研究所,河南 鄭州 450002)
隨著互聯網技術的不斷發展和更深層次的應用,當今社會已進入“互聯網+”和“萬物互聯”時代,網絡遍及人們生活的各個角落。與此同時,網絡空間時刻存在未知漏洞和后門等不確定性威脅,使惡意攻擊者利用少量的資源或代價就能侵犯個人乃至公眾的隱私權,造成當今網絡空間易攻難守的非對稱局面。傳統網絡安全技術主要通過“亡羊補牢式”的策略來防范網絡中頻繁出現的各種網絡威脅,如防火墻[1]、入侵檢測系統(IDS,intrusion detection system)[2]、入侵防御系統(IPS,intrusion prevention system)[3]等,同時,漏洞挖掘[4]、特征提取[5]、蜜罐技術[6]、沙箱技術[7]等防御手段主要基于攻擊手段和行為特征等先驗知識精確獲得。但現實生活中對未知的攻擊無法精確感知,同時,對所有軟硬件漏洞后門無法窮盡。據研究統計,平均1 000~1 500 行代碼中程序員就會無意留下一個漏洞[8],系統漏洞無法避免且容易被攻擊者發現并加以利用,同時,人為預留后門也存在極大的安全威脅。
針對網絡空間易攻難守的非對稱局面,許多機構和學者提出了網絡防御新思想,不再一味地追求精確已知的漏洞后門,轉而采取動態、容錯的新型網絡空間主動防御技術,如可信計算[9]、定制可信空間[10]、移動目標防御[11-12]等。可信計算從芯片、硬件結構和操作系統等硬件底層做起,提供系統的可靠性、可用性、信息和行為安全性。定制可信空間致力于制定可信規則、可測量指標來創建靈活、分布式的環境支撐網絡中空間的各種行為。移動目標防御(MTD,moving target defense)采用有效地址突變[13]、IP 地址隨機化[14]、端口隨機化[15]、加密隨機化[16]等多樣性技術增強系統脆弱面的不確定性、動態性,有效降低系統脆弱性暴露及被攻擊的機會,增加攻擊者掃描攻擊難度,目前,該技術已成功應用于軟件定義網絡(SDN,software define network)[17-18]、云計算[19]等。但目前MTD 技術發展面臨許多問題,例如缺乏一定的效能評估機制,系統開銷過高影響服務性能以及虛擬環境中移動目標的安全和彈性技術等問題。
基于網絡主動防御思想及MTD 技術,參考自然界中擬態章魚能根據不同環境調節自身色彩、行為等來隱藏自己原本特征以此來躲避風險。我國鄔江興院士進一步提出擬態防御理論[20],通過向系統引入動態、異構、冗余等特性增強系統廣義穩健性和內生安全性。相比MTD 技術,擬態防御技術通過引入仲裁和負反饋機制,使系統在具有內在攻擊面[21]不確定性的同時,根據仲裁信息有針對性地調整系統內部結構,對外呈現動態性和廣義不確定性,極大增加了攻擊者的攻擊難度,目前,擬態防御技術已成功應用于路由器[22]、交換機[23]、SDN[24]等。同時,國家科技部聯合測試證明[20],在功能等價異構冗余的多維動態重構機制作用下,網絡空間擬態防御(CMD,cyberspace mimic defense)幾乎不可能實現可靠、持續的協同逃逸,實驗結果表明對于未知的漏洞后門有很好的防御效果。擬態防御主要實現機制包括構造效應與功能融合、策略調度、擬態裁決、負反饋控制及執行體清洗恢復等,其中擬態調度是實現擬態防御的關鍵一環,其基本功能是根據歷史表現和負反饋信息選擇或更換服務集中的執行體,實現執行體的替換、下線、轉移服務等操作使擬態括號內部特征不可預測更多樣化。本文在介紹擬態相關研究的同時,重點關注擬態調度相關算法的研究。
擬態防御基于動態異構冗余架構(DHR,dynamic heterogeneous redundant)[25]構建動態、異構、冗余且具有負反饋特性的系統和運行機制,結合仲裁和多執行體調度策略實現對系統漏洞和后門的容錯。如圖1[20]所示,擬態防御主要對具有信息“輸入?處理?輸出”(IPO,input processing output)系統模型的網絡攻擊有很好的抑制作用,例如SDN中篡改流表、控制層拒絕服務攻擊、分布式數據存儲數據篡改攻擊等。擬態防御架構[26]主要包括輸入代理即策略分發、異構執行體池、異構構件池、擬態調度器即策略調度、在線異構執行體集以及擬態多模裁決器等。其中異構執行體是結構相異功能相同的等價執行體,當所有在線執行體正常工作或未被攻擊成功時接收相同的命令其輸出相同,當某一執行體被攻擊成功時導致其輸出與其他執行體不一致,理論實踐證明大多數執行體輸出相同錯誤結果是小概率事件。輸入代理負責將系統輸入數據復制策略分發,即將輸入數據復制成k份分發給k個功能等價結構相異的執行體集,各在線異構執行體并行執行,并將結果發送給擬態裁決器;擬態裁決器采用全體一致表決算法[27]、多數表決算法[28]、最大似然投票[29]、一致性表決算法[30]等,計算各異構執行體輸出來產生最終輸出結果。同時擬態裁決器將各執行體的狀態反饋給調度器進行策略調度,調度器決定是否需要根據當前態勢使用特定的調度算法從異構體集合中選擇上線執行體,并對下線執行體進行清洗恢復等操作。例如針對SDN 中流表篡改防御,擬態SDN 防御系統冗余控制器假設三模冗余,即3 個結構相異功能相同的控制器(具有相同的漏洞且被攻擊輸出相同的錯誤結果屬于小概率事件),當控制器接收請求需要向交換機下發流表時,某一控制器由于存在漏洞被攻擊者攻擊成功然后下發錯誤的流表,但其他2 個控制器正常工作輸出的是正常流表。當3 個控制器的結果到達裁決器時,根據多數表決算法即選擇各執行體輸出結果中占多數的結果輸出,上述有2 個正常相同結果和一個錯誤結果,根據多數表決即輸出正確結果,然后裁決反饋錯誤控制器并下線清洗重新調度控制器上線。同時由于存在相同漏洞的2 個或3 個執行體被攻破而造成瞬時逃逸的概率極低,屬于小概率事件。綜上所述,擬態防御很好地抑制了基于SDN 控制器漏洞的流表篡改攻擊。擬態架構的異構性、動態性、冗余性以及負反饋特性使系統在時間和空間上具備不確定性,攻擊者難以掌握系統的脆弱點,進而具備內生防御特性和天然免疫能力,擬態防御技術有望從根本上擺脫目前網絡空間“易攻難守”的困局。

圖1 擬態防御架構
擬態防御技術注重擬態架構與原有系統的有機結合,使擬態系統天然具有防御基于已知或未知漏洞后門攻擊的內生安全特性。多執行體調度算法是實現擬態防御的關鍵一環,執行體調度使系統保持高動態性和不確定性,能夠避免攻擊者長時間探測和協同攻擊,造成瞬時逃逸的發生。調度策略流程如圖2 所示,具體分為以下3 個步驟。

圖2 調度策略流程
1) 調度策略根據反饋信息確定在線執行體余度、調度時機,依據選擇策略選取執行體上線。
2) 確定在線執行體變換門限,不定時替換異常在線執行體,下線執行體清洗。
3) 輸出裁決結果,根據裁決信息反饋確定下一次變換時機和執行體冗余度。
現有主副版本容錯調度[31-32]算法主要用于處理確定任務的調度進而實現容錯,N-版本容錯(NVT,N-version tolerance)[33]主要基于同構冗余執行體來容忍隨機擾動或偶然失效,拜占庭容錯(BFT,Byzantine fault tolerance)[34-35]基于冗余架構容忍拜占庭式錯誤,在部分執行體錯誤的情況下仍可以輸出正確結果。上述3 種容錯方式對于系統的隨機失效或非特定攻擊實現了很好的容錯效果,但對于特定的漏洞后門攻擊防御效果不明顯。擬態多執行體調度算法[36]主要是從動態異構冗余架構出發,針對基于漏洞后門或病毒木馬攻擊所提出的一系列調度算法。根據調度算法的目標和實現過程,可以從以下5 個方面對調度算法進行評估。
1) 動態性
擬態調度算法使系統內在不確定變換,從而具有動態性,即對外呈現測不準效應。文獻[37]提出算法動態性可以體現在調度方案的平均周期,即相同調度方案之間產生的時間間隔。理想的調度方案要求執行體集足夠大,完全相同的調度方案幾乎不可能產生,現實中由于執行體余度的限制,調度方案必然存在重復的可能性。在不影響系統原本功能的同時,盡可能追求大的調度周期即提升系統動態性,是衡量某一調度算法的主要指標。
2) 可信任度
擬態容錯主要研究擬態架構能否在偶然或惡意失效情況下連續、可靠、正常的執行。在擬態系統中各執行體的可信任度是系統可靠性的基礎,不同的調度策略是系統可靠性的重要組成部分。對各執行體安全性量化以及系統整體性可信任度研究是調度算法亟待解決的問題。
3) 異構度
擬態架構要求功能等價、結構相異的在線執行體集,執行體間相異度越大,存在共有漏洞的可能性就越低,被攻擊者利用同一漏洞攻破造成瞬時逃逸的概率就越小,執行體集相異性能顯著提高系統安全性[38]。調度上線功能等價執行體異構度越大,系統安全增益越大,擬態容錯調度算法追求最大執行體異構度,以免系統發生瞬時逃逸。
4) 系統開銷
理想的調度算法單純基于系統安全性考慮,缺乏對系統開銷及時間代價的考慮。現實研究中如果僅單純追求系統安全性,往往會花費極大的代價,而只能得到很少的系統安全增益。系統開銷是衡量調度算法的重要指標,在追求系統安全性的同時,可以減小運算復雜度、降低時間空間代價,進而降低系統整體開銷。
5) 服務質量
擬態架構期望在不影響乃至提高系統原有服務功能的基礎上,使系統具備內生安全特性。但往往擬態防御機制的引入會對系統本身的服務屬性造成一定的負面影響。考慮調度算法的同時要綜合考慮系統的服務質量,在追求系統整體安全性最大化的同時,不降低甚至能提升系統本來的服務質量。
擬態調度算法主要從動態、異構、冗余出發并結合負反饋特性,實現擬態系統的高穩健性和安全性。目前,還沒有相關調度算法全面地總結評估工作,經過閱讀研究相關文獻,本節對現有擬態調度算法進行了整理歸納,包括各調度算法的調度指標、執行效率等進行了分析比對,并對其優缺點進行了歸納。本節綜合分析各調度算法的主要調度思想,從調度對象、調度時機及調度數量3 個方面出發詳細論述現有調度算法。
擬態架構要求功能等價、結構相異的在線異構執行體集,在線執行體集相異度越大,存在共有漏洞的可能性就越低,被同一漏洞攻破造成瞬時逃逸的概率就越小。因此現有大多數調度算法集中于度量軟件異構度并結合其他評價指標,從時間和空間2 個維度出發,期望得到最大的在線執行體集異構度,避免瞬時逃逸的發生。軟件異構性是整體考慮執行體異構性;組件異構度是更細粒度地將執行體劃分為不同的組件,再進行組件間異構度計算。其中操作系統異構性是從系統組件出發,在計算執行體異構性時操作系統是組成該執行體的一種組件,結合執行體其他組件根據所提算法進行計算;算法層面異構性體現在計算異構度原理的不同,主要考慮從執行體和執行體集異構度具體計算方法出發,包括軟件異構度、組件異構度以及基于MOSS 度量等計算方法,已被具體考慮進下述3 組度量方法。但不同算法在不同應用場景下所考慮的執行體組件構成有所不同。具體調度算法特點及應用如表1所示。

表1 基于調度對象算法優缺點及應用場景
3.1.1基于軟件異構度度量
基于對軟件異構度的量化,文獻[39]提出最長相異性距離組件選擇(MD,maximum dissimilarity)算法和最佳平均相異距離的軟件組件選擇(OMD,optimal mean dissimilarity)算法。MD 算法在選擇軟件時始終選取相異距離最長的組件,OMD 算法選取具有最佳平均相異距離的軟件組件,但該算法僅考慮內部組件之間的相異距離總和,可能會與平均相異距離存在矛盾,也可能找不到足夠的組件組成相異性系統,對系統閾值設置要求比較高且缺乏動態性。
由于MD 算法和OMD 算法缺乏對于歷史信息的考慮,呂迎迎等[40]提出基于歷史信息的負反饋調度算法,利用系統監測得到的探測數據進行非一致性檢驗和非重復檢驗,分析該攻擊類型進而根據不同攻擊類型選擇最合理的調度。仿真實驗證明基于歷史信息的負反饋調度算法較傳統靜態隨機調度算法失效率在非均勻攻擊時可降低50%,在非重復攻擊時可降低58%。但該算法僅考慮外部探測對執行體的影響,沒有進一步研究上線執行體間的異構度和具有同一漏洞的概率。
為了使執行體調度對外呈現動態性的同時具備內部可控性,張震驍[41]提出基于正態分布的擬態防御動態調度策略。采用序號系數n、安全系數s、時間系數t、人工控制系數a、綜合系數c和概率系數p這6 個異構執行體屬性,計算某一執行體n被選中的概率為

基于正態分布的動態調度算法以正態分布函數為載體來計算某一執行體被調度具體概率,以達到對外呈現動態測不準,對內概率可控的廣義調度算法,具有很好的隨機性和概率可控性。但該算法時間復雜度較高,其載體函數值得進一步優化。
由于缺乏對執行體當前安全性的考慮,Li 等[42]從系統安全性角度出發提出了一種SDN 多控制器的動態自學習調度算法。通過控制器歷史表現,評估當前時刻該控制器的可靠性,控制器組Si可靠性可表示為

其中,F(Z)/U(Z)表示工作中平均故障率,η(Z)表示集合S中元素的個數。根據歷史表現自適應更新迭代,同時考慮負載約束利用貪心式啟發算法(GA,greedy algorithm)求解出最優化調度集。該算法結合歷史信息具備一定的負反饋特性,實現了對執行體當前安全度的考量,但在控制器增多時,該算法復雜度驟增且缺乏進一步的實驗驗證。
通過引入執行體信譽度的負反饋動態更新模塊,沈叢麒等[43]提出了基于信譽度和相異度的自適應控制器調度算法,定義了信譽度動態更新準則為

其中,ri(t)表示t時刻執行體i的信譽度。此外,還從代碼級、模塊級、傳輸級和運行級4 個層次計算執行體間相異程度并賦予各自不同的權重。相較于定期輪詢清洗,文獻[43]實現了較低的開銷及較高的安全性。
3.1.2基于異構體組件度量
出于對執行體間相似性更細粒度的研究,劉勤讓等[37]提出了一種新的冗余體間相似度的量化方法,通過衡量各組件間的相似度進而量化r余度冗余體集合整體相似度為

王曉梅等[44]采取對比整體差異性的方式,將線下執行體和在線執行體的差異性求解均值和方差,提出基于貝葉斯?斯塔克爾伯格博弈(BSG,Bayesian Stackelberg game)的擬態Web 服務器調度算法。其中,量化執行體Ci間的差異性為

其中,Cij表示執行體Ci到Cj軟件棧各層的差異性,PT表示執行體軟件棧各層差異性的加權系數。通過求解均值方差再結合BSG 博弈收益函數,量化新的異構執行體間異構度,通過BSG 策略增強了服務器的動態性和隨機性。但BSG 算法復雜度較高,需進一步優化,同時對攻擊者類型和攻擊方式統計缺乏一定的理論判別。李傳煌等[45]自定義異構元素比較函數

通過兩兩執行體各組件對比取值,再結合該組件權重得出兩執行體間異構系數。該調度算法基于異構性研究,但考慮方面過于簡單,沒有體現負反饋特性。
文獻[46]提出多系統異構性可通過復雜性、差異性來衡量,即

基于多系統異構性研究,張杰鑫等[47]采用上述異構性量化方法,并結合二次熵對執行體集差異性進行量化,最終通過M類構件集的異構性來計算執行體集異構性

其中,dkij表示構件集k中構件i和j之間的差異性,Pki和Pkj分別表示構件i和j的豐富度。結合Web 服務質量,文獻[47]提出了基于最大異構性和Web 服務質量的隨機種子調度(RSMHQ,random seed based on maximum heterogeneous and Web QoS)算法,Web 服務質量和綜合評價指標較隨機調度算法分別提升了15.32%和37.45%,有效實現了安全性和服務質量的平衡。在具體實際應用環境中,可以根據優化算法進一步確定安全性和服務質量權重以到達最佳平衡效果。
不同于上述執行體異構度量化方法,文獻[48]采用共有漏洞指標和共享代碼數量分析度量執行體間的相似程度。普黎明等[49]采用文獻[48]在時間和空間2 個維度來衡量面向擬態云服務的異構執行體相似度,提出基于優先級和時間片的執行體調度(PSPT,pool scheduling based on priority and time slice)算法。該算法通過定義時間權重因子α和空間權重因子β,基于執行體共有漏洞指標定義執行體相似度為

其中,CVIly表示同一種類構件基于共有漏洞的相似程度,CVIy表示執行體間的相似度。PSPT 算法實現了很好的動態性,在線執行體集平均調度周期約是RSMS 算法的1 617 倍,且時間復雜度為O(1),實現了很好的系統動態性和線性算法復雜度。同樣,Wu 等[50]基于執行體共有漏洞采用Jeccard 距離描述任意兩執行體Ei,Ej間的異構屬性為

其中,V(Ei)為執行體Ei的漏洞集合。結合綜合調度指標CS,文獻[50]提出一種面向擬態防御系統的基于執行體異構度、性能和歷史置信度的隨機種子調度(RSMHQH,random seed maximum heterogeneity quality history)算法,相較于隨機調度算法,該算法異構度提升了88.68%,系統性能提升了20.80%,綜合指標CS 提升了42.59%。
3.1.3基于MOSS 度量
出于與上述異構度衡量的不同,Qiu 等[51]提出軟件相似度度量(MOSS,measures of software similarity)方法,該方法利用類圖的結構相似性和屬性相似性,將2 種相似性結合到迭代更新過程中計算軟件相似性得分。綜合考慮執行體負載,顧澤宇等[52]基于MOSS 算法衡量系統間異構程度,并采用凹形指數函數描述攻擊成功概率。最大執行體集的安全系數和最小調度體集負載方差分別為

其中,ξ(t)i表示集合Ce Si中任意元素Cei在時間段τ內的安全系數,l(t)表示調度體負載。最后提出負載感知安全調度算法(LA-SSA,load aware security scheduling algorithm)確定執行體調度策略,該算法較安全優先調度算法(SPSA,security priority scheduling algorithm)實現了很好的系統安全增益,同時負載均衡性優于SPSA,在一定范圍內有效解決了系統安全性與計算性能的平衡問題。
高明等[53]提出了一種基于擬態防御的差異化反饋調度判決算法,利用MOSS 算法得到執行體間異構度為σ∈[0,1],同時,定義執行體集異構度為

其中,σ(Ei,Ej)表示兩執行體Ei,Ej的異構度。根據歷史判決器反饋結果量化執行體安全防御系數,以形式化數學推導最優化問題得出最后調度結果,更精確地推導執行體集的相似度,有3 個執行體時系統輸出異常率平均值為0.105 8,有5 個執行體時僅為0.067 3,實現了很好的安全性。該算法的最優化算法可進一步研究,優化迭代確定異構度和執行體安全系數的廣義平衡。
調度時機是實現系統動態性、對外呈現測不準效應的重要因素,調度時機問題是如何選擇一個最佳的在線執行體集變換時間點,大多數采用固定時間間隔、固定異常觸發次數等來進行執行體集變換。基于對調度時間問題的研究,Lu 等[54]刻畫了一種閉環控制器調度安全流程,將動態調度的時間問題建模為隨機理論中的更新過程,提出了一種最優調度算法(OSA,optimal scheduling algorithm)確定調度時間,即根據輸入的調度代價、攻擊損耗以及攻擊分布函數計算最佳調度時間。定義單位代價為
其中,E(Ri)和E(Xi)分別表示第i次調度的總代價期望值和所用時間期望值,表示計算防御者第i次調度的時間間隔。調度目標是尋求第i次調度最佳時間以最小化單位代價。OSA 綜合權衡執行開銷和攻擊損耗這2 個重要決定因素,較固定周期與隨機調度算法,實現了較小的調度代價且調度算法平均運行時間僅為1.91 s,在一定程度上解決了調度過程中時機選擇的問題,但缺乏對執行體本身安全性、異構度等方面的考慮。
通過對異常門限S和調度周期T的綜合考慮,Guo 等[55]引入滑動窗口機制提出基于滑動窗口模型的調度序列控制方法。異常門限S和調度周期T是基于內部資源和外部攻擊將時間和門限耦合聯動控制的調度過程。采用Δti與si窗口共同驅動

其中,ct表示可用調度容量,?i表示異常反饋實時次數。該算法采用異步并行方式使調度模塊和窗口滑動模塊、時間復雜度和空間復雜度低。從時間層面考慮調度,該算法能夠在不同場景下通過調度參數調整提升系統安全性、高效性和穩健性,具有很好的自適應能力。但該算法僅考慮一次替換單一執行體上線及隨機選擇,有待進一步研究。上述基于調度時機算法的優缺點及應用場景如表2 所示。

表2 基于調度時機算法的優缺點及應用場景
擬態容錯主要是基于n模冗余機制,借以裁決機制實現對執行過程中部分執行體被攻破的容錯方法,大多數調度算法從動態、異構出發,通過衡量異構度和動態性增加系統穩健性和安全性,缺乏對冗余度更深層次的研究。魏帥等[56]基于安全增益、成本代價以及系統安全性等方面綜合得出三模冗余容錯在安全性和成本代價方面獲得綜合的最佳效果,但冗余度和動態性的結合缺乏更加深入的研究。
從安全性和失效率出發,Qi 等[57]在研究擬態網絡操作系統(MNOS,mimic network operating system)[58]中提出基于反饋的動態感知調度算法。根據系統所要容忍的控制器失效個數來決定下一時刻在線執行體數量,同時量化出系統失效概率模型,結合動態感知調度算法求出下一時刻運行的NOS 集合和數量以最小化失效概率。該算法體現出負反饋特性,相較于隨機切換算法以較小的代價使系統失效概率提升了近50%,但該算法復雜度較高(O(n2)),有待進一步研究。
基于對冗余度和動態性的考慮,李軍飛[59]提出基于效用的動態彈性調度策略,根據當前網絡環境進而確定下一步在線執行體的數量。下一次執行體調度數量u和下一次調度間隔v由當前網絡中異常執行體數量n和故障時間t采用概率密度函數[60]和輪盤法[61]來確定,即

其中,f(n,x)是與n相關的概率密度函數。最后確定各個u值的輪盤區間為

利用隨機數生成r∈[0,1],確定下一次調度執行體數量。
基于判決反饋結果綜合考慮動態性及冗余性,高明等[53]提出基于判決反饋的調度數量算法權衡系統代價與安全性。以執行體輸出的可靠度占比為判決依據,根據U1前后時刻變化更新調度個數

其中,U1表示執行體輸出各類結果最大占比,m(t? 1)表示上一時刻的調度個數。綜合考慮系統負載,可在增加系統動態性、可靠度同時顯著降低系統失效率和系統代價。但上述3 種算法僅考慮了改變執行體數量的方法,缺乏對具體變換時間和變化條件的研究以及執行體數量變換后續裁決算法的更新,值得進一步研究。基于執行體數量調度算法的優缺點及應用場景如表3 所示。
動態性、異構度及冗余度能顯著提高擬態系統安全性,現有調度算法主要從執行體調度時機、執行體選取策略以及執行體調度數量等方面實現系統動態變化,對外呈現不確定性,對內實現概率可控。在考慮系統安全性的同時,系統效率、服務質量、執行體負載等調度目標也被相關算法考慮,以期在不犧牲系統原有功能的同時,通過擬態架構使系統獲得顯著的安全增益。總體來說,現有調度算法一方面實現了系統安全性的顯著提升,另一方面基于調度目標和系統效率的考量實現了很好的可擴展性。基于調度算法普遍考慮的調度目標,本節從動態性、可信任度(平均失效率)、異構度、系統開銷以及服務質量這5 個方面來綜合比較現有算法。如表4 所示,現有調度算法在構建評估數據集時由于執行體組件間如操作系統、處理器、應用軟件、協議棧等異構度仍缺乏權威的計算標準和難度,因此大都根據經驗確定在線執行體余度,然后通過β分布隨機、MOSS 工具生成執行體間異構度,但不同算法所做實驗次數不同,進而異構度衡量數值存在差異。為了使數據直觀,本文在實驗原理數據的基礎上進行異構度值歸一化;系統開銷通過數學理論分析得到時間(空間)復雜度;動態性即調度周期實驗通過理論分析或蒙特卡洛法觀察調度周期,本節定義動態性衡量標準為平均調度周期大于80 為高,50~80 為中高,20~50 為中,5~20為中低,小于5 為低。文獻[34]通過假設異構執行體失效情況服從0-1 分布,從而以一定的概率計算出隨機調度算法、MD 算法、OMD 算法及RSMS算法的平均失效率。綜上,各調度算法實驗數據集都基于上述方式得出如下結果。
1) 系統開銷:表4 中調度算法使用數學理論分析時間(空間)復雜度。
2) 動態性:文獻[41,44]通過分析調度算法決策結果的隨機性理論分析其動態性;文獻[39,47,49-50]等采用蒙特卡洛法進行重復實驗100 次,根據相同調度方案之間的時間間隔得出其動態性。

表3 基于執行體數量調度算法的優缺點及應用場景
3) 異構度:文獻[37,47,49]采用自定義參數β分布隨機生成執行體異構度數據集;文獻[52-53]使用MOSS 工具生成執行體異構度數據集。
從表4 可以看出,前面所總結的調度目標在現有擬態調度算法中都有被考慮,大都集中于研究系統動態性、執行開銷和執行體異構度量化等,但各算法在不同應用場景中考慮方面有所不同,期望在實現系統高動態性和高安全增益的同時降低系統開銷和不損害系統原本服務質量。其中,PSPT 算法、隨機調度算法和基于滑動窗口模型的調度算法實現了較高的動態性,RSMS 算法、RSMHQ 算法很好地量化了執行體間的異構度,RSMHQH 算法、PSPT 算法在考慮其他調度目標的同時實現了很低的算法開銷。

表4 算法綜合性對比
通過形式化的數學推導和算法優化,現有調度算法很好地體現出擬態架構動態、冗余、異構以及負反饋內生安全特性,擬態系統實現了高質量的安全增益。但目前大多數算法缺乏對整體調度指標的考量以及各調度指標的綜合評估,即本文所總結的調度指標的優先級以及權重。隨著執行體間異構度量化遇到瓶頸,執行體調度時機和調度數量研究逐漸受到研究者重視,如何實現調度時機和執行體數量變化的有機結合以及后續裁決算法有很大的研究空間。算法復雜度和執行體異構度在特定場景中有待進一步研究優化,結合具體服務在實現系統高質量安全增益的同時不損害甚至提高實際應用的具體效能。
本文綜述了目前擬態調度算法的最新進展和研究成果,現有研究主要集中于考慮執行體異構度、負載率、調度時機以及調度數量等方面,在一定程度上提高了擬態系統的容錯率和安全性,但目前仍存在一些問題和不足,值得進一步研究討論。
1) 現有調度算法衡量執行體異構度大都基于執行體間共有漏洞的數量,但計算時只能依據已發現的漏洞,缺乏對執行體間未知的漏洞的考慮,同時在不同環境中各漏洞表現不一。衡量執行體異構度可以從自身結構、功能等方面結合基于度量[62]、字符串[63]、樹[64]、類圖[51]等方法進一步研究。
2) 現有調度算法只單方面研究調度時機或者調度數量的變化,根據不同場景變化綜合考慮系統動態、異構、冗余等方面并結合最優化算法,尋求調度時機和調度數量的有機結合以實現最大的系統安全增益,有望成為下一個研究熱點。
3) 現有調度算法在量化執行體集異構度時通常采用執行體間兩兩異構度累加的方式來計算,忽略了高階相似性漏洞[8]的存在,如何量化執行體集高階異構度以及與兩階異構度的分配權重有待進一步研究。
4) 結合博弈論收益模型量化調度算法的安全收益和系統代價,當前調度算法主要是依據實驗結果來衡量系統的安全增益,缺少一定的理論依據和可擴展性。在具體環境中結合博弈論建模攻擊者和防御者的攻防行為求解最優調度,并通過實驗結果驗證更具有一般性和說服力。
隨著網絡入侵竊密事件頻發,擬態防御憑借其主動防御思想在網絡安全方面逐漸顯示出強大的防御能力,擬態調度算法也發揮了越來越重要的作用。隨著擬態技術的不斷發展應用,在不同應用環境中新的擬態調度問題也不斷涌現,值得進一步創新和改進。本文在現有文獻的基礎上,首先介紹了擬態防御架構、實現原理及其實際應用;然后以各調度算法研究點為主線并考慮算法時間先后順序,總結提出了評估調度算法的五大指標,研究了擬態調度的工作機理及其安全機制,分析了現有各調度算法的創新與不足;最后對擬態調度的趨勢和研究方向進行了展望,期望通過總結擬態調度算法的現有成果為相關研究人員提供理論參考和幫助。