基于隱馬爾可夫模型的入侵檢測方法_第1頁
基于隱馬爾可夫模型的入侵檢測方法_第2頁
基于隱馬爾可夫模型的入侵檢測方法_第3頁
基于隱馬爾可夫模型的入侵檢測方法_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于隱馬爾可夫模型的入侵檢測方法趙靖,魏彬,羅鵬摘要:針對當前網絡安全事件頻發以及異常檢測方法大多集中在對系統調用數據的建模研究上等問題,提出一種基于隱馬爾可夫模型的入侵檢測方法。該算法基于系統調用和函數返回地址鏈的聯合信息來建立主機進程的隱馬爾可夫模型。此外,針對常用訓練方法存在的不足,設計了一種快速算法用以訓練模型的各個參數。實驗結果表明:基于系統調用和函數返回地址鏈的聯合信息的引入能夠有效區分進程的正常行為和異常行為,大幅度降低訓練時間,取得了良好的運算效果。關鍵詞:入侵本測;隱馬爾可夫模型;系統調用序列入侵檢測作為一種網絡安全防衛技術,可以有效地發現來自外部或內部的非法入侵,因此針對入

2、侵檢測算法的研究具有重要的理論和很強的實際應用價值。基于動態調用序列對系統的入侵行為進行發掘是入侵檢測領域主要的檢測方法之一。自Forrest在1996年首次提出使用系統調用進行異常檢測的思路和方法以來,有很多基于此的改進算法被提出。文獻提出一種基于頻率特征向量的系統調用入侵檢測方法,將正常系統調用序列抽取出的子序列的頻率特征轉換為頻率特征向量。文獻提出基于枚舉序列、隱馬爾科夫2種方法建立系統行為的層次化模型。然而,這類方法在誤報率以及漏報率方面仍與實際需求有著一定的差距。此外,由于隱馬爾可夫模型(hiddenmarkovmodel,HMM)是一種描述離散時間內觀察數據非常強大的統計工具,因此

3、在基于主機的入侵檢測研究中,HMM方法是目前重要的研究方向之一。美國新墨西哥大學的Warrender等首次于1999年在IEEESymposiumonSecurityandPrivacy會議上提出將HMM應用于基于系統調用的入侵檢測中。2002年,Qiao等提出使用HMM對系統調用序列進行建模,利用TIDE方法劃分狀態序列的短序列,建立正常數據的狀態短序列庫來進行檢測。2003年,Cho等提出用HMM對關鍵的系統調用序列進行建模。文獻設計了一種雙層HMM模型進行入侵檢測,而其中所用到的訓練方法存在局部最優以及時間效率較低等問題限制了其在實際中的應用。文獻依據在網絡數據包中發現的頻繁情節,設計了

4、基于HMM的誤用檢測模型。文獻設計了一種基于節點生長馬氏距離K均值和HMM的網絡入侵檢測方法。近些年,針對此方面的研究熱度依然不減。然而,從目前的研究情況看,雖然基于隱馬爾可夫模型的入侵檢測技術能取得較好的檢測效果,但是也存在著如下幾個問題:1)基于HMM的入侵檢測技術主要集中在對主機的命令序列或者系統調用序列進行建模,單一的數據源提供的信息較少,因此檢測效果仍然不夠理想。2)在線學習問題,隱馬爾可夫模型的建立需要消耗大量的時間和空間對參數進行調整學習,這導致了HMM難以得到有效的利用。綜上所述,為克服現有模型算法所存在的問題,提出一種新的基于系統調用和進程堆棧信息的HMM入侵檢測方法,該方法

5、的主要思想是將系統調用和函數返回地址信息作為檢測數據源,并利用HMM來構建主機特權進程的正常行為模型。其次,針對經典模型訓練法存在局部最優且算法的復雜度較高等問題,設計一個更為簡單的訓練算法來計算HMM的參數,進而提升算法效率。最后,設計了附加觀察值和附加狀態等參數,用以消除非完備的數據以及零概率對模型的影響。1、隱馬爾可夫模型馬爾可夫模型中的每個狀態都與一個具體的觀察事件相互對應,但實際問題可能會比Markov鏈模型所描述的情況更復雜,人們所能觀察到的事件一般情況下并不是與狀態完全一致對應的,而是通過概率相聯系,這樣的模型稱為HMM。HMM是由馬爾可夫過程擴充改變而形成的一種隨機模型算法,它

6、的基本理論是由數學家Baum在20世紀60年代后期建立起來的。該方法最早在20世紀70年代應用于語音處理領域,而在20世紀80年代逐漸廣泛應用于文本處理等各個領域中。20世紀90年代初以來,HMM及其各種推廣形式開始被用于圖像信號處理以及視頻信號處理等領域。HMM的狀態不能夠直接觀察到,而是可以通過觀測向量序列得到,每個觀測向量都是由概率密度分布表現為不同的狀態,因此其是具有一定狀態數的隱馬爾科夫鏈和顯示隨機函數集。而其在應用過程中需要解決3個基本問題:對于給定的一個觀察序列0=01,02,,0T開口一個HMM參數入=(兀,A,B),有:1)評估問題,2)解碼問題,3)訓練問題。2、基于HMM

7、入侵檢測方法2. 1模型的參數定義系統調用和函數返回地址反映了程序執行時系統內核層的服務行為。系統調用信息是進程對資源的請求,它從一定程度上反映了進程行為的變化過程。而層層嵌套的函數返回地址則反映了系統調用對內核資源請求的過程。把函數返回地址的序列稱為函數調用鏈,它代表了一個系統調用產生時完整的函數調用的路徑。假設函數f()是函數main()的一個子函數且被main()調用,且函數f()直接調用某個系統調用,則該調用對應的一條函數鏈為A=a1,a2,其中,a1為函數main()的返回地址,a2為函數f()的返回地址。系統調用與函數調用鏈的聯合信息能夠比僅僅使用系統調用信息更加有效、精確地描述進

8、程的行為,因此,采用系統調用和函數調用鏈來構建正常進程的隱馬爾可夫模型。HMM是一種雙重隨機過程,能夠有效地刻畫離散事件之間的轉移特性。傳統的基于HMM的入侵檢測方法中,系統調用是HMM的觀察符號,HMM的觀察序列是程序運行時的系統調用序列,而隱狀態是不可見的。隱狀態在模型中沒有具體的意義,一般選擇不同類型系統調用的個數作為HMM中隱狀態的個數。在提出的HMM方法中,系統調用作為HMM的隱狀態,而系統調用產生時對應的函數調用鏈作為HMM的觀察值。那么,隱馬爾可夫模型的參數可以定義如下:1)N,模型的隱狀態個數。定義隱狀態集合為S=S1,S2,,SN,qt為t時刻HMM所處的狀態。對于某個特權進

9、程,模型的隱狀態集合即為進程所有可能出現的不同類型的系統調用組成的集合,該集合中系統調用的個數即為隱狀態的個數。2)M,模型的觀察值個數。定義觀察值集合為V=v1,v2,,vM,Ot為t時刻HMM輸出的觀察值。對于某個特權進程,模型的觀察值集合即為進程所有可能出現的不同的函數調用鏈組成的集合,該集合中函數鏈的個數即為觀察值個數。3)狀態轉移概率矩陣A=aij,其中,aij=P(qt+1=Sj|qt=Si),1i,jN,表示當前狀態(系統調用)為Sj且下一個狀態(系統調用)為Si的概率值。該狀態轉移矩陣描述了系統調用之間的一步轉移概率。4)輸出概率矩陣B=bj(k),其中,bj(k)=P(Ot=

10、vk|qt=Sj),1jN,1kM,表示當前狀態(系調用)為Sj時,對應的觀察值(函數調用鏈)為vk的概率值。如果概率值為0,則表示進程執行時,進程不可能通過執行函數路徑vk得到當前系統調用Sj。5)初始概率矩陣兀=兀1,其中,兀i=P(q1=Si),1iN,表示在初始時刻處于狀態(系統調用)Si的概率值。根據上面的參數定義,可以得到關于進程系統調用和堆棧信息的隱馬爾可夫模型入=(兀,A,B)。2. 2模型的訓練隱馬爾可夫模型的訓練算法是基于HMM的入侵檢測應用的關鍵問題。經典的訓練方法Baum-Welch算法是一種迭代算法,它利用前向后向概率來解決參數估計問題。但是BW算法是一種局部最優算法

11、而且算法的復雜度較高,需要消耗大量的時間進行訓練,這些缺點影響了HMM的檢測效果和實用性。在提出的方法中,系統調用是作為模型的狀態出現的,它對于整個模型是可見的。因此,可以利用一個更為簡單的訓練算法來計算HMM的參數。給定某個特權進程的一條系統調用序列和相應的函數調用鏈序列對HMM進行訓練。假設進程的函數調用鏈序列為O=O1,O2,,OT,系統調用序列為Q=q1,q2,qT,其中,Ot為進程執行系統調用qt時對應執行的函數調用鏈。HMM模型入=(兀,A,B)的各參數可由如下公式計算得到:aij=NijNi*(1)兀i=NiNto(2)bj(k)=MjkMj*(3)其中:Nij為訓練進程中當前時

12、刻t的狀態qt為Si,下一時刻t+1的狀態qt+1為Sj的個數;Ni*為訓練進程中當前時刻的t狀態qt為Si,下一時刻t+1的狀態qt+1為S=S1,S2,,SN中任一系統調用的個數;Ni為訓練進程中當前時刻t的狀態qt為系統調用Si的個數;Nto為訓練進程中系統調用的總個數;Mjk為訓練進程中當前時刻t的狀態qt為系統調用Sj時,觀察符號Ot為函數調用鏈Vk的個數;Mj*為訓練進程中當前時刻t的狀態qt為系統調用Sj時,觀察符號。1為V=v1,v2,,vM中任一函數調用鏈的個數。由于完備的訓練數據是很難獲得的,因此在實際檢測中有可能出現之前在訓練數據集中未曾學習到的系統調用或者函數調用鏈;另

13、外當服務進程遭受入侵時,也會產生一系列未曾在訓練數據中出現過的系統調用或函數調用鏈??紤]到以上因素,引入一個附加觀察值vM+1和附加狀態SN+1來表示這些沒有出現過的觀察值和狀態。在隱馬爾可夫模型中,參數定義如下:ttSN+1=106,aSN+1Sj=aSiSN+1=10-6,bj(VM+1)=106,iN,1jM。為了避免檢測時出現概率值為零的情況,在狀態轉移矩陣A和初始概率分布兀中為零者,也賦予一個固定的小概率值106。3. 3異常檢測基于正常程序行為的HMM訓練完成以后,在實驗中,以每個進程作為研究對象,檢測某個進程是否正常。因此,給定一組包含系統調用和函數調用鏈的數據,首先按照進程號對

14、它們進行分組,然后將每個進程產生的系統調用和函數調用鏈作為一組進行檢測。在實際的異常檢測中,長度為L的滑動窗用以對上述數據進行分割,其中步距為1。利用正常數據訓練得到的HMM參數模型入=(兀,A,B),對于給定的一條函數調用鏈序列X=OtL+1,,Ot(該函數鏈對應的系統調用序列為Y=qt-L+1,,qt),可以按如下公式計算它出現的概率:P(X|入)=兀qtL+1bqtL+1(OtL+1)nt1i=tL+1aqiqi+1bqi+1(Oi+1)(4)此外,文中將異常度8定義為如下的形式:8=NNCNTS(5淇中:NNC為不匹配短序列數,定義為輸出概率小于初始設定閾值數目;NTS為測試進程中的總

15、的短序列數。在實驗中將求得的異常度與實驗中不斷調整得到的閾值Sh進行比較,如果異常度大于該閾值,就認為產生此測試序列的進程可能為異常;否則認為是正常。3、實驗結果與分析4. 1實驗數據實驗數據由在RedhatLinux7.2上跟蹤Ftp和SambaHttpd特權進程所獲得,并將其分為訓練以及測試2個部分。其中,訓練數據是部分正常數據,而測試數據則由其余正常數據以及異常數據構成。正常數據由模擬用戶各種正常行為獲得,而異常數據則是對進程進行模擬攻擊得到。3. 2實驗結果每一個正常數據軌跡都是正常狀態下,一個特權從開始產生到最后結束的系統調用和函數調用鏈序列。每一個異常數據軌跡都是特權進程從開始被攻

16、擊到最后進程結束的系統調用和函數調用鏈序列。能夠有效區分進程的正常狀態和異常狀態是評價一個入侵檢測方法好壞的重要標準。進程的正常序列和進程的異常序列之間的異常度差異越大,則越容易發現針對系統的入侵行為。可見正常進程和異常進程的平均異常度差異非常明顯,因此可以作為正常與異常的區分。誤報率和漏報率是評價入侵檢測方法有效性的一個重要標準。實驗中將Warrender提出的經典HMM入侵檢測方法和提出的HMM入侵檢測方法進行比較。2種方法都采用異常度作為判定進程是否異常的指標,同時滑動窗口的長度均選擇為L=6o實驗采用白數據為Ftp和Samba這2種特權進程的正常序列和異常序列。由于Warrender的

17、方法是基于系統調用來對進程的隱馬爾可夫模型建模的,因此該方法只使用實驗數據中各進程的系統調用序列進行訓練和測試。為了評估提出的入侵檢測方法的實時性,在實驗中,對2種方法的訓練時間進行了比較。實驗所用計算機配置為CPUPengtiumIV2.6GHz,512MBDDR內存。3. 3實驗結果的分析與討論從上述結果可以看出:1)所提出的基于系統調用和進程堆棧信息的HMM入侵檢測方法是有效的。無論是Ftp數據還是Samba數據,異常序列的異常度比正常序列的異常度明顯要高得多。因此,使用所提出的方法能夠很容易地將程序的正常行為和異常行為區分出來,從而給檢測系統提供一個較大的閾值范圍選擇。2)提出的方法與

18、Warrender的方法都能夠檢測出所有的異常進程,2個方法對于測試數據的漏報率相同,在誤報率方面提出的方法要比Warrender方法略好??梢姡岢龅姆椒梢员3衷谝粋€較低誤報率的情況下,有效且準確地檢測出針對系統的攻擊行為。3)提出的方法對正常行為模型的訓練的時間消耗要遠遠少于Warrender方法。例如,訓練近83萬條系統調用需耗時約36min左右,而經典的HMM方法則需要耗時約22h。4、總結首先介紹了隱馬爾可夫模型的基本概念,隱馬爾可夫模型的3個基本問題及相關算法。然后根據隱馬爾可夫模型的結構特點,提出一種利用系統調用和函數調用鏈2方面信息來聯合構建特權進程的正常行為模型的方法,將系統調用作為隱馬爾可夫模型的隱狀態,函數調用鏈作為隱馬爾可夫模型的觀察符號,利用一種更為簡單的訓練算法來得到模型的各個參數。檢測時,根據一段函數調用鏈的序列連續出現的概率和異常度來檢測整條序列是否異常。實驗結果表明:提出的方法能夠有效區分進程的正常行為和異常行為;與經典HMM方法相比,該方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論