樊永文,朱維軍,班紹桓,陳永華
(鄭州大學 信息工程學院,鄭州 450001) E-mail:ieyhchen@zzu.edu.cn
在互聯(lián)網(wǎng)高速發(fā)達的今天,數(shù)據(jù)安全對于國民經(jīng)濟的發(fā)展起著重要的作用.針對重要數(shù)據(jù)的網(wǎng)絡攻擊會對個人、企業(yè)乃至國家造成巨大的傷害.例如,風靡全球的勒索軟件(WannaCry)感染事件給企業(yè)、學校和銀行等多個行業(yè)帶來了巨大的經(jīng)濟損失;雅虎遭到黑客攻擊,許多用戶的敏感被信息泄露給用戶帶來了極大的不便.這些例子無不印證著數(shù)據(jù)安全的重要性.
其中,作為數(shù)據(jù)存放的載體——數(shù)據(jù)庫服務器最易遭受攻擊.因此,研究者們正不斷地尋找一些有效的方法用來保護數(shù)據(jù)的安全性.現(xiàn)有的數(shù)據(jù)保護方法主要圍繞數(shù)據(jù)自身安全和服務器系統(tǒng)安全等方面展開.針對數(shù)據(jù)自身安全的方法主要有:數(shù)據(jù)備份與數(shù)據(jù)恢復[1,2]、數(shù)據(jù)存儲[3]、數(shù)據(jù)加密[4]等.針對數(shù)據(jù)服務系統(tǒng)安全的方法主要有:入侵檢測[5,6]、入侵容忍[7]和入侵隔離[8]等.
雖然說,這些方法在一定程度上提高了數(shù)據(jù)安全性.但是,由于系統(tǒng)的漏洞是無法避免.因此,系統(tǒng)必然會存在一些后門與漏洞易被攻擊者利用.特別是,隨著互聯(lián)網(wǎng)技術的發(fā)展各種新型的攻擊手段層出不窮,對于這些不可預測的安全威脅現(xiàn)有數(shù)據(jù)保護方法顯得力不從心.因此,本工作將根據(jù)數(shù)據(jù)服務的工作特點,提出一種基于擬態(tài)防御思想的數(shù)據(jù)保護架構—MDS.
針對網(wǎng)絡空間安全不平衡的問題.鄔江興院士提出了一種具有動態(tài)性、隨機性、多樣性的新型主動防御技術——擬態(tài)防御(Mimic Defense,MD)[9-11].該技術的主要思想是:在目標對象給定服務功能和性能不變前提下,將其內部架構、冗余資源、運行機制等做不規(guī)則的擾動,從而對攻擊者造成一種“似是而非”的場景,以此來擾亂攻擊鏈的完整性,使得攻擊成功的代價倍增.就像生物界中擬態(tài)現(xiàn)象的那樣偽裝自己迷惑敵人.
針對數(shù)據(jù)庫所面臨的系統(tǒng)安全漏洞和持續(xù)性攻擊等安全威脅.擬態(tài)防御技術可以通過構建異構冗余執(zhí)行體池并對其進行動態(tài)調度,從而改變目標系統(tǒng)的相似性、單一性、靜態(tài)性和確定性.使得目標系統(tǒng)的內在結構對攻擊者而言充滿了不確定性,以此來增加攻擊者對系統(tǒng)漏洞進行挖掘的難度.并且與多模裁決機制的結合使得系統(tǒng)可以識別和屏蔽未知的安全威脅,從而有效的應對持續(xù)性攻擊所帶來的安全威脅.而且冗余執(zhí)行體集使得系統(tǒng)具有入侵容忍能力.
目前,擬態(tài)防御技術的核心架構技術是動態(tài)異構冗余(Dynamic Heterogeneous Redundancy,DHR)架構[11,12].如圖1(a)所示,典型DHR結構由輸入代理、在線執(zhí)行體集、裁決器、調度器以及異構執(zhí)行體池組成.其中,異構執(zhí)行體池指的是功能等價但結構不同的執(zhí)行體集合;調度器的功能是根據(jù)動態(tài)調度算法從功能等價的異構構執(zhí)行體池中動態(tài)選取n個在線執(zhí)行體集;輸入代理負責分發(fā)計算任務給在線執(zhí)行體集;裁決器負責對處理結果進行一致性判決得到唯一的相對正確的輸出并反饋給調度器.

圖1 動態(tài)異構冗余架構Fig.1 Dynamic heterogeneous redundancy,DHR
如圖1(b)所示,非典型DHR結構的在線執(zhí)行體為1個,并且取消了裁決機制,屬于典型DHR結構的退化.該結構也具有擬態(tài)防御的動態(tài)特性,與移動目標防御[13](Move Target Defense,MTD)類似.
典型DHR結構適用于對安全性要求較高的場景,非典型DHR結構適用于對安全性要求不是很高,對時間性能要求高的場景.
目前,基于DHR架構技術的擬態(tài)防御技術已被應用于路由器[14];web服務器[15];網(wǎng)絡操作系統(tǒng)[16];DNS[17];擬態(tài)加密[18]等領域.
針對現(xiàn)有數(shù)據(jù)保護方法的不足,本節(jié)將基于DHR結構并結合傳統(tǒng)數(shù)據(jù)安全技術構造擬態(tài)數(shù)據(jù)安全架構.該架構的核心思想是利用異構冗余的數(shù)據(jù)庫服務器,備份服務器以及動態(tài)調度算法來增加系統(tǒng)內在結構的不確定性.利用動態(tài)加密算法保證數(shù)據(jù)傳輸過程中的安全性.利用多模裁決機制對輸出到用戶的數(shù)據(jù)進行一致性裁決,從而識別和屏蔽未知的安全威脅.
如圖2所示,典型MDS架構由異構冗余執(zhí)行體資源池和中心控制器組成.下面介紹下這兩種模塊的組成以及功能.
3.1.1 異構冗余執(zhí)行體資源池
異構冗余執(zhí)行體資源池由數(shù)據(jù)庫服務器,備份服務器和加密資源池組成.其中,數(shù)據(jù)庫服務器資源池負責執(zhí)行數(shù)據(jù)服務;備份服務器資源池負責對服務器中的數(shù)據(jù)進行異地容災備份;加密資源池負責對傳輸過程中的數(shù)據(jù)進行加/解密處理.
在擬態(tài)防御思想中,異構冗余執(zhí)行體池是實現(xiàn)擬態(tài)防御架構動態(tài)性和多樣性的前提.其中,異構資源池中執(zhí)行體數(shù)量越多,擬態(tài)防御架構的多樣性就越高,其安全性能也就越好.
在數(shù)據(jù)庫服務器資源池中,異構性可以體現(xiàn)在可以體現(xiàn)在應用平臺層面和數(shù)據(jù)語義層面.數(shù)據(jù)庫服務器之間異構性的異構性越高,MDS架構的安全性能同樣也會越高.但是,這時會帶來命名沖突、格式?jīng)_突和結構沖突等問題.
因此,在構建數(shù)據(jù)庫服務器資源池時,對于核心數(shù)據(jù)采取不同的數(shù)據(jù)語義.對非核心的數(shù)據(jù)盡量不使用不同的數(shù)據(jù)語義.并盡量采用應用平臺層級的異構數(shù)據(jù)庫服務器.
由于擬態(tài)防御DHR結構具有內生的融合式防御特性.因此,我們可以結合傳統(tǒng)數(shù)據(jù)安全技術來構建異構冗余的數(shù)據(jù)庫服務器.如表1所示,以其中一組元素構成的異構數(shù)據(jù)庫執(zhí)行體為例.在Windows系統(tǒng)下,采用ORACLE數(shù)據(jù)庫使用數(shù)值型數(shù)據(jù)語義,并使用數(shù)據(jù)庫授權技術建立授權用戶表防止非授權用戶訪問.同時,采用基于標識的入侵檢測技術防止非法攻擊.異構冗余的數(shù)據(jù)庫服務器在線執(zhí)行體集將同一數(shù)據(jù)存儲在不同的數(shù)據(jù)庫服務器上,帶來了數(shù)據(jù)冗余.而數(shù)據(jù)冗余在一方面可以提升數(shù)據(jù)服務的安全性和可用性.在另一方面卻帶來了存儲資源的浪費和數(shù)據(jù)執(zhí)行效率的降低.因此,這時就需要對那些非必要的冗余數(shù)據(jù),如同一表中重復的數(shù)據(jù)進行刪除處理.

圖2 MDS邏輯架構Fig.2 Logical architecture of MDS
在備份服務器資源池中,其異構性可以體現(xiàn)在應用層和操作系統(tǒng)層,如表2所示.

表1 數(shù)據(jù)庫服務器異構池元素Table 1 Element pool of heterogeneous database server
在加密資源池中,其異構性可以體不同的加密算法層面,如表3所示.
雖然說,采取冗余和備份技術提高了數(shù)據(jù)服務的可用性.但是也帶來數(shù)據(jù)一致性問題.因此,需要對數(shù)據(jù)進行一致性處理.而MDS架構本身具有裁決機制,所以,可以采取類似于Quorum系統(tǒng)中的NRW策略.對于一次數(shù)據(jù)操作,只有半數(shù)以上異構系統(tǒng)完成該操作且結果一致才返回執(zhí)行成功.

表2 備份服務器異構池元素Table 2 Element pool of heterogeneous backup server
3.1.2 中心控制器
根據(jù)DHR結構的組成,構建MDS的中心控制器.分別由輸入代理,控制器,裁決器和選調器組成.下面介紹下這幾種功能模塊.
1)輸入代理
輸入代理負責對服務請求進行處理并將其分發(fā)到在線的異構執(zhí)行體集上.其中,對服務請求的標準化或可歸一化處理是實現(xiàn)安全架構的關鍵一步.例如,異構數(shù)據(jù)庫服務器的數(shù)據(jù)服務的標準化處理;異構數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)備份標準化處理等.

表3 加密異構池元素Table 3 Element pool of encryption
2)裁決器
裁決器主要是對在線執(zhí)行體集的輸出結果進行裁決處理,這里也涉及到了對于異構數(shù)據(jù)的歸一化處理,然后最終結果通過應用服務器反饋給用戶,并將異常的信息反饋給控制器.
裁決器的裁決方式有很多,最簡單的裁決方式是常用的大數(shù)表決方式,即半數(shù)以上的結果一致則認為該結果是正確的.由于篇幅所限,更復雜的裁決方式這里不再一一介紹.
3)選調器
選調器主要負責動態(tài)調度的功能,從執(zhí)行體池中動態(tài)的選擇n個執(zhí)行體作為當前的執(zhí)行體集合.
觸發(fā)選調器工作的觸發(fā)機制[11]有兩種,一是與裁決器相結合的負反饋觸發(fā)機制,即初始條件下選調器會按照調度策略動態(tài)選擇執(zhí)行體集合執(zhí)行任務,當判決器發(fā)現(xiàn)輸出不一致時,將結果反饋給控制器,控制器將實時更新給選調器,選調器會根據(jù)相應的調度策略對執(zhí)行體集進行處理.二是定時的觸發(fā)機制,即工作一段時間后強制選調器更新當前的執(zhí)行體集.
具體的選調策略則要根據(jù)實際應用場景而定,最簡單的調度策略從執(zhí)行體池中隨機選取執(zhí)行體集合,稍微復雜的調度策略是根據(jù)執(zhí)行體的置信度值的高低優(yōu)先選擇置信度高的執(zhí)行體集合,調度策略還可以是上述兩種方式的相結合的方式設置一個閾值進行轉換.當然,調度策略的方式還有很多,詳情參見文獻[19,20].
4)控制器
控制器主要負責收集來自裁決器的信息和發(fā)送調度信號給選調器.使得選調器對執(zhí)行體進行動態(tài)調度,并對“異常”執(zhí)行體進行清理.非典型MDS的安全架構類似于非典型DHR結構,只是在線執(zhí)行體集合只有一個且中心控制器中沒有裁決器模塊,選調器采取定時觸發(fā)方式的調度策略更換在線執(zhí)行體.
在正常情況下,典型MDS架構的數(shù)據(jù)服務主要是通過在線數(shù)據(jù)庫服務器執(zhí)行體集進行任務處理,然后將處理結果輸出到裁決器.裁決器對輸出結果進行裁決,并分別向應用服務器相應最終結果和控制器反饋裁決結果.控制器根據(jù)觸發(fā)和定時兩種機制對在線執(zhí)行體進行動態(tài)變化,執(zhí)行完成后同時將數(shù)據(jù)定時的存儲到備份服務器上.

圖3 典型MDS工作原理流程圖Fig.3 Working principle of typical MDS
如圖3所示,其具體工作流程如下:
1)選調器首先進行調度工作;
2)用戶向應用服務器(如web服務器等)發(fā)出服務請求;
3)應用服務器向中心控制器發(fā)出數(shù)據(jù)服務請求;
4)輸入代理響應用戶請求,并向在線執(zhí)行體集分發(fā)任務;
5)執(zhí)行體集進行任務處理,完成后通過加密鏈路向裁決器返回處理結果,并通過加密鏈路向備份服務器更新本次記錄;
6)裁決器對響應結果進行一致性判決;
a)若結果一致,則將結果通過加密鏈路返回給應用服務器(圖中第6步),并反饋結果給控制器;
b)若結果不一致,將大多數(shù)一致的結果返回給應用服務器以及控制器,并按相關選調策略進行后續(xù)處理;
7)應用服務器將結果響應給用戶;
8)存儲備份本次更新的數(shù)據(jù)操作;
在發(fā)生災害或數(shù)據(jù)庫服務器不可用的情況下,將利用備份服務器對數(shù)據(jù)進行恢復.同理,輸入代理將輸入分發(fā)到備份服務器,然后將數(shù)據(jù)輸出到裁決器,裁決器將對其進行一致性判決,并將結果反饋給控制器.然后將數(shù)據(jù)通過輸入代理輸入到數(shù)據(jù)庫服務器上進行數(shù)據(jù)恢復.
同理,非典型MDS架構的數(shù)據(jù)服務通過在線的數(shù)據(jù)庫服務器進行任務處理,然后將處理結果輸出到應用服務器.控制器根據(jù)定時機制分別對在線執(zhí)行體進行周期性的動態(tài)變化,并利用輸入代理將數(shù)據(jù)庫服務器的數(shù)據(jù)存儲到備份服務器上.

圖4 非典型MDS工作原理流程圖Fig.4 Working principle of atypia MDS
如圖4所示,其具體工作流程如下:
1)選調器首先進行調度工作;
2)用戶向應用服務器(如web服務器等)發(fā)出服務請求;
3)應用服務器向中心控制器發(fā)出數(shù)據(jù)服務請求;
4)輸入代理響應用戶請求,并向在線執(zhí)行體集分發(fā)任務;
5)執(zhí)行體集進行任務處理,完成后通過加密鏈路向應用服務器返回結果,同時,通過加密鏈路向備份服務器更新本次記錄;
6)應用服務器將結果響應給用戶;
7)存儲備份本次更新的數(shù)據(jù)操作;
同理,在發(fā)生災害或數(shù)據(jù)庫服務器不可用的情況下,將利用備份服務器對數(shù)據(jù)進行恢復.備份服務器通過控制器利用輸入代理將輸入到數(shù)據(jù)庫服務器上進行恢復.
在MDS安全框架中,中心控制器中的輸入代理、選調器、控制器和裁決器位于數(shù)據(jù)服務的前端,容易遭受到惡意攻擊.因此,我們可以對其功能進行簡化避免出現(xiàn)更多的安全漏洞,例如:可以采用單向聯(lián)系機制使其不與數(shù)據(jù)庫服務器等進行雙向交互式的聯(lián)系,控制器只負責傳遞控制信號,輸入代理只負責分發(fā)任務,選調器只負責異構執(zhí)行體的動態(tài)調度,裁決器只負責對執(zhí)行體的輸出結果進行一致性判決.還可以使用形式化方法對其進行安全驗證或采取軟件定義網(wǎng)絡中控制與轉發(fā)分離[17]的策略以提升這些核心部件的安全性.
MDS架構具有動態(tài)性、異構冗余性和隨機性等特征.其中,異構冗余性不但增加了攻擊者挖掘漏洞進行攻擊的成本,而且使得系統(tǒng)具有入侵容忍的能力.多模裁決機制可以檢測和定位那些“異常的”執(zhí)行體,從而可以對這些異常執(zhí)行體進行實時清理.而動態(tài)性則使得攻擊者探測系統(tǒng)時,系統(tǒng)的內在結構充滿了不確定性,即使系統(tǒng)被攻擊成功,動態(tài)變化的執(zhí)行體也使得漏洞無法被持續(xù)利用.而且,MDS架對傳統(tǒng)的安全技術也進行了融合.例如,在異構數(shù)據(jù)庫服務器執(zhí)行體中部署了傳統(tǒng)安全防護技術.在數(shù)據(jù)傳輸過程中,對數(shù)據(jù)文件進行了加密處理等.
本節(jié)將對新架構的安全性能和時間性能進行仿真驗證.
1)MATLAB R2014a 安全性能仿真實驗;
2)Windows 7、MYSQL、ORACLE,MDS架構時間性能實驗;
3)Ubuntu 17.10、MySQL ,MDS架構時間性能實驗;
本節(jié)將對比新架構與傳統(tǒng)架構(不采用擬態(tài)防御DHR結構的架構)的數(shù)據(jù)服務安全性能.
根據(jù)DHR結構的性能評估模型,假設攻擊者的攻擊能力隨著時間的增加而增強.
在傳統(tǒng)非冗余靜態(tài)架構中,參考文獻[12]非冗余靜態(tài)架構被攻擊的成功概率隨時間的變化關系可表示為:
(1)
在以下的仿真實驗中,λ的值都取0.5.
在非典型MDS架構中,假設選調器采取定時觸發(fā)的隨機調度策略.由于采取了動態(tài)隨機調度策略,使得數(shù)據(jù)庫服務器執(zhí)行體會周期性的發(fā)生動態(tài)變化而對外呈現(xiàn)出一種不確定性.因此,在周期時間內,非典型MDS架構的攻擊成功概率可表示為:
(2)
其中,α,α∈(0,1]為影響攻擊者攻擊成功概率的隨機影響因子.參考文獻[20]以及(1)http://www.nealwagner.org/research/articles/1472_MITLincoln Labs_MSW2014.pdf,2017.,我們將異構度相似矩陣作為影響攻擊成功概率的隨機因子.系統(tǒng)間異構性越大,即α值越小,攻擊成功的概率越低.每次動態(tài)調度時α的值會發(fā)生變化,αi代表進行第i次動態(tài)調度時,本次執(zhí)行體與上次執(zhí)行體間的差異程度.

(3)
其中,m代表執(zhí)行體集數(shù)量,u代表至少要攻擊成功過半.
在典型MDS架構中,同理,考慮到動態(tài)調度和在線數(shù)據(jù)庫服務器執(zhí)行體集之間的安全性差異的影響.因此,在周期時間內,t時刻系統(tǒng)被攻擊成功的概率可表示為:
(4)

如圖5所示,比較傳統(tǒng)靜態(tài)架構與MDS架構,假設在未進行動態(tài)調度之前非典型MDS同傳統(tǒng)靜態(tài)架構的數(shù)據(jù)庫服務器相同,即α=1.在傳統(tǒng)靜態(tài)模型中,隨著時間的增加攻擊者對數(shù)據(jù)庫系統(tǒng)漏洞的了解程度會加深.因此,系統(tǒng)被攻擊成功的概率會逐漸增加.而在非典型MDS架構中,由于采取了動態(tài)的調度策略使得數(shù)據(jù)庫服務器執(zhí)行體會周期性的發(fā)生變化,從而對外呈現(xiàn)出一種不確定性.從而加大了攻擊者進行漏洞挖掘的難度.因此,非典型MDS架構的安全性要高于傳統(tǒng)非冗余架構.

圖5 MDS架構與傳統(tǒng)架構安全性能對比圖Fig.5 Comparison of security performance between MDS and traditional architectures
同理可得,由于典型MDS架構采取了動態(tài)調度的機制,因而相比傳統(tǒng)靜態(tài)冗余架構而言,典型MDS架構的安全性更高.
總體來說,在傳統(tǒng)架構中,增加冗余裁決機制可以提升系統(tǒng)的安全性,即傳統(tǒng)冗余架構的安全性要高于傳統(tǒng)非冗余型.同理可得,典型MDS架構比非典型MDS架構安全性高.但是,在傳統(tǒng)靜態(tài)架構中,由于系統(tǒng)的靜態(tài)性,攻擊者攻擊成功概率也會隨著時間的增加而增加.而MDS架構采取了動態(tài)調度的機制,執(zhí)行體集會周期性的發(fā)生變化,因而使得系統(tǒng)對于攻擊者呈現(xiàn)出一種不確定性,影響了攻擊成功的概率.對比非典型MDS架構、典型MDS架構和傳統(tǒng)靜態(tài)冗余架構可以得出,采取異構冗余、多模裁決方式在一定程度上會提升系統(tǒng)的安全性.但是,如果不采取動態(tài)調度的策略,系統(tǒng)的安全性也會隨著時間的增加而減少.因此,MDS架構系統(tǒng)的安全性要高于傳統(tǒng)架構.
本節(jié)將對MDS架構的數(shù)據(jù)庫服務器時間性能仿真驗證,實驗采取3種結構的異構數(shù)據(jù)庫并建立數(shù)據(jù)結構相同的數(shù)據(jù)表.這3種系統(tǒng)結構分別是windows 7+MYSQL、Ubuntu 17.10 +MySQL和windows 7+ORACLE.

表4 時間性能對比表(單位:s)Table 4 Comparison of time performance
如表4所示,在傳統(tǒng)非冗余靜態(tài)架構中,使用單個查詢和全體查詢作為服務器的輸入,將查詢結果響應時間作為數(shù)據(jù)庫服務器處理時間.而在傳統(tǒng)冗余靜態(tài)架構中,數(shù)據(jù)庫服務器處理時間為冗余執(zhí)行體集中最大處理時間以及裁決所用時間.在非典型MDS架構中由于需要動態(tài)調度的影響需要對數(shù)據(jù)庫進行數(shù)據(jù)同步恢復以確保數(shù)據(jù)的完備性.故此,假設數(shù)據(jù)庫恢復時間為動態(tài)調度時間.因此,非典型MDS架構的數(shù)據(jù)庫服務器運行時間為數(shù)據(jù)庫恢復時間以及數(shù)據(jù)庫服務器處理時間.同理,典型MDS架構的數(shù)據(jù)庫服務器運行時間為數(shù)據(jù)庫恢復所需最大時間,冗余執(zhí)行體集中最大處理時間和裁決所用時間.

圖6 MDS架構與傳統(tǒng)架構時間性能對比圖Fig.6 Comparison of time performance between MDS and traditional architectures
由圖6可得,由于3冗余架構要對冗余執(zhí)行體的輸出結果進行多模裁決.因此,傳統(tǒng)3冗余架構的處理時間要比傳統(tǒng)非冗余架構高.而在非典型MDS架構中,由于引入動態(tài)調度機制.因此,在周期時間內,非典型MDS架構需要對數(shù)據(jù)庫數(shù)據(jù)同步與恢復,所以,其處理時間要高于傳統(tǒng)架構.而在典型3模MDS架構中,不僅有動態(tài)調度機制,還有多模裁決機制.因此,典型3模MDS架構要比傳統(tǒng)架構以及非典型MDS的時延高.總體來說,對比傳統(tǒng)架構,新架構主要時間用于動態(tài)調度中的數(shù)據(jù)庫數(shù)據(jù)同步與恢復.
如4.1節(jié)和4.2節(jié)所述,典型MDS架構的安全性能最高,但其時間性能受到了影響.且在實際應用中的經(jīng)濟成本可能要高于其它架構.因此,在實際應用中,如果對數(shù)據(jù)安全性要求較高,對時間性能要求不高時可以考慮典型MDS架構.如果對時間性能或經(jīng)濟成本有要求,可以考慮非典型MDS架構.
針對現(xiàn)有數(shù)據(jù)保護方法存在的問題,本文基于擬態(tài)防御的思想提出了具有動態(tài)性、多樣性和隨機性的擬態(tài)數(shù)據(jù)安全架構,用以提升數(shù)據(jù)服務的安全性.仿真實驗證實了該架構的安全性.
但是,MDS架構的處理時間要高于傳統(tǒng)架構.而且,部署MDS的會帶來一些經(jīng)濟成本.在接下來的研究里,將主要針對動態(tài)調度算法中,即MDS架構的數(shù)據(jù)同步與恢復所用時間進行優(yōu)化,并通過虛擬化等技術降低MDS架構的經(jīng)濟成本.