錢峰
中共無錫市惠山區委黨校 江蘇 214177
由于入侵檢測本質上是個數據處理過程,而數據挖掘技術能從大量數據中發現潛在有用的知識,所以數據挖掘應用到入侵檢測中的優勢是顯而易見的。而網絡中的數據屬于數據流形式,不同于傳統的基于集合的相對靜止的數據。數據流是頻繁變化的,數據量事前是不確定的,也可能是無限的。歸納起來,數據流的數據流挖掘就是在流式數據上發現提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程。一個數據流挖掘模型處理的數據不再是從磁盤和內存中隨機訪問讀取的數據,而是一個或多個連續的、無窮的數據項組成的序列,涉及到動態更新,增量式挖掘等問題。
盡管基于數據挖掘的入侵檢測研究取得了許多理論成果,也有一些系統在實際中得到了一定程度的應用,但是,這一研究領域依然存在著許多有待解決的問題,有待于進一步完善:高誤警(誤報)率、需要大量的審計數據,學習過程慢、對未知攻擊的檢測不夠理想、處理速度上的瓶頸、將技術應用于設計仍存在困難。
本文首先簡要介紹了移動窗口的工作原理,加權的移動窗口概念及原理,并將加權移動窗口的方法應用于入侵檢測,給出初步的基于加權移動窗口入侵檢測模型系統,能夠很好的分析動態數據流,重點監測指定窗口,提高了網絡的安全保障效率。
移動窗口技術是指隨時提供N個時間段的信息,每當有新的數據到來時,“窗口”前滑,將最新的時間段內的數據包含進去,把窗口內最舊的時間段內的數據丟棄,窗口的大小保持不變。
一個重疊移動窗口,只使用當前窗口內的審計數據更新正常行為簡檔,由此過濾掉過時的數據,以反映最近的網絡系統行為。同時維護兩個項目集,頻繁集(具有高支持度和置信度)和負邊際(支持度和置信度低于閾值,但非常接近)。
加權移動窗口算法假設移動窗口的大小為w,在任意時間點n(當前時間戳),移動窗口模型查詢范圍是{amax(0,n-w+1), … ,an}。時間點max (0,n-w+1)之前的數據全部忽略不計。隨著數據的不斷到達,窗口中的數據也不斷平移。
項集是一組項目的集合。如果一個項集的加權支持頻度大于或等于最低加權支持頻度,一個大小為k的項集稱為k-項集。假設窗口數是n,一個窗口的大小記做t,當前時刻為Ti;項集中的項為別為x1,x2,…,xk。只考慮在Ti和(Ti-n*t)時間范圍內的事務。SPij({x1,x2,…,xk})表示事務的標識符集合,這里的事務指包含出現在窗口Wij(1≤j≤n)中項集{x1,x2,…,xk}的事務。CSi({x1,x2,…,xk}) 是SPij({x1,x2,…,xk})(1≤j≤n)的并集;αj表示wij的權重;|SPij({x1,x2,…,xk})|代表SPij({x1,x2,…,xk})中事務標識符的數量。
定理2 備選k-項集(k≥2)的集合Ck定義如下:
Ck={{Xp[1], Xp[2], …, Xp[k-1],Xq[k-1]}| Xp∈ Lk_1∩Xq∈ Lk_1∩Xp[1]= Xq[1],Xp[2]= Xq[2],…,∩Xp[k-2]=Xq[k-2] ∩Xp[k-1] 只查找一次數據庫,當一個備選項集c生成時,我們可以通過審核SPij的值來判斷其是否是頻繁項集。假定c由頻繁項集Xp和Xq生成,則SPij(c)=SPij(Xp)∩SPij(Xq)。 為了提高入侵檢測的效率,本文提出了一種基于加權移動窗口技術的入侵檢測系統模型,如圖1所示。 圖1 基于加權移動窗口的入侵檢驗系統模型 該模型主要包括數據采集, 模式生成及更新,入侵檢測,響應等幾部分組成。其中在模式生成及更新部分采用了加權移動動窗口和數據挖掘技術,從而能及時發現數據流的概念漂移,并更新相應的模式。系統分為建模和檢測兩個階段:建模階段包括對系統和用戶的正常行為建模和對攻擊行為建模,首先在沒有入侵的純凈數據集上用最大頻繁項集來建立網絡系統和用戶的正常行為模型,然后在含有入侵行為的訓練數據集上,通過加權移動窗口來捕獲短時間內發生的頻繁事件,建立攻擊模型。檢測階段則是用在建模階段得到的系統和用戶正常行為模型和攻擊模型對加權移動窗口中的頻繁記錄進行標記,用其監視網絡流量數據,將最大頻繁項集算法應用于網絡流量數據上,找出其中異常頻繁的項集,與正常行為模型和攻擊模型進行比較。將含有攻擊模式的記錄標記為攻擊記錄,將頻繁項集被正常行為模型完全覆蓋的記錄標記為正常記錄,將正常模型和攻擊模型都不能確認的頻繁項集的記錄標記為可疑記錄,將不含有任何頻繁項集的記錄標記為低頻記錄。可疑記錄將由用戶判定它是正常的還是異常的,低頻記錄做進一步的分析可以發現是否有慢掃描類的攻擊,對入侵攻擊行為進行自動的響應。這樣反復從加權移動窗口獲取最近的數據樣本來重建分類模型,使用最新的模型為下次模型重建期間的樣本進行分類,并暫存最新的分類結果以便為下次模型重建提供訓練樣本。 本系統主要包括三個模塊:歷史數據處理模塊、實時數據處理模塊、檢測響應模塊。各模塊的功能如下: (1) 歷史數據處理模塊 該模塊主要功能是對用戶的歷史數據進行數據挖掘,從而形成基于分類規則和行為規則的知識庫。 用戶歷史數據是在過去一段時間內采集的網絡數據,在試驗中可采用相關網站下載的數據(如美國DARPA入侵檢測評估數據);將它輸入到分類器的歷史數據類標號已知,輸入到關聯/序列模式挖掘的歷史數據正常行為已得到確認。歷史數據經過過濾、轉換形成訓練數據集,經過數據預處理后,一方面通過分類器形成判定誤用檢測的分類規則;另一方面通過關聯/序列模式挖掘形成用戶的正常行為規則。再將兩方面的規則合并,形成入侵檢測判定的知識庫。 (2) 實時數據處理模塊 該模塊首先是獲取網絡實時數據,并進行預處理,然后一方面通過數據挖掘,形成用戶的正常行為規則,并與歷史數據的正常行為規則進行比較,若為新規則就補充到知識庫中;另一方面通過簡單規則檢測引擎進行快速檢測,判定有無入侵,然后再通過知識庫進行入侵檢測的判定。 (3) 檢測響應模塊 檢測模塊對來自數據采集模塊傳送過來的數據進行處理和分析,是整個入侵檢測系統的核心,關系到整個入侵檢測系統運行效率的好壞。它主要是根據知識庫對實時數據進行入侵檢測的判定,并做出響應;判定后的數據送到存儲系統,并通過實時控制實現對歷史數據的動態更新,實現了系統的自學習能力及智能檢測的功能。而結構中應設立定時器,目的是為避免歷史數據的頻繁更新帶來頻繁的數據挖掘、浪費系統資源的問題。 用戶正常行為模型的建立是訓練階段的一項重要內容。設R0是與連接記錄的框架一致的、標記label全為0的純凈歷史數據集。我們以R0上的最大頻繁項集的集合m作為系統的正常行為模型。隨著系統中已有的用戶離開,或者新的用戶加入進來,系統和用戶的正常行為模型也會發生相應的變化。因此,數據集R0需要周期性地更新,以及時反映系統和用戶正常行為輪廓的變化。設1ε是正常頻繁行為的最小支持度閾值,取百分比形式的相對支持度定義。mi是 模式Pi的所有項集的集合(1≤i≤7),m是數據集R0上的最大頻繁項集的集合。 計算m的算法的基本思想是: Step1:掃描計數。掃描數據集R0一遍,檢查每條連接記錄r中的模式ri。 Step2:如果ri已在mi中,則其支持度計數加1;否則,將其支持度計數初始化為1,并將ri加入mi中。 Step3:檢查支持度,得到頻繁項集的集合。對mi(1≤i≤7),刪除其中支持度計數小于最小支持度閾值的元素,于是得到頻繁模式Pi(1≤i≤7)的所有頻繁項集的集合mi。 Step4:剪枝。對m7中的每個元素p,在mi(1≤i≤6)中查找p的子模式項集sub(p)。如果存在則刪去mi (i=1,2,...,6)中對應項。同理,對m6查找m1,m2,m3,對m5查找 m3,對m4查m1,m2,對m2查m1,作相應處理。最后得 m為m1,m2,... ,m7的并集。 偽碼如下: 攻擊模型的建立是訓練階段的另一項重要內容。設R′是與數據集R0結構相同的取自連接記錄的訓練數據集,R′中含有攻擊行為的數據,含有攻擊的連接記錄其標記label為1(也可用不同的標記區分不同類型的攻擊)。設ε2是異常頻繁行為的最小相對支持度閾值。用加權移動窗口滑過R′,取窗口中達到異常頻繁行為最小支持度閾值ε2的頻繁模式來建立攻擊模型。設m是R′上由加權移動窗口移動所得到的最大頻繁項集的集合,訓練之初,m=?。設m是當前窗口w中的最大頻繁項集的集合,m代表了當前窗口中所有的頻繁出現。對于任意元素p∈m,p有3種可能性:p是m已經記錄的攻擊模式,p是被m覆蓋的正常模式,或者,p是m中尚未記錄的攻擊模式。于是通過當前窗口中的m來更新攻擊模型m。建立攻擊模型的過程是一個加權窗口移動的過程,主要包括對攻擊模型m的更新和加權窗口移動處理兩部分。 (1) m的更新 對于任意元素p∈m,由于p是最大頻繁項集,因此,如果p能被系統正常行為模型中的某一個模式完全包含,那么,p所代表的所有頻繁出現均在m許可的范圍內,p與攻擊模型m的更新無關。如果p中包含著一個已知的更短的攻擊模式?p(?p∈m),說明已存在的?p較之p是更為核心的攻擊特征,p對m的更新無益。相反地,如果p為一個已知攻擊模式?p所包含,則用p取代m中的?p,成為更為核心的攻擊模式。如果p與m中任何模式不存在包含關系,則p對m來說是新的攻擊模式,將其添加到m中。 (2) 窗口的滑動 設w′是繼w后的下一個窗口。由于連接記錄在時間上并不是均勻分布的,因此,加權窗口移動一個時間步長過程中,可能并沒有連接記錄,或者,在新的窗口中可能并沒有包含任何新的記錄,窗口并沒有真正移動,甚至,在某些時間區間上,整個時間窗口中都可能不包含任何記錄。那么,則以單位時間繼續滑動,直至新窗口w′中包含新記錄。在新窗口w′中重新求m,直至滑過整個R′。 目前基于數據挖掘的入侵檢測研究方法已成為了一個研究熱點,在這個領域已經有了許多相關論文,但主要集中在引入數據挖掘中的關聯規則和聚類等方面的內容。采用移動窗口的入侵檢測漸漸開始受到注目,本文加權移動窗口算法基礎上,設計了相關的入侵檢測系統,通過用加權移動窗口算法判斷數據中的頻繁項集來檢驗異常的網絡狀況,獲得攻擊者入侵信息,給出了該入侵檢測系統的模型及功能說明。 [1] M·Garofalakis.J.Gelirke and R.Rastogi.Querying and Mining Data Streams:You Only Get One Look [C].In the tutorial notes of VLDB.2002. [2] L.Golab,M.T.ozsu. Issues in Data Stream Management[C].In Proc.Of ACM SIGMOD.2003. [3] L.Golab,M.T.ozsu.Data Stream Management Issues—A survey[R].Technical Report,CS2003-08 University of Waterioo. [4] P.B.Gibbons,Y.Matias.Synopsis Data Structures [C].In Proc.Of SODA.1999. [5] 方金和,馮雁,王瑞杰.基于數據挖掘的自適應入侵檢測研究[J].計算機工程與應用.2006. [6] 崇志宏.基于屏蔽/匯總技術的數據流處理算法[D].復旦大學.2006. [7] 潘立強,李建中,王偉平.數據流上加權共享滑動窗口聽連接查詢處理算法.計算機工程與應用.2005.2 基于加權移動窗口入侵檢測模型結構

2.1 系統模塊功能
2.2 用戶正常行為模型的建立


2.3 攻擊模型的建立
3 總結