當前位置:才華都>實用範文>論文>

多層數據庫損害控制系統設計研究論文

論文 閲讀(1.87W)

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

多層數據庫損害控制系統設計研究論文

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

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

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).