新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 數(shù)據(jù)庫自主安全防護(hù)技術(shù)的研究與實(shí)現(xiàn)

數(shù)據(jù)庫自主安全防護(hù)技術(shù)的研究與實(shí)現(xiàn)

作者: 時(shí)間:2011-08-03 來源:網(wǎng)絡(luò) 收藏

近年來,有關(guān)的安全事故不斷出現(xiàn),例如銀行內(nèi)部數(shù)據(jù)信息泄露造成的賬戶資金失密等。因此,高度重視很有必要。但一直以來,國內(nèi)產(chǎn)業(yè)化發(fā)展緩慢,市場份額中較大一部分被國外大型數(shù)據(jù)庫企業(yè)占有。這對于國內(nèi)用戶而言,信息的安全性、穩(wěn)定性等方面都會受到威脅。有的系統(tǒng)涉及使用多個(gè)數(shù)據(jù)庫,并且對每個(gè)數(shù)據(jù)庫的安防功能要求各不相同。這樣,在保障整個(gè)系統(tǒng)安全的目標(biāo)下就需要對每個(gè)數(shù)據(jù)庫進(jìn)行專門配置管理,不但維護(hù)難度很大,而且工作也比較繁重。面對這些實(shí)際問題,目前的數(shù)據(jù)庫系統(tǒng)自帶的配置方式已不能勝任,如何提出一個(gè)靈活獨(dú)立的系統(tǒng)迫在眉睫。
1 相關(guān)安全防護(hù)介紹
目前,數(shù)據(jù)庫系統(tǒng)面臨的主要威脅有:(1)對數(shù)據(jù)庫的不正確訪問引起數(shù)據(jù)庫數(shù)據(jù)的錯(cuò)誤。(2)為了某種目的,故意破壞數(shù)據(jù)庫。(3)非法訪問不該訪問的信息,且又不留痕跡;未經(jīng)授權(quán)非法修改數(shù)據(jù)。(4)使用各種攻擊數(shù)據(jù)庫等。多年來,人們在理論和實(shí)踐上對數(shù)據(jù)庫系統(tǒng)安全的做出了巨大的努力,也取得了很多成果。參考文獻(xiàn)[1-2]介紹了保護(hù)數(shù)據(jù)庫安全的常用,包括:存取管理技術(shù)、安全管理技術(shù)、以及數(shù)據(jù)庫加密技術(shù),并給出了一些途徑。其中,訪問控制和安全審計(jì)作為數(shù)據(jù)庫安全的主要保障措施受到了人們廣泛關(guān)注,參考文獻(xiàn)[3]對訪問控制技術(shù)中的基本策略進(jìn)行了總結(jié),給出了技術(shù)及各自的優(yōu)缺點(diǎn)。參考文獻(xiàn)[4]主要針對權(quán)限建模過程中的權(quán)限粒度問題做了分析,并提出一個(gè)基于角色的訪問控制框架。進(jìn)入21世紀(jì)以后,訪問控制模型的重點(diǎn)開始逐漸由集中式封閉環(huán)境轉(zhuǎn)向開放式網(wǎng)絡(luò)環(huán)境,一方面結(jié)合不同的應(yīng)用,對原有傳統(tǒng)模型做改進(jìn),另一方面,也提出一些新的訪問控制技術(shù)和模型,比較著名的有信任管理、數(shù)字版權(quán)管理和使用控制模型 [5]。審計(jì)通過對數(shù)據(jù)庫內(nèi)活動(dòng)的記錄和分析來發(fā)現(xiàn)異常并產(chǎn)生報(bào)警的方式來加強(qiáng)數(shù)據(jù)庫的安全性[6]。目前,在我國使用的商品化關(guān)系數(shù)據(jù)庫管理系統(tǒng)大都提供了C2級的審計(jì)保護(hù)功能,但方式和功能側(cè)重有所不同。周洪昊等人[7]分析了Oracle、SQL Server、DB2、Sybase的審計(jì)功能,分別從審計(jì)系統(tǒng)的獨(dú)立性、自我保護(hù)能力、全面性和查閱能力四個(gè)方面對審計(jì)功能做出改進(jìn)[7]。參考文獻(xiàn)[8]則針對審計(jì)信息冗余、審計(jì)配置方式死板以及數(shù)據(jù)統(tǒng)計(jì)分析能力不足等問題,在數(shù)據(jù)庫系統(tǒng)已有的審計(jì)模塊基礎(chǔ)上,重新設(shè)計(jì)和實(shí)現(xiàn)了一種新型的數(shù)據(jù)庫安全審計(jì)系統(tǒng)。
 但所有的這些工作都是從數(shù)據(jù)庫系統(tǒng)的角度出發(fā),并沒有從本質(zhì)上解決安全防護(hù)對數(shù)據(jù)庫系統(tǒng)的依賴性問題,用戶還是很難對數(shù)據(jù)庫提供的安全防護(hù)功能。如果能將安全防護(hù)從數(shù)據(jù)庫管理系統(tǒng)中徹底獨(dú)立出來,針對不同的應(yīng)用需求允許用戶自己實(shí)現(xiàn)安全防護(hù)功能模塊并在邏輯上加入到數(shù)據(jù)庫應(yīng)用系統(tǒng)中,這樣問題也就迎刃而解了。
通過以上分析,本文提出一種獨(dú)立于具體數(shù)據(jù)庫、可組態(tài)的安全防護(hù)模型,并給出具體的實(shí)現(xiàn)方法。該模型將安全防護(hù)從數(shù)據(jù)庫完全獨(dú)立出來,在多數(shù)據(jù)庫應(yīng)用中實(shí)現(xiàn)集中配置安防,滿足用戶對于防護(hù)功能的需求。并在開源的嵌入式數(shù)據(jù)庫產(chǎn)品SQLITE中做了功能測試,實(shí)驗(yàn)結(jié)果表明,該模型切實(shí)可行,達(dá)到了預(yù)想的效果,既能實(shí)現(xiàn)對系統(tǒng)的保護(hù),又大大提高了系統(tǒng)的靈活性。
2 安全防護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
 自主安全防護(hù)系統(tǒng)DSS(Discretionary Safety System)的主要功能是阻止用戶對信息的非法訪問,在可疑行為發(fā)生時(shí)自動(dòng)啟動(dòng)預(yù)設(shè)的告警流程,盡可能防范數(shù)據(jù)庫風(fēng)險(xiǎn)的發(fā)生,在非法操作發(fā)生時(shí),觸發(fā)事先設(shè)置好的防御策略,實(shí)行阻斷,實(shí)現(xiàn)主動(dòng)防御,并按照設(shè)置對所發(fā)生的操作進(jìn)行詳細(xì)記錄,以便事后的分析和追查。
2.1 系統(tǒng)結(jié)構(gòu)
 在DSS中,安全管理員使用角色機(jī)制對用戶的權(quán)限進(jìn)行管理,通過制定安全策略來設(shè)置核心部件Sensor以及訪問控制部件。核心部件Sensor偵聽用戶的數(shù)據(jù)庫操作請求,采用命令映射表將不同的命令映射為系統(tǒng)識別的命令,提取出安全檢查所需要的信息,發(fā)送到訪問控制模塊進(jìn)行安檢。安檢通過了則允許用戶訪問數(shù)據(jù)庫,否則拒絕訪問,同時(shí)根據(jù)審計(jì)規(guī)則生成記錄存入審計(jì)日志。DSS結(jié)構(gòu)如圖1所示。

本文引用地址:http://m.butianyuan.cn/article/155958.htm

DSS作為獨(dú)立的功能模塊主要通過向Sensor提供數(shù)據(jù)庫的調(diào)用接口的方式保障對數(shù)據(jù)庫信息安全合理地訪問。系統(tǒng)有一個(gè)默認(rèn)的訪問控制流程,用戶也可以自己設(shè)定安全策略,系統(tǒng)自動(dòng)生成相應(yīng)訪問控制流程。本文約定被訪問的對象為客體,請求操作的用戶為主體,DSS訪問控制流程如圖2所示。

2.2 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)主要分為系統(tǒng)數(shù)據(jù)字典設(shè)計(jì)、用戶登錄與用戶管理、系統(tǒng)相關(guān)策略制定、偵聽器(Sensor)的實(shí)現(xiàn)、訪問控制以及日志審計(jì)六部分。原數(shù)據(jù)庫API信息(dll)、用戶的自主防護(hù)策略作為輸入,Sensor核心一方面將用戶的防護(hù)策略融合在原數(shù)據(jù)庫的API接口中,另一方面記錄用戶對數(shù)據(jù)庫的操作并生成日志,提供給用戶做審計(jì)。用戶在使用過程中不需要修改原有系統(tǒng),即可實(shí)現(xiàn)自主防護(hù)。系統(tǒng)核心Sensor的結(jié)構(gòu)如圖3所示。

Sensor由API處理模塊、訪問控制模塊(Access Control)、Sensor核心模塊(Core)、注射模塊四部分組成。Core是Sensor的核心部件,主要負(fù)責(zé)攔截接口,解析并分離接口中的重要信息,使程序轉(zhuǎn)入自定義的安檢程序中執(zhí)行安全檢查。Access Control組件實(shí)現(xiàn)不同級別的訪問控制,根據(jù)用戶提供的安檢信息,組態(tài)出對應(yīng)的安防模塊,并在合適的時(shí)候調(diào)用其進(jìn)行訪問控制。API(dll)主要將數(shù)據(jù)庫系統(tǒng)提供的接口信息,轉(zhuǎn)化為dll以便Sensor偵聽時(shí)使用。Inject/Eject為Sensor提供遠(yuǎn)程注射的功能。
Core通過攔截對API的調(diào)用來實(shí)現(xiàn)定制功能。程序在調(diào)用API函數(shù)之前,首先要把API所在的動(dòng)態(tài)鏈接庫載入到程序中;然后將API函數(shù)的參數(shù)、返回地址(也就是函數(shù)執(zhí)行完后,下一條語句的地址)、系統(tǒng)當(dāng)前的環(huán)境(主要是一些寄存器的值)壓入系統(tǒng)調(diào)用棧;接著,進(jìn)入到API函數(shù)的入口處開始執(zhí)行API函數(shù),執(zhí)行過程中從系統(tǒng)調(diào)用棧中取出參數(shù),執(zhí)行函數(shù)的功能,返回值存放在EAX寄存器中,最終從堆棧中取出函數(shù)的返回值并返回(參數(shù)壓棧的順序還要受到調(diào)用約定的控制,本文不詳細(xì)介紹)。
舉例說明函數(shù)調(diào)用時(shí)堆棧的情況。假設(shè)調(diào)用約定采用_stdcall,堆棧由高向低遞減,API為Int func(int a, int b, int c)。系統(tǒng)調(diào)用棧的部分內(nèi)容如表1所示。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉