董玲 張宏莉 葉麟
摘要:系統(tǒng)調(diào)用是操作系統(tǒng)和用戶程序的接口, 任何程序必須通過系統(tǒng)調(diào)用才能執(zhí)行。近年來,網(wǎng)絡安全事件頻發(fā),基于系統(tǒng)調(diào)用序列分析的入侵檢測方法成為了網(wǎng)絡安全研究的熱點技術之一。本文提出了基于枚舉序列、隱馬爾科夫兩種方法建立系統(tǒng)行為的層次化模型,不同于傳統(tǒng)意義上的單層次模型。在新墨西哥大學提供的實驗數(shù)據(jù)上,本方法在檢測程序異常行為的準確度和響應時間方面都得到了很好的效果,表明該方法更適合基于主機入侵的在線檢測方法。
關鍵詞:入侵檢測; 系統(tǒng)調(diào)用序列; 隱馬爾科夫模型
中圖分類號:TP393 文獻標識碼:A文章編號:2095-2163(2014)04-0013-04
Abstract:System calls are the interface between operating system and user programs. Execution of each program must use some system calls. In recent years, network security incidents occur frequently, intrusion detection method based on the system call sequence analysis has become one of the hot network security technology researches. This paper presents a multi-layer model of program behaviours based on both hidden Markov models and enumerating methods, which differs from the conventional single layer approach. On experimental data provided by the University of New Mexico, experimental results have shown that the model is better in detecting anomalous behaviour of programs in terms of accuracy and response time, which indicates that this method is suitable for online host-based intrusion detection systems.
Key words:Intrusion Detection; System Call Sequence; Hidden Markov Model
0引言
計算機產(chǎn)業(yè)已經(jīng)滲透到金融、貿(mào)易、軍事、科技等諸多關鍵領域,無論是個人還是政府、或企業(yè),都希望獲得一個安全的網(wǎng)絡環(huán)境,除了能夠及時發(fā)現(xiàn)潛在的入侵行為,還要能夠保證信息安全。而針對當前主流操作系統(tǒng)的研究分析可知,無論要實施何種危害程度的攻擊行為,都需要通過用戶空間執(zhí)行系統(tǒng)調(diào)用而進入內(nèi)核空間,以發(fā)起各種攻擊。因此作為用戶空間和內(nèi)核空間通信的接口,對系統(tǒng)調(diào)用的優(yōu)化實現(xiàn)即能夠保證系統(tǒng)的相對安全。對此可具體描述為,通過對進程正常運行時的執(zhí)行軌跡建模來刻畫進程的正常運行狀態(tài), 從而建立了執(zhí)行軌跡的局部模式特征, 以此為基礎,與這些模式的偏離即認為是潛在的入侵行為。
1996年,F(xiàn)orrest[1]等人就是由這種思想出發(fā),提出了一種基于定長系統(tǒng)調(diào)用子序列構造的特征庫來區(qū)分UNIX系統(tǒng)的正常和異常行為的檢測技術。在此后的研究中,很多學者借鑒了這種思想,提出了大量的模型[2]和方法,包括隱馬爾科夫模型[3]、數(shù)據(jù)挖掘方法[4]、機器學習等。但由于訓練數(shù)據(jù)少,導致正常行為模式庫中的短序列并不完整,因此傳統(tǒng)的短序列方法會有較高的誤報率。
本文的方法擴展了枚舉序列的方法,將隱馬爾科夫模型引入到該方法中,構建一個層次化的模型,有效克服了傳統(tǒng)方法低可靠性的弊端,同時也解決了數(shù)據(jù)庫不完整的問題。該方法的基本過程是:首先建立正常行為模式庫,對于檢測序列,很容易發(fā)生基于短序列庫的不匹配行為,將不匹配序列輸入到隱馬爾科夫模型作進一步的分析判定,再利用forward算法計算其概率P,并根據(jù)概率值P最終判定此序列的性質(zhì)。
1入侵檢測的層次化模型
1.1枚舉序列法概述
枚舉序列法的主要思想是記錄每個正常行為的系統(tǒng)調(diào)用運行序列,采用一定的算法建立正常行為模式庫,再與未知行為的系統(tǒng)調(diào)用序列進行比較來判別入侵,而且把區(qū)域內(nèi)不匹配數(shù)作為異常行為的一種度量。
假設局部區(qū)域的大小選為L,則將長度為K 的窗口通過待檢測序列,一次滑動一個系統(tǒng)調(diào)用,并將得到的序列與正常行為模式庫中的序列作以比較,再記錄發(fā)生了多少次不匹配,同時將不匹配數(shù)M與閾值ρ(1≤ρ≤L)進行比較,若 M>ρ,則認為有異常行為發(fā)生。建立這樣的正常行為模式庫只需要遍歷一次序列,而且為了節(jié)省存儲空間、以及提高匹配效率,可將序列進行樹狀存儲。
此方法簡單易行,但主要的缺點是不能從過去觀察到的行為中歸納出當前的情況。因此,若正常的程序行為未被充分捕獲到,系統(tǒng)會將未見過的行為當作異常,這就使誤報率相應地增大。
1.2隱馬爾科夫模型
參考文獻:
[1]FORREST S, HOFMEYR S A, SOMAYAJI A, et Al. A sense of self for unix processes[J]. Proceedings of the 1996 IEEE symposium on research in security and privacy, 1996:120–128.
[2]WARRENDER C, FORREST S, PEARLMUTTER B. Detecting intrusion using system call: alternative data models[A].1999 IEEE Symposium on Security and Privacy. Oakland.USA,1999.
[3]QIAO Y , XIN X W , BIN Y, et al. Anomaly intrusion detection method based on HMM[J]. Electronics Letters, 2002 , 38 (13) : 663-664.
[4]LEE W, STOLFO S. Data mining approaches for intrusion detection[C]// Proceedings of the 7th USENIX Securiposium. Usenix Association,1998.
[5]RABINER L R. A tutorial on hidden Markov model and selected applications in speech recognition[C]//Proceedings of IEEE,1989,77(2).
[6]新墨西哥大學數(shù)據(jù)集.http://www.cs.unm.edu/~immsec/systemcalls.htm.