文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)07-156-03
由于當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,入侵檢測(cè)技術(shù)得到了研究者的廣泛重視,,F(xiàn)orrest[1]等人在1996年首次提出以進(jìn)程正常運(yùn)行時(shí)產(chǎn)生的一定長(zhǎng)度的系統(tǒng)調(diào)用短序列作為模型來(lái)表現(xiàn)進(jìn)程正常運(yùn)行時(shí)的狀態(tài),。Lee[2]等人則用RIPPER從系統(tǒng)調(diào)用序列中挖掘正常和異常模式,以規(guī)則的形式來(lái)描述系統(tǒng)的運(yùn)行狀態(tài),,建立了一個(gè)更簡(jiǎn)潔有效的系統(tǒng)正常模型,。美國(guó)新墨西哥大學(xué)的Warrender[3]以系統(tǒng)調(diào)用為審計(jì)數(shù)據(jù),,進(jìn)行了基于隱馬爾可夫模型HMM(Hidden Markov Model)的程序行為異常檢測(cè)研究,。美國(guó)普渡大學(xué)的Lane [4]及其團(tuán)隊(duì)則利用了Unix用戶的shell命令作為審計(jì)數(shù)據(jù),進(jìn)行了基于HMM的用戶行為異常檢測(cè)研究和實(shí)驗(yàn),。西安交通大學(xué)的周星[5]提出一種利用進(jìn)程堆棧中的函數(shù)返回地址鏈信息來(lái)提取不定長(zhǎng)模式的方法,,并基于系統(tǒng)調(diào)用序列及其對(duì)應(yīng)的不定長(zhǎng)模式序列構(gòu)建了一個(gè)兩層的HMM來(lái)檢測(cè)異常行為,,取得了更低的誤報(bào)率和漏報(bào)率。
在以上檢測(cè)方法的基礎(chǔ)上,,本文提出一種新的基于HMM的用戶行為異常檢測(cè)方法,,與參考文獻(xiàn)[6]中提出的基于HMM的檢測(cè)方法相比,檢測(cè)效率和實(shí)時(shí)性相對(duì)較高,,在檢測(cè)準(zhǔn)確率方面也有較大優(yōu)勢(shì),。
本文用一種不同的方法來(lái)建立和訓(xùn)練HMM模型,降低不必要的系統(tǒng)占用,,并得到一個(gè)較好的正常行為模式與異常行為模式的區(qū)分效果,。
2 基于HMM的用戶行為異常檢測(cè)方法
2.1 數(shù)據(jù)預(yù)處理
本文所采用的原始數(shù)據(jù)來(lái)自普渡大學(xué)的Lane團(tuán)隊(duì),他們花費(fèi)了很長(zhǎng)時(shí)間去跟蹤了9個(gè)Unix用戶在2年內(nèi)的活動(dòng)記錄,,以保證這些記錄的真實(shí)性,。
參考文獻(xiàn)[4]對(duì)這些數(shù)據(jù)記錄進(jìn)行了預(yù)處理,將每次的命令運(yùn)用相同的起始,、終止符隔開(kāi),,將各命令中所出現(xiàn)的地址均用統(tǒng)一標(biāo)識(shí)方法代替,所涉及的文件也用相同的標(biāo)識(shí)方法代替,,這樣的預(yù)處理使得原始數(shù)據(jù)更加整齊且易于分析,。在此基礎(chǔ)上,本文又作了進(jìn)一步處理,,對(duì)于命令行中所有出現(xiàn)的參數(shù)進(jìn)行處理,,即將命令中的附加參數(shù)與命令本身結(jié)合設(shè)定為命令序列中的一條命令,而對(duì)于地址,、網(wǎng)絡(luò)等記錄則直接從命令序列流中刪除,。表1中左欄的數(shù)據(jù)流經(jīng)過(guò)本文二次處理后,該命令流序列如右欄所示,,左欄中的14條記錄經(jīng)過(guò)處理后,減少為右欄中的8條記錄,,減少了近50%。
采用本文方法進(jìn)行數(shù)據(jù)預(yù)處理的依據(jù)是:(1)在實(shí)際訓(xùn)練及檢測(cè)中,,地址等參數(shù)并沒(méi)有實(shí)際意義,。無(wú)論是按照shell命令序列長(zhǎng)度,還是按照各命令本身出現(xiàn)頻率作為劃分狀態(tài)標(biāo)準(zhǔn),都并不需要此類命令內(nèi)容,;(2)當(dāng)利用大數(shù)量的shell命令序列進(jìn)行建模和檢測(cè)時(shí),,進(jìn)行這樣的二次處理可以降低對(duì)系統(tǒng)存儲(chǔ)空間的需求。
2.2 HMM建模
本文所建立的HMM模型的目的是為了描述一個(gè)正常用戶行為,,用W代表合法用戶正常行為模式的總類數(shù),,而相對(duì)應(yīng)的shell命令集合則如C=(L(1),L(2),…,L(W+1)),其中L(j)為包含若干個(gè)長(zhǎng)度為l(j)的shell命令序列,。W的值越大意味著對(duì)于命令集合分類得越精細(xì),,所需要的系統(tǒng)資源也就越多,。本文針對(duì)兩種不同的shell命令集合分類方法進(jìn)行了對(duì)比實(shí)驗(yàn),方法一是參考文獻(xiàn)[6]中使用的方法,;方法二是本文提出的改進(jìn)隱馬爾科夫方法,。
(2)設(shè)定W個(gè)序列出現(xiàn)頻率門限,記為η1,η2,η3,…,ηw,,該門限的作用是判定每個(gè)Seqmj是否可以成為正常用戶行為觀測(cè)值,,低于門限值的即舍去。
在C中的L(W+1)用來(lái)記錄未知和異常模式記錄的值,,對(duì)于L(W+1)下shell命令記錄的判定方法為:當(dāng)l(W)=1時(shí),,附加狀態(tài)W+1對(duì)應(yīng)的觀測(cè)值集合L(W+1)是由長(zhǎng)度為1、且在Sw中出現(xiàn)頻率小于門限值?濁w的shell命令序列構(gòu)成,而當(dāng)l(W)≠1時(shí),則L(W+1)由所有長(zhǎng)度為1的shell命令序列構(gòu)成,。
2.2.2 改進(jìn)HMM方法
用戶對(duì)于日常操作都有一套自己的命令使用頻率,,本文依據(jù)用戶與用戶之間的命令使用頻率差別作為行為分類依據(jù)。本文方法中的C表示方法與參考文獻(xiàn)[6]中一致,,C=(L(1),,L(2),…,L(W+1)),W的值增大,則出現(xiàn)頻率的分類更細(xì)化,,也會(huì)增加系統(tǒng)存儲(chǔ)和處理量,,但與參考文獻(xiàn)[6]的狀態(tài)分類方法相比要小很多。假設(shè)正常用戶的訓(xùn)練數(shù)據(jù)為R=(R1,,R2,,…,Rn),此時(shí)的用戶正常行為觀測(cè)值集合建立起來(lái)就相對(duì)簡(jiǎn)單,,根據(jù)訓(xùn)練數(shù)據(jù)R,,生成W個(gè)出現(xiàn)頻率分別為l(1),l(2),…,l(W)的shell命令序列流,表示為S1,S2…,Sw,,每個(gè)Si中包含了所有出現(xiàn)在頻率區(qū)域的shell命令記錄,。同樣,劃分在附加狀態(tài)W+1下的shell命令序列,,也就是未知和異常行為模式的值,。
上述兩個(gè)建模方法各有利弊,對(duì)于參考文獻(xiàn)[6]的方法,,在利用命令序列長(zhǎng)度建模時(shí),,其優(yōu)點(diǎn)是思路清晰,不同的狀態(tài)之間不會(huì)發(fā)生重疊,,適用性強(qiáng),。缺點(diǎn)是由于每個(gè)狀態(tài)中Si都將存儲(chǔ)超過(guò)門限值的所有shell命令序列,這將是一個(gè)很大的存儲(chǔ)量(尤其是當(dāng)W達(dá)到一定值時(shí)。而本文方法的,,優(yōu)點(diǎn)是利用命令的出現(xiàn)頻率分類,由于命令種類(即便加上了參數(shù))的局限性,,所需要的存儲(chǔ)量將會(huì)少得多,,運(yùn)算起來(lái)更快,也更為容易理解,。缺點(diǎn)則是對(duì)于每個(gè)狀態(tài)對(duì)應(yīng)的頻率區(qū)域的劃分將更多地依賴歷史記錄和經(jīng)驗(yàn),。
2.3 HMM的訓(xùn)練
訓(xùn)練過(guò)程也就是參數(shù)估計(jì)過(guò)程,這個(gè)過(guò)程在研究中是極其重要的,,傳統(tǒng)的思路是利用Baum-Welch 算法實(shí)現(xiàn),,而實(shí)際上該算法并不是唯一的,也不是最好的算法,。本文采用參考文獻(xiàn)[3]提出的改進(jìn)算法來(lái)實(shí)現(xiàn)對(duì)該HMM模型的訓(xùn)練,。
2.4 HMM的檢測(cè)
檢測(cè)階段的主要工作是對(duì)被監(jiān)測(cè)用戶在被監(jiān)測(cè)時(shí)間內(nèi)執(zhí)行的shell命令行進(jìn)行處理,并利用在訓(xùn)練中已產(chǎn)生的HMM模型,計(jì)算相應(yīng)的判決值,進(jìn)而對(duì)該用戶的行為類別進(jìn)行判別,。
假設(shè)在所需的檢測(cè)時(shí)間內(nèi)記錄該時(shí)間段內(nèi)用戶的命令流,,記為R=(R1,R2,,…,Rn),。其中,Ri為第i個(gè)獨(dú)立的shell命令序列,,n為shell命令記錄的總量,此時(shí)的命令序列R中的值是按照時(shí)間順序依次得到的,。
利用訓(xùn)練中的參數(shù)匹配方法,對(duì)于命令序列R進(jìn)行操作,,得到狀態(tài)轉(zhuǎn)移序列q=(q1,,q2,…,qx),,其中,,x為狀態(tài)轉(zhuǎn)移序列內(nèi)狀態(tài)的總數(shù),qi代表R中按時(shí)間排序的第i 個(gè)狀態(tài)。HMM檢測(cè)流程如下:
(1)根據(jù)訓(xùn)練數(shù)據(jù)R生成w個(gè)shell命令序列流S1,S2…,Sw,,設(shè)定初始m:=1,j:=1,n:=0,。
(2)如果m≤r-l(1)+1,則將Seqmj與L(j)進(jìn)行比較,,
3 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析
在本文的實(shí)驗(yàn)中,利用其中4個(gè)用戶userl,、user2、user3,、user4的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),,并設(shè)合法用戶為user2,將余下的user1、user3,、user4視為非法或未知用戶,。在該4個(gè)用戶的數(shù)據(jù)記錄中皆有超過(guò)15 000條命令行記錄。對(duì)于正常用戶,,實(shí)驗(yàn)中將利用其中的前5 000條命令進(jìn)行正常行為模式的訓(xùn)練,,得到HMM觀測(cè)值集合并確定HMM參數(shù),后5 000條命令作為正常行為的檢測(cè),。對(duì)于非法用戶,,將分別用其中的5 000條命令進(jìn)行異常檢測(cè)的測(cè)試。在HMM模型建立及訓(xùn)練階段的參數(shù)設(shè)置為W=3,,C={3,,2,1},。在HMM模型建立過(guò)程中,,從正常用戶user2的前5 000個(gè)shell命令中得到C(1),C(2),C(3)所對(duì)應(yīng)的命令序列個(gè)數(shù)如表2所示。
參考文獻(xiàn)[6]方法的異常檢測(cè)結(jié)果如圖1所示,上方曲線為合法用戶user2的正常行為測(cè)試數(shù)據(jù)對(duì)應(yīng)的判決值曲線,,下方的3條曲線為非法用戶的異常行為測(cè)試數(shù)據(jù)對(duì)應(yīng)的判決值曲線(以下同),。
改進(jìn)的HMM方法得到的異常檢測(cè)測(cè)試結(jié)果如圖2所示??梢钥闯?,相對(duì)于user2,三組非法用戶的值更加靠近于3,,表明權(quán)值為2 和1 的命令序列所表示的合法用戶的正常行為模式在3個(gè)非法用戶行為序列中較少出現(xiàn),,從圖1、圖2 中可以看出,,改進(jìn)的HMM方法使得正常行為和異常行為測(cè)試數(shù)據(jù)對(duì)應(yīng)的判決值曲線具有良好的可分性,。
參考文獻(xiàn)[6]方法用于建模的命令序列有1 140個(gè),而改進(jìn)的HMM方法只有136個(gè),,大大節(jié)約了系統(tǒng)存儲(chǔ)空間,,所以,改進(jìn)HMM的方法具有較好的檢測(cè)準(zhǔn)確度,,本文在運(yùn)算成本和計(jì)算效率之間取得了權(quán)衡,,在實(shí)驗(yàn)中取得了一個(gè)很好的效果。
本文提出一種基于隱馬爾可夫模型的用戶行為異常檢測(cè)新方法,,并通過(guò)實(shí)驗(yàn)對(duì)該方法的性能進(jìn)行了測(cè)試,。實(shí)驗(yàn)表明,該方法具有很高的檢測(cè)準(zhǔn)確率和較強(qiáng)的可操作性,。但需要指出的是,,該方法中的一些檢測(cè)思想雖然適用于以系統(tǒng)調(diào)用為審計(jì)數(shù)據(jù)的程序行為異常檢測(cè),,但具體的操作方式及檢測(cè)性能還有待分析和驗(yàn)證。
參考文獻(xiàn)
[1] FORREST S, HOFMEYR S A, SOMAYAJIA. A sense of self for UNIX processes[C]. Proceedings of IEEE Symposium on Security and Privacy, Los Alamos, California,1996.
[2] LEE W, STOLFO S J. Data mining approaches for intrusion detection[C].Proceedings of the 7th US ENIX Security Symposium, San Antonio, Texas, 1998.
[3] WARRENDER C, FORREST S, PEARLMUTTER B. Detecting intrusions using system calls: alternative data models[C]. Proceedings of the IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1999:133-145.
[4] LANE T. Machine learning techniques for the computer security domain of anomaly detection[D].Purdue University 2000.
[5] 周星, 彭勤科, 王靜波. 基于兩層隱馬爾可夫模型的入侵檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用研究, 2008,25(3):911-914.
[6] 鄔書躍,,田新廣.基于隱馬爾科夫模型的用戶行為異常檢測(cè)新方法[J].通信學(xué)報(bào),2007,28(4):38-43.