適用於即時網路流量分析的快速模糊關聯規則產生方法
蘇民揚 戴宏偉 龍京佑
銘傳大學資訊工程學系
[email protected]
摘要
網路安全領域中,網路入侵偵測系統扮演重要 的角色;而幾乎所有的網路入侵偵測工具都必須藉 由分析網路流量方能成事。網路流量資訊以極快速 的速度在持續改變中,如何能有效率的動態分析網 路流量,便成為網路入侵偵測系統能否成功的重要 關鍵。本文提出了一個快速的模糊關聯規則產生演 算法,適用於即時分析快速變化的網路流量。細心 安排資料結構及妥善的運用大量記憶體空間,我們 每 2 秒鐘統計一筆網路流量的資訊,針對 6 種特徵、 每種特徵分低、中、高,3 種程度做挖掘,處理一 筆新進資料(動態探勘一次)平均只需要 0.0067 秒;而且時間不會隨著累積資料變多而增加,可以 有效的符合線上即時流量分析的需求。 關鍵字:網路安全,網路入侵偵測、關聯規則、模 糊關聯規則、網路流量分析。Abstract
In network security field, network intrusion detection system (NIDS) plays an important role. Almost all NIDSs have to analyze traffic in first to complete their jobs. However, traffic information is changed so fast and consistently. The method to dynamically and efficiently analyze traffic information is a prerequisite for the success of a NIDS. The paper presents an algorithm for mining fuzzy association rules in changed very frequently incremental database, like traffic information. We repeatedly collected traffic information in period of 2 seconds to form a record, using elaborate data structure and mass memory our algorithm can mine a set of fuzzy association rule in
0.0067 seconds for an incremental record, while six features and three degrees per feature being considered. Moreover, the time for once mining, due to an incremental record, would not increase while historical dataset augmented.
1、前言
許多的網路入侵偵測工具都必須藉由分析網 路流量[3-5,8]來完成,但網路流量通常是迅速大量 且複雜的,以往動態的關聯規則產生方式[2,9,11] 並不適用在如此迅速變動的環境上。本文所提之方 法,是利用資料探勘中的模糊關聯規則來抽象化表 示網路流量的行為,最大貢獻之處在於我們所提之 方法,動態產生一次規則平均只需 0.0067 秒;而且 這個時間不會隨著資料累積而增加,如此速度確實 可以運用到網路流量的即時分析上。 網路上流動的封包型態多元且數量非常龐 大,我們使用模糊關聯規則的技術來做有效率的分 析。透過關聯規則(association rules)[9]來表示項目 之間潛在的關聯性,此技術為資料探勘中做常使用 的方法之一。但其牽涉到多次資料庫的掃描以取得 大項目組,且當加入新的資料的同時必須從頭針對 資料庫做項目組的結合,對於現實動態新增資料庫 (網路流量)而言,將造成前次探勘計算的重複及資 源的浪費。因此,在考慮線上異動資料時,如何避 免探勘的重複計算,以較少的計算時間來更新關聯 規則,便成為用於線上即時探勘最主要的問題之 一。本篇論文中,以關聯規則為基礎,將不同程度, 低階(low)、中階(medium)、與高階(high)分別量化為 程度,為了明確的定義量化後的模糊地帶以增進探 勘的準確性,本系統加入了模糊理論(fuzzy)[5、6、10]的觀念,明確的界定不同程度上所包含的項目, 而不再是明確的切割成不同的項目組。並且提出了 一 套 模 糊 關 聯 規 則 演 算 法 (fuzzy association rules)[4、7]。然而,傳統資料探勘的演算法是對 於靜態資料做探勘,不同於用在網路中的線上即時 探勘系統,必須要非常快速且準確的即時挖掘出有 意義的關聯法則。 本文以下章節架構如下,第二節將介紹本文所 包含的背景知識,第三節針對動態資料中快速的模 糊關聯規則產生演算法,第四節對系統做效能評 估,第五節將簡單陳述未來工作與展望。
2. 背景知識
2.1 關聯規則演算法-Apriori 在關聯規則演算法中,目前以 Apriori 演算法 [9]為基礎所推倒出的各種資料探勘技術為最具代 表性的方法之一,但其都是針對靜態的資料做探勘 的動作,而從中擷取出對使用者有興趣的相關法 則。Apriori 演算法中主要包含以下兩個主要的步 驟: 1、重複的產生候選項目組(candidate itemset)並 且搜尋整個資料庫,直到找出所有大型項目組(large itemset)。 2、利用上述所找出的大型項目組進行拆解,並 且推倒出所有的關聯法則。 在步驟 1 之中,候選項目組必須大於使用者所 設定的最小支持門檻值(minimal support)才能成為 大項目組。同樣再步驟 2 之中,所產生的關聯法則 也 必 須 大 於 使 用 者 所 設 定 的 最 小 可 靠 門 檻 值 (minimal confidence)才能成為一條有效的法則。但 由於 Apriori 演算法牽涉到多次資料庫的掃描,或者 產生大量的項目組,因此,當資料庫產生變動時, 必須從頭的掃描來產生項目組以產生新的關聯法 則,當資料庫龐大時,搜索的動作便成了耗時的工 作,因此,對於使用在動態的網路流量的探勘中, 很顯然的 Apriori 演算法並不適用。 2.2 模糊關聯規則 Apriori 演算法之support(X)是以項目集X中的 項目同時出現在資料庫D中記錄的筆數來計算,而用 在網路入侵偵測上,每個項目在每筆記錄中都會出 現,因此每個項目都會有一個量化的值。顯然,對 於量化的資料庫,傳統的Apriori演算法並不適用。 資料探勘領域中對於這種項目量化的問題也有若干 方法被提出[3],而對量化資料庫探勘最直接簡單的 方法,就是對於每個項目的數值給予明確的切割以 判定等級。然而,如此明確的切割分類方式,存在 著邊緣化問題(Shape Boundary Problem)。圖1為 例,計算f1=Medium出現次數只能累加資料庫中 f1=21, f1=22, …, f1=60的記錄筆數;即使在邊界 (f1=18, 19 or 61, 62)有很多筆數,仍對f1=Medium 出現次數的計數毫無貢獻。很明顯,如此挖掘出來 的 規 則 可 能 不 足 描 述 真 實 情 形 。 試 想 , 如 果 A=Medium的區間往左(f1=19)或往右(f1=61)移動 一點,挖掘出來的規則就會完全不同。 圖1 採用離散切割(discrete partition)分類 為了有效克服邊緣化問題(Shape Boundary Problem),我們融入了模糊理論(fuzzy logic)[5、6、 10]的觀念,套用模糊理論的術語,每個項目名稱改 稱為模糊變量 (fuzzy Variable),每個項目名稱的分 類改稱為模糊集合(fuzzy Sets),如low,medium, high。與前者的差別在於fuzzy Sets: low、medium、 high不再是明確的切割(或為互斥集合,e.g. if y ∈ low, then y∉ medium且y∉ high),而是個別用一 個連續函式,稱為成員函式(membership function),來描述之,如圖2。 圖2 採用模糊函數分類 因此為了能更準確且有效率的發掘潛在的資 訊,這種量化資料庫[2]的觀念,能將所收到網路中 的流量資訊帶入模糊函式中,便能更有效率且準確 的發掘潛在的資訊,經過模糊後所擷取出來的關聯 規則,我們稱之為模糊關聯規則(Fuzzy Association Rules)[ 4、7]。 2.3 即時且動態的模糊關聯規則 現實生活中,資料更新是隨時進行的,因此, 資料庫中的資料也必須隨著交易的新增而動態的紀 錄新的資料。但一般所謂的動態資料並不適用於用 在網路流量分析上,因為對於網路流量而言,即時 有效率的分析必須每幾秒就做一次動態資料探勘, 所以探勘演算法必須要求在一秒之內,或甚數微秒 內完成,否則就失去"即時"的意義。 關聯規則通常運用在靜態的資料庫中進行探 勘,對於動態新增資料也必須重複的搜索資料庫來 產生法則,不同於網路流量為動態且即時的新增資 料,因此,傳統的關聯法則演算法將不適用於動態 資料庫中。為了解決這個問題,本文考慮到不需要 針對資料庫做重複的掃描,融合了動態資料更新 (incremental)的觀念[5],只需要針對上一筆資料的 結果加入新進資料做結合來處理,便能有效率的提 高即時探勘的速度。但以上所提的 incremental 觀 念並不適用於網路流量分析,因對於時間的要求更 為迫切,因此,如何有效率的處理一筆新進資料, 將成為重要的問題。
3、於動態資料中快速的模糊關聯規則產生
演算法
3.1 用於即時網路流量分析資料 在傳統關聯規則探勘的技術中,假若資料庫有 異動的資料時,就必須重複掃描資料庫計算關聯規 則的過程,如此大量且耗時的方法,對於目前即時 動態線上探勘並不適用。為了強調準確性與完整 性,用於網路流量上,每個項目在每筆記錄中都會 出現,且每個項目都會有一個量化的值。檢查資料 庫D,從記錄的描述上就可以明白兩者的差異。假設 f1、f2、 f3、 f4、 f5代表每個特徵的意義,且資 料庫中有五筆記錄,圖4是用在網路流量分析上對記 錄的描述。圖4中的第一筆紀錄表示經統計在某個單 位時間內的網路流量,f1擁有特徵的封包數是50 個,擁有f2特徵的封包數是35個,依此類推。下個 單位時間內的網路流量,則由第二筆紀錄描述之, 依此類推。單位時間可視網路流量而定,要兼顧處 理的時間以確保即時性。 資料 網路封包特徵 紀錄1 f1=50 f2=35 f3=47 f4=28 f5=58 紀錄2 f1=15 f2=90 f3=63 f4=38 f5=27 紀錄3 f1=10 f2=91 f3=34 f4=46 f5=43 紀錄4 f1=71 f2=47 f3=42 f4=85 f5=39 紀錄5 f1=25 f2=58 f3=72 f4=15 f5=50 圖4 用於即時網路流量上資料庫的記錄 而資料探勘領域中對於這種項目量化的問題也 有若干方法被提出,本文加入了模糊理論(fuzzy logic)的觀念來挖掘這種量化的資料庫。對於量化資 料庫探勘一個最直接簡單的方法,就是對於每個項 目的數值給予明確的切割以判定等級。如果對於A 這個項目,我們設定20以下為Low,21~60之間為 Medium,61以上為High;對於B這個項目,我們設定80以下為Low,81~150之間為Medium,151以上為 High,其它項目C, D,E依此類推,則圖5為資料庫 的描述: 資料 項目程度 1 f1=medium f2=low f3=x f4=x f5=x 2 f1=low f2= medium f3=x f4=x f5=x 3 f1=low f2=medium f3=x f4=x f5=x 4 f1=high f2=low f3=x f4=x f5=x 5 f1=medium f2=low f3=x f4=x f5=x 圖5 資料庫中紀錄的描述 系統對於模糊關聯規則所帶入的模糊函數取自 MATLAB Fuzzy Tool Box 的預設函數如下,其中 a, b, c 為可調整之常數。其成員函數如下,當 Low 的 常數 a, c 分別為 0.3, 20, Medium 的常數 a, b, c 分別為 15, 2,50, High 的常數 a, c 分別為-0.3, 80。 Low:f ( x ) = 1 / ( 1 + exp( a ( x - c) ) ) Medium:f ( x ) = 1 / ( 1 + | ( x - c) / a | ^ 2b ) High:f ( x ) = 1 / ( 1 + exp( -a ( x - c) ) ) 如此,將每三秒統計的值分別帶入不同程度的 函式中,分別取得模糊後的函數後,分別存放到系 統所動態配置的記憶體空間中。然而利用上述的模 糊分割,便能更有效且準確的解決離散切割的方式。 3.2 即時網路流量分析的資料處理 為了能更有效率的處理線上即時更新的動態 資料,首先面臨必須能快速的處理一筆新進資料, 我們採用動態配置記憶體的技術來產生各種不同程 度(low、medium、high)的項目組,分別用鏈結串列 的方式將其分別儲放在記憶體空間。圖6為系統開始 時所建立的記憶體空間,並且照順序排列。此外, 我們必須了解,不同的記憶體空間所存放的內容, 以及其程度所代表的意義,因此我們使用了二維陣 列來標記不同記憶體空間所代表的意義,如上圖6 各節點所存放的英文字母的組合,在圖7中將組合的 方式以二維陣列呈現。 圖6 動態配置記憶體空間(鏈結串列)
low med high 0 1 2 特徵 1 [A] [B] [C] 0 特徵 2 [D] [E] [F] 1 特徵 3 [G] [H] [I] 2 特徵 4 [J] [K] [L] 3 特徵 5 [M] [N] [O] 4 特徵 6 [P] [Q] [R] 5 圖7 標記陣列程度 例如:特徵 1.low 等於〝A〞 特徵 2.medium 等於〝E〞 而較長的項目組也是以相同的方式來表示之。 例如:特徵 3.low、特徵 5.high 等於〝HO〞
特徵 1.medium、特徵 2.high、特徵 4.low、 特徵 6.low 等於〝BFJM〞 為了能清楚的標記每個記憶體空間所代表的意義, 所以我們上圖的陣列來紀錄,並且存放在記憶體的 結構中。 目前 CPU 的計算及硬體 I/O 的考量,資料存 放的空間已經不再是一個嚴重的問題,因此我們採 用動態記憶體配置的技術來將所有項目組的可能產 生,我們採用 8 個特徵,3 種程度,而所花費的記 憶體空間如圖 8,對於應用在網路流量的探勘中, A [0][0] B [0][1] C [0][2] R [0][0] AD [0][0],[1][0] AE [0][0],[1][1] AF [0][0],[1][2] OR [4][2],[5][2] ADG ADH ADI LOR 項目組 長度 3 項目組 長度 2 ADGJMP ADGJMQ ADGJMR CFILOR 項目組 長度 6 項目組 長度 1
太高的項目組所代表意義可能被大量且不同類型的 封包給掩蓋掉,因此,本系統只產生到項目組 8, 而大約花費 1.1MB 的記憶體空間。可針對不同的環 境做項目組長度的改變(參考圖 6) 項目組長度 節點個數 所花空間(bytes) Itemset-1 24 406 Itemset-2 252 4284 Itemset-3 1512 25704 Itemset-4 8505 144585 Itemset-5 13608 231336 Itemset-6 20412 347004 Itemset-7 17496 297432 Itemset-8 6561 111537 圖 8 動態記憶體配置空間 當接收到一筆新的資料時,會將其帶入模糊函 式,並且將模糊化後的值分別存放到記憶體空間, 當資料庫新增資料的同時,也只需要將記憶體空間 的項目組中支持度的值還原,並且結合新加入的資 料,便能有效的更動資料庫的值,且不再需要重複 的搜索資料庫。如此便能快速的分析網路流量,從 中挖掘出有意義的資訊。 本文所設計的演算法中主要包含以下 5 個主 要的步驟: 1.進行初始化並設定最小支持度 2.動態配置記憶體,建立所需的 Link-List。 3.每兩秒將封包流量統計資訊(視為一筆記錄)讀 入,並重新計算每個節點因此筆紀錄各項特徵 fuzzy 值(high,med or low)所造成的影響。 4.計算其 support 值若大於所設定的 minimum
support 值,則找出此點之 rule。小於則淘汰 5.計算 rule 之 confidence 值,將大於 minimum
support 値之 rule 印出。
4、效能評估
在不失一般情況下,我們使用隨機亂數來產 生每筆交易資料的項目,做為評估前面章節演算法 之執行效能的資料來源。實驗平台為P4-3.0 G、 RAM為512M、作業系統為Windows XP Sever,使 用C++來撰寫程式。我們分別說明前面所描述之演 算法的執行效能如下圖9中。 假設項目共有6項,且各分為低、中、高三種不同 的等級,每筆交易資料所包含的項目以亂數產生 (每次新增交易資料就須重新計算),來評估執行效 能。我們初始以1000筆交易資料為探勘的資料來 源,在設定最小支持度為0.3及最小信賴度為0.5的 條件下,然後以每次新增1000筆交易資料,且每次 皆重新執行,來評估我們演算法的執行時間。 0 6.7 13.4 20.2 26.7 33.4 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 資料筆數(千) 時間(秒) Ours Algo 圖9、線上探勘執行效能 在每次新增交易資料時,本演算法於一開始 探勘的執行時會有一段初始化的時間。由於第一次 探勘時就將其過程中的項目組與其出現次數儲存 於記憶體中,因此對於每次處理新增交易資料時, 其所多花費之執行時間皆相同,約為0.0067秒。圖 10為每新增一筆資料時所花的平均處理時間,可以 發現本演算法再處理新增資料的時間是固定的。 0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0 1 2 3 4 5 資料筆數(千) 時間 (秒 ) Ours Algo 圖 10 新增一筆資料所需的處理時間為了能增加系統的準確度以及運用在不同的 地方,我們實驗了增加項目組的長度到10,下圖11 為增加到項目組10處理每筆資料所花的平均時間: 特徵 4 特徵 6 特徵 8 特徵 10 長度 4 0.0005 0.002 0.01 0.02 長度 6 X 0.0067 0.0547 0.2891 長度 8 X X 0.12 0.12 長度 10 X X X 1.787 圖11 新增項目組平均時間 所收集的特徵也就代表網路的特徵,所以可 針對不同模式、不同企圖的攻擊來設計特徵。由圖 10可發現,對於動態資料的挖掘時間不會因為資料 量的增加而遞增,因此,可以看出線上即時探勘系 統的優勢。
5、結論與未來工作
在本篇論文中,我們以關聯規則為基礎,為了 加強系統的準確性,加入了模糊理論的觀念,將網 路的封包作量化,帶入模糊函式中,並且產生關聯 法則。我們採用動態宣告記憶體的方式,產生所有 可能出現的項目組,並且有規律的將其標記並且保 存於記憶體空間中,當新加入一筆資料的同時,利 用上一筆資料所產生的結果,將其還原,便能有效 的克服重複掃描資料庫所浪費的資源問題。從效能 評估顯示,我們所提出的探勘方法,將可以準確且 有效的提升線上即時探勘異動交易資料之關聯規則 的執行效率,平均一次動態探勘只需0.0067秒。參考文獻
[1] 林曉偉,資料探勘技術應用於網路入侵偵測特 徵搜尋之研究,國立東華大學資訊工程研究所碩士 論文, 2004. [2] 邱宏彬,蘇建源,張晉赫,在動態資料庫中挖 掘關聯法則之快速演算法,南台科技大學資訊管理 研究所碩士論文,2003.[3] Eric Y. K. Chan1, H. W. Chan1, K. M. Chan1 and Vivien P. S. Chan1, “IDR: An Intrusion Detection Router for Defending against Distributed Denial-of-service (DDoS) Attacks ,” Proceedings of the 7th International Symposium on Parallel Architectures, Algorithms and Networks (ISPAN’04), 2004.
[4] Chan Man Kuok ,Ada Fu , and Man Hon Wong, “Mining Fuzzy Association Rules in Database”, ACM SIGMOD Record, Vol 27 , Issue 1, pages 41-46, March 1998.
[5]Dickerson, J.E. and Dickerson J.A., ”Fuzzy network profiling for intrusion detection,” Fuzzy Information Processing Society, pages 301-306, 2000. [6] German Florez , Susan M.Bridges , and Rayford B. Vaughn, “ An Improved Algorithm for Fuzzy Data Mining for Intrusion Detection ,” Proceedings of the Fuzzy Information Processing Society, pages 457-462,June 2002.
[7] Jianxiong Luo, “Integrating Fuzzy Logic with Data Mining Methods for Intrusion Detection,” M.D. Thesis,Deperment of Computer Science, Mississippi State University, August 6, 1999.
[8] Tsang-Long Pao and Po-Wei Wang, “NetFlow Based Intrusion Detection System,” Proceedings of the 2004 IEEE International Conference on Networking, Sensing and Control, pages 731-736, 2004.
[9] R. Agrawal and R. Srikant. Fast Algorithms for Mining Association Rules. Proc.Int'l Conf. Very Large Data Bases, 487-499 (September 1994).
[10] Susan M. Bridges and Rayford B. Vaughn , “Intrusion Detection Via Fuzzy Data Mining”, Proceedings of the twelfth Annual Canadian Information Technology Security Symposium, June 19-23, 2000.
[11] Zhong-Yong Wu, “A Study on Mining Association Rules with Incremental updates,” Master Thesis, CSIE Dept., Feng Chia University, 2002.