隨著我國經(jīng)濟社會不斷發(fā)展,以計算機技術(shù)為代表的信息技術(shù)在我國各行業(yè)領(lǐng)域應(yīng)用愈發(fā)廣泛和深入,特別是以數(shù)據(jù)庫技術(shù)為核心的管理信息系統(tǒng)普遍應(yīng)用于輔助管理。然而,由于數(shù)據(jù)庫中的設(shè)計、管理中存在的問題和漏洞,不法分子容易進行非法侵入并進行數(shù)據(jù)庫攻擊。因此如何保護數(shù)據(jù)庫信息安全,特別是研究核心數(shù)據(jù)安全防護技術(shù),如何及時發(fā)現(xiàn)入侵,避免數(shù)據(jù)篡改具有重要意義。
摘要:對數(shù)據(jù)庫的安全防護進行介紹,著重對基于數(shù)字水印和基于觸發(fā)器這兩種數(shù)據(jù)庫防護技術(shù)進行詳細研究,并對兩種方法在應(yīng)用范圍、實現(xiàn)難度、通用程度和技術(shù)差別進行比較,發(fā)現(xiàn)基于觸發(fā)器技術(shù)在SQL Server數(shù)據(jù)庫中性能優(yōu)勢明顯,而基于數(shù)字水印的防護技術(shù)適用所有關(guān)系數(shù)據(jù)庫,有廣泛的應(yīng)用范圍。
關(guān)鍵詞:高級技師職稱論文,數(shù)據(jù)庫安全,數(shù)字水印,觸發(fā)器,SQL Server
Research and Comparison of Two Database Security Defense Techniques
WU Ke-ming1,LIN Yi-fan2
(1.College of Electronics Eng. Naval Univ. of Engineening, Wuhan 430033,China;2.Shanghai Military Representative Office of NED ,Shanghai 200000,China)
Abstract: On based of the security of the database are described, researched these two methods,that based on the digital watermarking and based on database triggers in detail, and compared the two methods in four aspects those the application, implementation difficulty, common extent and technology.then found that Trigger-based techniques in the SQL Server database performance advantages are obvious, but protection technique based on digital watermarking is applicable to all relational databases with a wide range of applications.
Key words: database security; fragile watermark; trigger; SQL Server
文章主要對數(shù)據(jù)庫的數(shù)據(jù)安全防護基本方法進行介紹,針對數(shù)據(jù)庫的數(shù)據(jù)安全采用數(shù)據(jù)庫數(shù)字水印技術(shù)和基于觸發(fā)器的數(shù)據(jù)保護技術(shù)進行研究,并對兩種方法進行比較,發(fā)現(xiàn)針對不同的應(yīng)用需求,兩種數(shù)據(jù)庫安全防護技術(shù)在不同防護側(cè)面各有優(yōu)點。
1 數(shù)據(jù)庫安全防護技術(shù)
數(shù)據(jù)庫安全防護技術(shù)是防護數(shù)據(jù)庫不受侵入的技術(shù),主要分為動態(tài)入侵行為檢測和靜態(tài)安全特性檢測兩種類型防護技術(shù)[1]。其中動態(tài)安全防護技術(shù),即動態(tài)入侵行為檢測是針對客戶端對數(shù)據(jù)庫的訪問請求的通信信息進行識別分析,發(fā)現(xiàn)其中具有危險侵入可能的通信指令,從而保證數(shù)據(jù)庫安全。靜態(tài)安全防護也稱數(shù)據(jù)庫安全特性檢測防護,則是對數(shù)據(jù)庫設(shè)計中存在的可能漏洞進行分析測試,發(fā)現(xiàn)其中的安全策略或設(shè)置的問題。該文主要研究的是數(shù)據(jù)庫的靜態(tài)安全防護,通過檢測數(shù)據(jù)庫管理系統(tǒng)的安全配置來發(fā)現(xiàn)安全隱患,為數(shù)據(jù)庫安全策略的實施和改進,以及數(shù)據(jù)庫用戶的行為檢測提供可靠信息[2]。
數(shù)據(jù)庫安全特性分析以及其檢測工具的設(shè)計是數(shù)據(jù)庫安全技術(shù)的重要研究領(lǐng)域,西方國家自上世紀八十年代開始對數(shù)據(jù)庫登錄管理進行認證研究,以便保證數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)安全有效運行[3]。商業(yè)關(guān)系數(shù)據(jù)庫的安全主要依賴生產(chǎn)廠家提供的最佳安全策略進行保障實施,然而自上世紀末科學(xué)家發(fā)現(xiàn)穩(wěn)定性安全性在業(yè)內(nèi)很高的Oracle數(shù)據(jù)庫也存在巨大安全漏洞,作為管理信息系統(tǒng)的核心DBMS的未知安全特性風(fēng)險,特別是數(shù)據(jù)庫中的高危漏洞的評估和識別,逐步成為人們關(guān)注焦點,同時也更加深入認識到DBMS安全級別認證和安全風(fēng)險評估的差異。因此數(shù)據(jù)庫安全研究人員從本世紀初開始了數(shù)據(jù)庫漏洞掃描及利用等數(shù)據(jù)庫管理系統(tǒng)安全特性的漏洞檢測和風(fēng)險評估研究。
2 兩種數(shù)據(jù)庫安全防護技術(shù)
數(shù)據(jù)庫的安全即包括硬件也包括軟件,即包括用戶角色也包括數(shù)據(jù)安全,其中最重要的就是核心數(shù)據(jù)安全。這里研究兩種數(shù)據(jù)庫中保護核心數(shù)據(jù)安全的防護技術(shù),一種基于數(shù)據(jù)庫數(shù)字水印技術(shù),一種則是基于SQL Server數(shù)據(jù)庫觸發(fā)器技術(shù)。SQL Server系列數(shù)據(jù)庫是微軟公司推出的一款關(guān)系數(shù)據(jù)庫開發(fā)系統(tǒng),在大型企業(yè)信息系統(tǒng)中作為DBMS有著廣泛應(yīng)用[4]。
2.1 基于水印技術(shù)的安全防護技術(shù)
關(guān)系數(shù)據(jù)庫數(shù)字水印是將數(shù)字水印技術(shù)應(yīng)用于數(shù)據(jù)庫安全技術(shù)中,在確保數(shù)據(jù)庫正常運行基礎(chǔ)上,通過對數(shù)據(jù)庫的冗余空間中嵌入水印信息,從而實現(xiàn)保護關(guān)系數(shù)據(jù)庫版權(quán)或確保數(shù)據(jù)庫安全的目標。
關(guān)系數(shù)據(jù)庫水印嵌入技術(shù)和水印提取和檢測技術(shù)[5]是關(guān)系數(shù)據(jù)庫水印技術(shù)研究的兩個重要方面。水印嵌入的關(guān)系數(shù)據(jù)庫設(shè)定為 [R=M,A1,A2,…An],其中M是數(shù)據(jù)庫中的主鍵,是數(shù)據(jù)表示對象的不變屬性,其信息領(lǐng)域包含信息和屬性意義最大,也叫最大意義屬性 MSA[6],Ai(0 [W=βP,Ai(Ai為水印構(gòu)造調(diào)用屬性)]
研究的數(shù)據(jù)庫安全防護技術(shù)主要采用數(shù)據(jù)庫脆弱水印方法,其水印構(gòu)造算法基本思想是通過決策樹算法對關(guān)系數(shù)據(jù)庫的非主鍵屬性Ai進行分組,對分組的MSA 的數(shù)學(xué)P結(jié)合密鑰η,根據(jù)需要構(gòu)建的水印W位數(shù)K,進行哈希變換hash(η,K,P)進行重新排序,最后將水印序列W的K位信息嵌入到排序后的各元組數(shù)學(xué)Ai中。其水印構(gòu)造嵌入的具體步驟為:
第一步:
對數(shù)據(jù)庫中非MSA屬性Ai進行決策樹分化,構(gòu)建Ai:{(a1,a2),(a3,a4),…}子樹劃分形成分組,根據(jù)屬性數(shù)據(jù)類型的不同采用不同劃分方法:
1) 連續(xù)性數(shù)值數(shù)據(jù)利用決策樹方法分劃,設(shè)定最大閥值分組為離散組列[7];
2) 文本數(shù)據(jù)利用length()等函數(shù)轉(zhuǎn)變?yōu)檫B續(xù)的數(shù)值數(shù)據(jù),再按連續(xù)數(shù)據(jù)分組處理;
3) 離散型數(shù)據(jù)可以直接按照較多離散點進行劃分。
第二步:
對Ai劃分的n個分組采用hash(η,K,P)函數(shù),構(gòu)建新的分組排序,并按哈希沖突處理嵌入“0”或“1”,結(jié)合水印W的K位序列進行元組排序,并按此重新排序主鍵屬性P。
第三步:
元組數(shù)據(jù)的水印序列嵌入方法:
針對文本型數(shù)據(jù),需要嵌入位為0時,對文本數(shù)據(jù)不作改變;當(dāng)需要嵌入位為1時,在該文本數(shù)據(jù)的結(jié)尾加入一個空格符。進行水印檢測或提取時,研究比較文本長度和空格位置,一致時取0,不一致時取1。
針對數(shù)值型數(shù)據(jù),利用數(shù)值型數(shù)據(jù)的最低有效位(LSB)進行嵌入,根據(jù)數(shù)值型數(shù)據(jù)的字段長度和最低有效位數(shù)的差值多少來確定嵌入信息量。
第四步:
對關(guān)系數(shù)據(jù)庫R中的其他屬性Ai,按照步驟二、三的方法對各屬性元組進行水印嵌入。
脆弱水印數(shù)據(jù)庫的數(shù)字水印檢測和提取技術(shù)是嵌入算法的反過程,主要對各元組數(shù)據(jù)按照哈希函數(shù)進行重新排序,對各元組數(shù)據(jù)按反過程進行水印提取,對n組序列提取后,按照大數(shù)選舉方法同水印W按位比較,發(fā)現(xiàn)不符位從而確定篡改的元組和屬性。
2.2 基于觸發(fā)器的安全防護技術(shù)
觸發(fā)器是關(guān)系數(shù)據(jù)庫中響應(yīng)數(shù)據(jù)定義語言(DML)事件或數(shù)據(jù)操作語言(DML)事件而自動執(zhí)行的特殊類型存儲過程[8],當(dāng)數(shù)據(jù)庫發(fā)現(xiàn)操作或定義行為時自動運行。
根據(jù)定義,SQL Server據(jù)對數(shù)據(jù)庫進行操作行為的不同將觸發(fā)器DDL觸發(fā)器和DML觸發(fā)器兩大類,其具體定義為:
1) DML觸發(fā)器,DML觸發(fā)器[9]在CREATE、ALTER、DROP以及其他數(shù)據(jù)表定義語言的進行執(zhí)行管理任務(wù),可以強制影響數(shù)據(jù)庫的業(yè)務(wù)規(guī)則,即可以應(yīng)用于數(shù)據(jù)庫或服務(wù)器中某一類型操作命令,也可用于審核和控制數(shù)據(jù)庫操作等管理任務(wù)。
2) DDL觸發(fā)器,DDL觸發(fā)器[10]在INSERT、UPDATE和DELETE等數(shù)據(jù)操作語句上操作,完成表或視圖的數(shù)據(jù)操作時的強制業(yè)務(wù)規(guī)則,并擴展數(shù)據(jù)完整性。DML觸發(fā)器可定義于表或視圖上,也可查詢其他表。
DML觸發(fā)器可以按照觸發(fā)時機分為INSTEAD OF觸發(fā)器和AFTER觸發(fā)器。其中INSTEAD OF觸發(fā)器在執(zhí)行DML語句操作成功之前執(zhí)行,AFTER觸發(fā)器在執(zhí)行DML語句操作成功之后執(zhí)行。
DML觸發(fā)器按照觸發(fā)操作行為可分為INSERT, UPDATE和DELETE觸發(fā)器,分別針對數(shù)據(jù)庫的表或視圖的插入、更新和刪除,主要利用到系統(tǒng)提供的inserted和deleted兩個系統(tǒng)表。其中Inserted表用于存儲INSERT和UPDATE操作時,語句所影響到的數(shù)據(jù)行的復(fù)制。當(dāng)數(shù)據(jù)庫執(zhí)行插入或更新操作時,添加的新數(shù)據(jù)行或更新的數(shù)據(jù)行副本將添加inserted表中。deleted表用于存儲DELETE和UPDATE語句所影響的行的復(fù)制。當(dāng)數(shù)據(jù)庫表或視圖執(zhí)行刪除或更新操作,涉及行從觸發(fā)器執(zhí)行表中刪除,同時在Deleted表中備份存儲。根據(jù)inserted和deleted兩個系統(tǒng)表特點發(fā)現(xiàn),當(dāng)數(shù)據(jù)庫中數(shù)據(jù)表或視圖執(zhí)行 UPDATE操作語句時,更新事務(wù)等同于在該數(shù)據(jù)行先刪除后插入,刪除舊行并復(fù)制到deleted表中,然后插入新行到觸發(fā)器表并復(fù)制到inserted 表中。
根據(jù)觸發(fā)器特點,構(gòu)建基于觸發(fā)器的數(shù)據(jù)庫安全防護系統(tǒng),其基本結(jié)構(gòu)如圖1。
如圖1,利用數(shù)據(jù)庫觸發(fā)器的特性,當(dāng)用戶登錄數(shù)據(jù)庫信息系統(tǒng)后,數(shù)據(jù)庫的監(jiān)控模塊將記錄用戶信息同時登記到用戶認證的登錄審計表中。當(dāng)用戶操作數(shù)據(jù)庫時,根據(jù)用戶操作行為的不同引發(fā)不同類型的觸發(fā)器,將數(shù)據(jù)庫表或視圖的操作相關(guān)信息寫入到用戶操作信息審計表中,同時設(shè)計觸發(fā)器執(zhí)行當(dāng)操作數(shù)據(jù)庫定義操作時,則備份數(shù)據(jù)庫;當(dāng)操作是數(shù)據(jù)庫基本操作時,則更新原數(shù)據(jù)記錄到副表。
當(dāng)管理員登錄系統(tǒng)可審查用戶操作信息審查表,對于審查發(fā)現(xiàn)的非法用戶或非授權(quán)用戶操作的,則還原數(shù)據(jù)庫到備份點,具體方法為當(dāng)進行數(shù)據(jù)表操作,則從基表副表中通過逆操作恢復(fù)此數(shù)據(jù),視圖操作則恢復(fù)到基本表中,其他數(shù)據(jù)表的定義操作則直接還原數(shù)據(jù)庫。通過觸發(fā)器最終實現(xiàn)對核心數(shù)據(jù)的禁止修改和寫入等操作,對其他數(shù)據(jù)實現(xiàn)修改記錄并提供可恢復(fù)技術(shù)。
3 兩種防護技術(shù)比較
基于數(shù)字水印技術(shù)和基于觸發(fā)器的兩種SQL Server數(shù)據(jù)庫安全防護技術(shù),在實現(xiàn)對數(shù)據(jù)庫核心數(shù)據(jù)安全保護中都能發(fā)揮防護作用,但兩種防護技術(shù)仍存在區(qū)別,具體分析如下:
1) 應(yīng)用范圍不同;跀(shù)字水印的防護技術(shù)主要通過對關(guān)系數(shù)據(jù)庫中嵌入水印實現(xiàn)核心數(shù)據(jù)防護;基于觸發(fā)器的防護技術(shù)則是主要針對SQL Server數(shù)據(jù)庫。
2) 算法難度不同。基于數(shù)字水印的防護技術(shù)的嵌入和提取水印算法較為復(fù)雜;基于觸發(fā)器的防護技術(shù)則主要在數(shù)據(jù)庫中進行修改、添加相應(yīng)數(shù)據(jù)表,設(shè)置觸發(fā)器即可實現(xiàn)。 3) 通用程度不同;跀(shù)字水印的防護技術(shù)對于不同的數(shù)據(jù)庫數(shù)據(jù)和水印信息要重新設(shè)計算法,通用性不高;基于觸發(fā)器則只需對相應(yīng)數(shù)據(jù)表格作簡單調(diào)整即可在不同數(shù)據(jù)庫中通用。
4) 保護技術(shù)差別。基于數(shù)字水印的防護技術(shù)主要通過發(fā)現(xiàn)數(shù)據(jù)庫中核心數(shù)據(jù)的篡改并定位,來保護核心數(shù)據(jù);基于觸發(fā)器則通過對核心數(shù)據(jù)設(shè)定禁寫觸發(fā)器來保護,對其他數(shù)據(jù)的修改則進行記錄,并提供恢復(fù)技術(shù)來保護數(shù)據(jù)安全。
兩種數(shù)據(jù)庫安全防護技術(shù)的差別匯總?cè)绫?。
表1
[防護技術(shù)\&應(yīng)用范圍\&實現(xiàn)難度\&通用程度\&技術(shù)差別\&基于數(shù)字水印\&關(guān)系數(shù)據(jù)庫\&較難\&不高\&對篡改數(shù)據(jù)定位\&基于觸發(fā)器\&SQL Server系列數(shù)據(jù)庫\&較易\&較好\&核心數(shù)據(jù)禁寫,其他記錄修改,并提供恢復(fù)技術(shù)\&]
可以發(fā)現(xiàn),對于SQL server數(shù)據(jù)庫,基于觸發(fā)器的安全防護技術(shù)實現(xiàn)較容易,較好的通用性,既能發(fā)現(xiàn)數(shù)據(jù)修改還能提供數(shù)據(jù)恢復(fù)技術(shù),基于數(shù)字水印的防護技術(shù)則對于所有的關(guān)系數(shù)據(jù)庫均能應(yīng)用,應(yīng)用范圍廣。
4 結(jié)論
本文對數(shù)據(jù)庫的安全防護進行介紹,著重對基于數(shù)字水印和基于觸發(fā)器這兩種數(shù)據(jù)庫防護技術(shù)進行詳細研究,并對兩種方法在應(yīng)用范圍、實現(xiàn)難度、通用程度和技術(shù)差別進行比較,發(fā)現(xiàn)基于觸發(fā)器技術(shù)在SQL Server數(shù)據(jù)庫中性能優(yōu)勢明顯,而基于數(shù)字水印的防護技術(shù)適用所有關(guān)系數(shù)據(jù)庫,有廣泛的應(yīng)用范圍。
參考文獻:
[1] José Fonseca,Marco Vieira,Henrique Madeira.Integrated Intrusion Detectionin Databases[M].A.Bondavalli,F(xiàn).Brasileiro,and S.Rajsbaum(Eds.):LADC 2007,LNCS 4746.2007:198-211.
[2] 焦巖.關(guān)于數(shù)據(jù)庫系統(tǒng)安全現(xiàn)狀的研究[J].計算機安全,2010(5):15-25.
[3] 李瑞林.計算機數(shù)據(jù)庫安全管理研究[J]制造業(yè)自動化,2012(3):112-116.
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/jisuanjiwangluolw/43408.html