姚遠,潘傳幸,張錚,張高斐
(1.信息工程大學網絡空間安全學院,河南 鄭州 450001;2.數學工程與先進計算國家重點實驗室,河南 鄭州 450001)
互聯網的高速發(fā)展,使計算機軟件全球化進程不斷向前推進的同時,也帶來了軟件一元化問題[1-2]。大量相似軟件存在于計算機中,容易導致黑客通過利用軟件的漏洞,攻擊安裝了該軟件的計算機,從而造成不可估量的經濟損失。
安全研究人員意識到軟件多樣化是應對黑客攻擊的一種有效手段。軟件多樣化是指同一軟件的多個實例有不同的二進制執(zhí)行代碼。軟件多樣化最早應用于容錯機制,通過多個可選版本的程序組成多樣化冗余系統來獲得更高的可靠性和安全性。雖然軟件多樣化在一定程度上增大了針對軟件漏洞攻擊與利用的難度,但并沒有完全消除惡意威脅。張宇嘉等[3]和龐建民等[4]將軟件多樣化與擬態(tài)防御[5-6]思想相結合,提出了基于軟件多樣化的擬態(tài)防御框架,其框架組成如圖1所示。該框架不僅對軟件采用各種不同的多樣化手段,而且引入投票機制,即大數表決機制以產生相較于多版本程序集中單個執(zhí)行體更加可靠的輸出。
基于軟件多樣化的擬態(tài)防御框架中,通常使用多樣化編譯的方法生成變體集合,包含指令替換、控制流扁平化、代碼克隆、動態(tài)不透明謂詞等各個粒度的混淆手段[7]。分發(fā)器將輸入分發(fā)給各個變體,表決器使用大數表決機制對各個變體的輸出進行裁決。該框架有許多優(yōu)點:擾亂或阻斷了攻擊鏈,增加了攻擊難度,同時該框架安全風險可控的特點允許軟件中存在一定程度的漏洞;框架中多變體的組合應用可以構成相當大的動態(tài)空間,用以降低有效利用漏洞和后門進行攻擊的風險;冗余使該框架具有內在的可靠性;能夠形成共生協同、N 變體、等效多變體??梢钥吹?,為了帶來上述優(yōu)點,該框架將原本一個執(zhí)行體的工作分發(fā)給了一個功能等價的異構(多樣化)變體集合,這將會增加性能的損耗。在一些對安全比較敏感的行業(yè)(如銀行、電網、電子支付等)中,這些性能損耗是可以接受的;但是在一些對用戶體驗比較敏感的行業(yè)(如游戲、社交、多媒體等)中,則要求性能損耗不能太大。目前,對于如何選擇N 個變體使之能構成一個滿足各種要求的多樣化軟件系統,還沒有實際有效的測評體系及方法。
圖1 軟件多樣化的基于擬態(tài)防御框架
本文提出了一種基于層次分析法(AHP,analytic hierarchy process)的多樣化軟件系統量化評估方法,兼顧選取變體時考慮的主觀和客觀因素,從而使選出的變體是各方面要求的折中,也為多樣化軟件系統提供可定制服務貢獻了思路。
層次分析法是將與決策有關的元素分解成目標、準則、方案等層次,在此基礎上進行定性和定量分析的決策方法。這種方法的特點是在對復雜決策問題的本質、影響因素及其內在關系等深入研究的基礎上,利用較少的定量信息使決策的思維過程數學化,從而為多目標、多準則或無結構特性的復雜決策問題提供簡便的決策方案。層次分析法是對難以完全定量的復雜系統做出決策的模型和方法。
層次分析法根據問題的性質和需要達到的總目標,將目標分解為不同的組成因素,并按照因素間的相互關聯影響以及隸屬關系將因素按不同的層次聚集組合,形成一個多層次的分析結構模型,最終使問題歸結為最低層(方案、措施等)相對于最高層(總目標)的相對重要權值的確定或相對優(yōu)劣次序的排定。層次分析法適用于具有分層交錯評價指標的目標系統,而目標值又難于定量描述的決策問題。多樣化軟件系統質量問題恰好屬于這類問題。層次分析法基本步驟為建立層次結構模型,構造成對比較矩陣,計算權向量并進行一致性檢驗,計算組合權向量并進行組合一致性檢驗。
形成評價體系需要選擇合適的評價指標。本文根據層次分析理論,采用自上而下的方法,逐步分析,逐層分解,最終確定了由二層評價指標構成的多樣化軟件系統評價體系。在評價指標選取的過程中遵循以下4 個原則。
1)針對性。多樣化軟件系統不同于一般的軟件系統,具體表現為異構性、冗余性以及檢查點同步裁決。因為傳統軟件系統并不具備這些特點,所以傳統軟件量化評估的指標體系往往不涉及多樣化軟件系統的特有指標[8-9]。這就要求指標的選取要具有針對性。選取指標時既要側重于多樣化軟件系統所特有的質量要素,又要兼顧與傳統軟件所共有的一些質量要素。
2)客觀性。應用于不同領域的軟件系統所關注的質量要素不同,選取指標時應注意軟件類別及主要用途,評價指標應反映多樣化軟件系統的本質特征。
3)可測性。選取的評價指標必須能夠量化表示,能夠通過經驗統計、數學計算、平臺測試等方法得到具體數據。這既是層次分析理論的內在要求,也是評價體系具有應用價值的前提條件。
4)簡明性。評價指標要易于被各方理解和接受。評價指標的選取不在于多少,關鍵在于在評估過程中,指標所發(fā)揮的作用有多大。過多的指標不僅會增加結果的復雜性,有時還會影響評估的客觀性。
多樣化軟件系統的層次評價體系由可用性指標體系、安全性指標體系和性能指標體系3 個部分構成。
可用性指標體系由功能等價性與假陽率 2個指標構成。多樣化軟件系統的多樣性通過多樣化編譯來保證,這難免會存在一致性問題,功能等價性是用來衡量執(zhí)行體之間一致性的指標。由于執(zhí)行體之間存在不一致問題,表決器難免會產生誤報,這種現象稱為假陽,假陽率是衡量表決器誤報的指標。
安全性指標體系由異構性和攻擊表面2 個指標構成。多樣化軟件系統的安全能力與異構性緊密相關,目前通常通過統計執(zhí)行體之間的多樣性與差異性來估計異構性[10-11]。攻擊表面是衡量一個系統安全能力的另一種量化方式[12]。一般來說,攻擊表面越小,系統越安全;攻擊表面越大,系統面臨的危險越大。
性能指標評價體系由時間性能指標和空間性能指標構成。由于多樣化軟件系統各執(zhí)行體之間需要同步表決,這種同步表決機制會帶來不可避免的性能損耗;另外,多樣化軟件系統中多執(zhí)行體冗余執(zhí)行,相對傳統單執(zhí)行體軟件系統來說,額外的內存空間開銷也是無法避免的??傊?,性能指標評價體系是層次評價體系中不可缺少的一部分。
綜合上述討論,同時根據3.1 節(jié)中的4 條評價指標選取原則,本文構建的指標評價體系包括3 個一級指標和6 個二級指標。3 個一級指標在準則層B,分別是可用性、安全性、性能,6 個二級指標在準則層C,分別是功能等價性、假陽率、異構性、攻擊表面、時間性能、空間性能。下一步將對指標評價體系中的各指標分配一定的權重,再按權重將各個具體的指標值整合起來,最終得到多樣化軟件質量的評估結果。為了在評價過程中避免單一指標的片面性造成的結果不可靠,同時更加全面地評價多樣化軟件系統的質量,本文將選取的指標評價體系轉換成如圖2 所示的層次分析模型。
圖2 多樣化軟件系統的層次分析模型
本文以應用于互聯網行業(yè)的某Web 服務器為例來進行具體的多樣化軟件評價。進一步地,本次評價的目標是從由多樣化編譯產生的4 個服務器變體中,選出3 個變體構成質量最優(yōu)的3-余度變體組合。層次指標評價體系示例如圖3 所示。
在評價過程中,各項評價指標的測量和數據的分析均由專業(yè)測試者完成。其中,功能等價性的測量如下:對一組變體組合中的各個變體進行P 次不同輸入,人工觀察輸出結果,得到Q 次一致輸出,那么功能等價性為。假陽率的測量結果如下:對一組變體組合進行大量輸入,記為Z 次,通過表決器裁決發(fā)現X 次輸出異常,通過人工裁決發(fā)現Y 次輸出異常,則假陽率為。針對異構性的測量,采用張杰鑫等[10]提出的方法,通過計算辛普森多樣性指數和差異二次熵,來間接計算變體間的異構性。張錚等[12]將攻擊面裁決的概念引入系統表面模型,針對非相似冗余系統進行攻擊表面量化。時間性能和空間性能的測量使用基準測試軟件完成。
圖3 層次指標評價體系示例
各項指標在準則層的權重設置根據層次排序的結果確定,在方案層的權重由測量結果確定。由于各指標間的測量方式與具體表現形式各異,將測量結果進行等級量化,分為5 個等級,使用等級量化分數代替測量結果。等級量化分數如表1所示。
表1 等級量化分數
針對需要評價量化的各個變體組合,同時結合表1的量化分數,本文對各變體組合進行定性分析,得出的各變體組合各項指標等級量化得分如表2 所示。
表2 各變體組合各項指標等級量化得分
在評價過程中,使用成對比較矩陣對各指標的重要性進行比較。每個指標的成對比較矩陣M 中的元素mij表示在下一層第i 個準則與第j 個準則的重要程度之比,這個比值根據多樣化軟件的具體應用領域所重視的質量屬性而不同。
針對目標層A,其矩陣由其下層的可用性B1、安全性B2、性能B3所決定,再根據AHP 中常用的1~9標度法,可得出成對比較矩陣,因為各個變體組合的可用性和安全性比性能重要,所以m13和m23的值更大。
根據準則層C 下一層,即方案層的值(表2),可得出功能等價性成對比較矩陣、假陽率成對比較矩陣、異構性成對比較矩陣、攻擊表面成對比較矩陣、時間性能成對比較矩陣、空間性能成對比較矩陣分別為
然后,計算各成對比較矩陣的特征向量并歸一化,得到準則層各指標的層次單排序結果如下。
層次單排序的結果即為各指標的下級指標權重。比如,ωB2=(0 .750,0.250)T說明對于安全性而言,異構性的權重為0.750,攻擊表面的權重為0.250。
層次總排序的結果為ωres=(0 .257,0.263,0.246,0.234)T。變體D2組合的總排序結果最佳,其值為0.263,可將其視為4 個變體組合中質量最好的變體,故應選擇D2變體組合構成多樣化軟件系統。
針對目前難以量化分析在不同場景選擇不同多樣化變體來使多樣化軟件系統獲益最大化的問題,本文基于層次分析法確定影響各個變體的質量指標權重,構建了一種針對多樣化軟件系統的質量評價體系。該方法能夠有效地量化不同變體組合的質量指標,驗證了層次分析法在該領域的適用性以及量化的可行性,進一步地將對多樣化軟件系統的變體組合的選取具有指導性意義。