武春燕 孫忠林
摘要:數(shù)據(jù)庫已經(jīng)越來越多的允許多用戶進(jìn)行訪問,從而引出了多用戶訪問數(shù)據(jù)庫的安全性審核問題,用戶對數(shù)據(jù)庫的訪問大致分為三種:合法用戶對數(shù)據(jù)庫的合法操作、合法用戶對數(shù)據(jù)庫的非法操作以及非法用戶對數(shù)據(jù)庫的操作。針對這兩種不同的用戶對數(shù)據(jù)庫的三種不同的訪問文章提出了基于數(shù)據(jù)庫用戶行為的安全審核機(jī)制的策略。通過審計(jì)來對數(shù)據(jù)庫用戶行為進(jìn)行監(jiān)測跟蹤,而后建立用戶行為特征模型,用戶再次訪問數(shù)據(jù)庫時(shí)根據(jù)該模型進(jìn)行安全審核。以SQL Server2005為例,深入探討傳統(tǒng)數(shù)據(jù)庫的安全審核機(jī)制以及成功運(yùn)用基于用戶行為的安全審核機(jī)制后對數(shù)據(jù)庫安全的保障。
關(guān)鍵詞:安全措施;審計(jì);審計(jì)記錄;行為模型;分析模型;安全審核
中國分類號(hào):TP309.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)07-0016-05
Abstract: Database has been accessed by more and more multiple users, which leads to the problem of multi-user security audit access to the database, the users access to the database is broadly divided into three categories: the legal operations to the database by legitimate users, the illegal operation to the database by legitimate users and the operations of the database by illegitimate users. For these three different accesses to the database by these two different users, the strategy of security audit mechanism was proposed based on user behaviors. The user behavior to be monitored and tracked by the audit, and then create a model of the user behavioral characteristics, the database will carry out safety audits according to the model when the user access to this database again. In SQL Server2005 example, further explore the security auditing mechanism of traditional database as well as the successful application of the protection of database security mechanisms based security auditing user behavior.
Key words: safety measures; audit; audit records; behavioral models; analysis model; security audit
數(shù)據(jù)庫已成為絕大多數(shù)互聯(lián)網(wǎng)應(yīng)用的后臺(tái),也是企業(yè)、組織和機(jī)構(gòu)的信息存儲(chǔ)平臺(tái),他們存儲(chǔ)的數(shù)據(jù)數(shù)量巨大,覆蓋面廣,具有很大的商業(yè)、應(yīng)用或信息價(jià)值,從而,用戶對數(shù)據(jù)庫的入侵行為可能對數(shù)據(jù)庫中信息的安全產(chǎn)生影響甚至造成威脅,因此,保證合法用戶對數(shù)據(jù)庫的合法訪問,使數(shù)據(jù)庫免遭非法的訪問和修改是至關(guān)重要的。
數(shù)據(jù)庫管理系統(tǒng)DBMS(Database Management System)已經(jīng)提供了一系列的安全保護(hù)機(jī)制,如數(shù)據(jù)庫用戶的身份認(rèn)證機(jī)制,雖然這種機(jī)制能夠在一定程度上阻止非法用戶的數(shù)據(jù)庫的訪問和操作,而對于來自數(shù)據(jù)庫內(nèi)部的攻擊時(shí)無能為力的,例如對于合法用戶濫用權(quán)限進(jìn)行非法操作或者非法用戶盜用合法用戶身份進(jìn)行數(shù)據(jù)庫的訪問等問題仍然得不到解決。而通過審計(jì)跟蹤內(nèi)部服務(wù)器上的用戶行為,可以全面監(jiān)控和記錄數(shù)據(jù)庫的狀態(tài)和用戶行為。該文提出了一種基于用戶行為的安全審核機(jī)制使用戶對數(shù)據(jù)庫的安全訪問與操作得到更好的保證。以SQL Server 2005為例對比傳統(tǒng)的安全措施和基于用戶行為的安全審核機(jī)制。
1 傳統(tǒng)SQL Server 2005數(shù)據(jù)庫訪問的安全措施
在SQL Server 2005數(shù)據(jù)庫系統(tǒng)中,為了保護(hù)數(shù)據(jù)的安全性,主要采取的措施[1]有:用戶賬號(hào)管理、存取控制、視圖機(jī)制、數(shù)據(jù)加密和安全審核等方法。
1.1 賬號(hào)管理和存取控制
賬號(hào)管理和存取控制是數(shù)據(jù)庫的兩個(gè)不可分割的安全機(jī)制,賬號(hào)管理用于數(shù)據(jù)庫用戶的初步身份驗(yàn)證,是第一層保護(hù),存取控制是當(dāng)用戶允許訪問數(shù)據(jù)庫后,控制用戶可以使用數(shù)據(jù)庫中的哪些對象,能對哪些對象執(zhí)行什么樣的操作等,是數(shù)據(jù)庫的第二層保護(hù)。傳統(tǒng)的數(shù)據(jù)庫的這兩種用戶審核機(jī)制是基于用戶身份驗(yàn)證和角色的訪問控制,數(shù)據(jù)庫首先需要對用戶進(jìn)行身份登錄驗(yàn)證,然后通過訪問角色表來控制合法用戶對數(shù)據(jù)庫的操作。一個(gè)合法用戶登錄數(shù)據(jù)庫系統(tǒng)并對數(shù)據(jù)庫進(jìn)行操作的基本步驟如下:
(1)當(dāng)用戶欲訪問數(shù)據(jù)庫時(shí),數(shù)據(jù)庫首先進(jìn)行身份登錄認(rèn)證,數(shù)據(jù)庫安全控制系統(tǒng)首先根據(jù)用戶輸入的用戶名和密碼在用戶表中進(jìn)行比對判斷是否為合法用戶,如果是合法用戶,用戶可以進(jìn)入數(shù)據(jù)庫進(jìn)行相關(guān)操作,否則返回登錄頁面,用戶可以繼續(xù)登錄。
(2)當(dāng)合法用戶登錄系統(tǒng)后,系統(tǒng)首先訪問用戶角色表,得到該用戶對應(yīng)的角色編號(hào);再根據(jù)角色編號(hào)在角色權(quán)限表中讀出對應(yīng)的權(quán)限編號(hào);然后用戶可以對數(shù)據(jù)庫進(jìn)行權(quán)限允許的操作。角色所具有的權(quán)限是由系統(tǒng)管理員預(yù)先分配好的,系統(tǒng)通過管理員可以靈活的添加或取消某個(gè)角色的權(quán)限。
早期的研究者還提出基于權(quán)限數(shù)據(jù)庫訪問控制機(jī)制,也就是說合法用戶對該數(shù)據(jù)庫的訪問控制不再是角色表,而是訪問權(quán)限數(shù)據(jù)庫。權(quán)限數(shù)據(jù)庫[2]用于存貯訪問權(quán)限信息以及與訪問控制相關(guān)的其它信息。由用戶信息表、角色信息表、用戶角色對照、權(quán)限表和角色權(quán)限對照表組成。其中用戶表,記錄了用戶的基本信息;角色表記錄了系統(tǒng)可供分配的角色;權(quán)限表記錄了系統(tǒng)權(quán)限;用戶分配角色是通過用戶角色對照表來實(shí)現(xiàn)的;角色分配權(quán)限是通過角色/權(quán)限對照表實(shí)現(xiàn)的。
基本原理如圖1所示。
傳統(tǒng)數(shù)據(jù)庫的基于這兩種安全措施的審核機(jī)制雖然也極大的改善了合法用戶對數(shù)據(jù)庫操作的審核機(jī)制,但是這種方法的效率并不是最高的,每次當(dāng)合法用戶通過數(shù)據(jù)庫登錄頁面的身份認(rèn)證機(jī)制后,當(dāng)合法用戶需要對數(shù)據(jù)庫進(jìn)行操作,如對數(shù)據(jù)庫中表進(jìn)行添加、刪除或修改操作時(shí),用戶都要訪問權(quán)限數(shù)據(jù)庫,這樣造成了數(shù)據(jù)庫時(shí)間的浪費(fèi)。
1.2 其他安全措施
傳統(tǒng)的數(shù)據(jù)庫安全機(jī)制除了賬號(hào)管理這個(gè)安全措施外還有其他安全措施,如視圖控制、數(shù)據(jù)加密和安全審核等。視圖控制就是將視圖機(jī)制與授權(quán)機(jī)制結(jié)合使用,先用視圖機(jī)制隱藏一些保密數(shù)據(jù),然后再對視圖進(jìn)行授權(quán)。在SQL Server 2005中采用證書的方式來加密數(shù)據(jù)。安全審核是監(jiān)控和審核用戶對數(shù)據(jù)庫的各種操作,在SQL Server 2005中通過Windows安全日志、SQL Profile性能監(jiān)視器和觸發(fā)器來設(shè)置審核功能。
以上的這些安全措施對于數(shù)據(jù)庫的安全保護(hù)都有一定的作用,但是這些措施在實(shí)施效用或者利用效率方面都有一定的制約因素。下面,我們將給出本文提出的基于用戶行為的數(shù)據(jù)庫安全審核機(jī)制的原理及流程。
2 數(shù)據(jù)庫用戶行為的獲取
基于數(shù)據(jù)庫用戶行為特征模型的安全審核機(jī)制,通過審計(jì)實(shí)時(shí)監(jiān)測數(shù)據(jù)庫用戶的行為,從而建立數(shù)據(jù)庫用戶行為特征模型,以后用戶訪問數(shù)據(jù)庫時(shí)根據(jù)該模型來判斷用戶的合法性或操作行為的合法性,從而保證數(shù)據(jù)庫被安全訪問,有效的提高了訪問的效率。用戶行為特征模型的創(chuàng)建為數(shù)據(jù)庫的安全訪問提供了更多一層的保護(hù)。
2.1 審計(jì)的定義
審計(jì)[3]是一個(gè)對受保護(hù)客體訪問的跟蹤記錄,它監(jiān)視和記錄用戶對數(shù)據(jù)庫的操作,調(diào)查可疑的用戶行為,例如監(jiān)視合法用戶對數(shù)據(jù)庫中表的具體的添加、修改和刪除等操作,并記錄該操作的具體信息;監(jiān)視追蹤非授權(quán)用戶在數(shù)據(jù)庫中的表中添加和刪除數(shù)據(jù)。審計(jì)管理員可以選擇審計(jì)的行為和主客體,監(jiān)視和收集對于特定數(shù)據(jù)庫行為和特定主客體有關(guān)的信息。例如數(shù)據(jù)庫中哪個(gè)表正在被哪個(gè)用戶操作,是進(jìn)行的什么操作。審計(jì)可以跟蹤記錄以任何方式連接到數(shù)據(jù)庫的SQL命令,還可以審計(jì)系統(tǒng)相關(guān)的功能調(diào)用。
2.2 審計(jì)記錄
文獻(xiàn)[4]中提出的數(shù)據(jù)庫審計(jì)系統(tǒng)[5]是采用三層架構(gòu),由審計(jì)客戶端、審計(jì)中心和顯示管理終端構(gòu)成,通過數(shù)據(jù)捕獲、數(shù)據(jù)過濾和數(shù)據(jù)分析,最后日志形成,最后得到的審計(jì)日志以文件的形式保存。
數(shù)據(jù)庫審計(jì)[6,7]日志文件由六個(gè)要素組成:操作者、操作對象、操作時(shí)間、操作地點(diǎn)、操作行為以及操作結(jié)果。我們把審計(jì)日志文件進(jìn)行格式整理形成審計(jì)記錄[8],一條審計(jì)記錄采用6元組的表示方式,包括了完整的審計(jì)要素,例如一次完整的審計(jì)記錄表示為<操作者,操作對象,操作時(shí)間,操作地點(diǎn),操作行為,操作結(jié)果>,在這個(gè)6元組中,每個(gè)屬性有且只有一個(gè)值,當(dāng)用戶對數(shù)據(jù)庫有多個(gè)行為時(shí),則每個(gè)行為形成一個(gè)6元組的記錄。
例如操作者為001,操作對象為db1.dbo1,操作時(shí)間為2014-12-6 15:15:15,操作地點(diǎn)為192.168.109.22,操作者對表db1.dbo1,執(zhí)行了insert和select操作,操作結(jié)果分別為成功和不成功。則在數(shù)據(jù)庫審計(jì)跟蹤文件中形成的審計(jì)記錄有2條<001,db1.dbo1,2014-12-6 15:15:15,192.168.109.22,select,false >,<001,db1.dbo1,2014-12-6 15:20:10,192.168.109.22,select,false >
3 用戶行為模型的建立
根據(jù)上面的審計(jì)記錄的形成,得到用戶訪問數(shù)據(jù)庫的E-R圖[9],如圖2所示。
001dbo表即為當(dāng)前數(shù)據(jù)庫的用戶行為模型。這樣根據(jù)審計(jì)日志的審計(jì)跟蹤記錄,通過相應(yīng)的數(shù)據(jù)庫的SQL操作,我們得到訪問數(shù)據(jù)庫的用戶行為模型。
4 用戶行為模型的分析
用戶行為模型[10,11]建立后我們對它進(jìn)行分析[12,13]發(fā)現(xiàn)同一個(gè)操作者對相同的操作對象往往具有相同的操作行為,這樣在用戶行為特征模型中就形成了數(shù)據(jù)的冗余。為了消除這種冗余我們對數(shù)據(jù)進(jìn)行分組,然后統(tǒng)計(jì)每組的數(shù)目作為訪問次數(shù)。
select count(*)as 訪問次數(shù),操作對象,操作地點(diǎn),操作行為,操作結(jié)果
from操作者dbo
group by 操作對象,操作地點(diǎn),操作行為,操作結(jié)果。
根據(jù)訪問次數(shù)我們提出幾個(gè)集合劃分的概念。如圖3所示。
常規(guī)操作集合:將訪問次數(shù)大于100分組數(shù)據(jù)歸入常規(guī)操作集合。
幾乎不操作集合:將訪問次數(shù)大于0小于100的分組數(shù)據(jù)歸入幾乎不操作集合。
不操作集合:將訪問操作次數(shù)為0的分組數(shù)據(jù)歸入不操作集合。
這樣我們把所有審計(jì)跟蹤后得到的行為模型進(jìn)行分組然后歸入到不同的集合中,得到用戶行為分析模型,當(dāng)用戶的操作行為在常規(guī)操作集合中時(shí)允許用戶進(jìn)行操作,當(dāng)用戶的操作行為在幾乎不操作集合中時(shí)需要進(jìn)行其他驗(yàn)證,例如角色權(quán)限驗(yàn)證,當(dāng)用戶的操作行為在不操作集合中時(shí)不允許用戶進(jìn)行當(dāng)前操作。在用戶訪問數(shù)據(jù)庫中新建表analysisBehavior.dbo,表中字段包括操作者,操作對象,操作時(shí)間,操作地點(diǎn),操作行為,操作結(jié)果以及所屬集合。
這個(gè)模型因?yàn)檫M(jìn)行了分組合并會(huì)比行為模型規(guī)模小很多,以后的數(shù)據(jù)庫安全審核就是在這個(gè)分析模型的基礎(chǔ)上進(jìn)行的。
5 基于用戶行為模型的數(shù)據(jù)庫安全審核
用戶行為模型分析[13,14,15]完畢后,就可以利用這個(gè)用戶行為分析模型進(jìn)行數(shù)據(jù)庫的安全審核?;静僮髁鞒虉D如圖4所示。
基于用戶行為的數(shù)據(jù)庫安全審核的基本步驟[16,17]為:
(1)欲訪問數(shù)據(jù)庫的用戶首先進(jìn)行用戶登錄,進(jìn)行身份驗(yàn)證,如果驗(yàn)證成功為合法用戶,則該用戶允許訪問數(shù)據(jù)庫,進(jìn)而繼續(xù)訪問數(shù)據(jù)庫;如果驗(yàn)證不成功即為非法用戶,則用戶不能訪問數(shù)據(jù)庫。
(2)用戶身份驗(yàn)證成功的用戶進(jìn)入數(shù)據(jù)庫并且訪問數(shù)據(jù)庫,用戶訪問數(shù)據(jù)庫并對數(shù)據(jù)庫進(jìn)行相關(guān)操作的同時(shí),數(shù)據(jù)庫審計(jì)跟蹤用戶的行為,這時(shí)跟蹤用戶行為形成的記錄為<操作者,操作對象,操作時(shí)間,操作地點(diǎn),操作行為>,還沒有操作結(jié)果屬性,需要進(jìn)行審核驗(yàn)證是否允許用戶進(jìn)行當(dāng)前操作。
(3)根據(jù)審計(jì)跟蹤提取當(dāng)前跟蹤形成的記錄,與已建的用戶行為分析模型進(jìn)行比較。
select 所屬集合
from analysisBehavior.dbo
where analysisBehavior. 操作者=當(dāng)前操作者and操作對象=當(dāng)前操作對象and操作時(shí)間=當(dāng)前操作時(shí)間 and 操作地點(diǎn)=當(dāng)前操作地點(diǎn)and 操作行為=當(dāng)前操作行為
如果所屬集合為常規(guī)操作集合,則不需要進(jìn)行其他驗(yàn)證,用戶直接進(jìn)行操作并得到操作結(jié)果;如果所屬集合為幾乎不操作集合中,需要驗(yàn)證用戶的角色權(quán)限,只有在用戶合法的角色權(quán)限下,用戶才可以繼續(xù)進(jìn)行操作并得到操作結(jié)果,否則不允許用戶進(jìn)行操作;如果所屬集合為不操作集合,則直接不允許用戶進(jìn)行操作。
(4)不管是否允許用戶繼續(xù)進(jìn)行當(dāng)前操作,都要進(jìn)行審計(jì)跟蹤,并形成審計(jì)記錄,然后根據(jù)當(dāng)前審計(jì)記錄更新用戶行為模型,并且更新用戶行為分析模型。
(5)對于初次訪問數(shù)據(jù)庫的用戶,在數(shù)據(jù)庫中沒有該用戶的用戶行為模型,這時(shí)對于通過身份驗(yàn)證的用戶,我們重點(diǎn)考慮數(shù)據(jù)庫管理員賦予用戶的角色和權(quán)限,一般我們認(rèn)為不超出用戶權(quán)限的操作為合法操作。
6結(jié)束語
該文提出了基于數(shù)據(jù)庫用戶行為的安全審核的方法,首先數(shù)據(jù)庫根據(jù)用戶行為創(chuàng)建了用戶特征模型,然后利用審計(jì)跟蹤當(dāng)前用戶的行為,與用戶行為分析模型比對從而判斷用戶行為是否合法,這種基于用戶行為模型的方法有效的阻止了合法用戶對數(shù)據(jù)庫的非法操作。這樣,訪問數(shù)據(jù)庫的三種不安全因素基本得到解決,數(shù)據(jù)庫的安全訪問得到基本保障。
參考文獻(xiàn):
[1]況莉莉.SQL Server 2005 數(shù)據(jù)庫訪問的安全措施[J].淮南職業(yè)技術(shù)學(xué)院學(xué)報(bào),2011,11(42):75-78.
[2]李嵐.基于角色的數(shù)據(jù)庫安全訪問控制的應(yīng)用[J].通信技術(shù),2008,41(10):70-71.
[3]程維國,田園,王德強(qiáng),謝俊元.B1級(jí)數(shù)據(jù)庫安全審計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(11):54-56.
[4]錢正麟,高航,李曙強(qiáng).基于網(wǎng)絡(luò)偵聽的數(shù)據(jù)庫審計(jì)方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(4):97-101.
[5]楊磊.數(shù)據(jù)庫安全審計(jì)檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2014.
[6]逯楠楠.數(shù)據(jù)庫安全審計(jì)分析技術(shù)研究與應(yīng)用[D].湖北工業(yè)大學(xué),2011.
[7]常建國,郭凌玲,宮彥婷,等.數(shù)據(jù)庫審計(jì)與防統(tǒng)方系統(tǒng)的實(shí)現(xiàn)[J].中國醫(yī)療設(shè)備,2013,28(4):52-54.
[8]李晶媛.網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)審計(jì)跟蹤研究[D].中北大學(xué),2010.
[9]陳浩.基于用戶行為分析的圖書館數(shù)據(jù)庫資源的整合與利用[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(7):24-27.
[10]邢曉兵.面向用戶興趣的用戶瀏覽行為分析方法及應(yīng)用[D].東北大學(xué),2013.
[11]朱智武,葉曉俊.數(shù)據(jù)庫用戶行為模型與異常檢測[J].計(jì)算機(jī)科學(xué),2009,36(4A):167-169.
[12]肖云鵬.在線社會(huì)網(wǎng)絡(luò)用戶行為模型與應(yīng)用算法研究[D].北京郵電大學(xué),2013.
[13]宋國峰,梁昌勇.一種基于用戶行為信任的云安全訪問控制模型[J].中國管理科學(xué),2013,21(專輯):669-676.
[14]陳亞睿,田立勤,楊揚(yáng).云計(jì)算環(huán)境下動(dòng)態(tài)用戶行為認(rèn)證的機(jī)制、模型與分析[J].系統(tǒng)仿真學(xué)報(bào),2011,23(11):2302-2307.
[15]栗磊.基于用戶行為挖掘的數(shù)據(jù)庫入侵防護(hù)機(jī)制研究[D].東北石油大學(xué),2011.
[16]楊清龍.基于網(wǎng)絡(luò)日志的互聯(lián)網(wǎng)用戶行為分析[D].華中科技大學(xué),2013.
[17]任文君.基于網(wǎng)絡(luò)用戶行為分析的問題研究[D].北京郵電大學(xué),2012.