阿迪力江.阿布都熱扎克
[摘要]從分析數(shù)據(jù)庫安全的意義出發(fā),詳細(xì)的概述數(shù)據(jù)庫的安全檢測和用于安全檢測的數(shù)據(jù)挖掘算法,并在此基礎(chǔ)上提出一個基于關(guān)聯(lián)規(guī)則挖掘的數(shù)據(jù)庫安全檢測系統(tǒng)的框架的搭建,并詳細(xì)探討安全檢測系統(tǒng)的各個模塊。
[關(guān)鍵詞]數(shù)據(jù)庫關(guān)聯(lián)規(guī)則安全檢測
中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)1120040-02
一、引言
隨著科學(xué)技術(shù)和信息化的高速發(fā)展,計算機(jī)信息管理系統(tǒng)得到了廣泛的應(yīng)用。作為信息系統(tǒng)的三大支柱平臺之一的數(shù)據(jù)庫管理系統(tǒng)已經(jīng)滲透到了各個領(lǐng)域,然而數(shù)據(jù)庫在給人們帶來數(shù)據(jù)管理方便的同時,各類病毒給數(shù)據(jù)庫致命的破壞也是災(zāi)難性的。因此,數(shù)據(jù)庫的安全檢測逐漸成為了熱點(diǎn)研究之一。
二、數(shù)據(jù)庫的安全檢測概述
數(shù)據(jù)庫中安全檢測機(jī)制主要包括以下幾個方面:1.身份認(rèn)證。用戶身份認(rèn)證是安全系統(tǒng)的第一道防線,目的是防止非法用戶訪問系統(tǒng)。為了有效可靠地管理用戶權(quán)限,保證系統(tǒng)的安全,需要一套可靠完善的身份鑒別機(jī)制。身份鑒別有多種技術(shù),可應(yīng)用在管理信息系統(tǒng)的不同層次。口令權(quán)限管理是身份鑒別和保證系統(tǒng)安全的最常見、最方便的方法。除口令控制外,用戶身份認(rèn)證還可以采用比較復(fù)雜的計算過程和函數(shù)來完成。而智能卡技術(shù)、數(shù)字簽名技術(shù)和生理特征(如指紋、體溫、聲紋、視網(wǎng)膜紋等)認(rèn)證技術(shù)的迅速發(fā)展也為具有更高安全要求的用戶身份認(rèn)證提供了實用可行的技術(shù)基礎(chǔ)。2.存取控制。數(shù)據(jù)庫的存取訪問控制機(jī)制是定義和控制用戶對數(shù)據(jù)庫數(shù)據(jù)的存取控制權(quán)限,以確保只授權(quán)給有資格的用戶訪問數(shù)據(jù)庫的權(quán)限,并防止和杜絕對數(shù)據(jù)庫中數(shù)據(jù)的非授權(quán)訪問,通常在認(rèn)證己成功的基礎(chǔ)之上進(jìn)行。3.數(shù)據(jù)庫加密。雖然DBMS在操作系統(tǒng)的基礎(chǔ)上增加了不少安全措施,但操作系統(tǒng)和DBMS對數(shù)據(jù)庫文件本身仍然缺乏有效的保護(hù)措施。有經(jīng)驗的網(wǎng)上黑客會“繞道而行”,直接利用操作系統(tǒng)工具竊取或篡改數(shù)據(jù)庫文件內(nèi)容,這種隱患被稱為通向DBMS的“隱秘通道”,它所帶來的危害一般數(shù)據(jù)庫用戶難以覺察。分析和堵塞“隱秘通道”被認(rèn)為是B2級的安全技術(shù)措施,對數(shù)據(jù)庫中的敏感數(shù)據(jù)進(jìn)行加密處理,是堵塞這一“隱秘通道”的有效手段。對于具有更高安全要求的DBMS,數(shù)據(jù)加密是保證用戶數(shù)據(jù)隔離、防止敏感性數(shù)據(jù)泄漏的重要手段之一。4.審計追蹤與安全檢測。審計是指在系統(tǒng)運(yùn)行的過程中,自動將對數(shù)據(jù)庫的所有操作記錄在審計日志中,來監(jiān)視各用戶對數(shù)據(jù)庫施加的動作。由于數(shù)據(jù)庫審計記錄的數(shù)據(jù)量是極其龐大的,因此需要對大量的審計數(shù)據(jù)進(jìn)行分析處理。另外,對數(shù)據(jù)庫來說,僅僅依靠工作在文件和系統(tǒng)命令級的底層操作系統(tǒng)和網(wǎng)絡(luò)入侵檢測系統(tǒng)是無法保證檢測的效率和精度的,這種入侵是操作系統(tǒng)和網(wǎng)絡(luò)入侵檢測系統(tǒng)所難以檢測的。通過數(shù)據(jù)庫安全檢測可以彌補(bǔ)操作系統(tǒng)和網(wǎng)絡(luò)入侵檢測的不足,提高檢測的準(zhǔn)確度和有效性。
目前構(gòu)造一個數(shù)據(jù)庫安全檢測系統(tǒng)是一個十分宏大的工程,很多情況下需要專業(yè)人員對已知的攻擊進(jìn)行分析,提取特征,然后用到檢測中,或者采用很多統(tǒng)計方法來做異常檢測,但是可擴(kuò)展性和適應(yīng)性都不強(qiáng),而且規(guī)則庫更新非常緩慢和昂貴。利用數(shù)據(jù)挖掘的自動發(fā)現(xiàn)數(shù)據(jù)特征的功能在安全檢測中可以取得了很好的效果,將數(shù)據(jù)挖掘技術(shù)應(yīng)用于數(shù)據(jù)庫安全檢測系統(tǒng)中,是目前檢測領(lǐng)域一個重要的研究方向。
三、數(shù)據(jù)庫安全檢測算法
將數(shù)據(jù)挖掘算法應(yīng)用到數(shù)據(jù)庫的安全檢測算法中,可以有效地從大量的審計數(shù)據(jù)中發(fā)現(xiàn)有助于檢測的知識和規(guī)則。基于數(shù)據(jù)挖掘的數(shù)據(jù)庫安全檢測系統(tǒng)通過對審計數(shù)據(jù)進(jìn)行挖掘,發(fā)現(xiàn)用戶行為模式,生成規(guī)則庫,然后對當(dāng)前審計數(shù)據(jù)進(jìn)行檢測,判斷非法行為是否發(fā)生,并響應(yīng)。建立此種模型的前提是數(shù)據(jù)庫用戶在長期操作數(shù)據(jù)庫的過程中會反映出一定的行為規(guī)律?;跀?shù)據(jù)挖掘的數(shù)據(jù)庫安全檢測算法,最常用的是關(guān)聯(lián)規(guī)則,利用關(guān)聯(lián)規(guī)則,找出數(shù)據(jù)庫系統(tǒng)中各個數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,及在一個事務(wù)中那些表之間產(chǎn)生了聯(lián)動。形成正常情況下數(shù)據(jù)表各個事件的規(guī)則和系統(tǒng)采集的運(yùn)行數(shù)據(jù)進(jìn)行比較,來預(yù)測數(shù)據(jù)行為的安全性。
關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則挖掘就是從大量的數(shù)據(jù)中挖掘出有價值描述數(shù)據(jù)項之間相互聯(lián)系的有關(guān)知識。隨著收集和存儲在數(shù)據(jù)庫中的數(shù)據(jù)規(guī)模越來越大,人們對從這些數(shù)據(jù)中挖掘相應(yīng)的關(guān)聯(lián)知識越來越有興趣。例如:從大量的商業(yè)交易記錄中發(fā)現(xiàn)有價值的關(guān)聯(lián)知識就可幫助進(jìn)行商品目錄的設(shè)計、交叉營銷或幫助進(jìn)行其它有關(guān)的商業(yè)決策。挖掘關(guān)聯(lián)知識的一個典型應(yīng)用實例就是市場購物分析。根據(jù)被放到一個購物袋的(購物)內(nèi)容記錄數(shù)據(jù)而發(fā)現(xiàn)的不同(被購買)商品之間所存在的關(guān)聯(lián)知識無疑將會幫助商家分析顧客的購買習(xí)慣。同理,數(shù)據(jù)庫用戶在長期操作數(shù)據(jù)庫的過程中也會反映出一定的行為規(guī)律。例如哪些用戶經(jīng)常訪問哪些數(shù)據(jù)庫或數(shù)據(jù)庫對象等。在建模的學(xué)習(xí)階段,要求采集用戶正常操作的數(shù)據(jù),所以學(xué)習(xí)到的規(guī)則是用戶正常狀態(tài)下的行為規(guī)律。在檢測時,如果一些會話連接不符合這些規(guī)則時,就認(rèn)為這些連接是異常的。關(guān)聯(lián)規(guī)則算法利用一個層次順序搜索的循環(huán)方法來完成頻繁項集的挖掘工作,這一循環(huán)方法就是利用k-項集來產(chǎn)生(k+1)-項集。算法的主要流程是:首先找出頻繁1-項集,記為L1;然后利用L1,來挖掘L2,即頻繁2-項集;如此循環(huán)下去,直到無法發(fā)現(xiàn)更多的頻繁k一項集為止。每挖掘一層Lk就需要掃描整個數(shù)據(jù)庫一遍,因此需要多次掃描數(shù)據(jù)庫。為了提高按層次搜索并產(chǎn)生相應(yīng)頻繁項集的處理效率,關(guān)聯(lián)規(guī)則算法利用了兩個性質(zhì)來幫助有效縮小頻繁項集的搜索空間。這兩個性質(zhì)為任意非頻繁項集的超集必定也是非頻繁項集和任意頻繁項集的子集都是頻繁項集。關(guān)聯(lián)規(guī)則算法主要包括以下三個步驟。(1)連接步。通過及Lk-1中的頻繁(k-1)-項集的自連接產(chǎn)生候選k-項集的集合,該候選項集的集合記作Ck。設(shè)p,q∈Lk-1,如果(p[1]=q[2])^(p[2]=q[2])^……^(p[k-2]=q[k-2])^(p[k-1] 四、安全檢測系統(tǒng)模型的建立 基于以上對數(shù)據(jù)庫安全檢測算法的分析,本文提出了一個基于關(guān)聯(lián)規(guī)則算法的安全檢測系統(tǒng)模型。該系統(tǒng)模型的框架圖如下圖1。從功能實現(xiàn)的角度把系統(tǒng)分為四大模塊:數(shù)據(jù)預(yù)處理模塊、規(guī)則生成模塊、安全檢測模塊和響應(yīng)模塊。為提高安全檢測系統(tǒng)的自適應(yīng)性,增加了新規(guī)則生成模塊。 1.數(shù)據(jù)預(yù)處理模塊。在進(jìn)行數(shù)據(jù)挖掘之前,對采集的數(shù)據(jù)庫審計數(shù)據(jù)需要進(jìn)行預(yù)處理。因為一個會話連接包含很多個審計記錄,所以將多個屬于同一會話的審計記錄歸并到同一個會話連接中去。本文定義一個會話連接包含下面的屬性:(會話的數(shù)字ID,被審計的用戶ID,被審計的用戶操作系統(tǒng)終端描述字,被審計的操作)。對于數(shù)據(jù)庫安全檢測來說,所要挖掘的是用戶行為模式,所以,任何一個規(guī)則都應(yīng)該落實到每一個用戶。所以可以將審計記錄根據(jù)用戶ID進(jìn)行分組,分別使用關(guān)聯(lián)規(guī)則挖掘算法,即先把記錄按照被審計的用戶ID從邏輯上分成幾個互不相交的塊,每次單獨(dú)考慮一個分塊。此算法可以高度地并行,把每個用戶對應(yīng)的記錄分別分配給一個處理器生成頻繁項集,產(chǎn)生相應(yīng)的規(guī)則,最終合并所有規(guī)則。通過分類使得在生成頻繁項集時,使用戶之間的數(shù)據(jù)不相互干擾,減少了必須分析的候選項集的個數(shù),從而提高了算法的效率,提高了海量數(shù)據(jù)的處理速度。
2.規(guī)則挖掘模塊。根據(jù)安全檢測方法,安全檢測分為兩大類型:濫用檢測和異常檢測,相應(yīng)的,規(guī)則庫也可以分為兩大類:濫用檢測規(guī)則庫和異常檢測規(guī)則庫。本文所探討的是數(shù)據(jù)庫的異常檢測,通過對正常數(shù)據(jù)的挖掘,發(fā)現(xiàn)其中存在的規(guī)則,生成異常檢測規(guī)則庫。濫用檢測規(guī)則庫則存放已知的攻擊模式,由審計系統(tǒng)管理員根據(jù)個人的經(jīng)驗和以往審計檢測出來的結(jié)果進(jìn)行建立和維護(hù)。這使得濫用檢測規(guī)則庫并不完善。并且采用這種方法生成的濫用檢測規(guī)則具有被動性,因此需要主動的發(fā)現(xiàn)濫用規(guī)則,從而完善濫用檢測規(guī)則庫。數(shù)據(jù)挖掘方法的優(yōu)勢在于它能從大量數(shù)據(jù)中提取人們感興趣的、事先未知的知識和規(guī)律,而不依賴經(jīng)驗。本系統(tǒng)采用的關(guān)聯(lián)規(guī)則算法描述如下:
For eaeh lk∈L;k>2
do begin /*生成規(guī)則*/
for eaeh subsetam∈lk
do begin
conf=support(lk)/support(am):
if(conf≥min_conf)
then begin
output rule am→(lk-am)(confidence=conf and support=support(lk));
end
end
end
3.安全檢測模塊。安全檢測模塊與規(guī)則挖掘庫對應(yīng)可分為濫用檢測和異常檢測,由于濫用檢測的高漏檢率,因此本文系統(tǒng)主要對異常檢測進(jìn)行分析。具體的異常檢測過程為:
輸入:濫用檢測后的不匹配的審計記錄
輸出:異常記錄
(1)獲得第一條審計記錄。(2)將審計記錄與規(guī)則庫中該用戶的規(guī)則進(jìn)行比較。(3)如果(2)中,比較的規(guī)則符合說明事務(wù)是正常事務(wù),如不符合說明是可疑事務(wù),則記錄該事務(wù)為可疑事務(wù)并報警輸出。(4)取下一條待檢測的記錄,為空說明檢測完畢退出,不為空則繼續(xù)重復(fù)(2)-(4)。
異常檢測的響應(yīng)程序描述如下:
說明:
P1→record:P1所指向的記錄
P2→rule:P2所指向的規(guī)則
Numberitems:(P1→record):記錄所含的項目數(shù)
Numberitems:(P2→true):規(guī)則所含的項目數(shù)
Dubious_record:存放可疑記錄
輸入:濫用檢測過濾后的數(shù)據(jù)集
輸出:可疑的數(shù)據(jù)庫審計記錄
打開存放待檢測會話記錄的文件,P1指向該文件第一條記錄
While(P1≠NULL)
{
P2指向第一條規(guī)則
while(P2≠NULL)
{
if(Numberitems:(P2→true)=Numberitems:(P1→record)&&(P2→true→itemi))
then
break;
e1se P2++
}
add P1→record to dubious_record
P1++;
}
根據(jù)檢測結(jié)果可以分為以下兩種情況:濫用檢測不匹配,異常檢測匹配說明該審計記錄是正常的用戶行為和均不匹配認(rèn)為,即在濫用檢測和異常檢測中均不匹配的記錄是可疑記錄。它可能是不符合用戶歷史行為模式的正常行為,也可能是未知的非法行為。
4.響應(yīng)模塊。根據(jù)安全檢測結(jié)果分別產(chǎn)生不同的告警。如果為非法數(shù)據(jù)則通知審計管理員采取適當(dāng)?shù)拇胧?盡量減少入侵造成的損失。如果為可疑數(shù)據(jù)則通知審計管理員對審計記錄進(jìn)行標(biāo)記,將可疑數(shù)據(jù)分為正常數(shù)據(jù)和非法數(shù)據(jù),作為更新規(guī)則庫的數(shù)據(jù)源。
5.新規(guī)則生成模塊。在數(shù)據(jù)庫安全檢測中,檢測的高效性取決于規(guī)則庫的完備性。為此,規(guī)則庫必須及時更新。新規(guī)則生成模塊就是用來不斷修正和更新用戶的正常行為模式的。安全審計數(shù)據(jù)是隨時間的變化而變化的,用戶的行為模式很可能隨時間呈現(xiàn)出某種發(fā)展趨勢,使得當(dāng)前己發(fā)現(xiàn)的用戶行為模式可能不再生效,而可能存在新的用戶行為模式有待于進(jìn)一步去發(fā)現(xiàn)。因此,不僅需要有高效的算法來挖掘出用戶行為模式,而且也迫切需要有高效的算法來更新、維護(hù)和管理已挖掘出來的用戶行為模式對于在異常檢測中不匹配的數(shù)據(jù),需在審計管理員的參與下將記錄分別標(biāo)記為正?;蚍欠ㄐ袨?然后采用規(guī)則挖掘模塊對標(biāo)記為正常的數(shù)據(jù)進(jìn)行挖掘,生成新的用戶行為模式,將其存入規(guī)則庫中,更新規(guī)則庫。一般說來,正常的數(shù)據(jù)是大量的,可以采用關(guān)聯(lián)規(guī)則挖掘算法,產(chǎn)生新的關(guān)聯(lián)規(guī)則。對于非法數(shù)據(jù),就需要在審計管理員的參與下,生成相應(yīng)的檢測規(guī)則。這樣就可以更新異常檢測規(guī)則庫,實現(xiàn)了安全檢測系統(tǒng)的自適應(yīng)性,并降低誤警率和漏檢率。
五、結(jié)束語
現(xiàn)在的信息系統(tǒng)中,采取了各種措施保護(hù)信息系統(tǒng)的安全,但大多針對網(wǎng)絡(luò)、病毒等方面,但對數(shù)據(jù)庫本身的監(jiān)管較少,特別是對數(shù)據(jù)庫操作人員的監(jiān)管上。而數(shù)據(jù)挖掘理論的成熟為數(shù)據(jù)庫安全監(jiān)管提供了許多可用的算法,因此,數(shù)據(jù)挖掘算法和數(shù)據(jù)庫安全檢測的結(jié)合時未來數(shù)據(jù)庫安全的一個發(fā)展趨勢。
參考文獻(xiàn):
[1]王麗娜、董曉梅、郭曉淳、于戈,基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)數(shù)據(jù)庫入侵檢測系統(tǒng),東北大學(xué)學(xué)報(自然科學(xué)版),2003,3(24-3).
[2]黃曉燕、許龍飛,數(shù)據(jù)庫入侵檢測的一種數(shù)據(jù)挖掘方法計算機(jī)系統(tǒng)應(yīng)用,2005.11.
[3]安淑芝,數(shù)據(jù)倉庫與數(shù)據(jù)挖掘[M].清華大學(xué)出版社,2005.
[4]朱明,數(shù)據(jù)挖掘,中國科學(xué)技術(shù)大學(xué)出版.
[5]梁曼君、張瑞、熊范倫,從數(shù)據(jù)庫中發(fā)掘定量型關(guān)聯(lián)規(guī)則[J].計算機(jī)科學(xué),1999,26(8).