李 勃,壽 曾,劉昕禹,高明慧,馬 力,徐 劍
1(南瑞集團(tuán)有限公司(國(guó)網(wǎng)電力科學(xué)研究院有限公司),南京 210061) 2(北京科東電力控制系統(tǒng)有限責(zé)任公司,北京 100192) 3(國(guó)網(wǎng)遼寧省電力有限公司,沈陽 110003) 4(東北大學(xué) 軟件學(xué)院,沈陽 110169)
在網(wǎng)絡(luò)空間安全領(lǐng)域,數(shù)據(jù)庫(kù)系統(tǒng)是對(duì)攻擊者最有吸引力的目標(biāo)之一,許多網(wǎng)絡(luò)攻擊的最終目的就是獲取數(shù)據(jù)庫(kù)中的敏感信息.為此,數(shù)據(jù)庫(kù)安全一直為企業(yè)界和學(xué)術(shù)界所關(guān)注[1,2].根據(jù)相關(guān)研究顯示,數(shù)據(jù)庫(kù)安全的最大威脅來自于系統(tǒng)內(nèi)部,而不是外部攻擊者[3].然而,傳統(tǒng)的數(shù)據(jù)庫(kù)安全技術(shù)更多的是采用被動(dòng)防御的思想,無法有效地檢測(cè)并阻止數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部用戶的攻擊行為.因此,研究數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部攻擊檢測(cè)方法就變得尤為重要[4-6].
異常檢測(cè)是入侵檢測(cè)研究領(lǐng)域中的一個(gè)重要課題,也是針對(duì)系統(tǒng)內(nèi)部攻擊的有效方法[7-9].但是,目前的異常檢測(cè)方法主要是面向操作系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò),針對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的研究成果相對(duì)較少.在早期的數(shù)據(jù)庫(kù)異常檢測(cè)研究中,是將數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)、語義等特征和異常檢測(cè)系統(tǒng)研究結(jié)合起來.Hu等人[10]利用數(shù)據(jù)依賴性挖掘器挖掘數(shù)據(jù)庫(kù)日志中的數(shù)據(jù)關(guān)聯(lián)關(guān)系,將不符合所挖掘的數(shù)據(jù)依賴性的行為識(shí)別為惡意行為;Kamra等人[11]構(gòu)建了一種面向DBMS的異常用戶請(qǐng)求檢測(cè)方法.該方法的核心思想是對(duì)與數(shù)據(jù)庫(kù)交互的用戶配置文件進(jìn)行學(xué)習(xí),將偏離這些配置文件的用戶請(qǐng)求視為異常;Panigrahi等人[12]提出一種融合信息源和信度更新的數(shù)據(jù)庫(kù)異常檢測(cè)方法,使用事務(wù)間和事務(wù)內(nèi)特征進(jìn)行異常檢測(cè),并使用了3種不同的表屬性敏感度級(jí)別,以便跟蹤高度敏感屬性的惡意修改行為.但是,早期的數(shù)據(jù)庫(kù)用戶行為異常檢測(cè)方法的誤報(bào)率和漏報(bào)率都比較高.
為此,部分學(xué)者將機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等方法引入到數(shù)據(jù)庫(kù)入侵檢測(cè)中來.Ronao等人[13]提出了面向關(guān)系數(shù)據(jù)庫(kù)的基于加權(quán)投票隨機(jī)森林的異常查詢檢測(cè)方法.利用加權(quán)投票對(duì)隨機(jī)森林進(jìn)行改進(jìn),使整個(gè)系統(tǒng)的性能得到進(jìn)一步提升.但是,該方法僅針對(duì)的是關(guān)系數(shù)據(jù)庫(kù)中的查詢請(qǐng)求,在通用性方面有一定限制.Bu等人[14]提出基于深度學(xué)習(xí)和學(xué)習(xí)分類器的數(shù)據(jù)庫(kù)入侵檢測(cè)系統(tǒng).但是,該系統(tǒng)的建模過程復(fù)雜,并且不能很好地支持動(dòng)態(tài)更新.Brahma等人[15]利用人工神經(jīng)模糊推理系統(tǒng)來獲取用戶行為特征,并以此為基礎(chǔ)構(gòu)建了數(shù)據(jù)庫(kù)入侵檢測(cè)系統(tǒng).在該系統(tǒng)中,利用模糊推理方法和人工神經(jīng)網(wǎng)絡(luò)來生成了一些if-then規(guī)則.對(duì)于不符合這些模糊規(guī)則,用戶行為則被標(biāo)記為惡意的.Singh等人[16]利用關(guān)聯(lián)規(guī)則和聚類分析在數(shù)據(jù)庫(kù)使用模式中發(fā)現(xiàn)異常行為.在該方法中,通過聚類算法,根據(jù)用戶的角色生成常規(guī)配置文件.如果新的用戶行為不符合現(xiàn)有規(guī)則,則會(huì)被標(biāo)記為異常.Bu等人[17]利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和學(xué)習(xí)分類器系統(tǒng)(Learning Classifier System,LCS)提出了一種混合的數(shù)據(jù)庫(kù)入侵檢測(cè)系統(tǒng).在該系統(tǒng)中,LCS用來設(shè)計(jì)新的事務(wù)規(guī)則,以便識(shí)別數(shù)據(jù)庫(kù)審計(jì)日志中的任何異常事件,而CNN則用于分類.Guevara等人[18]利用了Markov鏈,通過分析用戶執(zhí)行的操作序列,構(gòu)建出用戶的行為模式.但是,該方法需要大量的用戶操作記錄作為訓(xùn)練集.Sallam等人[19]采用樸素Bayesian分類和二分類兩種方法進(jìn)行數(shù)據(jù)庫(kù)異常檢測(cè),該方法檢測(cè)準(zhǔn)確率較高,但是誤報(bào)率較高.Jayaprakash等人[20]提出基于樸素貝葉斯監(jiān)督分類器的數(shù)據(jù)庫(kù)入侵檢測(cè)系統(tǒng),通過對(duì)具有侵入性的SQL語句進(jìn)行分析來檢測(cè)異常行為.
密度聚類[21]能夠根據(jù)數(shù)據(jù)集的稠密度來實(shí)現(xiàn)任意形狀的聚類,并能有效處理噪聲點(diǎn),這些特點(diǎn)較好地符合數(shù)據(jù)庫(kù)用戶行為特征,可以用于數(shù)據(jù)庫(kù)用戶行為異常檢測(cè)[22].但是,密度聚類受監(jiān)測(cè)樣本的穩(wěn)定性影響較大,如果監(jiān)測(cè)樣本出現(xiàn)一定程度的隨機(jī)性突變,則聚類效果不佳,進(jìn)而導(dǎo)致異常檢測(cè)方案出現(xiàn)較高的誤報(bào)率.
集成學(xué)習(xí)方法以學(xué)習(xí)過程中的良好性能而著稱,相比于單分類器,其在異常檢測(cè)工作過程中具有更高的檢測(cè)精度.目前,已有不少學(xué)者將其應(yīng)用到入侵檢測(cè)中來.Gaikwad等人[23]利用Bagging方法實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng).之后,Gaikwad等人[24]又將改進(jìn)后的決策樹REPTree作為Bagging方法的基類,從數(shù)據(jù)集中選擇相關(guān)特征以提高分類準(zhǔn)確性并減少檢測(cè)的誤報(bào)率.
綜述所述,目前數(shù)據(jù)庫(kù)異常檢測(cè)方法所使用的技術(shù)方案相對(duì)單一,例如僅應(yīng)用聚類或僅應(yīng)用機(jī)器學(xué)習(xí)分類器,缺少多種方法的融合運(yùn)用,進(jìn)而導(dǎo)致已有方案的效率和檢測(cè)準(zhǔn)確率較低.為此,提出了一種基于密度聚類與集成學(xué)習(xí)的數(shù)據(jù)庫(kù)異常檢測(cè)方案.在該方案中利用OPTICS聚類算法[25]對(duì)數(shù)據(jù)庫(kù)用戶的SQL操作進(jìn)行聚類,獲取用戶的異常行為特征,并形成先驗(yàn)知識(shí);對(duì)于未能獲得簇標(biāo)簽的行為數(shù)據(jù),交由集成學(xué)習(xí)作進(jìn)一步分析,集成學(xué)習(xí)中采用使用Bagging、Boosting和Stacking方法組合多種個(gè)體分類器(樸素貝葉斯(Naive Bayes,NB)分類器、決策樹(Decision Trees,DT)分類器、k-近鄰(k-NearestNeighbor,kNN)分類器、多層感知器(Multilayer Perceptron,MLP)分類器進(jìn)行分類,并創(chuàng)建用戶行為特征庫(kù).以用戶行為特征庫(kù)為基礎(chǔ),在盡可能減少誤報(bào)的情況,實(shí)現(xiàn)異常檢測(cè).
OPTICS是一種不需要用戶提供特定密度閾值的密度聚類算法,是對(duì)DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)的改進(jìn),其并不顯式地產(chǎn)生數(shù)據(jù)集聚類,通過對(duì)輸出簇進(jìn)行排序,來表達(dá)數(shù)據(jù)的基于密度的聚類結(jié)構(gòu).和DBSCAN不同,OPTICS算法可以獲得不同密度的聚類,因?yàn)镺PTICS算法輸出的是樣本的一個(gè)有序隊(duì)列,從這個(gè)隊(duì)列可以獲得任意密度的聚類.
OPTICS算法的核心思想是:對(duì)于簇Ci中任意對(duì)象p,在其ε鄰域Nε(p)中,至少存在MinPts-1個(gè)其他對(duì)象,其中ε代表歐里幾何距離半徑,MinPts表示使得對(duì)象p作為核心對(duì)象在它的ε鄰域中至少應(yīng)含有的對(duì)象數(shù)量.
OPTICS算法中,存在核心距離core-distance(cd)和可達(dá)距離reachability-distance(rd)兩個(gè)重要信息.
定義1.對(duì)象p的核心距離cdε,MinPts(p).設(shè)半徑參數(shù)為ε′,使得p的ε′-鄰域剛好包含MinPts個(gè)對(duì)象,若p不是關(guān)于ε′和MinPts的核心對(duì)象,則p的核心距離沒有定義,如式(1)所示.
(1)
定義2.對(duì)象p到對(duì)象q的可達(dá)距離rdε,MinPts(p,q).是使p從q密度可達(dá)的最小半徑值,其中q必須是核心對(duì)象,并且p必須在q的領(lǐng)域內(nèi),如式(2)所示.
(2)
OPTICS聚類算法,最終將根據(jù)識(shí)別結(jié)果輸出數(shù)據(jù)集的簇排序,該排序給出了對(duì)數(shù)據(jù)結(jié)構(gòu)化和聚類的一般觀察.
局部離群因子(Local Outlier Factor,LOF)通過計(jì)算樣本點(diǎn)在局部的分布情況,以數(shù)值方式反映其離群程度,是一種基于密度的離群點(diǎn)檢測(cè)算法.該算法會(huì)給出數(shù)據(jù)集中的每個(gè)點(diǎn)計(jì)算一個(gè)離群因子LOF,通過判斷LOF大于或小于1來判定是否是離群因子.若LOF遠(yuǎn)大于1,則認(rèn)為是離群因子,接近于1,則是正常點(diǎn).
定義3.局部可達(dá)距離lrd.該距離被描述為對(duì)于對(duì)象p,其MinPts鄰域中其他元素平均可達(dá)距離的倒數(shù),如式(3)所示.
(3)
其中NMinPts(p)表示在所有被聚類元素中,鄰近元素p的MinPts個(gè)元素序列.
LOF值計(jì)算,如式(4)所示.
(4)
若LOF值小于1時(shí),則表明該點(diǎn)所在位置相對(duì)稠密,不是離群點(diǎn).LOF值更能描述一個(gè)點(diǎn)的離群程度,但由于其計(jì)算量較高,因此通常先采用聚類算法粗略計(jì)算出離群點(diǎn),再對(duì)離群點(diǎn)進(jìn)行LOF值的計(jì)算.
本文提出的數(shù)據(jù)庫(kù)異常檢測(cè)方案,基于OPTICS算法與集成學(xué)習(xí)來實(shí)現(xiàn)異常檢測(cè),檢測(cè)流程如圖1所示.具體檢測(cè)過程包括:數(shù)據(jù)預(yù)處理、訓(xùn)練、學(xué)習(xí)模型構(gòu)建以及異常檢測(cè).

圖1 檢測(cè)流程Fig.1 Detection process
方案的具體業(yè)務(wù)流程如下:
Step 1.數(shù)據(jù)預(yù)處理.在數(shù)據(jù)預(yù)處理階段,首先,對(duì)數(shù)據(jù)庫(kù)用戶的SQL操作日志進(jìn)行數(shù)據(jù)預(yù)處理,提取用戶行為特征值,并轉(zhuǎn)化為[0,1]區(qū)間的數(shù)值型數(shù)據(jù),以便后續(xù)的聚類算法與集成學(xué)習(xí)模型所使用.
Step 2.訓(xùn)練.在訓(xùn)練階段,訓(xùn)練數(shù)據(jù)被劃分為兩個(gè)集合,即SmallSet和BigSet,SmallSet包含規(guī)模較小的訓(xùn)練數(shù)據(jù),BigSet包含規(guī)模較大的訓(xùn)練數(shù)據(jù).采用OPTICS算法,分別對(duì)上述兩個(gè)集合進(jìn)行聚類.SmallSet聚類后的結(jié)果作為集成學(xué)習(xí)模型的先驗(yàn)知識(shí);對(duì)于BigSet中,經(jīng)聚類后未形成簇的數(shù)據(jù),利用局部離群因子計(jì)算離群程度,對(duì)于仍然離群的訓(xùn)練數(shù)據(jù),則交由集成學(xué)習(xí)模型進(jìn)行處理.
Step 3.學(xué)習(xí)模型構(gòu)建.在學(xué)習(xí)模型構(gòu)建階段,使用集成學(xué)習(xí)方法進(jìn)行識(shí)別,選用NB、DT、K-NN和MPL作為個(gè)體分類器,使用Bagging、Boosting和Stacking作為組合模型,由訓(xùn)練階段產(chǎn)生的聚類結(jié)果作為先驗(yàn)知識(shí)完成分類計(jì)算,對(duì)最終的分類結(jié)果進(jìn)行特征存儲(chǔ).
Step 4.檢測(cè).在檢測(cè)階段,將新的用戶行為與特征庫(kù)中的已有特征進(jìn)行匹配,從而實(shí)現(xiàn)對(duì)用戶的異常行為檢測(cè).
本方案分析的用戶行為數(shù)據(jù)來自于用戶產(chǎn)生的數(shù)據(jù)庫(kù)SQL操作日志.這些操作日志,需要進(jìn)行預(yù)處理才可以進(jìn)行分析.本文利用由元組User_behavior< u_id,query_type,query_num,table_list,attr_list,time_slot,ip_seg >來描述用戶行為.User_behavior元組的元素含義如表1所示.

表1 User_behavior元組中的元素含義Table 1 Meaning of elements in User_behavior
為使User_behavior所表示的用戶行為數(shù)據(jù)可以為密度聚類、集成學(xué)習(xí)所能夠處理,需要將User_behavior元組中的元素映射為數(shù)值型數(shù)據(jù),并進(jìn)行歸一化處理,轉(zhuǎn)化為[0,1]之間的數(shù)值.對(duì)于不同類型的數(shù)據(jù),具體的處理方式如下:
1)對(duì)于連續(xù)性數(shù)據(jù),保留其數(shù)據(jù)原樣;
2)對(duì)于離散型、非數(shù)值型數(shù)據(jù)則通過建立全局的散列表,對(duì)數(shù)據(jù)進(jìn)行一個(gè)整型數(shù)值的映射,該映射值僅需要保證在同一元素下唯一即可.
3)對(duì)于元組型數(shù)據(jù),元組內(nèi)部元素采用整數(shù)數(shù)值進(jìn)行映射后,再對(duì)元組本身進(jìn)行數(shù)值映射.
下面通過一個(gè)示例進(jìn)行說明.
某元組型數(shù)據(jù)由兩條SQL查詢語句構(gòu)成:
SQL1:SELECT x,y from
Table T1 where z=1
SQL2:DELETE from T2 where n =2
共涉及兩個(gè)數(shù)據(jù)庫(kù)表table_list
假設(shè)query_type
在訓(xùn)練階段,利用OPTICS算法分別對(duì)SmallSet和BigSet進(jìn)行聚類.
在SmallSet上應(yīng)用OPTICS算法來構(gòu)建先驗(yàn)知識(shí).首先,將參數(shù)ε與MinPts作為輸入,根據(jù)式(1)和式(3)計(jì)算出每個(gè)數(shù)據(jù)點(diǎn)的核心距離和可達(dá)性距離值后,以升序方式產(chǎn)生數(shù)據(jù)點(diǎn)cd的rd值,通過累積具有相鄰rd值的數(shù)據(jù)點(diǎn)來形成聚類簇.
在BigSet上同樣應(yīng)用OPTICS算法,那些被成功標(biāo)記為簇標(biāo)簽的訓(xùn)練數(shù)據(jù)將被標(biāo)記為正常的用戶行為;而對(duì)于未能獲得簇標(biāo)簽的訓(xùn)練數(shù)據(jù),將利用局部離群因子計(jì)算其離群程度LOF,對(duì)于LOF值小于1的訓(xùn)練數(shù)據(jù)同樣被標(biāo)記為正常的用戶行為,而對(duì)于其他的訓(xùn)練數(shù)據(jù)將交給下一階段處理.
訓(xùn)練過程如算法1所示.
算法1.訓(xùn)練算法
輸入:SmallSet S1與BigSet S2,|S1|≥|S2|;聚類參數(shù)ε、MinPts
輸出:不確定行為集合Su、可供集成學(xué)習(xí)模塊使用的先驗(yàn)集合Sk
1.Sk=OPTICS(S2,ε,MinPts)
2.S1c=OPTICS(S1,ε,MinPts)
3.for k=1 to |S1c| do //遍歷Sn
4. if S1c[k]沒有簇標(biāo)號(hào) then
5. LOFSk=LOF(S1c[k])
6. if LOFSk<1 then
7. S1c[k]列入正常行為表GHT
8. Output(“正常行為”)
9. else
10. S1c[k]列入不確定行為集合Su
11. end if
12. else
13. S1c[k]列入正常行為表GHT
14. Output(“正常行為”)
15. end if
16.end for
17.返回[Sk,Su]
本方案的集成學(xué)習(xí)模型基于Bagging、Boosting和Stacking模型,同時(shí)選擇樸素貝葉斯(Naive Bayes,NB)分類器、決策樹(Decision Trees,DT)分類器、k-近鄰(k-Nearest Neighbor,kNN)分類器、多層感知器(Multilayer Perceptron,MLP)分類器作為集成學(xué)習(xí)模型的個(gè)體分類器.
在Bagging、Boosting和Stacking的復(fù)合分類器中,將使用NB、DT、kNN和MLP分類器進(jìn)行分別測(cè)試.Bagging模型中通過投票方式獲得最終的分類結(jié)果,能夠有效降低使用單一分類器時(shí)的方差;在Boosting模型中,通過迭代修正測(cè)試數(shù)據(jù)集權(quán)重的方式,提升模型的精確度.Stacking模型中將分為兩層學(xué)習(xí)器,如圖2所示,在第0層(基學(xué)習(xí)器)通過k折分段的方式拆分原始數(shù)據(jù),交由其他個(gè)體分類器進(jìn)行分類預(yù)測(cè),再將結(jié)果遞交至第1層(元學(xué)習(xí)器)獲得最終的結(jié)果,從而實(shí)現(xiàn)更高的準(zhǔn)確性與較低的誤報(bào)率.

圖2 集成學(xué)習(xí)模型Fig.2 Ensemble learning model
學(xué)習(xí)模型構(gòu)建算法如算法2所示.
算法2.學(xué)習(xí)模型構(gòu)建算法
輸入:訓(xùn)練階段輸出的集合Sk,Su
輸出:正常行為、異常行為表.
1.Bag=Bagging(Su,Sk)
2.Boost=Boosting(Su,Sk)
3.Stack=Stacking(Su,Sk)
4.for k=1 to |Su| do
5. if(Su[k]∈Bag)‖(Su[k]∈Boost)‖(Su[k]∈Stack)then
6. Su[k]列入正常行為表GHT
7. Output(“正常行為”)
8. else
9. Su[k]列入異常行為表MHT
10. Output(“異常行為”)
11. end if
12.end for
對(duì)于各階段已經(jīng)正確識(shí)別的用戶行為進(jìn)行特征提取,并將正常行為特征保存到正常行為記錄表(Normal Behavior Table,NBT)中,將異常行為特征保存到異常行為記錄表(Abnormal Behavior
Table,ABT).在OPTICS與LOF計(jì)算中給出的正常請(qǐng)求都將更新至NBT中.同時(shí),若集成學(xué)習(xí)模塊中識(shí)別出的正?;虍惓5恼?qǐng)求,也相應(yīng)的保存到NBT或ABT中.對(duì)于應(yīng)用系統(tǒng)新產(chǎn)生的數(shù)據(jù)集,將優(yōu)先向NBT與ABT中進(jìn)行匹配.表2給出NBT的存儲(chǔ)格式,表3給出ABT的存儲(chǔ)格式.對(duì)于未能準(zhǔn)確匹配的新的數(shù)據(jù)集,交由集成學(xué)習(xí)模塊繼續(xù)進(jìn)行識(shí)別.

表2 正常行為記錄表Table 2 Recordof normal behavior

圖3 異常檢測(cè)流程Fig.3 Anomaly detection process
圖3給出了異常檢測(cè)的流程.

表3 異常行為記錄表Table 3 Recordofabnormal behavior
本實(shí)驗(yàn)環(huán)境是在CPU:Intel(R)Core(TM)i7-67003.40GHz,內(nèi)存:16G,操作系統(tǒng)為Windows 10的計(jì)算機(jī)上進(jìn)行.
由于已有的公開數(shù)據(jù)集無法滿足本實(shí)驗(yàn)的測(cè)試需求,因此,參照Charissa等人[26]所提出的數(shù)據(jù)生成原理模擬產(chǎn)生了本實(shí)驗(yàn)所需的測(cè)試數(shù)據(jù)集.
首先,構(gòu)建可以模擬生成符合高斯分布的數(shù)據(jù)產(chǎn)生模擬器,分別產(chǎn)生用戶正常行為與異常行為數(shù)據(jù).
1)對(duì)于用戶正常行為,通過隨機(jī)創(chuàng)建多個(gè)簇中心,以該簇中心模擬的創(chuàng)建符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)樣本點(diǎn)來模擬用戶一類的正常行為,但此類行為并不完全重合,存在微小的差異.
2)對(duì)于用戶異常行為,假設(shè)這種行為相對(duì)于大量的正常用戶行為而言是少量存在的.因此通過數(shù)據(jù)產(chǎn)生模擬器,創(chuàng)建少量、高方差的記錄.通過增大方差,使得這些行為數(shù)據(jù)表現(xiàn)的更加分散.

圖4 模擬器生成的一組二維數(shù)據(jù)集的分布情況Fig.4 Distribution of a set of two-dimensional data sets generated by the simulator
為驗(yàn)證模擬器產(chǎn)生實(shí)驗(yàn)數(shù)據(jù)的效果,創(chuàng)建一組由30000個(gè)二維數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合,其分布如圖4所示,在圖4中圓狀點(diǎn)對(duì)應(yīng)大量的正常行為,“x”狀點(diǎn)對(duì)應(yīng)異常行為.其中可以直觀的觀測(cè)到異常行為中有少部分存在于密集的正常行為中,且也有少部分正常行為分散在簇中心較遠(yuǎn)區(qū)域,該模擬結(jié)果恰好符合數(shù)據(jù)庫(kù)用戶行為的實(shí)際情況.
本實(shí)驗(yàn)使用本文所設(shè)計(jì)的模擬器來產(chǎn)生30000條測(cè)試數(shù)據(jù)集.在測(cè)試數(shù)據(jù)集的每條記錄中包含7個(gè)屬性元組,以及其對(duì)應(yīng)的“正?!被颉爱惓!睒?biāo)簽.
采用準(zhǔn)確度(Accuracy,Acc)、精度(Precision,Pre)、真陽率(True Positive Rate,TPR)、假陽率(False Positive Rate,F(xiàn)PR)、F-measure 對(duì)本方案進(jìn)行實(shí)驗(yàn)分析.Acc表示正確檢測(cè)請(qǐng)求占全部請(qǐng)求的百分比,如式(5)所示;Pre表示在全部樣本中正確檢測(cè)的請(qǐng)求百分比,如式(6)所示;TPR表示在實(shí)際為正常請(qǐng)求中,檢測(cè)為正常請(qǐng)求的百分比,如式(7)所示;FPR表示在實(shí)際為惡意請(qǐng)求中,檢測(cè)為惡意請(qǐng)求的百分比,如式(8)所示;F-measure是Pre與FPR的加權(quán)調(diào)和平均數(shù),如式(9)所示,當(dāng)F-measure較高時(shí)則能說明實(shí)驗(yàn)方法有效.
(5)
(6)
(7)
(8)
(9)
OPTICS聚類對(duì)于本文所提出方案的性能有著非常重要的影響.而OPTICS聚類的性能主要由參數(shù)ε與MinPts決定.為獲得最優(yōu)的聚類效果,對(duì)參數(shù)ε與MinPts的不同取值情況下的OPTICS聚類性能進(jìn)行測(cè)試,測(cè)試結(jié)果如表4所示.

表4 OPTICS聚類在ε與MinPts不同取值情況下的性能Table 4 Performance of OPTICS clustering under different values of ε and MinPts
觀察表4中1、2、5、6對(duì)照組可知,參數(shù)ε越小,其FPR值越來越小,F(xiàn)-measure越來越大,整體性能得到提升;但參數(shù)ε小到超過數(shù)據(jù)閾值時(shí),將無法完成聚類.觀察2、5、7對(duì)照組,整體識(shí)別效果良好,但由2-4、6-7對(duì)照組數(shù)據(jù)可知,MinPts值越大,其聚類準(zhǔn)確率有所下降.綜述上,對(duì)照組2,即ε=0.01且MinPts=10時(shí),聚類效果最優(yōu).

表5 個(gè)體分類器在單一使用與復(fù)合模式下的性能Table 5 Performance of individual classifier in single use and composite mode
因此,后續(xù)實(shí)驗(yàn)是在ε=0.01且MinPts=10的情況下完成的.
表5與圖5給出了當(dāng)ε=0.01,MinPts=10時(shí),在集成學(xué)習(xí)模塊中各個(gè)體分類器在單獨(dú)分類和復(fù)合模式下分類的性能情況.

圖5 個(gè)體分類器在單一使用與復(fù)合模式下的性能對(duì)比Fig.5 Performance comparison of individual classifier in single use and compound mode
由表5與圖4可知,使用復(fù)合模型相比于個(gè)體分類器在性能結(jié)果上有不同程度的提高.在不同分類器模型之間,MLP分類器具備較高的Pre、TPR以及較低的FPR,其F-measure分值也是最高的,該分類器在Bagging與Boosting模型下,提高Pre的同時(shí)也大幅度降低了FPR.

表6 4種個(gè)體分類器在Stacking模式下不同搭配的性能Table 6 Performance of four individual classifiers with different combinations in Stacking mode
表6給出了當(dāng)ε=0.01,MinPts=10時(shí),使用NB、DT、kNN和MLP分類器,在Stacking模型下的性能.其中在NB作為元分類器時(shí),其他3種分類器為基分類器時(shí),各項(xiàng)指標(biāo)表現(xiàn)最好.

表7 系統(tǒng)檢測(cè)結(jié)果Table 7 System detection results
通過上述實(shí)驗(yàn)結(jié)果表明,當(dāng)聚類參數(shù)ε=0.01,MinPts=10時(shí),集成學(xué)習(xí)中Bagging、Boosting復(fù)合模式情況下采用MLP個(gè)體分類器,Stacking模式下采用NB個(gè)體分類作為元學(xué)習(xí)器相比于其他組合而言具備更好的系統(tǒng)識(shí)別準(zhǔn)確率和更低的誤報(bào)率,可作為系統(tǒng)最優(yōu)的實(shí)現(xiàn)策略,實(shí)現(xiàn)后的系統(tǒng)異常檢測(cè)結(jié)果如表7所示.

表8 與同類方案的對(duì)比分析結(jié)果Table 8 Comparative analysis results with similar scheme
Gaikwad等人[24]所提出的方案是目前數(shù)據(jù)庫(kù)異常檢測(cè)領(lǐng)域中的典型方案,與本文所提出的方案屬于同類方案,因此將兩種方案進(jìn)行對(duì)比,對(duì)比結(jié)果如表8所示.由表8可知,本文所提出的方案在所有指標(biāo)方面均具有一定的優(yōu)勢(shì).
本文提出了一種基于OPTICS聚類與集成學(xué)習(xí)的數(shù)據(jù)庫(kù)異常檢測(cè)方法.對(duì)用戶的SQL操作日志數(shù)據(jù)集進(jìn)行預(yù)處理,由OPTICS聚類算法構(gòu)建用戶行為特征,利用Bagging、Boosting和Stacking算法組合的集成學(xué)習(xí)模塊對(duì)用戶行為作進(jìn)一步分析,并創(chuàng)建用戶行為特征庫(kù).基于用戶形成特征庫(kù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)異常檢測(cè).通過模擬數(shù)據(jù)庫(kù)用戶行為數(shù)據(jù),對(duì)本方案進(jìn)行測(cè)試,結(jié)果表明本方案能以較高的效率和準(zhǔn)確率檢測(cè)出數(shù)據(jù)庫(kù)用戶的異常行為,具有一定的實(shí)際應(yīng)用價(jià)值.