多層資料庫損害控制系統設計研究論文

多層資料庫損害控制系統設計研究論文

  摘要:傳統的資料庫損害控制是一階段的,在損害評估期間損害會擴散。本文我們給出名為一種多階段資料庫損害控制系統的設計與實現。透過這種方法,系統保證在損害評估期間不會發生損害擴散。

  關鍵詞:多層資料庫損害控制;系統設計

  最近,越來越多的人發現現有的安全的系統對於多種攻擊來說依舊易於攻擊,現有安全機制缺乏阻止攻擊能力。入侵容忍系統不同於傳統的安全系統,擴充套件傳統安全系統經歷攻擊後能夠生存或可操作。入侵容忍系統的焦點在於面臨攻擊時有能力提供持續的基本服務。本文中,我們給出一個多階段資料庫損害控制的完整模型,並且設計和實現一個多階段資料庫損害控制系統。本系統的關鍵特性是實現多階段損害控制,因此能夠確保修復期間不會存在損害漏出。同時能立即控制多個惡意事務造成的損害,沒有損害漏出,而且對於終端使用者是透明的,因此資料庫應用開發人員感覺不到損害控制的複雜。

  1多級資料庫控制元素

  1.1一階段損害控制

  可生存資料庫系統執行一階段損害控制,只對修復管理鑑別出被破壞的資料項進行控制,直到它們被修復。一個被控制的資料項不能被新的事務讀取或更新。

  1.2多階段損害控制

  可生存資料庫系統實行多階段損害控制:(1)一旦惡意事務B被發現,一組特殊的資料項,記做SE,將被立即控制。SE的定義是被B破壞的資料集,記做SD,是SE的子集。這個階段叫做最初控制。最初控制應該迅速完成。被控制的資料集被稱作控制集。為確保最初控制之後沒有損害擴散,每一個活動事務應該被回滾到SE被控制之前。(2)整個多階段損害控制過程是一系列控制集,即SE,S1,S2,...,Sk,...,這些集合匯聚到一個空集合¥,SE是最初控制的結果,而且可能包括很多錯誤控制的未被損害的資料項。Si(i>=1)是解除錯誤控制資料項或已經被修復的資料項的解除控制操作集合的結果。作為結果,當i<j時Sj包含於Si。當這個集合為空集時,所有被控制的損害都被修復,沒有物件需要被控制了。解除控制操作通常非為幾個解除階段,儘管這些解除階段能夠同時存在。多階段控制的優點在於修復期間沒有損害漏出以及修復非常簡便。

  2應對多個惡意事務的演算法設計

  我們針對多個惡意事務提出一種多階段控制演算法,能夠保證被控制的資料庫部分不會有損害洩漏。處理多個惡意事務的具體演算法如下:When系統只有一個惡意事務Bi正在被修復,且惡意事務Bj被發現:控制操作:(a)回滾所有當前活動事務(b)設定t2為當前時間(c)設定t1的值為min(tBis,tBjs)。這裡tBis和tBjs分別是Bi及Bj開始時間。注意Bj可能早於Bi開始。(d)在U_SET被隨後解除控制操作調整之後,允許新事務進入。解除控制操作:(1)Case1Bj早於Bi提交(a)從U_SET中移除所有資料(b)停止當前所有解除控制階段(c)透過掃描Bj開始時間的日誌來重啟解除控制階段A、B和C。被重啟的階段現在應該處理Bj和Bi,而不是僅僅處理Bi。例如,階段A應該只把Bi和Bj都沒破壞的資料項放入U_SET。(d)透過掃描Bj開始時間的日誌來重啟修復程序(連同解除控制階段D)。被重啟的修復程序現在應該處理Bi和Bj。(e)隨時將解除控制的資料項放入U_SET。(2)Case2Bj晚於Bi提交If沒有解除控制階段完成這部分包含Bj提交之後執行操作的日誌的掃描繼續每一個解除階段,方法是每一個控制階段調整為不僅僅處理Bi,而是處理Bi和Bj。Else對於每個已經掃描到某些Bj提交之後執行的操作的解除控制階段(包括修復程序)(a)停止解除控制階段(或修復程序)(b)移除Bj提交之後被更新而且被這個階段(或程序)從U_SET中解除控制的資料項(c)透過重新掃描Bj開始以後的日誌重啟這個解除控制階段(或修復程序)。重啟的階段(或修復程序)現在應該處理Bj和Bi上述演算法確保所有被惡意事務引起的損害將在惡意事務被檢測到的時候立刻被控制,並且在如何時間點,不會有損害從被控制的資料庫部分洩漏出去。

  3系統組成

  本系統的`主要組成包括:控制執行器、解除控制執行器。系統的關鍵操作是透過三個主要事件觸發的。

  3.1控制執行器

  當控制執行器從它的訊息佇列裡取回一個惡意事務,它將執行演算法1中的控制操作。特別的,它將(1)停止執行新事務,(2)中止所有活動事務,(3)調整控制時間視窗,(4)在從解除控制器和修復管理報告U_SET已經調整的“準備好”訊息後,允許新事務執行。由於TRANS_LIST表包括活動事務的標識,控制執行器能夠要求DBMS中止這些事務。因為事務的開始時間也保持在TRANS_LIST表,調整控制時間視窗將會很容易。當一個新的使用者事務在上述控制操作完成後到達時,控制執行器需要這樣實現損害控制:在控制時間視窗內更新的任何資料項都不允許訪問,除非是U_SET中的物件。控制管理演算法如下所示。注意損害控制管理的實現以SQL語句為單位而不是事務,因為:(1)讀提取也是以SQL語句為單位;(2)在某些事務裡某些稍晚的SQL語句執行可能依賴於先前的語句;(3)這中方法能夠實現更快的控制檢查。對於有多個SQL語句的事務,我們不檢查任何其他SQL語句的讀操作,就能夠拒絕或延遲這個事務的訪問。

  3.2解除控制執行器

  解除控制執行器負責解除控制階段。為了實現控制,系統需要保持事務型別間的依賴關係。特別的,利用“型別圖”表保持型別依賴。

  參考文獻:

  [1]孫玉海,孟麗榮.基於多級入侵容忍的資料庫安全解決方案[J].計算機工程與設計,2005(03).

最近訪問