李衛(wèi)超, 張 錚, 王立群, 鄔江興
1數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室 鄭州 中國(guó)450001
2國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 鄭州 中國(guó)450002
網(wǎng)絡(luò)空間作為全球互聯(lián)的基礎(chǔ)設(shè)施, 在通信、金融、工業(yè)控制等領(lǐng)域的發(fā)展對(duì)世界各地的人民產(chǎn)生了深遠(yuǎn)的影響。然而, 在促進(jìn)社會(huì)文明發(fā)展的同時(shí),網(wǎng)絡(luò)空間同時(shí)存在著諸多的安全問(wèn)題, 信息處理與通信系統(tǒng)上的漏洞設(shè)計(jì)缺陷已經(jīng)成為最大的不安全因素[1]。此外, 日益頻繁的惡意軟件攻擊以及金融和知識(shí)產(chǎn)權(quán)盜竊須要得到根本上的解決。傳統(tǒng)防御手段包括防火墻、身份認(rèn)證、訪問(wèn)控制以及入侵檢測(cè)等技術(shù), 盡管對(duì)于攻擊類型、來(lái)源和手段明確的網(wǎng)絡(luò)空間安全威脅能夠進(jìn)行有效的防護(hù)。但是, 對(duì)基于未知漏洞和后門攻擊, 或者新型病毒木馬引發(fā)的未知安全問(wèn)題, 則不能形成及時(shí)有效的防護(hù)。而現(xiàn)有的蜜罐、沙箱等基于構(gòu)造可信環(huán)境的主動(dòng)防御技術(shù), 在實(shí)際的網(wǎng)絡(luò)空間環(huán)境中難以徹底避免未知漏洞、未知后門、未知攻擊帶來(lái)的安全威脅。
生物學(xué)將用色彩、紋理、外觀和行為的仿真或模擬來(lái)隱匿本體特征的外在表象稱為“擬態(tài)偽裝”(Mimic Guise, MG)[2]。在生物界中不乏偽裝高手, 海洋中的變色章魚(yú)、叢林中的避役、碎石地中的生石花、山地沼澤中的眼鏡蛇草, 等。在生物界的擬態(tài)現(xiàn)象啟發(fā)下, 針對(duì)目前網(wǎng)絡(luò)空間安全缺陷存在的普遍性這一根本問(wèn)題, 鄔江興教授提出了網(wǎng)絡(luò)空間擬態(tài)防御(Cyberspace Mimic Defense, CMD)[2-5]理論, 期望能夠在解決多維度的網(wǎng)絡(luò)空間安全問(wèn)題的同時(shí),對(duì)于潛在的網(wǎng)絡(luò)安全設(shè)計(jì)缺陷, 在技術(shù)和威脅環(huán)境變化的情況下還可以維持系統(tǒng)安全的有效性, 將不可控的網(wǎng)絡(luò)空間安全威脅問(wèn)題轉(zhuǎn)化為自主可控的網(wǎng)絡(luò)空間服務(wù)魯棒性控制問(wèn)題, 從內(nèi)生機(jī)制或構(gòu)造層面獲得對(duì)未知缺陷的主動(dòng)免疫能力。
近年來(lái)擬態(tài)防御作為網(wǎng)絡(luò)空間安全的新興技術(shù),發(fā)展十分迅速。在文獻(xiàn)[6]中, 敘述了擬態(tài)防御的基本理論。在文獻(xiàn)[7]中, 對(duì)擬態(tài)防御的基本理論模型及其若干問(wèn)題進(jìn)行了分析和探討。目前擬態(tài)防御的在網(wǎng)絡(luò)空間安全的應(yīng)用領(lǐng)域已經(jīng)有了豐富的研究成果。在網(wǎng)絡(luò)基礎(chǔ)設(shè)施中, 研制出了包括擬態(tài) web服務(wù)器[8-9]、擬態(tài)防御路由器[10-11]、擬態(tài)DNS服務(wù)器[12], 等應(yīng)用設(shè)備; 在工業(yè)控制領(lǐng)域提出了一種擬態(tài)安全處理機(jī)架構(gòu)[13]; 在移動(dòng)通信領(lǐng)域提出了一種虛擬化擬態(tài)防御方法[14]。針對(duì)擬態(tài)防御中的異構(gòu)性構(gòu)造方法, 文獻(xiàn)[15-16]提出了利用軟硬件多樣性實(shí)現(xiàn)多源異構(gòu)化處理方法; 文獻(xiàn)[17-18]提出了利用軟件多樣化編譯的方法對(duì)單一軟件進(jìn)行異構(gòu)化處理方法。
然而, 目前對(duì)于擬態(tài)防御中的多余度裁決, 只對(duì)其功能和方法進(jìn)行了闡述, 并沒(méi)有對(duì)其防御的有效性和代價(jià)進(jìn)行分析和評(píng)估。而事實(shí)上不當(dāng)?shù)囊攵嘤喽炔脹Q模型可能會(huì)導(dǎo)致系統(tǒng)防御能力和威脅感知的效果下降。因此, 本文在先前的研究基礎(chǔ)之上,考慮防御能力、運(yùn)行效率和系統(tǒng)恢復(fù)三方面, 對(duì)擬態(tài)防御多余度裁決進(jìn)行建模, 分析模型變化趨勢(shì),在此基礎(chǔ)上指出并驗(yàn)證了多余度裁決的部署風(fēng)險(xiǎn)問(wèn)題。
現(xiàn)代軟件設(shè)計(jì)規(guī)模越來(lái)越龐大, 其中不乏功能相同但實(shí)現(xiàn)方法不同的服務(wù)軟件[15]。由于多樣化的軟件在某些方面的特異性, 特定軟件出現(xiàn)的某些錯(cuò)誤在其他軟件行為中并不會(huì)發(fā)生, 因此使得多樣化系統(tǒng)具備抗攻擊能力[16]。在一個(gè)工作系統(tǒng)中組成構(gòu)件的豐富程度體現(xiàn)了系統(tǒng)的多樣化程度, 依據(jù)工程實(shí)現(xiàn)上的來(lái)源和動(dòng)機(jī)的不同, 多樣性大致可分為三種: 自然多樣性[15-19], 自動(dòng)化多樣性[17-20]和可控多
樣性[21-22]。
將隨機(jī)事件發(fā)生的不確定性導(dǎo)入網(wǎng)絡(luò)空間目標(biāo)對(duì)象中, 可以大幅度的提高攻擊者的成本和代價(jià),降低攻擊的可靠性[2-4]。隨機(jī)化方法在系統(tǒng)中的構(gòu)件執(zhí)行過(guò)程中由指令集合、地址空間的變化引入了不確定性, 該方法在運(yùn)行環(huán)境、軟件和數(shù)據(jù)存在著廣泛的應(yīng)用。例如, 地址空間隨機(jī)化技術(shù)(address space randomization, ASR)和指令集隨機(jī)化技術(shù)(instruction set randomization, ISR)[23-24]能夠防御攻擊者挖掘軟件漏洞, 其中ASR技術(shù)在學(xué)術(shù)和商用領(lǐng)域都已經(jīng)趨于成熟, 應(yīng)用較為廣泛。
多樣化與隨機(jī)化方法為網(wǎng)絡(luò)空間安全提供了新的技術(shù)手段和發(fā)展方向。應(yīng)用代碼隨機(jī)化、軟件多樣化等方法, 在時(shí)間維度進(jìn)行動(dòng)態(tài)切換, 在空間維度上產(chǎn)生結(jié)構(gòu)差異, 能夠有效的切斷攻擊步驟的關(guān)聯(lián)性增加攻擊難度, 屏蔽攻擊威脅, 為擬態(tài)防御的動(dòng)態(tài)、異構(gòu)、冗余構(gòu)造提供了基本的技術(shù)支撐。
網(wǎng)絡(luò)空間的任何安全防護(hù)措施都不能影響到目標(biāo)對(duì)象的服務(wù)功能的正常提供, 但是對(duì)于目標(biāo)對(duì)象的系統(tǒng)架構(gòu)、運(yùn)行機(jī)制、核心算法、存儲(chǔ)數(shù)據(jù)、異常表現(xiàn)、以及可能出現(xiàn)的未知漏洞與后門等, 都可以通過(guò)擬態(tài)偽裝的方式進(jìn)行主動(dòng)隱匿[2,6]。網(wǎng)絡(luò)空間信息系統(tǒng)的功能可以概括為 I[P]O(Inputs-Process-Outputs)處理過(guò)程。在保證I[P]O處理過(guò)程不變的情況下, 即系統(tǒng)功能不受影響的情況下, 根據(jù)“共性設(shè)計(jì)缺陷導(dǎo)致共模故障屬于小概率事件”, 實(shí)現(xiàn)非相似余度架構(gòu)(Dissimilar Redundancy Architecture, DRA)[2],如圖1所示。
圖1 DRA模型Figure 1 DRA Model
DRA利用執(zhí)行構(gòu)件多樣化的方法, 增加執(zhí)行構(gòu)件間的異構(gòu)性從而提高系統(tǒng)輸出正確性。文獻(xiàn)[25]中, 指出單一軟件帶來(lái)的安全風(fēng)險(xiǎn)并討論了引入軟件相異性來(lái)提高系統(tǒng)安全性的方法。文獻(xiàn)[26]中, 全面分析了多種軟件漏洞, 證實(shí)了大部分軟件不會(huì)擁有同樣的漏洞, 且即使軟件擁有相同漏洞, 同一個(gè)攻擊代碼仍然難以攻破該軟件的不同版本。因此, 理論上如果兩個(gè)構(gòu)件之間的差異性足夠大, 則可以保證任意一種獨(dú)立的攻擊方法對(duì)于不同的兩個(gè)構(gòu)件是不可能同時(shí)生效的。然而, 由于DRA對(duì)于相異性設(shè)計(jì)的要求極為嚴(yán)格, 且系統(tǒng)的運(yùn)作機(jī)制仍是靜態(tài)、確定性的, 所以DRA在應(yīng)對(duì)增量性、持續(xù)性、協(xié)同性和不確定性的高階威脅時(shí)仍面臨著諸多問(wèn)題[2,6]。例如, 攻擊者通過(guò)利用異構(gòu)程度不完全產(chǎn)生的共有漏洞進(jìn)行協(xié)同攻擊或者通過(guò)多次持續(xù)的對(duì)異構(gòu)執(zhí)行構(gòu)件進(jìn)行植入攻擊都可能會(huì)使DRA產(chǎn)生安全風(fēng)險(xiǎn)。
動(dòng)態(tài)異構(gòu)冗余架構(gòu)(Dynamic Heterogeneous Redundant Architecture, DHRA)[2]在DRA模型的基礎(chǔ)上引入隨機(jī)化方法, 應(yīng)用動(dòng)態(tài)變遷技術(shù)[27-28]實(shí)現(xiàn)了動(dòng)態(tài)防御效果[29-30], 能夠有效的解決DRA的風(fēng)險(xiǎn)問(wèn)題, 如圖2所示。
圖2 DHRA模型Figure 2 DHRA Model
DHRA在保障執(zhí)行體結(jié)構(gòu)具備可重組、可重建、可重定義等動(dòng)態(tài)化、異構(gòu)化的結(jié)構(gòu)變換要素的基礎(chǔ)上, 通過(guò)構(gòu)造“去協(xié)同化環(huán)境”[3-4], 從異構(gòu)元素池選取異構(gòu)元素, 組合生成m個(gè)具有相同作用和功能的異構(gòu)構(gòu)件, 進(jìn)一步通過(guò)動(dòng)態(tài)選擇模塊, 選擇出n個(gè)異構(gòu)構(gòu)件作為執(zhí)行體, 并按照這n個(gè)執(zhí)行體的輸出結(jié)果進(jìn)行差異性判決, 屏蔽漏洞威脅, 使攻擊者在時(shí)空維度上難以再現(xiàn)攻擊場(chǎng)景。
擬態(tài)防御架構(gòu)通過(guò)多樣化與隨機(jī)化方法, 在時(shí)空維度上產(chǎn)生的不確定性, 在時(shí)間上以動(dòng)態(tài)性呈現(xiàn),在空間上則以異構(gòu)性呈現(xiàn)。其中, 多余度裁決方法在保證系統(tǒng)中不缺失動(dòng)態(tài)性、異構(gòu)性和冗余性的前提下, 比較響應(yīng)輸出, 得相對(duì)正確的響應(yīng)結(jié)果屏蔽漏洞威脅, 反饋調(diào)節(jié)系統(tǒng)進(jìn)行動(dòng)態(tài)變換和系統(tǒng)重構(gòu),是擬態(tài)防御架構(gòu)的關(guān)鍵組成部分, 如圖3所示。
多余度裁決更多的被視為一種響應(yīng)比較的策略應(yīng)用在DHRA中, 且在DHRA中要求了執(zhí)行構(gòu)件嚴(yán)格的去關(guān)聯(lián)化或協(xié)同化, 所以對(duì)于多余度裁決并不會(huì)因此帶來(lái)額外的安全問(wèn)題。多余度裁決方法具體到不同的應(yīng)用場(chǎng)景, 多余度裁決的實(shí)現(xiàn)方法會(huì)有一定的差異, 常用的裁決方法包括全體一致裁決[31-32],大數(shù)裁決算法[33-34], 最大近似裁決[35], 基于歷史信息的加權(quán)裁決[36-37]等。
圖3 多余度裁決方法Figure 3 The Way of Redundancy Adjudication
為便于后續(xù)描述, 給出如表1所示的符號(hào)定義。
表1 本文用到的符號(hào)定義Table 1 Symbolic definition
針對(duì)擬態(tài)防御的多余度裁決方法的安全增益、系統(tǒng)開(kāi)銷和恢復(fù)能力進(jìn)行建模分析。為便于對(duì)多余度裁決模型的部署架構(gòu)和風(fēng)險(xiǎn)進(jìn)行分析與評(píng)估, 給出以下前提假設(shè)。
前提 1. 冗余狀態(tài)下的數(shù)據(jù)機(jī)密性的保證, 一方面可以采用將數(shù)據(jù)與架構(gòu)分離的方法來(lái)避免數(shù)據(jù)的冗余構(gòu)造, 另一方面可以采用數(shù)據(jù)擬態(tài)化的方法來(lái)隱匿關(guān)鍵數(shù)據(jù), 從而保障數(shù)據(jù)機(jī)密性不受影響。本文方法中不考慮模型對(duì)數(shù)據(jù)機(jī)密性的影響, 以更清晰的描述模型構(gòu)建和評(píng)估方法。
前提 2. 在多狀態(tài)服務(wù)場(chǎng)景下, 系統(tǒng)服務(wù)狀態(tài)復(fù)雜多變。因此, 為了保證系統(tǒng)動(dòng)態(tài)變換后的運(yùn)行穩(wěn)定性和裁決的準(zhǔn)確性, 需要保持運(yùn)行狀態(tài)的上下文信息的存儲(chǔ)和載入一致性。本文方法默認(rèn)裁決過(guò)程中系統(tǒng)的運(yùn)行狀態(tài)具有一致性, 不考慮維護(hù)狀態(tài)一致性的系統(tǒng)開(kāi)銷。
假設(shè) 1. 由于引入多構(gòu)件, 系統(tǒng)的輸入輸出部件變得復(fù)雜, 為便于分析, 在本文中假設(shè)對(duì)于輸入和輸出部件的不會(huì)對(duì)系統(tǒng)安全增益的造成影響。
假設(shè) 2. 為便于分析, 假設(shè)執(zhí)行體中任一漏洞遭受攻擊成功則導(dǎo)致執(zhí)行體失效, 且這種失效在時(shí)間維度上可以看作是均勻的隨機(jī)事件。
假設(shè) 3. 為便于分析, 在簡(jiǎn)化模型中, 假設(shè)對(duì)系統(tǒng)中不同執(zhí)行體的攻擊致失效率是相同的, 且兩個(gè)執(zhí)行體間的失效是相互獨(dú)立的。
假設(shè) 4. 為便于分析, 在簡(jiǎn)化模型中, 假設(shè)將比較操作的開(kāi)銷, 作為系統(tǒng)的全部開(kāi)銷。
假設(shè) 5. 為便于分析, 在簡(jiǎn)化模型中, 假設(shè)系統(tǒng)的構(gòu)件集足夠大且自修復(fù)率與離線修復(fù)率相同。
令SetH= {H1,H2,… ,Hw}是所有用于組成系統(tǒng)構(gòu)件體的異構(gòu)元素之集,SetE= {E1,E2,… ,Em} 是所有異構(gòu)構(gòu)件之集, SetA= {A1,A2,… ,An}是所有在線工作的異構(gòu)執(zhí)行體之集。對(duì)于SetE中任意的異構(gòu)構(gòu)件Ei(1 ≤i≤m)都由SetH中若干異構(gòu)元素構(gòu)成。對(duì)于SetA中的任意異構(gòu)執(zhí)行體Ai都由SetE中的異構(gòu)構(gòu)件動(dòng)態(tài)調(diào)度得到的。令構(gòu)件Ei(1 ≤i≤m)上漏洞之集記為VULi, 所有構(gòu)件漏洞之集記為在此基礎(chǔ)上, 給出如下若干定義。
定義1. 共生漏洞.
VULi與VULj相互之間的重合部分稱為VULi與VULj的共生漏洞。對(duì)于兩個(gè)執(zhí)行體間的共生漏洞,將其稱為2階共生漏洞。以此類推, 將k個(gè)執(zhí)行體間的漏洞稱為k階共生漏洞。
定義2. k/n裁決.
對(duì)于n個(gè)執(zhí)行體的處理結(jié)果進(jìn)行比較, 如果有至少k個(gè)執(zhí)行體的輸出結(jié)果一致, 則按照k個(gè)執(zhí)行體的處理結(jié)果, 作為相對(duì)正確結(jié)果進(jìn)行輸出。將k/n視為裁決方法的嚴(yán)格程度。對(duì)于執(zhí)行結(jié)果進(jìn)行響應(yīng)裁決, 如果執(zhí)行結(jié)果完全一致, 則視為正常狀態(tài); 如果執(zhí)行結(jié)果不一致, 則視為異常狀態(tài)??梢钥闯? 如果系統(tǒng)中包含的最大共生漏洞階數(shù)是小于k的, 那么采用k階一致裁決方法能夠感知到漏洞威脅; 如果系統(tǒng)中存在k階或k階以上共生漏洞, 那么采用k階一致裁決的方法將不再能感知到該漏洞威脅, 產(chǎn)生擬態(tài)逃逸[2]現(xiàn)象。
定義3. 系統(tǒng)失效.
對(duì)于執(zhí)行體而言, 當(dāng)攻擊者通過(guò)某種攻擊手段對(duì)執(zhí)行體中的漏洞攻擊成功時(shí), 則認(rèn)為系統(tǒng)失效。將系統(tǒng)失效這一事件視為服從失效率為λ的指數(shù)分布, 其中λ表示不同攻擊者對(duì)不同漏洞威脅攻擊導(dǎo)致系統(tǒng)失效能力, 代表致攻擊致失效的難度。概率密度用v(t)表示。
通過(guò)v(t)可以很好的描述攻擊者進(jìn)行攻擊導(dǎo)致系統(tǒng)失效的變化速率。當(dāng)攻擊者在初始時(shí)刻由于對(duì)于系統(tǒng)狀況并不了解, 對(duì)于漏洞的利用導(dǎo)致系統(tǒng)失效的概率為零。但是攻擊者在開(kāi)始的一段時(shí)間內(nèi)能夠迅速了解系統(tǒng)狀況, 系統(tǒng)失效概率迅速增加。隨著時(shí)間的增長(zhǎng),攻擊者已經(jīng)基本了解了系統(tǒng)的狀況, 對(duì)于系統(tǒng)的了解逐漸變緩, 系統(tǒng)的失效概率慢慢趨近于一。
定義4. 安全增益.
相對(duì)于單一執(zhí)行過(guò)程, 擬態(tài)防御架構(gòu)中引入異構(gòu)多執(zhí)行過(guò)程, 通過(guò)并行的執(zhí)行和響應(yīng)裁決的方法,使得系統(tǒng)失效變得更加困難。將單個(gè)執(zhí)行體的輸出結(jié)果與經(jīng)過(guò)擬態(tài)裁決后的系統(tǒng)輸出進(jìn)行對(duì)比, 將二者在面對(duì)攻擊情況下保持正常運(yùn)行狀態(tài)的概率比值來(lái)刻畫安全增益。記單個(gè)執(zhí)行體失效概率為Fi, 擬態(tài)裁決后的失效概率為Fjudge, 則安全增益 Δsecurity定義為:
定義5. 系統(tǒng)開(kāi)銷.
由于引入多異構(gòu)執(zhí)行體并行執(zhí)行, 每個(gè)執(zhí)行體的處理過(guò)程都需要消耗不同的響應(yīng)時(shí)間, 導(dǎo)致擬態(tài)系統(tǒng)整體的響應(yīng)時(shí)間要符合異構(gòu)執(zhí)行體中響應(yīng)時(shí)間最慢的執(zhí)行體, 服從“短板效應(yīng)”。并且執(zhí)行體的處理結(jié)果需要進(jìn)行k/n裁決, 也需要一定的處理時(shí)間。此外, 在處理過(guò)程中還需消耗一部分時(shí)間用來(lái)對(duì)執(zhí)行體進(jìn)行動(dòng)態(tài)調(diào)度。因此采用擬態(tài)防御架構(gòu)的執(zhí)行時(shí)間必然要大于單個(gè)執(zhí)行體執(zhí)行的執(zhí)行時(shí)間。記單個(gè)執(zhí)行體的執(zhí)行時(shí)間為ti, 裁決時(shí)間為judget, 調(diào)度時(shí)間為tdispatch, 則記系統(tǒng)開(kāi)銷 Δoverhaed為:
定義6 . 恢復(fù)能力.
當(dāng)系統(tǒng)通過(guò)擬態(tài)裁決感知到攻擊威脅時(shí), 執(zhí)行體會(huì)通過(guò)重構(gòu)、重組、重建異構(gòu)構(gòu)件的方法進(jìn)行系統(tǒng)恢復(fù)。然而, 并不是所有的情況系統(tǒng)都能夠進(jìn)行自身修復(fù), 部分持久化攻擊威脅需要人為的進(jìn)行錯(cuò)誤排查。根據(jù)同類型錯(cuò)誤的平均出現(xiàn)時(shí)間, 來(lái)區(qū)分自修復(fù)與離線修復(fù)。如果在時(shí)間t內(nèi), 同類型錯(cuò)誤不在出現(xiàn), 則系統(tǒng)能夠自行修復(fù), 否則需要人為的進(jìn)行錯(cuò)誤排查。若執(zhí)行體自身能夠在時(shí)間t內(nèi)立即修復(fù), 則不需要進(jìn)行離線修復(fù); 若執(zhí)行體失效后不能在t內(nèi)進(jìn)行修復(fù), 則在異構(gòu)構(gòu)件集合中選取異構(gòu)構(gòu)件上線執(zhí)行服務(wù), 替換已經(jīng)失效的執(zhí)行體。同時(shí), 已失效的執(zhí)行體離線修復(fù), 修復(fù)成功后重新加入異構(gòu)構(gòu)件集合中, 等待再次上線。將這一過(guò)程用 4個(gè)狀態(tài)進(jìn)行描述。狀態(tài)S0表示執(zhí)行體處于正常服務(wù)狀態(tài); 狀態(tài)S1表示執(zhí)行體處于失效狀態(tài)不需要修復(fù); 狀態(tài)S2表示執(zhí)行體處于失效狀態(tài)需要修復(fù); 狀態(tài)S3表示執(zhí)行體處于離線待服務(wù)狀態(tài)。
記PS0(t)、PS1(t)、PS2(t)、PS3(t)分別為S0、S1、S2、S3在t時(shí)刻的狀態(tài)轉(zhuǎn)移概率, 當(dāng)單個(gè)執(zhí)行體失效時(shí),將正常服務(wù)狀態(tài)和離線待服務(wù)狀態(tài)與執(zhí)行體失效修復(fù)狀態(tài)的差值作為單個(gè)執(zhí)行體的恢復(fù)能力。進(jìn)一步分析, 當(dāng)多個(gè)執(zhí)行體失效時(shí), 分為自修復(fù)和離線修復(fù)兩種狀態(tài)討論。只需自修復(fù)的執(zhí)行體, 不需要離線執(zhí)行體的替換, 所以n個(gè)在線服務(wù)的執(zhí)行體都有自我修復(fù)的能力。而需要離線修復(fù)的執(zhí)行體, 若處于離線待服務(wù)狀態(tài)的執(zhí)行體個(gè)數(shù)小于在線服務(wù)的執(zhí)行體個(gè)數(shù), 則最多能同時(shí)修復(fù)m–n個(gè)執(zhí)行體; 若處于離線待服務(wù)狀態(tài)的執(zhí)行體個(gè)數(shù)大于在線服務(wù)的執(zhí)行體個(gè)數(shù), 則最多能同時(shí)修復(fù)n個(gè)執(zhí)行體。于是在感知到威脅后系統(tǒng)的恢復(fù)能力 Δrepair為:
本節(jié)根據(jù)定義 4中定義的安全增益進(jìn)行分析。對(duì)于整個(gè)擬態(tài)防御系統(tǒng)而言, 當(dāng)多個(gè)執(zhí)行體的漏洞被同時(shí)利用時(shí), 則認(rèn)為系統(tǒng)失效。根據(jù)在擬態(tài)防御系統(tǒng)中采用的k/n裁決機(jī)制, 可將多余度裁決模型的失效概率視為至少k個(gè)執(zhí)行體失效的概率, 討論由異構(gòu)冗余構(gòu)造和擬態(tài)裁決機(jī)制帶來(lái)的安全增益。欲求至少k個(gè)執(zhí)行體失效的概率, 需先求解恰有k個(gè)執(zhí)行體失效的概率。為了便于書(shū)寫, 引入如下記號(hào):
對(duì)于計(jì)算滿足某些性質(zhì)的組合計(jì)數(shù)問(wèn)題, 使用容斥原理能夠很好的解決問(wèn)題。容斥原理是一個(gè)古老而又簡(jiǎn)便的工具, 將現(xiàn)代組合計(jì)數(shù)手段與其相結(jié)合, 衍生出許多新意。廣義容斥原理作為容斥原理的變形和推廣, 能夠很好的解決恰有k種性質(zhì)的問(wèn)題。設(shè)恰有k個(gè)執(zhí)行體失效的概率為M(k), 根據(jù)廣義容斥原理可知, 則可將M(k)表示為關(guān)于W的通項(xiàng)公式:
于是有至少有k個(gè)執(zhí)行體失效的概率為:
則安全增益為:
進(jìn)一步分析, 假設(shè)對(duì)系統(tǒng)中不同執(zhí)行體的攻擊致失效率是相同的, 即Fi=Fj=F。且兩個(gè)執(zhí)行體間的失效是相互獨(dú)立, 即Fij=Fi.Fj=F2, (i≠j)。于是有恰有k執(zhí)行體失效的概率為:
于是有至少k個(gè)執(zhí)行體失效的概率為:
則安全增益為:
若取λ1=λ2=…λn=λ, 取k=n時(shí), 由定義3給出單個(gè)執(zhí)行體的失效概率,F=1 -e-λit, 則系統(tǒng)安全增益為:
根據(jù)定義 5中定義的系統(tǒng)開(kāi)銷對(duì)多余度裁決模型的執(zhí)行效率進(jìn)行分析。為便于分析, 先不考慮動(dòng)態(tài)調(diào)度帶來(lái)的系統(tǒng)開(kāi)銷, 分析引入k/n裁決機(jī)制所帶來(lái)的系統(tǒng)開(kāi)銷, 對(duì)n個(gè)執(zhí)行體的輸出結(jié)果進(jìn)行比較, 對(duì)異常狀態(tài)的感知是整個(gè)系統(tǒng)執(zhí)行安全的關(guān)鍵方法。對(duì)于執(zhí)行體A的執(zhí)行結(jié)果, 為其維護(hù)一個(gè)Ja結(jié)構(gòu)數(shù)組包括num和val, 分別表示狀態(tài)個(gè)數(shù)和狀態(tài)值。在表2中給出多余度裁決算法的基本流程。
在多余度裁決算法中, 比較操作是耗時(shí)最長(zhǎng)的操作, 其他操作相對(duì)于比較來(lái)說(shuō)可以忽略不計(jì)。對(duì)算法的執(zhí)行結(jié)果進(jìn)行分析可知: 最好情況, 每個(gè)執(zhí)行體的執(zhí)行結(jié)果都相等, 則只需要進(jìn)行n–1次比較操作; 最壞情況, 每個(gè)執(zhí)行體的執(zhí)行結(jié)果都不相等, 則需要進(jìn)行n(n–1)/2次比較操作。進(jìn)一步分析, 在某些特殊執(zhí)行過(guò)程中, 執(zhí)行結(jié)果的狀態(tài)空間只會(huì)產(chǎn)生正確的和錯(cuò)誤的兩種情況, 那么算法的執(zhí)行結(jié)果則只需進(jìn)行n–1次比較操作。記比較方法的執(zhí)行時(shí)間為所以可以得出結(jié)論, 在相同的比較算法下, 有 Δoverhaed與n成正相關(guān)。
表2 k/n裁決Table 2 k/n Adjudication
本節(jié)根據(jù)定義 6中定義的恢復(fù)能力對(duì)多余度采掘模型進(jìn)行威脅感知后進(jìn)行系統(tǒng)恢復(fù)的情況進(jìn)行分析。當(dāng)系統(tǒng)失效后, 系統(tǒng)會(huì)進(jìn)入自修復(fù)或進(jìn)入離線修復(fù)狀態(tài)。設(shè)系統(tǒng)失效后進(jìn)行自行修復(fù)的概率為u1, 離線修復(fù)率后能夠正常服務(wù)的概率為u2, 則將多余度裁決模型感知到威脅后對(duì)執(zhí)行體狀態(tài)進(jìn)行系統(tǒng)恢復(fù)這一過(guò)程用狀態(tài)轉(zhuǎn)移圖進(jìn)行描述, 如圖4所示。
圖4 系統(tǒng)恢復(fù)狀態(tài)轉(zhuǎn)移圖Figure 4 System recovery state transition diagram
設(shè)Pij(t)表示從狀態(tài)i到狀態(tài)j的轉(zhuǎn)移概率, 則根據(jù)系統(tǒng)恢復(fù)的狀態(tài)轉(zhuǎn)移圖所構(gòu)造的的狀態(tài)轉(zhuǎn)移矩陣為:
該矩陣滿足柯?tīng)柲缏宸蛳蚝蠓匠滩⑶覞M足條件,
其中, E為4階單位矩陣, Q為馬爾科夫過(guò)程轉(zhuǎn)移速率矩陣。由連續(xù)馬爾科夫正則性條件給出矩陣Q的求解方法,
于是有,
代入?yún)?shù)u1、u2求解微分方程:
由初始條件PS0(0)=1,PS1(0)=PS2(0)=PS3(0)=0, 解得,
為了便于計(jì)算, 取u1=u,u2=uλ,λ1=λ2=…λn=λ, 討論當(dāng)異構(gòu)構(gòu)件集合足夠大時(shí), 可以保證n?m, 有Δ =n(e-λt+ μe-λt-e-μλt+1 - μ )。
根據(jù)對(duì)多余度裁決模型的安全增益、系統(tǒng)開(kāi)銷和恢復(fù)能力的分析, 討論在不同失效概率和不同余度的條件下, 安全增益、執(zhí)行效率和恢復(fù)能力這三個(gè)要素的相互影響。取系統(tǒng)開(kāi)銷的倒數(shù)作為執(zhí)行效率,取λ=1、u=0.5的簡(jiǎn)化模型, 則有,
根據(jù)簡(jiǎn)化模型參數(shù), 在 Matlab上進(jìn)行了仿真實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 安全增益、系統(tǒng)開(kāi)銷和恢復(fù)能力的變化關(guān)系Figure 5 The model indicators' potential relationship
在不同余度的裁決模型下, 以不同的失效概率,比較時(shí)間和恢復(fù)時(shí)間構(gòu)造的防御系統(tǒng), 系統(tǒng)的安全增益、執(zhí)行效率和恢復(fù)能力之間存在著相互影響。當(dāng)系統(tǒng)的安全增益增加, 系統(tǒng)執(zhí)行效率減小, 系統(tǒng)恢復(fù)能力增加。這說(shuō)明了引入多余度裁決, 在提高系統(tǒng)防御能力和恢復(fù)能力的同時(shí), 會(huì)產(chǎn)生一定的性能損耗。
在簡(jiǎn)化模型中安全增益的計(jì)算是以k=n作為前提條件, 系統(tǒng)采用完全一致裁決的策略保證了引入多余度裁決方法防御能力的提升。在實(shí)際部署中, 如果系統(tǒng)能夠保證嚴(yán)苛的相異性要求, 系統(tǒng)中幾乎不存在共生漏洞, 裁決閾值的選取則不需要很嚴(yán)格。而在實(shí)際設(shè)計(jì)中如果降低了相異性設(shè)計(jì)要求, 那么系統(tǒng)中出現(xiàn)共生漏洞的概率大大增加, 而此時(shí)采取不同余度的裁決方法會(huì)對(duì)系統(tǒng)安全增益產(chǎn)生不同的影響, 部署不當(dāng)則會(huì)產(chǎn)生擬態(tài)逃逸現(xiàn)象。
根據(jù)擬態(tài)防御web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)方法[8],以異構(gòu)的 web服務(wù)器軟件為例, 對(duì)多余度裁決模型的部署風(fēng)險(xiǎn)分析。為便于分析, 不考慮系統(tǒng)服務(wù)狀態(tài)對(duì)系統(tǒng)攻擊產(chǎn)生影響且當(dāng) web服務(wù)器軟件選用Apache、IIS和Nginx時(shí), 對(duì)于異構(gòu)web服務(wù)器的攻擊是相互獨(dú)立的。討論執(zhí)行構(gòu)件的相異性和不同余度的裁決方法對(duì)系統(tǒng)的安全增益的影響。分別討論執(zhí)行體組合選取完全異構(gòu)、部分異構(gòu)和完全同構(gòu)情況下, 系統(tǒng)的安全增益的變化。
在完全同構(gòu)的情況下, 可將每個(gè)執(zhí)行體視作等價(jià)執(zhí)行體, 若單個(gè)執(zhí)行體失效則相當(dāng)于整個(gè)系統(tǒng)失效, 于是有,
在完全異構(gòu)的情況下, 系統(tǒng)中的共生漏洞幾乎為零, 可將異構(gòu)執(zhí)行體視作完全不相交, 則有,
在部分同構(gòu)的情況下, 單個(gè)執(zhí)行體失效概率會(huì)影響與其同構(gòu)的組合, 系統(tǒng)中存在不可忽略的共生漏洞, 需要考慮不同余度的裁決方法對(duì)系統(tǒng)安全增益的影響。在完全一致裁決的情況下有,
在k階一致表決情況下, 安全增益則不能確定。以2/3裁決情況下部分同構(gòu)所帶來(lái)的問(wèn)題為例, 首先計(jì)算出在2/3裁決情況下的安全增益為:
如果系統(tǒng)中只選取了1個(gè)Apache和2個(gè)Nginx服務(wù)器作為執(zhí)行構(gòu)件, 那么安全增益為:此時(shí) Nginx服務(wù)器的失效概率將作為系統(tǒng)的失效概率。同理可知, 選取了2個(gè)Apache和1個(gè)Nginx服務(wù)器, 會(huì)以Apache服務(wù)器的失效概率作為系統(tǒng)的失效概率, 安全增益為:
由上述分析可知, 在部分同構(gòu)的情況下, 不完全一致裁決的方法是危險(xiǎn)的。所以在實(shí)際部署中, 應(yīng)盡量避免執(zhí)行構(gòu)件中出現(xiàn)的同構(gòu)成分的情況下, 同時(shí)對(duì)于出現(xiàn)部分同構(gòu)的情況, 應(yīng)盡量使用完全一致裁決的方法, 以保證擬態(tài)防御多余度裁決模型能夠最大程度發(fā)揮其防御效果。
根據(jù)擬態(tài)防御web服務(wù)器的實(shí)現(xiàn)與測(cè)試方法[8-9],以異構(gòu)的 web服務(wù)器軟件為例, 對(duì)多余度裁決模型部署及其風(fēng)險(xiǎn)進(jìn)行測(cè)試與評(píng)估。web服務(wù)器的文件解析漏洞經(jīng)常被攻擊者作為網(wǎng)絡(luò)滲透的突破口, 而異構(gòu)服務(wù)器的文件解析漏洞的利用方法是不一致的。因此, 本文選取Apache文件解析問(wèn)題和Nginx配置fastcgi解析PHP時(shí)存在的文件解析問(wèn)題來(lái)驗(yàn)證引入多余度裁決模型系統(tǒng)的防御能力、系統(tǒng)開(kāi)銷、恢復(fù)能力以及可能出現(xiàn)的部署風(fēng)險(xiǎn)。預(yù)先上傳包含惡意PHP代碼的test.jpg和test.php.rar.rar.rar文件。對(duì)于Apache服務(wù)器文件解析是從后往前執(zhí)行的, 構(gòu)造http://127.0.0.1/path/test.php.rar.rar.rar, 由于服務(wù)器不能識(shí)別后綴為.rar的文件, 所以會(huì)一直遍歷后綴直到.php結(jié)束, 將test.php.rar.rar.rar作為PHP執(zhí)行; 對(duì)于 Nginx服務(wù)器構(gòu)造 http://127.0.0.1/path/test.jpg/noexist.php, 由于noexist.php是不存在的, 服務(wù)器會(huì)遞歸查詢確認(rèn)文件的合法性, 最終將 test.jpg當(dāng)做PHP進(jìn)行解析。
實(shí)驗(yàn)環(huán)境選取三臺(tái)異構(gòu)的web服務(wù)器, Ubuntu+Apache, CentOS+Nginx, WinServer+IIS, 并已關(guān)閉入侵檢測(cè)和訪問(wèn)控制等傳統(tǒng)的 web服務(wù)安全機(jī)制[38],同時(shí)對(duì)操作系統(tǒng)和服務(wù)器軟件進(jìn)行了優(yōu)化[39]。分別選取不同構(gòu)造方法的多余度裁決模型, 對(duì)系統(tǒng)的防御能力、運(yùn)行效率和失效恢復(fù)進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果,如表3所示。
討論采用不同余度的裁決方法和不同類型的服務(wù)器對(duì)于文件解析漏洞的防御能力影響。當(dāng)n=3,k=2時(shí), 采用2臺(tái)或3臺(tái)Apache服務(wù)器都會(huì)執(zhí)行用例1的預(yù)置腳本; 采用2臺(tái)或3臺(tái)Nginx服務(wù)器則都會(huì)執(zhí)行用例 2的預(yù)置腳本。當(dāng)n=3,k=3時(shí), 采用 2臺(tái)Apache或2臺(tái)Nginx服務(wù)器, 預(yù)置腳本都不會(huì)執(zhí)行。當(dāng)n=2,k=1時(shí), 采用1臺(tái)Apache和1臺(tái)Nginx服務(wù)器混合的策略, 兩個(gè)預(yù)置腳本都能執(zhí)行, 而單獨(dú)使用2臺(tái)Apache或Nginx服務(wù)器則只能執(zhí)行其中一個(gè)預(yù)置腳本。這說(shuō)明了同時(shí)采用不完全一致裁決方法和部分同構(gòu)的異構(gòu)性構(gòu)造策略構(gòu)造的擬態(tài)防御系統(tǒng)是有風(fēng)險(xiǎn)的, 會(huì)產(chǎn)生擬態(tài)逃逸現(xiàn)象, 嚴(yán)重時(shí)可能會(huì)產(chǎn)生安全增益損失的情況。對(duì)于不完全一致裁決的極限情況k=n/2時(shí), 完全異構(gòu)的異構(gòu)性構(gòu)造策略也是危險(xiǎn)的, 所以在多余度裁決模型中要求了k>n/2。
討論采用不同余度的裁決方法和不同類型的服務(wù)器對(duì)于系統(tǒng)執(zhí)行效率影響。對(duì)比響應(yīng)時(shí)間, 將響應(yīng)時(shí)間進(jìn)行歸一化處理, 以最小執(zhí)行時(shí)間為單位時(shí)間,得到響應(yīng)速率比。首先, 對(duì)比選取不同類型服務(wù)器的響應(yīng)速比。在n固定的情況下, 不同執(zhí)行體的響應(yīng)時(shí)間略有不同, 選取了IIS服務(wù)器的系統(tǒng)響應(yīng)時(shí)間相對(duì)較長(zhǎng)。 然后, 討論多余度裁決機(jī)制對(duì)系統(tǒng)執(zhí)行效率的影響。選取同一類型的服務(wù)器進(jìn)行對(duì)比, 當(dāng)n從1增長(zhǎng)到3時(shí), 由于裁決帶來(lái)的系統(tǒng)開(kāi)銷, 響應(yīng)時(shí)間也會(huì)隨之增長(zhǎng)。最后, 以n=1時(shí)的測(cè)試數(shù)據(jù)為基準(zhǔn), 與n>1時(shí)測(cè)試數(shù)據(jù)進(jìn)行比較, 可知在執(zhí)行體組合的服務(wù)質(zhì)量差異較小的情況下, 多余度裁決機(jī)制是影響系統(tǒng)執(zhí)行效率的首要因素。
討論采用不同余度的裁決方法和不同類型的服務(wù)器對(duì)于系統(tǒng)恢復(fù)情況。為了能夠更好的分析系統(tǒng)恢復(fù)的情況, 在實(shí)驗(yàn)中取m=2n, 保證在最壞情況下,三個(gè)執(zhí)行服務(wù)器同時(shí)失效, 系統(tǒng)也能正常運(yùn)行??梢园l(fā)現(xiàn), 當(dāng)系統(tǒng)感知到漏洞威脅并屏蔽了代碼執(zhí)行的測(cè)試用例, 系統(tǒng)都能夠進(jìn)行恢復(fù)。并且, 在采用完全一致裁決的情況下,n越大系統(tǒng)能夠恢復(fù)的情況數(shù)越多, 系統(tǒng)的恢復(fù)能力越強(qiáng); 在n相同的情況下, 裁決策略越嚴(yán)格, 系統(tǒng)能夠恢復(fù)的情況數(shù)越多, 系統(tǒng)的恢復(fù)能力越強(qiáng)。
本文根據(jù)擬態(tài)防御架構(gòu)和多余度裁決模型之間的關(guān)系, 針對(duì)擬態(tài)防御的多余度裁決模型, 對(duì)系統(tǒng)的防御能力、運(yùn)行效率和恢復(fù)能力三方面進(jìn)行分析。并對(duì)結(jié)合 web服務(wù)器進(jìn)行風(fēng)險(xiǎn)評(píng)估, 并給出部署意見(jiàn)。最后對(duì)多余度裁決模型的變化趨勢(shì)和部署風(fēng)險(xiǎn)行了實(shí)驗(yàn)評(píng)估。在實(shí)驗(yàn)分析中只選取了web服務(wù)軟件的基本漏洞進(jìn)行了實(shí)驗(yàn)分析, 未考慮涉及復(fù)雜狀態(tài)集服務(wù)的漏洞攻擊分布的情況以及在采用多個(gè)層次組合的異構(gòu)化情況下, 各個(gè)層次網(wǎng)絡(luò)滲透攻擊之間的相互依賴關(guān)系, 在下一步工作中繼續(xù)完善。
表3 實(shí)驗(yàn)評(píng)估Table 3 Experimental Evaluation
致謝 本文工作受到國(guó)家重點(diǎn)研發(fā)計(jì)劃網(wǎng)絡(luò)空間安全專項(xiàng)(No. 2017YFB0803201), 上海市科學(xué)技術(shù)委員會(huì)科研計(jì)劃項(xiàng)目(No. 16DZ1120502)資助。