張永杰 劉才銘 張雁 唐喻 倪康惠



摘? 要:異常分析技術對于優化網絡管理和維護網絡安全具有積極的作用,為了將機器學習算法應用到網絡數據異常分析中,采用網絡數據集KDD CUP99作為分析對象,構建了從網絡數據集中選擇數據的方法,根據網絡連接的數據特征設置了數據屬性,采用經典的機器學習方法對網絡數據進行了分析和驗證。編程實現了以上的異常分析流程,并形成了具有實際功能的軟件系統,該系統能夠針對公開數據集進行有效的異常分析。
關鍵詞:異常分析;公開網絡數據集;數據選擇;數據屬性;數據驗證
Abstract:Anomaly analysis technology plays an active role in optimizing network management and maintaining network security. In order to apply machine learning algorithm to network data anomaly analysis,the network dataset KDD CUP99 is used as the analysis object,a method of selecting data from the network data set is constructed. The data attributes are set according to the data characteristics of network connections. A classical machine learning method is used to analyze and validate the network data. The above abnormal analysis process is realized by programming,and a software system with practical functions is formed,which can carry out effective abnormal analysis for the public data set.
Keywords:anomaly analysis;public network data set;data selection;data attribute;data validation
0? 引? 言
網絡數據異常分析旨在將網絡數據中的異常數據從大量的正常數據中識別出來,達到識別網絡異常的目的,從而為主動的網絡管理提供科學的依據。常見的網絡數據異常分析方法主要采用數據分類的方法,它們主要將網絡數據分類為正常數據和異常數據,還可以將異常數據按類別進行細分,例如采用決策樹分類方法進行網絡數據異常分析[1]。基于分類方法的網絡數據異常分析,從根本上講是一個分類器,常見的分類器有:基于貝葉斯的分類器、基于決策樹的分類器、基于神經網絡的分類器、基于支持向量機的分類器等。
決策樹被廣泛地用于分類問題中[2]。它采用監督學習方法,學習的結果表現為樹形結構。在分類問題中,構建決策樹表示基于特征對實例進行分類的過程,決策樹的分支可以認為是if-then的集合,也可以認為是定義在特征空間與類空間上的條件概率分布。決策樹的構造過程一般分為三個部分,分別是特征選擇、決策樹生成和決策樹剪枝。常見的決策樹算法有C4.5、ID3等算法[3],其中,C4.5算法采用信息增益率計算方法構造決策樹,它對ID3算法進行了優化,通過剪枝降低分類模型的復雜度,產生的分類規則易于理解,且采用其分類的準確率高,已經被應用到許多實際的分類應用系統中。
為了將決策樹C4.5算法應用到網絡數據異常分析中,樂山師范學院人工智能學院國家大學生創新創業訓練計劃項目團隊在國家大學生創新創業訓練計劃項目、樂山市科技計劃項目、互聯網自然語言智能處理四川省高等學校重點實驗室項目的資助下,采用網絡數據集KDD CUP99作為分析對象,利用決策樹C4.5算法分析公開網絡數據集中包含的異常數據,設計和實現了一種基于公開網絡數據集KDD CUP99的異常分析系統,該系統針對KDD CUP99的網絡數據,用Java源代碼實現了具體的C4.5算法,并具有完整的圖形用戶使用界面。
1? 公開網絡數據集KDD CUP99KDD CUP99[4-6]是一種公開網絡入侵檢測數據集,來自于麻省理工學院林肯實驗室的DARPAR98數據集。林肯實驗室的研究人員構建真實網絡環境,仿真實現了針對各種用戶類型、各種訪問形式的網絡流量和攻擊手段,同時通過TCPDump技術采集了大量的網絡數據,并通過文件形式進行保存。
哥倫比亞大學的Stolfo教授和北卡羅來納州立大學的Lee教授采用數據挖掘等技術對DARPAR98數據集進行特征分析和數據預處理,形成了采用純文本字符表示的KDD CUP99數據集[7]。KDD CUP99數據集擁有訓練數據集和測試數據集,研究人員還對后者進行了網絡數據連接分類的標注,明確了某一條網絡連接記錄的類型,即正常或攻擊類型。由于以上特性,KDD CUP99數據集被大量網絡安全領域的研究人員用于仿真實驗,以驗證新型入侵檢測或異常分析技術的有效性。
KDD CUP99數據集中的每條網絡連接用41個特征來描述,這些特征表達了該條網絡連接的具體信息。對于測試數據集,研究人員在41個特征后,加上了一個標注特征,以表明該條網絡連接屬于哪種類型,所以,測試數據集的網絡連接記錄一共有42個特征。KDD CUP99數據集中網絡連接記錄的41項特征分為4種類型:TCP連接基本特征、TCP連接的內容特征、基于時間的網絡流量統計特征和基于主機的網絡流量統計特征。在KDD CUP99的測試數據集中,每條網絡連接被標注為正?;虍惓?,異常類型被分為4大類異常:拒絕服務攻擊(DOS)、遠程主機未授權訪問(R2L)、未授權的本地超級用戶特權訪問(U2R)、端口監視或掃描(PROBING)。
2? 系統設計
本文采用決策樹C4.5算法,設計一種基于公開網絡數據集KDD CUP99的異常分析系統,構建了該系統的系統結構、網絡數據表示方法和異常分析流程。
2.1? 系統結構
本文設計的系統結構如圖1所示,主要功能模塊有:數據選擇、數據顯示、數據統計、屬性設置、驗證計算、驗證結果,其中,屬性設置模塊包含特征數目統計、標記屬性統計、更新數據類型等子模塊,驗證計算包含簡單交叉驗證、K折交叉驗證等子模塊,驗證結果模塊通過混淆矩陣顯示分析結果數據,并可通過該模塊查看歷史結果。
為了提高異常分析的準確性,本系統將網絡連接記錄的protocol_type、service、flag三個特征設置為離散型,其余特征為連續型,將特征值設置為相應的數據類型可以使得驗證結果更科學。本系統可以手動選擇訓練數據集與測試數據集,在異常分析過程中,首先通過計算訓練集特征屬性的條件熵、信息熵,從而構造異常類型決策樹;再利用測試集對決策樹進行不同方式的驗證,以便得到混淆矩陣,從而顯示真實歸屬類別與預測歸屬類別;最后根據真實值與預測值得到最終異常分析結果。
2.2? 網絡數據表示
本系統根據手動選擇結果,劃分出訓練集與測試集,采用Java語言的ArrayList數據結構存儲訓練集中不同特征樣本值、特征樣本數量。本文檢測網絡連接數據的分類標簽是否相同,如果相同則定義為葉子結點,如果不相同則尋找信息增益率最大的特征進行劃分,并進行決策樹的分裂,生成左右子樹。以上過程直到決策樹中數據標簽全部區分開才完成,這也表示結束決策樹的構造。
在訓練數據集中,每條網絡連接記錄包含38個連續類型的特征屬性和3個離散類型的特征屬性。本系統讀取數據后,將數據類型默認設置為空。在屬性設置模塊中,選擇待驗證的特征進行屬性更新,設置不同類型的特征值,用以計算各類熵值,從而得到更準確的信息增益率,使得分析結果更加接近真實結果。
2.3? 異常分析流程
本系統的異常分析流程如圖2所示,整個分析流程分為三個階段:數據選擇階段、訓練階段、測試階段。
在異常分析數據的選擇階段,本系統首先讀取KDD CUP99的數據集文件,再由用戶手動選擇用于訓練集和測試集的比例,最后本系統確定用于分析的具體訓練和測試數據。在訓練階段,本系統統計訓練集中每種網絡異常的樣本數量,計算各類特征的信息增益率,并以此為依據構造出一顆完整的決策樹。在測試階段,本系統將測試集中的每一條網絡連接特征在構造好的決策樹中進行遍歷,每完成一次遍歷就得到一條網絡連接的分析結果,從而判斷出該條網絡連接是否正常,或者是何種異常類型。
3? 系統實現
3.1? 數據讀取
本系統數據讀取界面如圖3所示。通過讀取數據集文件中的所有網絡連接記錄,獲取用于分析的網絡數據。本系統采用緩沖區讀取每一條網絡連接數據,將每一條網絡連接的不同特征值存儲到ArrayList中,通過重復上述操作處理所有網絡連接記錄的特征值。同時,本系統將每一種網絡數據(含正常類型或網絡異常類型)的屬性類型設置為空類型,通過DataController將數據傳到數據面板中。
3.2? 數據屬性設置
本系統數據屬性設置如圖4所示。數據集中屬性值分為連續型與離散型兩種數據類型,讀取數據后默認設置為空類型,更改數值類型后進行決策樹構造,通過不同屬性類型采用不同方式進行信息增益率的計算。在C4.5算法中,連續型變量的分析包含兩條分支,確定分支閾值的核心思想為:將連續型變量升序排列后,選取任意兩個屬性值中點,通過計算相關的熵值得出信息增益率,再選取信息增益率最大的作為分裂屬性。
3.3? 決策樹的構造
本文采用經典的決策樹構造方法,生成樹的節點node,判斷訓練集中樣本是否為同一類別C,若為相同類別,則將節點標記為C類葉子節點。樣本不屬于類別C時,當屬性列表為空時,標記node為葉子節點,其類別為訓練集中樣本數最多的類別。屬性列表不為空時,計算屬性類別中屬性的信息增益率,選擇信息增益率最高的屬性標記節點node作為分裂節點。重復執行上述步驟,當節點中屬性全屬于同一類別時,決策樹構造完成。
3.4? 計算混淆矩陣
混淆矩陣的每一列代表了預測類別,每一列的總數表示預測為該類別的數據的數目。每一行代表了數據的真實歸屬類別,每一行的數據總數表示該類別的數據實例的數目。將測試集中每條網絡連接的特征屬性值在決策樹中進行遍歷,通過混淆矩陣記錄每次遍歷結果,再將遍歷結果與真實數據進行比較得到計算結果。
4? 結? 論
本文設計并實現了一種用于網絡公開數據集KDD CUP99的異常分析系統,通過對數據集進行特征獲取和數據劃分,確立訓練數據和測試數據,通過分析訓練集數據構造決策樹,再通過遍歷決策樹,對測試數據的類型進行判斷,從而實現了對公開網絡數據集中異常數據的有效分析。本系統通過決策樹的構造與混淆矩陣的計算,實現從數據集中區分出異常數據的功能。
參考文獻:
[1] 李強,嚴承華,朱瑤.基于決策樹的網絡流量異常分析與檢測 [J].計算機工程,2012,38(5):92-95.
[2] 王熙照,孫娟,楊宏偉,等.模糊決策樹算法與清晰決策樹算法的比較研究 [J].計算機工程與應用,2003(21):72-75+99.
[3] 馮帆,徐俊剛.C4.5決策樹改進算法研究 [J].電子技術,2012,39(6):1-4.
[4] 張新有,曾華燊,賈磊.入侵檢測數據集KDD CUP99研究 [J].計算機工程與設計,2010,31(22):4809-4812+4816.
[5] 吳建勝,張文鵬,馬垣.KDDCUP99數據集的數據分析研究 [J].計算機應用與軟件,2014,31(11):321-325.
[6] 郭成華.基于KDDCUP99數據集的入侵檢測系統的設計與實現 [J].網絡安全技術與應用,2017(12):57-60.
[7] STOLFO S J,FAN W,LEE W,et al. Cost-based Modeling for Fraud and Intrusion Detection:Results from the JAM Project [C]// Darpa Information Survivability Conference & Exposition. IEEE,2000.
作者簡介:張永杰(1998—),男,漢族,四川樂山人,本科在讀,研究方向:網絡安全;劉才銘(1979—),男,漢族,四川武勝人,教授,博士,研究方向:網絡安全;通訊作者:張雁(1979—),女,漢族,四川萬源人,副教授,碩士,研究方向:網絡安全。