陳揚,扈紅超,劉文彥,霍樹民,梁浩
(國家數字交換系統工程技術研究中心,河南 鄭州 450002)
云計算(cloud computing)是一種基于互聯網的計算方式,通過這種方式,共享的軟硬件資源和信息,可以按需求提供給計算機和其他設備。它提供可用的、便捷的、按需的網絡訪問。通過可配置的計算資源(包括網絡、服務器、存儲、應用軟件、服務)共享池,只需投入很少的管理工作就可快速獲得這些資源。例如,國內的阿里云、騰訊云以及在國外已經非常成熟的微軟Azure、谷歌云平臺等,各種“云計算”的應用服務范圍正日漸擴大,影響力也無可估量。但云計算存在以下2個不可忽視的問題。
1) 數據的入侵容忍能力低。云計算最重要的2個問題是保密性和安全性。如企業把企業信息、客戶信息等敏感的商業數據存放于云計算服務提供商,通過減少對某些數據的控制節約經濟成本,但是企業也必然會擔心數據放在云端是否安全以及會不會被泄密和竊取等問題。
2) 云計算基礎設施的入侵容忍能力低。云計算模式下,由于所有的業務處理都在服務器端完成,所以云計算平臺成為入侵者攻擊的核心。另外,云計算平臺自身也面臨各式各樣無法預料的錯誤。例如,2010年上半年,Amazon云計算服務因為人為失誤和意外停電事故出現故障,致使美國東部的少量用戶失去服務并導致部分數據丟失。因此云計算平臺一旦被入侵或出現問題,將導致云服務提供商和用戶利益受到嚴重損害[1]。
為了解決上述2個問題,拜占庭系統模型被大量應用。拜占庭問題是構建可靠的分布式計算體系的基本問題。在這類問題中,有3f+1個執行體,其中,最多有f個可能失效(拜占庭錯誤或被破壞),拜占庭問題的目標是讓所有正常執行體在即使系統中有拜占庭錯誤的情況下也能達成一致。
近年來,針對入侵云容忍研究的拜占庭系統,主要是在拜占庭容錯(BFT, Byzantine fault tolerance)協議上進行優化改進和應用。文獻[2]提出了一種拜占庭容錯框架拜占庭容錯云(BFT cloud),用于提高云系統的頑健性。文獻[3]提出了一種名為BFT-MCDB(Byzantine fault tolerance multi-clouds database)的拜占庭容錯模型,將拜占庭協議以及Shamir的秘密共享方法結合起來,以檢測多云計算環境中的拜占庭故障,并確保存儲在云中數據的安全性。
為了基于拜占庭提高云的入侵容忍能力,文獻[3]以Hadoop為平臺實現了MinBFT和 MinZyzzyva最小拜占庭算法原型。在對2種算法性能進行比較的基礎上,改進了容忍入侵算法性能,實現了在2f+1個副本中容忍 f個副本的錯誤;盡量減少內部通信資源開銷和副本數量,降低云計算資源消耗,提高系統容忍入侵性能。文獻[4]提出了資源有效的拜占庭容錯(REBFT, resource-efficient Byzantine fault tolerance),這種方法通過將f個副本保持在被動模式,在正常情況下通過最小化BFT系統的資源使用情況。與主動副本相比,被動副本既不參與協議也不執行客戶端請求;而是通過活動副本提供的驗證狀態更新來提升速度。在懷疑或檢測到故障的情況下,被動副本以一致的方式被激活。文獻[5]提出了一個新的BFT中間件系統——Thema,它擴展了BFT和Web服務技術,以提供一種結構化的方法來構建應用程序開發人員可以使用的拜占庭容錯,其可生存的Web服務和其他Web服務一樣。它們允許拜占庭容錯服務:1) 支持Web服務的多層次需求;2) 為自己的客戶提供標準化的Web服務支持。文獻[6]介紹了 BFT-WS的設計和實現,BFT-WS是一種用于Web服務的拜占庭容錯中間件框架。它使用標準的Web服務技術構建拜占庭式容錯服務,因此更適合實現互操作性。文獻[7]提出了Perpetual——一種支持拜占庭容錯執行復制服務的協議,同時強制執行嚴格的故障隔離,永久性地實現了在長時間運行的線程中異步調用和處理遠程請求的復制服務之間的交互。
但現在大多數拜占庭系統都是鏡像復制的執行體,這樣的系統具有一定的可靠性,但是安全性不足,往往攻擊者攻破一臺主機就能很容易攻破其他主機。本文圍繞基于動態異構的拜占庭系統提高云服務入侵容忍能力進行研究,主要貢獻如下。
1) 針對入侵云容忍下的拜占庭系統描述了潛伏式攻擊模型。
2) 為提高拜占庭系統安全性提出了動態異構的拜占庭系統(DHB, dynamic heterogeneous Byzantine system)模型。
3) 為進一步提高異構系統的安全性,提出利用系統漏洞和攻擊技能水平衡量執行體生命周期,并將量化結果作為系統切換時間。
4) 實驗部分模擬攻擊方式對改進動態異構拜占庭模型進行防御效果測試,有效評估系統安全性。
拜占庭執行體在云環境下以虛擬機的形式存在,隨著時間的推移,一個虛擬機的攻擊面會逐漸擴大[8]。即使是有一定入侵容忍的拜占庭系統,執行體也可能在擴大的攻擊面下被攻擊者逐個攻破被攻擊者而使系統失效。針對此問題構建潛伏式攻擊模型。結合實際情況,做出如下假設。
假設 1 假設攻擊者以虛擬機作為攻擊目標,暫不考慮針對 Hypervisor、管理器以及物理設施的攻擊。
假設 2 對于一些重要的云中資源,如軍事機密、銀行賬戶,攻擊者已經不是獨立個人,而是團體,為了攻破拜占庭系統,他們有足夠的時間和資源支撐其行動。
假設 3 攻擊者攻破各個執行體是相互獨立事件。因為采用異構執行體,所以暫時忽略執行體之間的相互影響。
假設 4 因為拜占庭系統針對個別(不多于f個)的單獨攻擊有較好的容侵性能,所以在考慮攻擊的時候僅考慮潛伏式攻擊。
基于以上假設,提出一種潛伏式攻擊模型。當攻破一臺執行體的時候并不立刻進行破壞(因為拜占庭的入侵容忍機制),而是繼續感染攻擊其他執行體。此時攻擊者可以知道有多少執行體,因為各個拜占庭執行體之間會進行通信,一旦攻擊者控制了一臺執行體就可以獲得關于其他拜占庭執行體的很多信息。如果攻擊者逐個依次攻擊,則定義為“串行”攻擊。基于攻擊者組織規模,攻擊者也可能進行“并行”攻擊,即多個執行體可能同時受到攻擊。隨著時間積累,當攻擊者攻破的執行體超過了入侵容忍的限度 f,再發起總攻,就能徹底破壞拜占庭系統。定義na為攻擊者控制的執行體個數。
1) 當時,攻擊者能使系統無法正常工作(達不成一致)。其危害性較低。
2) 當時,攻擊者可以使系統一致輸出錯誤信息。其危害性較高,這是最佳攻擊目標。
現在大多數拜占庭系統都是鏡像復制的執行體,這樣,往往一臺主機被攻破就能感染其他主機。所以異構執行體是拜占庭系統的發展方向。
即使采用異構方法,如果執行體一直保持靜態不變,系統也存在如下安全性問題。
1) 沒有完全異構的執行體,即執行體之間仍然存在共同攻擊面,如共同漏洞,如表1所示。
2) 潛伏式攻擊手段在時間積累下仍能攻破異構系統。
所以,構建上述系統需要解決2個問題:①如何配置最大異構度的拜占庭執行體集;② 如何最優切換,即切換時機問題(太快會影響服務以及成本較高,慢了又可能給攻擊者帶來足夠的攻擊時間)。為解決上述問題,一個完善有效的系統應該包含執行體的異構選擇和執行體的動態切換功能。
為了提高容忍性能,本文采用執行體個數為2f+1的拜占庭模型,即系統加入了消息簽名。
本文設計了一個動態異構的拜占庭系統框架,如圖1所示。在云中為拜占庭系統部署了切換管理、資源控制器、執行體狀態、執行體選擇4個模塊。

表1 系統的共同漏洞數

圖1 動態異構的拜占庭系統框架
1) 切換管理
負責管理、生成和銷毀執行體。可以用云中的系統調度模塊實現,如基于事先創建的鏡像快速生成可使用的執行體。
2) 資源控制器
負責管理和分配系統資源,如CPU、內存、存儲等。這是云的資源管理模塊,根據用戶申請進行分配。
3) 執行體狀態
維持每個執行體狀態表,監視每個執行體狀態,可通過云管理系統實現。
4) 執行體選擇
負責從異構執行體鏡像池中選擇執行體,通過不同的算法,自適應地使系統的異構度最大,此部分需要在云管理系統(如 OpenStack)中開發相應模塊實現。
在云環境中,拜占庭系統的執行體可以在多個層面上實現異構,如操作系統異構、軟件異構。應用程序堆棧的配置集合表示為,其中,存在n個技術堆棧。這里,Li表示可以在應用棧第i層使用的技術集合。
考慮一個具有4層(n=3)的云Web服務執行體,即拜占庭執行體承載的是云Web服務,其中,第1層表示Web服務的運行系統,第2層表示服務器軟件,第3層表示其應用腳本,第4層表示存儲處理數據的數據庫。例如,第1層使用的技術L1={Windows10,RedHat,…,Ubuntu}。通過表2[9]能夠看出,一個有效的配置可以是c1=(Ubuntu,Apache,PHP,MySQL),異構化配置在各個層面可以不同。

表2 異構執行體
對于種配置,執行體集合S={s1,s2,…,之間有相似性存在,如共同漏洞。定義一個相關性矩陣R,rij表示ci、cj這2種配置系統之間的關聯程度,即攻破操作系統 ci后,操作系統cj被攻破的概率,且 rii=1。關聯程度由共同漏洞數刻畫,共同漏洞數越大,關聯程度越高,對應的元素值越大,如表1所示。設ci、cj間共同的漏洞數為Kij,ci本身的漏洞數為 Vi,其中,令

借鑒生物多樣性中基于物種相似度的多樣性度量方法評價配置系統之間的異構性[10]。對于任意配置ci,令

pi為ci在系統中出現的頻率。則定義操作系統的多樣性度量[11]為

其中,c代表拜占庭系統配置方法。在布置異構執行體時,應該盡量使系統的異構性最大化,即求得
執行體的動態切換是一種很好的提高安全性的方法,這種思想在國外被充分應用在移動目標防御上。云服務的資源調度為執行體的切換提供了很好的條件。當執行體運行一段時間后就需要啟動新的異構執行體來替換。
為了獲得最大的安全性,系統還必須滿足以下要求。
1) 不考慮將執行體重置成初始狀態。因為執行體如果已經被攻破,攻擊者第二次攻破相同系統就會變得非常容易。
2) 在執行體切換過程中,先啟動替換執行體,等其正常工作后再銷毀原有執行體。
① 不會破壞原系統2f+1的協議原則。
② 不會影響用戶的正常使用。
從不同的角度考慮執行體的動態化有不同的方法。本文根據McQueen團隊[12]的研究成果,考慮攻擊者的能力以及每個執行體漏洞情況,基于單個執行體平均攻破時間(MTTC, meantime-to-compromise),為每個執行體設置不同的生命周期。
4.3.1 單個執行體平均攻破時間
本文定義攻擊者在執行體上獲得某種級別的權限所需的平均時間為平均攻破時間。MTTC取決于漏洞的性質和攻擊者的技能水平。MTTC被建模為由以下 3個攻擊者子進程組成的隨機進程[12]。
進程1:當攻擊者識別出一個或多個已知漏洞并且有一個或多個可利用漏洞。
進程2:當攻擊者識別出一個或多個已知的漏洞,但沒有可用的可利用漏洞。
進程3:識別新的漏洞和可利用漏洞。
進程1
簡單假設可用的漏洞均勻分布在所有漏洞中,則攻擊者具有容易獲得的漏洞概率P1為

參數詳情如表3所示。表3中數據為McQueen等得出的經驗值,本文以此參數為案例進行分析,不同的云環境下可以以此為參照,修改相應數值以適應不同系統。規定1天作為進程1中成功攻擊的平均時間[12]。
進程2
由于進程1和進程2是互斥的,即


表3 MTTC中參數定義和取值
進程2的平均時間估計應該取決于已知漏洞的數量以及攻擊者能夠找到或編寫自己的漏洞利用代碼以利用漏洞的概率。這被建模為一個串行過程,攻擊者隨機選擇一個已知的漏洞,然后嘗試查找或創建可利用漏洞。依據嘗試所需基準平均值為5.8天。過程2的平均時間被建模為嘗試次數乘以5.8天的預期值為

其中,進程2預期的嘗試次數N為

進程3
進程3會持續到“成功”。發現可用漏洞的平均時間的合理估計為 30.42天。根據每個攻擊者級別,漏洞數估計將按進行縮放。從而進程3的預期攻破時間t3為

4.3.2 切換時間
平均攻破時間,即3個過程的總時間為

其中,u是進程2失敗的概率(如果V=0,則u=1)。
通過式(2)可以計算出每個執行體在不同攻擊水平下的平均攻破時間t。本文將這個時間設置為該執行體的切換時間,即生命周期。因為在1個執行體的生命周期t內,必須至少同時有其他f個被攻破執行體才能對系統造成破壞。即攻擊者必須在t內攻破f+1個以上的執行體。這是極其困難的,故系統的安全性可以得到很好的保證。
4.3.3 切換策略
在此系統上,結合上文的分析,本文設計了拜占庭執行體的切換策略。
步驟 1 首先切換管理模塊部署多個異構執行體,并為每個執行體通過式(2)計算設置一個生命周期t,不同執行體的生命周期是不同的。
步驟 2 執行體狀態模塊監視每個執行體狀態。如果拜占庭系統發現不一致的執行體,或者某個執行體生命周期即將到期,執行體狀態模塊要求進行執行體更換。
步驟 3 切換管理模塊聯系資源控制器從資源池分配新的資源,執行體選擇器從異構執行體鏡像池中選擇執行體鏡像,結合 4.2節的異構度計算方法,它要保證其選擇使系統的異構性最大。執行體狀態模塊為其設置一個生命周期。
步驟 4 切換管理模塊將新舊執行體進行切換并保證業務不中斷。
拜占庭系統具有較高的安全性,并且系統切換時間越短,消耗資源越多。所以本文將安全劃分成3個等級:Level 1(初級)、Level 2(中級)、Level 3(專家),依據攻擊者的3個水平計算切換時間。定義執行體i的生命周期分別對應3個安全等級的值。這樣管理者可以依靠網絡狀況、安全需求等具體環境進行選擇。
本節嘗試分析動態異構的拜占庭系統的安全性能。為了便于分析,假設除設定的防御機制外,被保護系統沒有采取其他安全措施,如入侵檢測、防火墻等。對于2f+1的拜占庭系統,攻擊者必須在執行體生命周期ti內攻破f+1個執行體才能攻擊成功。因為并行攻擊對攻擊團隊要求非常高,投入的資源也是極大的。所以這里僅討論潛伏式串行攻擊。
因為攻擊者成功攻破一個執行體的概率密度在零時刻為零,隨著時間的增加,趨向峰值然后衰減但從未達到零。所以將1個執行體被攻擊成功的概率密度函數建模為伽馬函數[12]。因此專家級別攻破單個執行體的概率密度函數如圖2所示,其生命周期根據式(2)計算為ti,攻擊者攻破執行體i的時間為iT。

對于執行體

圖2 專家攻破單個執行體的概率密度函數
其中,θ>0是刻度參數是形狀參數,Γ(?)是伽馬函數。因為是同一攻擊者,本文設置對各執行體攻擊成功概率分布的θ值一樣。
1) 對于單純鏡像復制拜占庭系統,從4.3.1節可知,當系統攻破一個執行體后,攻破其他鏡像執行體就只有進程 1,即攻破時間為天。所以攻破總時間*T為

由于沒有執行體的切換,隨著時間的積累,系統最終會被攻破。
2) 對于靜態異構的拜占庭系統,攻擊者攻破個執行體的時間T服從

明顯,,即異構拜占庭系統被攻破需要的時間更長。
3) 對于動態的拜占庭系統,其被攻破的概率分布函數為

ti為攻擊者攻擊的目標執行體集合中生命周期最小值,f( t)分別對應同構系統和異構系統被攻破時間*T和T的概率密度函數。要想攻破動態的拜占庭系統,攻擊者必須要在ti內至少攻破f+1個執行體,因為一旦超過ti,生命周期對應為ti的執行體就會被系統切換,攻擊者攻破的執行體數量小于f+1,則攻擊失敗。從式(3)可以看出,切換時間越短,被攻破的可能性越小。
基于第5節的4種系統(鏡像復制拜占庭系統、靜態異構拜占庭系統、動態同構拜占庭系統、動態異構拜占庭系統)架構下在潛伏式攻擊中安全性能的數值解,假設系統為5個執行體的拜占庭系統,仿真專家級攻擊者對該系統的攻擊。
本文假設攻擊者目標執行體集合*S=,其中,s1的生命周期最短。由式(3)計算得,專家攻擊者對于*S執行體集合的攻擊成功率如圖 3所示。在 level2的安全等級下,專家級攻擊者必須在10天內攻破3個執行體*S,一旦超時,s1會被系統切換,攻擊者必須更換目標集合,即攻擊失敗。從圖3可以看出,安全等級越高,系統被攻破的可能性越小。

圖3 專家在不同安全等級下攻破系統的概率分布
圖4比較了在安全等級Level 1環境下專家級別攻擊者對有5、7、9個執行體的動態異構拜占庭系統的攻擊成功率。可以看出,異構執行體越多,系統的安全性越高。所以管理者應該根據自身需求選擇拜占庭系統配置。
圖5給出了4種系統的攻破概率分布。可以看出,在安全等級Level 3環境下專家級別攻擊者對 S*進行進攻,動態異構的防御性能有較高的安全性,攻破概率幾乎為 0,這個與預期的結果一致。HB和B系統的2條線所包圍的面積代表了系統的異構度范圍。鏡像復制拜占庭系統異構度最小,圖中HB系統代表“理想”的完全異構(任何 2個系統不可能完全不同)。隨著異構度的增大,攻擊成功曲線向右移動,即攻破需要的時間也隨之增加。

圖4 執行體個數對系統安全性影響

圖5 專家攻破4種系統的概率分布
本文針對現有云環境下的拜占庭系統構建了一種潛伏式攻擊模型,并提出了一種有效應對此攻擊的防御系統,即動態異構拜占庭系統。DHB系統主要由異構執行體組成,運行拜占庭協議,由控制器進行動態切換。針對攻防過程的復雜性,簡化了攻防模型,在潛伏式攻擊下對系統的安全性能進行了理論分析。理論與實踐結果均表明,在一定程度上增大系統資源開銷的情況下,DHB系統能夠顯著提升被保護系統的安全性,提升入侵容忍能力。
當然,本文著重介紹動態異構拜占庭基本框架,下一步是實現了一個基于 DHB系統的Web服務器模型,并對其展開攻防測試。本文主要思想不局限于僅通過 MTTC求解切換時間,而是在確定切換時間時需要考慮攻擊模型,將來可以使用其他攻擊模型以研究動態切換。拜占庭系統提高入侵容忍的同時也帶來了系統成本的提高,執行體動態化更是增大了系統開銷,所以將系統開銷納入切換策略中也是個很好的研究方向。
參考文獻:
[1]王秀蘋. 云計算下基于拜占庭算法的容忍入侵技術研究[D]. 包頭: 內蒙古科技大學, 2012.WANG X P. Research on intrusion tolerance based on Byzantine algorithm in c1oud computing[D]. Baotou: Inner Mongolia University of Science and Technology, 2012.
[2]ZHANG Y, ZHENG Z, LYU M R. BFTCloud: a Byzantine fault tolerance framework for voluntary-resource cloud computing[C]//International Conference on Cloud Computing. 2011: 444-451.
[3]ALZAIN M A, SOH B, PARDEDE E. A Byzantine fault tolerance model for a multi-cloud computing[C]//International Conference on Computational Science and Engineering. 2013: 130-137.
[4]KAPITZA R, BEHL J, CACHIN C, et al. CheapBFT: resourceefficient Byzantine fault tolerance[J]. IEEE Transactions on Computers, 2016, 65(9): 2807-2819.
[5]MERIDETH M G, IYENGAR A, MIKALSEN T, et al. Thema:Byzantine-fault-tolerant middleware for Web-service applications[C]//IEEE Symposium on Reliable Distributed Systems. 2005: 131-142.
[6]ZHAO W. BFT-WS: A Byzantine fault tolerance framework for Web services[C]//Eleventh International IEEE Edoc Conference Workshop. 2007: 89-96.
[7]PALLEMULLE S L, THORVALDSSON H D, GOLDMAN K J.Byzantine fault-tolerant Web services for n-tier and service oriented architectures[C]//The International Conference on Distributed Computing Systems. 2008: 260-268.
[8]PENG W, LI F, HUANG C T, et al. A moving-target defense strategy for cloud-based services with heterogeneous and dynamic attack surfaces[C]//IEEE International Conference on Communications. 2014: 804-809.
[9]仝青, 張錚, 張為華, 等. 擬態防御 Web服務器設計與實現[J].軟件學報, 2017, 28(4): 883-897.TONG Q, ZHANG Z, ZHANG W H, et al. The design and implementation of mimic defense Web server[J]. Journal of Software,2017, 28(4): 883-897.
[10]LEINSTER T, COBBOLD C A. Measuring diversity: the importance of species similarity[J]. Ecology, 2012, 93(3): 477.
[11]ZHANG M, WANG L, JAJODIA S, et al. Network diversity: a security metric for evaluating the resilience of networks against zero-day attacks[J]. IEEE Transactions on Information Forensics &Security, 2016, 11(5): 1071-1086.
[12]MCQUEEN M A, BOYER W F, FLYNN M A, et al. Time-tocompromise model for cyber risk reduction estimation[M]//Quality of Protection. Berlin: Springer, 2006: 49-64.