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