?

基于機器學習的網絡異常流量分析系統

2020-04-14 04:54方洋李旗張瑞霞
電腦知識與技術 2020年4期

方洋 李旗 張瑞霞

摘要:該系統使用機器學習方法對異常流量進行判別,設計一個異常流量的檢測模型,通過對HTTP請求頭字段進行特征提取,形成多維特征庫,應用到機器學習的高斯混合模型中,進行驗證和評估。經過測試證明特征計算方法在高斯混合模型中有較好的準確率和召回率。

關鍵詞:異常流量;特征計算;高斯混合模型;sklearn

中圖分類號:TP393

文獻標識碼:A

文章編號:1009-3044(2020)04-0024-02

1 背景

惡意軟件的傳播數量越來越多。根據國家互聯網應急響應中心[1](CNCERT)發布的安全報告,2018年,CNCERT全年捕獲計算機惡意程序樣本數量超過1億個,涉及計算機惡意程序家族51萬余個,較2017年增加8132個;全年計算機惡意程序傳播次數日均達500萬余次。在這背景下可以看出,惡意軟件對當前社會帶來了巨大的影響,在如此大的威脅下,惡意軟件不僅對用戶和企業帶來直接的經濟損失,它的快速變種能力也對研究人員和查殺技術帶來很大的困擾。傳統的通過靜態規劃匹配的網絡異常檢測方法在動態、復雜的網絡環境中難以檢測出未知異常和攻擊類型,不能滿足網絡安全檢測的要求,機器學習具有自學習、自演化的特性,可以適應復雜多變的網絡環境,能夠檢測出未知的異常,滿足實時準確檢測的需求[2]。本課題可以通過使用機器學習的方法,利用其自學習的特性,對異常流量進行學習,通過使用合適的機器學習算法,可以發現未知的異常流量。

2 高斯混合模型和EM算法

高斯混合模型(Gaussian Mixed Model,簡稱GMM)是用高斯概率密度函數(正態分布曲線)精確地量化事物,將一個事物分解為若干的基于高斯概率密度函數形成的模型。通俗地講,無論觀測數據集如何分布以及呈何種規律,都可以通過多個單一高斯模型的混合進行擬合。

高斯混合模型(GMM)就是指對樣本的概率密度分布進行估計,而估計釆用的模型(訓練模型)是幾個高斯模型的加權和(具體是幾個要在模型訓練前建立好),每個高斯模型就代表了一個類(Cluster),對樣本中的數據分別在幾個高斯模型上投影,就會分別得到在各個類上的概率,然后我們可以選取概率最大的類所為判決結果[3]。

期望最大(Expectation Maximization,簡稱EM)算法,稱為機器學習的十大算法之一。它是一種從不完全數據或有數據丟失的數據集中求解概率模型參數的最大似然估計方法。高斯混合模型由均值、協方差和混合系數共同決定,所以在進行迭代的過程之前,首先需要為均值、協方差以及混合系數選擇一個初值,然后交替進行期望步驟和最大化步驟[4]。

與K-means算法相比,EM算法在達到收斂之前經歷了更多次的迭代,每次迭代都需要更多的計算量,因此,通常在進行高斯混合模型訓練時,用K-means算法找到高斯混合模型的一個合適的初始化值,接下來用EM算法進行迭代求解,可以方便地將協方差矩陣初始化為通過K-means算法找到的聚類樣本協方差,混合系數可以被初始化為分配到相應聚類中的數據點所占的比例。

3 異常流量檢測

3.1 數據預處理

3.1.1 樣本收集

本課題使用的數據集UNSW-NB15[5]來自新南威爾士大學,數據集包含研究人員分析出的CSV標記集和數據集的PCAP原始流量,該數據集是在linux下使用tcpdump分別在2015年1月22日和2015年2月17日進行捕獲,其中包含了許多正常的上網流量和異常流量。同時我們需要單獨的惡意樣本對訓練模型進行驗證。惡意樣本主要來自MALWARE-TRAFFIC-ANALYSIS.NET,該網站上包含了自從2013年以來安全研究員分析的惡意軟件樣本,網絡流量樣本,以及惡意軟件行為。

3.1.2 HTTP流量提取

根據課題的研究背景,本系統主要分析流量中的HTTP協議,因此在對數據集的提取過程中,只需要提取HTTP流量作為數據集,并根據需要對HTTP請求頭部進行字段的提取。

目前需要的字段主要有:Method,URI,Version,Host,User-Agent,Accept,Connection,Content-type,共8個字段的信息以及一些標識字段:時間,源端口,源IP,目的端口,目的IP共5個字段的信息,并將這些字段信息保存在CSV(逗號分隔符)文件中。

3.1.3 數據集處理

UNSW-NB15數據集中提供了惡意流量標記集,該標記集中包含對原始流量中發生的惡意事件進行分析,包括HTTP的異常流量、惡意軟件的產生的流量和各種0day漏洞的利用過程中產生的流量,分析的結果包含流量的開始時間,結束時間,攻擊類別,協議,源IP,源端口,目的IP,目的端口,攻擊名稱,攻擊參考等信息。

通過標記集給定的信息,對原始中的HTTP異常流量進行提取,按照所需字段存儲在CSV格式文件中,并在最后新增字段,以數字1表示異常流量,并對其他HTTP流量也進行字段提取,以數字0表示正常流量,最終得到異常流量數據集25535條,正常流量數據集26215條。

3.1.4 數據集劃分

根據2.6.3中提取出的數據集,將數據集中異常流量和正常流量以1:1的比例混合而成,這里將使用25000條異常流量和25000條正常流量組成數據集并將其劃分為訓練集和測試集,使用sklearn模塊中的train_test_split()方法,將數據集的70%劃分為訓練集,30%劃分為測試集。

3.2 機器學習算法應用

3.2.1 特征提取

通常異常流量在Host,URI,User-Agent這三個字段特異性較高,為了減少模板數量,需要對這三個字段進行泛化。對于URI字段,將字母部分用符號“#”代替,數字部分用符號“@”代替。

對于HTTP流量頭部的每個字段,我們需要對出現的每個關鍵詞分配一個分數,要獲取關鍵詞,需要對字段進行分詞處理,這里將通過空格,符號符號“,”,符號“二”對字段進行分詞,并通過計算關鍵詞的條件概率作為分數,對于一個字段中包含多個關鍵詞的處理方法,使用加權平均的方法對整個字段進行分數計算,加權平均使用的權值為關鍵詞在字段值所處的位置。

通過對HTTP流量所需字段的分數計算,最終得到的是包含所有字段的分數組成的矩陣,該分數矩陣就是接下來高斯混合模型所需要的訓練數據。

使用高斯混合模型對訓練數據進行均值計算,發現該分數矩陣的均值,在URI,Host,User-Agent這三個字段區別很明顯,因此初步認為,這三個字段是判斷正常流量和異常流量的關鍵。

3.2.2 模型訓練

使用sklearn中的GaussianMixture方法,對數據集進行高斯混合模型的訓練,同時,使用sklearn中的LogisticRegression方法,對URI數據集進行訓練,通過調整參數,將得分最好的模型保存起來,用于對新的未知數據進行測試。

3.2.3 參數設置

(1)對于GaussianMixture方法,將參數設置為以下:

① n_components=2,表示高斯模型個數,相當于分類中類別的數量

② init_paramS=,kmeans,,表示初始化參數的實現方法,這里使用默認值

③ covariance_type=,fuir,表示協方差類型,使用full表示使用完全協方差矩陣

④ random_state=0,表示隨機數種子,使用默認值

⑵對于LogisticRegression方法將參數設置為如下:

① class_weight:(1:2*validCount/badCount,0:1.0),表2K惡意樣本所占的權重為2*正常樣本/惡意樣本,而正常樣本所占的權重為1,這樣做是為了避免樣本不均衡的問題,在后面章節會介紹對于樣本不均衡問題時,可以通過設置權重來解決。

② 其他均使用默認參數

4 系統測試

通過訓練的結果可以看到,在訓練集上通過機器學習的模型評估依據可以看到準確率為86.62%,精確率為78.83%,召回率為87%,AUC的值為92.24%,說明該模型是可用的,通過對訓練數據劃分比例進行調整,發現即使訓練數據劃分為90%,得到的結果并沒有明顯的提升,此時判斷模型為欠擬合,根據查閱相關資料得知,高斯混合模型為生成模型,對數據集要求比較大,數據集越大,越能很好的估計概率密度,而目前使用的數據集一共才5萬條,對于網絡流量來說,還遠遠不夠,相信在擁有更豐富數據集的情況下,訓練的效果會更好,而且分類效果也會更好。

5 總結

本課題主要是根據使現有的技術和算法,實現一個能對網絡上數據包進行實時檢測或對數據包文件進行檢測的系統,通過提取HTTP流量中請求頭的字段,經過模板自動化生成算法,將數據轉換為高斯混合模型中使用的分數矩陣,之后使用高斯混合模型進行訓練得到最終的評定模型,可以對異常流量做出判斷因為訓練數據量不夠的問題導致對異常流量判斷準確度不是很高的情況,只要擁有足夠多的數據量進行訓練,該系統的檢測效果會更加準確。

參考文獻:

[1] 國家計算機網絡應急技術處理協調中心.2018年我國互聯網網絡安全態勢綜述[J].國家互聯網應急響應中心,2019.04.

[2] 陳勝侏國勝,祁小云,等.基于機器學習的網絡異常流量檢測研究[J].信息通信,2017,30(12):39-42.

[3] 海沫,張游.Spark平臺下聚類算法的性能比較[J].計算機科學,2017,44(81):414-418.

[4] 于冰潔.基于高斯模型的異常檢測算法[D].徐州:中國礦業大學,2017.

[5] TheUNSW—NB15dataset.https://www.unsw.adfa.edu.au/un-sw—Canberra—cyber/cybersecurity/ADFA—NB15—Datasets/.

[通聯編輯:代影]

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合