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