張永杰 劉才銘 張雁 唐喻 倪康惠
摘? 要:異常分析技術(shù)對于優(yōu)化網(wǎng)絡(luò)管理和維護(hù)網(wǎng)絡(luò)安全具有積極的作用,為了將機(jī)器學(xué)習(xí)算法應(yīng)用到網(wǎng)絡(luò)數(shù)據(jù)異常分析中,采用網(wǎng)絡(luò)數(shù)據(jù)集KDD CUP99作為分析對象,構(gòu)建了從網(wǎng)絡(luò)數(shù)據(jù)集中選擇數(shù)據(jù)的方法,根據(jù)網(wǎng)絡(luò)連接的數(shù)據(jù)特征設(shè)置了數(shù)據(jù)屬性,采用經(jīng)典的機(jī)器學(xué)習(xí)方法對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行了分析和驗(yàn)證。編程實(shí)現(xiàn)了以上的異常分析流程,并形成了具有實(shí)際功能的軟件系統(tǒng),該系統(tǒng)能夠針對公開數(shù)據(jù)集進(jìn)行有效的異常分析。
關(guān)鍵詞:異常分析;公開網(wǎng)絡(luò)數(shù)據(jù)集;數(shù)據(jù)選擇;數(shù)據(jù)屬性;數(shù)據(jù)驗(yàn)證
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? 引? 言
網(wǎng)絡(luò)數(shù)據(jù)異常分析旨在將網(wǎng)絡(luò)數(shù)據(jù)中的異常數(shù)據(jù)從大量的正常數(shù)據(jù)中識別出來,達(dá)到識別網(wǎng)絡(luò)異常的目的,從而為主動的網(wǎng)絡(luò)管理提供科學(xué)的依據(jù)。常見的網(wǎng)絡(luò)數(shù)據(jù)異常分析方法主要采用數(shù)據(jù)分類的方法,它們主要將網(wǎng)絡(luò)數(shù)據(jù)分類為正常數(shù)據(jù)和異常數(shù)據(jù),還可以將異常數(shù)據(jù)按類別進(jìn)行細(xì)分,例如采用決策樹分類方法進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)異常分析[1]。基于分類方法的網(wǎng)絡(luò)數(shù)據(jù)異常分析,從根本上講是一個分類器,常見的分類器有:基于貝葉斯的分類器、基于決策樹的分類器、基于神經(jīng)網(wǎng)絡(luò)的分類器、基于支持向量機(jī)的分類器等。
決策樹被廣泛地用于分類問題中[2]。它采用監(jiān)督學(xué)習(xí)方法,學(xué)習(xí)的結(jié)果表現(xiàn)為樹形結(jié)構(gòu)。在分類問題中,構(gòu)建決策樹表示基于特征對實(shí)例進(jìn)行分類的過程,決策樹的分支可以認(rèn)為是if-then的集合,也可以認(rèn)為是定義在特征空間與類空間上的條件概率分布。決策樹的構(gòu)造過程一般分為三個部分,分別是特征選擇、決策樹生成和決策樹剪枝。常見的決策樹算法有C4.5、ID3等算法[3],其中,C4.5算法采用信息增益率計(jì)算方法構(gòu)造決策樹,它對ID3算法進(jìn)行了優(yōu)化,通過剪枝降低分類模型的復(fù)雜度,產(chǎn)生的分類規(guī)則易于理解,且采用其分類的準(zhǔn)確率高,已經(jīng)被應(yīng)用到許多實(shí)際的分類應(yīng)用系統(tǒng)中。
為了將決策樹C4.5算法應(yīng)用到網(wǎng)絡(luò)數(shù)據(jù)異常分析中,樂山師范學(xué)院人工智能學(xué)院國家大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目團(tuán)隊(duì)在國家大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目、樂山市科技計(jì)劃項(xiàng)目、互聯(lián)網(wǎng)自然語言智能處理四川省高等學(xué)校重點(diǎn)實(shí)驗(yàn)室項(xiàng)目的資助下,采用網(wǎng)絡(luò)數(shù)據(jù)集KDD CUP99作為分析對象,利用決策樹C4.5算法分析公開網(wǎng)絡(luò)數(shù)據(jù)集中包含的異常數(shù)據(jù),設(shè)計(jì)和實(shí)現(xiàn)了一種基于公開網(wǎng)絡(luò)數(shù)據(jù)集KDD CUP99的異常分析系統(tǒng),該系統(tǒng)針對KDD CUP99的網(wǎng)絡(luò)數(shù)據(jù),用Java源代碼實(shí)現(xiàn)了具體的C4.5算法,并具有完整的圖形用戶使用界面。
1? 公開網(wǎng)絡(luò)數(shù)據(jù)集KDD CUP99KDD CUP99[4-6]是一種公開網(wǎng)絡(luò)入侵檢測數(shù)據(jù)集,來自于麻省理工學(xué)院林肯實(shí)驗(yàn)室的DARPAR98數(shù)據(jù)集。林肯實(shí)驗(yàn)室的研究人員構(gòu)建真實(shí)網(wǎng)絡(luò)環(huán)境,仿真實(shí)現(xiàn)了針對各種用戶類型、各種訪問形式的網(wǎng)絡(luò)流量和攻擊手段,同時(shí)通過TCPDump技術(shù)采集了大量的網(wǎng)絡(luò)數(shù)據(jù),并通過文件形式進(jìn)行保存。
哥倫比亞大學(xué)的Stolfo教授和北卡羅來納州立大學(xué)的Lee教授采用數(shù)據(jù)挖掘等技術(shù)對DARPAR98數(shù)據(jù)集進(jìn)行特征分析和數(shù)據(jù)預(yù)處理,形成了采用純文本字符表示的KDD CUP99數(shù)據(jù)集[7]。KDD CUP99數(shù)據(jù)集擁有訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,研究人員還對后者進(jìn)行了網(wǎng)絡(luò)數(shù)據(jù)連接分類的標(biāo)注,明確了某一條網(wǎng)絡(luò)連接記錄的類型,即正?;蚬纛愋汀S捎谝陨咸匦?,KDD CUP99數(shù)據(jù)集被大量網(wǎng)絡(luò)安全領(lǐng)域的研究人員用于仿真實(shí)驗(yàn),以驗(yàn)證新型入侵檢測或異常分析技術(shù)的有效性。
KDD CUP99數(shù)據(jù)集中的每條網(wǎng)絡(luò)連接用41個特征來描述,這些特征表達(dá)了該條網(wǎng)絡(luò)連接的具體信息。對于測試數(shù)據(jù)集,研究人員在41個特征后,加上了一個標(biāo)注特征,以表明該條網(wǎng)絡(luò)連接屬于哪種類型,所以,測試數(shù)據(jù)集的網(wǎng)絡(luò)連接記錄一共有42個特征。KDD CUP99數(shù)據(jù)集中網(wǎng)絡(luò)連接記錄的41項(xiàng)特征分為4種類型:TCP連接基本特征、TCP連接的內(nèi)容特征、基于時(shí)間的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征和基于主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征。在KDD CUP99的測試數(shù)據(jù)集中,每條網(wǎng)絡(luò)連接被標(biāo)注為正?;虍惓#惓n愋捅环譃?大類異常:拒絕服務(wù)攻擊(DOS)、遠(yuǎn)程主機(jī)未授權(quán)訪問(R2L)、未授權(quán)的本地超級用戶特權(quán)訪問(U2R)、端口監(jiān)視或掃描(PROBING)。
2? 系統(tǒng)設(shè)計(jì)
本文采用決策樹C4.5算法,設(shè)計(jì)一種基于公開網(wǎng)絡(luò)數(shù)據(jù)集KDD CUP99的異常分析系統(tǒng),構(gòu)建了該系統(tǒng)的系統(tǒng)結(jié)構(gòu)、網(wǎng)絡(luò)數(shù)據(jù)表示方法和異常分析流程。
2.1? 系統(tǒng)結(jié)構(gòu)
本文設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)如圖1所示,主要功能模塊有:數(shù)據(jù)選擇、數(shù)據(jù)顯示、數(shù)據(jù)統(tǒng)計(jì)、屬性設(shè)置、驗(yàn)證計(jì)算、驗(yàn)證結(jié)果,其中,屬性設(shè)置模塊包含特征數(shù)目統(tǒng)計(jì)、標(biāo)記屬性統(tǒng)計(jì)、更新數(shù)據(jù)類型等子模塊,驗(yàn)證計(jì)算包含簡單交叉驗(yàn)證、K折交叉驗(yàn)證等子模塊,驗(yàn)證結(jié)果模塊通過混淆矩陣顯示分析結(jié)果數(shù)據(jù),并可通過該模塊查看歷史結(jié)果。
為了提高異常分析的準(zhǔn)確性,本系統(tǒng)將網(wǎng)絡(luò)連接記錄的protocol_type、service、flag三個特征設(shè)置為離散型,其余特征為連續(xù)型,將特征值設(shè)置為相應(yīng)的數(shù)據(jù)類型可以使得驗(yàn)證結(jié)果更科學(xué)。本系統(tǒng)可以手動選擇訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集,在異常分析過程中,首先通過計(jì)算訓(xùn)練集特征屬性的條件熵、信息熵,從而構(gòu)造異常類型決策樹;再利用測試集對決策樹進(jìn)行不同方式的驗(yàn)證,以便得到混淆矩陣,從而顯示真實(shí)歸屬類別與預(yù)測歸屬類別;最后根據(jù)真實(shí)值與預(yù)測值得到最終異常分析結(jié)果。
2.2? 網(wǎng)絡(luò)數(shù)據(jù)表示
本系統(tǒng)根據(jù)手動選擇結(jié)果,劃分出訓(xùn)練集與測試集,采用Java語言的ArrayList數(shù)據(jù)結(jié)構(gòu)存儲訓(xùn)練集中不同特征樣本值、特征樣本數(shù)量。本文檢測網(wǎng)絡(luò)連接數(shù)據(jù)的分類標(biāo)簽是否相同,如果相同則定義為葉子結(jié)點(diǎn),如果不相同則尋找信息增益率最大的特征進(jìn)行劃分,并進(jìn)行決策樹的分裂,生成左右子樹。以上過程直到?jīng)Q策樹中數(shù)據(jù)標(biāo)簽全部區(qū)分開才完成,這也表示結(jié)束決策樹的構(gòu)造。
在訓(xùn)練數(shù)據(jù)集中,每條網(wǎng)絡(luò)連接記錄包含38個連續(xù)類型的特征屬性和3個離散類型的特征屬性。本系統(tǒng)讀取數(shù)據(jù)后,將數(shù)據(jù)類型默認(rèn)設(shè)置為空。在屬性設(shè)置模塊中,選擇待驗(yàn)證的特征進(jìn)行屬性更新,設(shè)置不同類型的特征值,用以計(jì)算各類熵值,從而得到更準(zhǔn)確的信息增益率,使得分析結(jié)果更加接近真實(shí)結(jié)果。
2.3? 異常分析流程
本系統(tǒng)的異常分析流程如圖2所示,整個分析流程分為三個階段:數(shù)據(jù)選擇階段、訓(xùn)練階段、測試階段。
在異常分析數(shù)據(jù)的選擇階段,本系統(tǒng)首先讀取KDD CUP99的數(shù)據(jù)集文件,再由用戶手動選擇用于訓(xùn)練集和測試集的比例,最后本系統(tǒng)確定用于分析的具體訓(xùn)練和測試數(shù)據(jù)。在訓(xùn)練階段,本系統(tǒng)統(tǒng)計(jì)訓(xùn)練集中每種網(wǎng)絡(luò)異常的樣本數(shù)量,計(jì)算各類特征的信息增益率,并以此為依據(jù)構(gòu)造出一顆完整的決策樹。在測試階段,本系統(tǒng)將測試集中的每一條網(wǎng)絡(luò)連接特征在構(gòu)造好的決策樹中進(jìn)行遍歷,每完成一次遍歷就得到一條網(wǎng)絡(luò)連接的分析結(jié)果,從而判斷出該條網(wǎng)絡(luò)連接是否正常,或者是何種異常類型。
3? 系統(tǒng)實(shí)現(xiàn)
3.1? 數(shù)據(jù)讀取
本系統(tǒng)數(shù)據(jù)讀取界面如圖3所示。通過讀取數(shù)據(jù)集文件中的所有網(wǎng)絡(luò)連接記錄,獲取用于分析的網(wǎng)絡(luò)數(shù)據(jù)。本系統(tǒng)采用緩沖區(qū)讀取每一條網(wǎng)絡(luò)連接數(shù)據(jù),將每一條網(wǎng)絡(luò)連接的不同特征值存儲到ArrayList中,通過重復(fù)上述操作處理所有網(wǎng)絡(luò)連接記錄的特征值。同時(shí),本系統(tǒng)將每一種網(wǎng)絡(luò)數(shù)據(jù)(含正常類型或網(wǎng)絡(luò)異常類型)的屬性類型設(shè)置為空類型,通過DataController將數(shù)據(jù)傳到數(shù)據(jù)面板中。
3.2? 數(shù)據(jù)屬性設(shè)置
本系統(tǒng)數(shù)據(jù)屬性設(shè)置如圖4所示。數(shù)據(jù)集中屬性值分為連續(xù)型與離散型兩種數(shù)據(jù)類型,讀取數(shù)據(jù)后默認(rèn)設(shè)置為空類型,更改數(shù)值類型后進(jìn)行決策樹構(gòu)造,通過不同屬性類型采用不同方式進(jìn)行信息增益率的計(jì)算。在C4.5算法中,連續(xù)型變量的分析包含兩條分支,確定分支閾值的核心思想為:將連續(xù)型變量升序排列后,選取任意兩個屬性值中點(diǎn),通過計(jì)算相關(guān)的熵值得出信息增益率,再選取信息增益率最大的作為分裂屬性。
3.3? 決策樹的構(gòu)造
本文采用經(jīng)典的決策樹構(gòu)造方法,生成樹的節(jié)點(diǎn)node,判斷訓(xùn)練集中樣本是否為同一類別C,若為相同類別,則將節(jié)點(diǎn)標(biāo)記為C類葉子節(jié)點(diǎn)。樣本不屬于類別C時(shí),當(dāng)屬性列表為空時(shí),標(biāo)記node為葉子節(jié)點(diǎn),其類別為訓(xùn)練集中樣本數(shù)最多的類別。屬性列表不為空時(shí),計(jì)算屬性類別中屬性的信息增益率,選擇信息增益率最高的屬性標(biāo)記節(jié)點(diǎn)node作為分裂節(jié)點(diǎn)。重復(fù)執(zhí)行上述步驟,當(dāng)節(jié)點(diǎn)中屬性全屬于同一類別時(shí),決策樹構(gòu)造完成。
3.4? 計(jì)算混淆矩陣
混淆矩陣的每一列代表了預(yù)測類別,每一列的總數(shù)表示預(yù)測為該類別的數(shù)據(jù)的數(shù)目。每一行代表了數(shù)據(jù)的真實(shí)歸屬類別,每一行的數(shù)據(jù)總數(shù)表示該類別的數(shù)據(jù)實(shí)例的數(shù)目。將測試集中每條網(wǎng)絡(luò)連接的特征屬性值在決策樹中進(jìn)行遍歷,通過混淆矩陣記錄每次遍歷結(jié)果,再將遍歷結(jié)果與真實(shí)數(shù)據(jù)進(jìn)行比較得到計(jì)算結(jié)果。
4? 結(jié)? 論
本文設(shè)計(jì)并實(shí)現(xiàn)了一種用于網(wǎng)絡(luò)公開數(shù)據(jù)集KDD CUP99的異常分析系統(tǒng),通過對數(shù)據(jù)集進(jìn)行特征獲取和數(shù)據(jù)劃分,確立訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),通過分析訓(xùn)練集數(shù)據(jù)構(gòu)造決策樹,再通過遍歷決策樹,對測試數(shù)據(jù)的類型進(jìn)行判斷,從而實(shí)現(xiàn)了對公開網(wǎng)絡(luò)數(shù)據(jù)集中異常數(shù)據(jù)的有效分析。本系統(tǒng)通過決策樹的構(gòu)造與混淆矩陣的計(jì)算,實(shí)現(xiàn)從數(shù)據(jù)集中區(qū)分出異常數(shù)據(jù)的功能。
參考文獻(xiàn):
[1] 李強(qiáng),嚴(yán)承華,朱瑤.基于決策樹的網(wǎng)絡(luò)流量異常分析與檢測 [J].計(jì)算機(jī)工程,2012,38(5):92-95.
[2] 王熙照,孫娟,楊宏偉,等.模糊決策樹算法與清晰決策樹算法的比較研究 [J].計(jì)算機(jī)工程與應(yīng)用,2003(21):72-75+99.
[3] 馮帆,徐俊剛.C4.5決策樹改進(jìn)算法研究 [J].電子技術(shù),2012,39(6):1-4.
[4] 張新有,曾華燊,賈磊.入侵檢測數(shù)據(jù)集KDD CUP99研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(22):4809-4812+4816.
[5] 吳建勝,張文鵬,馬垣.KDDCUP99數(shù)據(jù)集的數(shù)據(jù)分析研究 [J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(11):321-325.
[6] 郭成華.基于KDDCUP99數(shù)據(jù)集的入侵檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(12):57-60.
[7] STOLFO S J,F(xiàn)AN 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—),男,漢族,四川樂山人,本科在讀,研究方向:網(wǎng)絡(luò)安全;劉才銘(1979—),男,漢族,四川武勝人,教授,博士,研究方向:網(wǎng)絡(luò)安全;通訊作者:張雁(1979—),女,漢族,四川萬源人,副教授,碩士,研究方向:網(wǎng)絡(luò)安全。