999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自適應聚類的未知應用層協議識別方法

2020-03-11 13:54:14龔啟緣馮文博李毅豪
計算機工程與應用 2020年5期
關鍵詞:特征

洪 征,龔啟緣,馮文博,李毅豪

中國人民解放軍陸軍工程大學 指揮控制工程學院,南京210042

1 引言

應用層協議識別是指從承載應用層協議數據的網絡流量中提取出可以標識應用層協議的關鍵特征,并以這些關鍵特征為基礎,將同一種類型的應用層協議數據劃分在一起。

應用層協議識別是網絡服務提供商和網絡管理員提供差異性服務質量保障、實施入侵檢測、流量監控等工作的重要基礎[1]。舉例來看,據統計目前互聯網上超過60%的流量是由流媒體、P2P、網絡游戲等新型網絡應用所產生的,這些應用的流量占據了大量的網絡帶寬,使得其他網絡服務運行異常甚至無法提供服務。使用應用層協議識別技術對這些應用層協議網絡流量進行識別進而根據需要進行限制,是網絡服務提供商提供服務質量保障的基礎。此外,大量的計算機病毒、木馬程序等惡意軟件為了躲避安全軟件和防火墻的防護,使用自定義的應用層協議、動態端口以及端口偽裝技術,使得網絡管理員對惡意入侵行為的檢測越來越困難,應用層協議識別是將這些惡意流量從正常業務流量中區分出來的重要手段,是網絡管理員及時發現并阻止攻擊行為、保護網絡安全的重要基礎。

應用層協議識別方法主要包括基于端口號的識別方法、基于深度包檢測(Deep Packet Inspection,DPI)的識別方法、基于主機行為的識別方法以及基于深度流檢測(Deep Flow Inspection,DFI)的識別方法。

基于端口號的識別方法是以IANA 為HTTP、FTP、TELNET 等常用應用層協議分配的固定端口號為依據對應用層協議網絡流量進行識別。根據IP 地址、端口號、協議號等信息,就可以粗略地確定哪些流量是由IANA 分配了固定端口號的應用層協議產生的,這種方法簡單快捷,便于實現。但是,隨著網絡的發展,端口號的數量無法滿足日益增長的網絡應用需求,動態端口技術應運而生,同一種應用層協議使用的端口號不再固定,甚至有些應用層協議會使用熟知端口(well-known ports)進行通信,如P2P 應用KazaA 就會使用80 端口進行通信。基于協議端口號的流量識別方法無法識別這類應用層協議的網絡流量。Moore等人[2]通過實驗證明基于端口號的識別方法的準確率已經下降至20%以下。

基于深度包檢測的識別方法通過提取應用層數據包的載荷特征,然后和已知庫中的協議載荷特征比對完成協議識別分類[3]。一些研究人員提出使用應用層協議載荷特征識別P2P 等流量的方法[3-4]。很多P2P 協議具有較為明顯的特征字段,如BitTorrent protocol 的特征字段為“13 42 69 74 54 6F 72 72 65 6E 74 20 70 72 6F 74 6F 63 6F 6C”。此類方法解決了協議端口號不固定的問題,可以識別采用動態端口的協議,對于P2P 流量的識別較為有效。但是該方法以應用層協議載荷特征為基礎,因此只能識別數據庫中存儲了應用層載荷特征的應用層協議,不能識別未知協議和加密協議的網絡流量,同時該方法需要維護龐大的載荷特征庫,占用系統資源較多,匹配計算也較為復雜。盡管缺陷很多,但是這是當前識別準確率較高的一類方法,也是部署在高速網絡環境中最好的方式[5]。

Karagiannis 在文獻[6]中提出了基于主機行為的識別分類方法,該方法結合網絡層、運輸層和應用層的網絡流量特征,通過分析主機行為來區分不同的協議數據,該方法在一定程度上提高了應用層協議識別的準確度,但是并沒有解決基于深度包檢測的識別分類方法無法識別未知協議和加密協議的網絡流量的問題。

為了實現對未知協議和加密協議的網絡流量的識別分類,研究者提出了基于深度流檢測的識別方法。Moore等人[2]利用TCP連接過程產生的248種流特征進行應用層協議網絡流量的識別。Moore 認為每一種應用層協議對應的網絡流特征信息是唯一的,這些網絡流特征包括網絡流長度、網絡流持續時間、網絡流中數據包的數量,以及網絡流中數據包的發送間隔等。通過提取網絡交互過程中產生的流的統計特征區分不同協議的流量。該方法不需要讀取解析應用層載荷,只提取流統計特征,計算復雜度低,可以識別加密流量和未知應用層協議流量,方法也不需要維護和更新一個龐大的特征庫,消耗資源少。但是該方法的準確度完全取決于所選取特征的協議區分能力,不足以滿足網絡管理的需要。

面對復雜的網絡環境,傳統的應用層協議識別技術面臨著識別效率低、準確率低等問題。同時,傳統應用層協議識別分類技術無法識別協議規范未知的應用層協議的網絡流量。快速、準確地對未知應用層協議的網絡流量進行識別是協議識別領域的一個重要研究目標。為了解決現有網絡流量識別分類方法在處理未知應用層協議網絡流量識別效率低、識別準確度低的問題,本文提出一種基于自適應聚類的應用層協議識別方法,將聚類算法與傳統的基于深度包檢測的協議識別方法相結合,對未知應用層協議的網絡流量進行識別。所提出的方法能夠自動化地提取目標網絡流量的應用層協議負載特征,自適應地確定目標簇的數量,高效準確地對未知應用層協議流量進行識別。

2 相關研究

近年來,研究者將機器學習方法引入網絡流量識別領域。目前有較多基于有監督學習的應用層協議識別方法的研究。譚駿等人[7]提出了基于自適應BP 神經網絡的流量識別算法,方法取得了較高的協議識別準確率。Wang W等人[8]將卷積神經網絡應用到網絡流量識別分類領域,通過流量清洗消除可能對特征提取造成影響的無用信息,提升了分類準確率。王勇等人[9]提出了基于LeNet-5 深度卷積神經網絡的識別分類方法,通過循環調整相關參數得到最優分類模型。Wu D等人[10]提出一種基于距離的最近鄰識別方法,能夠改善其他方法對不平衡網絡流量識別性能低的問題。Jain[11]研究了由不同優化器訓練的卷積神經網絡對協議識別的影響,實驗結果表明,隨機梯度下降(Stochastic Gradient Descent,SGD)優化器產生的識別效果最好。Ren J 等[12]提出了一種針對無線通信網絡的協議識別方法,首先利用一維卷積神經網絡進行自動化的特征提取,然后基于SVM對應用層協議進行分類。

上述研究利用神經網絡等分類模型,采用有標記的協議數據進行模型訓練,訓練出的模型能夠較為準確地對應用層協議網絡流量進行識別。但是,如果應用層協議的協議規范未知,則相應的網絡流量難以采用這類方法進行識別。

將無監督學習方法應用于網絡流量識別領域是解決上述問題的一種可行方法。基于無監督學習的應用層協議識別目前尚處于起步階段。無監督學習領域最典型的方法是聚類算法。對于任意的數據集,聚類算法能夠依據相似性,將數據進行類別的劃分。要將聚類算法應用于流量識別領域,需要研究分析如何將應用層協議數據轉化為聚類算法的輸入以及如何計算應用層協議數據之間的相似性。

聚類算法包括層次化聚類算法、劃分式聚類算法、基于密度和網格的聚類算法等類型。目前在協議識別領域,研究者采用較多的是劃分式聚類算法。李林林等人[13]在K 均值算法和K 近鄰算法的基礎上設計了一種分類器,采用K 均值算法對少量有標記樣本和大量無標記樣本組成的混合數據進行聚類,得到若干簇,而后利用K 近鄰算法結合簇中有標記的樣本對無標記樣本進行識別,實驗結果表明該分類器對于不平衡網絡流能夠取得較好的分類效果。Munz G 等人[14]使用K-Means聚類算法對未進行標注的異常流量進行檢測,成功實現了異常流量的識別。Mcgregor A 等人[15]將EM算法應用于網絡流量分類,但是其方法只能粗略地進行協議識別,準確率較低。Liu S等人[16]針對EM算法初值敏感性強和易收斂到局部最優解等缺點,提出了基于改進EM 的協議識別方法,該方法縮小了搜索范圍,提高了協議識別的準確率。周文剛等人[17]針對網絡流量的復雜性和動態性等特點,利用譜聚類將協議識別分類問題轉化為無向圖的多路劃分問題,根據圖論的思想構建分類器,最終基于圖劃分結果對協議進行識別分類。Wang 等[18]研究了基于先驗知識的協議識別方法,該方法將標記數據集和未標記數據集作為輸入,首先利用約束聚類算法提取未標記數據的新模式,且這些模式是標記數據未出現的,并以此模式代表未知協議,然后基于標記數據和未標記數據的新模式訓練多個二元分類器,根據分類器的結果確定樣本數據的協議類型。

總體上看,現有的基于聚類的網絡流量方法雖然能夠對未知協議網絡流量進行分類,但是大部分方法需要輸入目標類簇的數量,協議識別的準確率受目標類簇數量的影響較大,不能自動對未知協議流量進行分類,實際應用的局限性較大。

3 基于自適應聚類的未知應用層協議識別方法

3.1 算法概述

本文以網絡通信中的應用層協議數據作為分析對象。同一種協議的網絡數據存在一定的相似性,可以利用這種相似性來區分不同的應用層協議。本文方法首先從采集的原始網絡數據中重組出網絡流,提取出網絡流的應用層協議數據,并對協議數據進行相似度計算,以應用層協議數據間的相似度作為協議識別的依據。而后,利用改進的層次聚類算法對網絡流的應用層協議數據進行自適應地聚類,自動化地識別未知應用層協議。

具體來看,如圖1 所示,所提出的應用層協議識別方法包括以下處理步驟:

(1)數據預處理:對采集的網絡流量數據進行處理,通過數據過濾與排序、流重組、應用層協議數據提取等子步驟,將網絡流量數據轉化為字節流的形式。

(2)相似度計算:截取應用層協議數據前部固定長度的字節,計算獲得不同應用層協議數據之間的相似度。

(3)未知應用層協議聚類:對應用層協議數據進行簇初始化,通過簇間相似度算法計算獲得簇間相似度,利用改進的聚類算法迭代反復,直至達到聚類停止條件,將同種應用層協議數據聚集在一個簇中,最后輸出簇集合,集合中每一個簇即為一種應用層協議所對應的網絡流信息的集合。

圖1 基于自適應聚類的未知應用層協議識別的處理流程

3.2 數據預處理

數據預處理是進行未知應用層協議識別的基礎,其目的是從采集的網絡流量中提取出網絡流,進而獲得應用層協議數據。數據預處理可以細分為三個子步驟。第一個子步驟是進行數據過濾與排序,通過數據過濾獲得具有應用層協議負載的網絡流量,進而通過排序將可能屬于同一個流的網絡數據包聚集在一起。第二個子步驟是流重組,獲得網絡流的信息。第三個子步驟是應用層協議數據提取,在網絡流的基礎上提取出應用層協議數據。

數據預處理的第一個子步驟是過濾掉不需要考慮的通信數據包。本文關注的是包含應用層協議數據的網絡數據包,所涉及的網絡流可以是一個完整的TCP連接或者一次完整的UDP交互。可以通過讀取數據鏈路層幀頭中FrameType字段將非IP數據包過濾,而后通過讀取網絡層IP 數據包首部的Protocol 字段來確定TCP數據包和UDP 數據包,將非TCP 和非UDP 數據包過濾。對于一條單向的網絡流,其中數據包的IP地址和端口號是固定的,因此可以按照IP數據包首部源IP、目的IP、源端口號、目的端口號等信息對網絡數據包進行排序,將可能屬于同一個流的數據包聚集在一起,以提升流重組的效率。

數據預處理的第二個子步驟是流重組。對于TCP流,根據TCP首部中的SYN和FIN標志位可以標識TCP流的開始和結束,而后利用TCP首部的序列號和負載數據長度關系將到達的數據包重新整合為一條有序流。

對于UDP 流,由于其沒有連接建立和連接釋放過程,無法通過UDP 首部標識UDP 流的開始和結束。本文通過設置流最大持續時間,依據數據包的發送時間判斷UDP流的開始和結束。首先按序選擇第一個UDP數據包,以該數據包的發送時間為流開始時間,每捕獲一個數據包,就計算其發送時間與流開始時間之差,如果該差值小于流最大持續時間,則捕獲的數據包屬于該UDP 流;如果該差值大于流最大持續時間,則認為該UDP流已經結束,捕獲的數據包屬于下一條UDP流。

第三個子步驟是應用層協議數據提取。根據TCP流和UDP 流特征,將TCP 流和UDP 流中的應用層協議數據提取出來,保存用于后續分析。

3.3 相似度計算

聚類算法會依據相似度將數據集劃分為多個不同的簇,簇內的數據具有較高的相似度,不同簇之間數據的相似度差距較大。

層次化聚類算法對給定的數據集進行層次的分解,直到達到某種條件才停止。具體可以分為凝聚的層次聚類算法和分裂的層次聚類算法。凝聚的層次聚類算法采用自底向上的策略,首先將每個對象作為一個簇,然后將相似的簇合并形成更大的簇,直到某個條件滿足才終止算法。分裂的層次聚類算法則相反,這類算法首先將所有對象置于一個簇中,然后逐漸分裂為越來越小的簇,直到終止條件滿足。層次化聚類算法適用范圍廣,可以得到高質量的聚類結果。

本文采用凝聚式的層次聚類算法,并選取該算法體系中使用廣泛的AGNES算法作為相似度度量的基礎。

在進行聚類時,首先對數據對象集進行簇初始化,將每一個數據對象標記為一個簇,而后計算簇與簇之間的相似度,通過將簇間相似度與設定的閾值進行比較來決定是否合并兩個簇,迭代反復,自動完成數據對象集的聚類。但是,傳統的AGNES 聚類算法在計算簇間相似度時,存在重復計算對象間相似度的情況。

舉例來看,對于對象集{a1,a2,a3,b1},其中,a1,a2,a3為同一類型對象,b1為另一類型對象。聚類算法對其進行簇初始化后得到簇集合{{a1},{a2},{a3},{b1}}。執行第一次聚類循環,計算簇{a1},{a2},{a3},{b1}之間的簇間相似度,由于初始的每個簇中只有一個對象,初始簇間相似度即為對象a1,a2,a3,b1之間的相似度,需要計算對象a1,a2,a3,b1之間的相似度作為簇間相似度。假設第一次聚類循環后,簇{a1}與簇{a2}被合并為簇{a1,a2},則新的簇集合為{{a1,a2},{a3},{b1}}。第二次聚類循環需要計算簇{a1,a2},{a3},{b1}間的簇間相似度,對于簇{a1,a2}與簇{ }a3,計算其簇間相似度時,首先計算a1與a3、a2與a3的對象間相似度,然后取其平均值作為簇間相似度,以此類推。聚類過程如圖2所示。在聚類循環的過程中,一些對象間的相似度被反復計算,例如,a1與a3間的相似度,a2與a3間的相似度。聚類算法改變的是對象在簇集合中的位置,并沒有增加或刪除對象,在計算簇間相似度時,存在重復計算對象間相似度的情況,重復性地計算降低了聚類效率。

本文方法對聚類流程進行了改進,將聚類方法中相似度的計算劃分為兩個部分,第一部分是數據對象間相似度的計算,第二部分是簇間相似度的計算。在聚類前通過對象間相似度的計算,獲得所有對象之間的相似度。在計算簇間相似度時,當需要確定兩個對象間的相似度時,只需要利用之前的相似度計算結果,不再重新計算,以此來提高聚類效率。

圖2 聚類循環過程的示例

相似度計算階段主要完成對象間相似度的計算,針對協議識別需求所設計的相似度計算流程如圖3所示。

本文的應用層協議間相似度計算流程包括切片處理、選取切片集、計算相似度、存儲相似度等子步驟。

應用層協議數據可以看作有序的字節流。應用層協議數據中,往往有一些具有明顯協議特征的短序列。這些短序列主要集中在應用層協議數據的前部位置。本文通過截取應用層協議數據前部固定長度的字節,盡量保留包含協議特征短序列的數據,同時屏蔽與協議信息無關的用戶數據。然而,在截取的應用層協議數據中依舊可能包含部分干擾判定的用戶數據。

本文通過對文本型協議數據的研究發現,用戶數據與協議特征序列之間往往會使用空格或特殊字符分隔。為了盡可能降低用戶數據對協議分類的影響,提升相似度計算的準確度,本文針對文本型協議設計了切片方法。切片是以空格等特殊字符作為分隔符,對應用層協議數據進行切割,將用戶數據與協議特征短序列分開來。

例如,一條典型的HTTP協議報文為如下形式:

“GET/HTTP/1.1

Host:127.0.0.1

User-Agent:Mozilla/5.0”

第一行為協議特征序列,其后每行數據左邊為協議特征序列,右邊為用戶數據,中間以冒號分隔,通過切片處理后可以獲得如下切片集:

{“GET”、“HTTP”、“1”、“1”、“HOST”、“127”、“0”、“0”、“1”、“User”、“Agent”、“Mozilla”、“5”、“0”}

可以看出每一個切片要么是能夠標識應用層協議特征的短序列,要么是用戶數據,協議特征序列和用戶數據被區分開來。

在對截取的應用層協議數據進行切片處理后,以應用層協議數據的切片集作為相似度計算算法的輸入。相似度計算的具體步驟為:

對于任選兩個切片集:

A={a1,a2,…,an},B={b1,b2,…,bm}

計算第一個切片集中切片在第二個切片集中出現的個數,記為num,則切片集A 對B 的相似度為:

similar(A,B)=num/n n 為A 中切片總數。

循環執行此步驟,直至計算出所有切片集間的相似度。將得到的相似度保存在數組中,供下一步使用。

舉例來看,對于切片集:

A={a1,a2,a3,a4},B={a1,a4}

A 中只有切片a1和a4在B 中出現,則num 為2,那么A 對B 的相似度為:

similar(A,B)=2/4=0.5

同理,B 對A 的相似度為:

similar(B,A)=1

3.4 未知應用層協議聚類

該步工作針對應用層協議識別分類的需求對網絡流信息進行聚類。本文在層次聚類方法的基礎上進行了改進,改進工作主要體現在相似度計算上。傳統的層次聚類算法在計算簇間相似度時,會重復計算數據對象間相似度,本文通過將相似度計算拆分為聚類前應用層協議數據間相似度計算和聚類中簇間相似度計算兩個部分。在聚類前完成復雜的應用層協議數據間相似度計算,而后將結果保存到數組中。在計算簇間相似度時,遇到需要計算應用層協議數據間相似度的地方,只需從數組中提取數值即可,簡化了聚類中的相似度計算,提升了聚類效率。圖4為本文所使用的改進的層次聚類方法的流程示意圖。

圖3 應用層協議間相似度計算流程

圖4 改進的層次聚類算法流程

本文所使用的改進的層次聚類算法流程包括簇初始化、簇間相似度的計算、相似度閾值比對、簇的合并等子步驟。

以數據預處理獲取的應用層協議數據作為算法的輸入,對協議數據進行簇初始化。具體操作為,將每一條網絡流的協議數據獨立保存,并加上初始簇標記。每一條網絡流的協議數據經過簇初始化后屬于不同的簇。

以簇集合作為簇間相似度算法的輸入,任選兩個簇,首先計算簇中每一條協議數據與另一個簇中所有協議數據間相似度的均值,作為該條協議數據與另一個簇之間的相似度。而后計算簇中所有協議數據與另一個簇之間的相似度的均值,作為簇間相對相似度。最后,計算兩個簇之間相對相似度的均值,得到簇間相似度。

舉例來看,在聚類時任選兩個簇:

C1={a1,a2,…,an},C2={b1,b2,…,bm}

首先計算簇C1 內協議數據ai(i=1,2,…,n) 與簇C2 的相似度:,記為similar(ai,C2),其中similar(ai,bj)表示應用層協議數據ai對應用層協議數據bj的相似度,m 為簇C2 中包含的應用層協議數據的總數。

如果簇間相似度大于相似度閾值,則合并兩個簇類并更新簇集合。具體做法為選取相似的兩個簇:

C1={a1,a2,…,an},C2={b1,b2,…,bm}

以其中任意一個簇為基礎,將另一個簇中所有數據添加進來,如以C1 為基礎,合并后為:

C1={a1,a2,…,an,b1,b2,…,bm}

進而在簇集合中刪除簇C2,這就完成了合并簇集合的操作。

重復計算簇間相似度、相似度閾值比對、合并簇等步驟直到算法滿足聚類終止條件。聚類的終止條件一般是簇集合中的簇間相似度小于相似度閾值,不能再進行簇的合并。而后輸出簇集合,每一個簇包含了對應于一種應用層協議的所有網絡流信息。

4 實驗測試

4.1 應用層協議網絡流量采集

應用層協議識別分類的第一步是數據的采集,本文實驗使用的數據集分為公開數據集和本地數據集。

公開數據集使用的是林肯實驗室發布的DARPA數據集[19],本文從其中的tcpdump 數據集中提取出HTTP、FTP、SMTP三種協議的通信數據,把它們作為未知協議進行測試。對3 種協議各抽取前500 個數據包,組成1 500個數據包的數據集作為原型系統的輸入數據。

本地數據集為在實驗環境中捕獲的一種自定義協議的通信數據。該協議服務端通過21 號端口進行通信,在Wireshark 中這種自定義協議會被錯誤地識別為FTP的通信數據。

實驗中將選取的DARPA公開數據集與本地數據集通過Wireshark混合生成了多協議混合數據集。協議交互過程是雙向的,本文方法針對單向網絡流,因此在實驗時首先對每種協議進行流重組,以獲得每種協議對應的請求網絡流和響應網絡流數量,如表1所示。因為數據從DARPA 數據集中按順序選取,因此請求網絡流和響應網絡流數量基本是相等的。

4.2 算法中的參數分析

本文算法涉及兩個重要參數,一是簇間相似度閾值,該參數是聚類算法中兩個簇能合并為一個簇的最小簇間相似度;二是截取報文長度,該長度影響到算法自動提取出的特征短序列的完整性。本文通過控制變量法測試了兩個參數對聚類效果的影響。

(1)簇間相似度閾值對聚類準確率的影響

本文使用從DARPA數據集提取出的協議流量進行測試。首先測試簇間相似度閾值對聚類準確率的影響。簇間相似度閾值是聚類中兩個簇能合并為一個簇所需的最小簇間相似度,閾值的大小會影響聚類效果。實驗設置的截取應用層協議數據的長度為60 Byte,測試結果如圖5所示,從圖中可以看出簇間相似度閾值為0.3 時,聚類準確率最高,聚類效果最好,三種協議的聚類準確率都達到了100%。在簇間相似度閾值大于0.3以后,三種協議的聚類準確率開始下降;當閾值接近1時,HTTP、FTP 協議的聚類準確度下降到接近0%,而FTP協議聚類準確度還能保持在50%以上。

經分析,測試數據雖然只截取了協議前部60 Byte數據,但是其中依舊包含了部分用戶數據。在計算簇間相似度時,會對相似度結果產生一定影響,同類協議的相似度在0.3 左右,因此隨著簇間相似度閾值接近0.3,聚類效果越來越好,隨著相似度閾值接近1,聚類效果變差。

表1 網絡流量數據集

圖5 簇間相似度閾值對聚類準確率的影響

(2)截取的應用層協議數據長度對聚類準確率的影響

截取的應用層協議數據長度決定了截取的數據中包含的協議特征短序列的數量和用戶數據的數量,影響著應用層協議數據間相似度計算的準確性。本文設置簇間相似度閾值為0.3,通過改變截取的應用層協議數據的長度,得到每一種長度下的聚類準確率。截取長度選取范圍為(10,100),步幅為10,圖6 為測試結果。從圖中可以看出,在簇間相似度閾值為0.3時,聚類效果在截取的應用層協議數據長度等于10 Byte 或大于等于60 Byte時效果最好,SMTP協議受截取數據長度影響最大,FTP協議幾乎不受截取數據長度影響。

圖6 截取報文長度對聚類準確率的影響

經分析認為,協議數據為協議特征短序列與用戶數據的交替混合,雖然特征短序列都處在協議數據前部,但是其前部依舊包含一些用戶數據,且用戶數據比協議特征數據多出不少。當截取數據長度為10 Byte 時,截取的數據全部為協議特征短序列或者協議特征短序列明顯多于用戶數據,因此聚類結果準確率很高。隨著截取數據長度的增加,用戶數據在截取數據中的占比逐漸超過協議特征短序列,導致聚類準確率開始下降。同時,由于特征短序列與用戶數據是交替排列的,因此當截取數據長度進一步提高時,協議特征短序列的占比又會逐漸提高,導致聚類準確率再次增長。

4.3 聚類準確率測試

本文通過Python 實現了算法,而后輸入測試數據集。算法需要人工設置兩個參數:簇間相似度閾值和截取的應用層協議數據長度,測試實驗選取簇間相似度閾值為0.3,截取的應用層協議數據長度為60 Byte。最后得到聚類結果如表2所示。

表2 聚類結果

本文通過將該結果與人工標記結果進行比較得到算法聚類的準確率,得到表3。

表3 聚類結果準確率

從結果可以看出,本文算法成功將HTTP、FTP、SMTP 和自定義協議的請求網絡流和響應網絡流區分開,聚成不同的簇,聚類準確率達100%。本文算法并沒有使用端口信息進行協議區分,而是使用協議應用層數據負載特征進行協議聚類,因此本文可以成功將使用端口偽裝技術的自定義協議與FTP協議區分開,實現未知協議識別的目標。

4.4 聚類效率測試

本文將改進后的AGNES 算法與原算法進行比較,測試數據集采用上文所采集的數據,具體信息如表4所示。在測試過程中,本文以程序運行時間作為聚類效率的度量標準,得到聚類效率對比結果如表5所示。

表4 測試數據集

表5 聚類效率測試結果 s

從結果可以看出改進后的算法在聚類效率上明顯優于改進前的原始算法,從數據上看,其效率可以提高一倍,時間上表現為算法運行所需時間減少一半。該結果說明通過將AGNES算法的相似度計算拆分為聚類前應用層協議數據間相似度計算和聚類中簇間相似度計算確實可以提升聚類算法的聚類效率。

4.5 與其他聚類算法的對比分析

本文使用Weka 平臺中的SimpleKMeans、EM、MakeDensityBasedCluster 等聚類算法與本文算法進行對比測試,進一步驗證本文方法的性能。

KMeans聚類、EM聚類和MakeDensityBasedCluster是三種典型的聚類方法。KMeans 聚類是劃分聚類算法中最著名的算法,具有簡潔高效的特點。Weka 平臺中的SimpleKMeans 算法是KMeans 算法家族中使用最廣泛的一種。對于一個數據集合,當用戶指定聚類數目k 后,KMeans 算法會依據設定的距離函數把數據分為k 個簇中。KMeans聚類認為每一個數據對象完全隸屬于某個簇。EM 算法假定每個數據對象是模糊隸屬于某個簇的,每個簇都是一個高斯分布,該算法反復迭代,以確定數據對象存在于某個簇中的概率。當概率模型適合于數據該時,此算法終止這一過程。基于密度的聚類方法可以在有噪音的數據中發現各種形狀和各種大小的簇。MakeDensityBasedCluster 是該類方法中最典型的代表算法。其核心思想就是先發現密度較高的點,然后把相近的高密度點逐步都連成一片,進而生成各種簇。

實驗首先通過預處理,對從DARPA 數據集中提取的3 種協議數據進行處理,獲得應用層協議數據,而后使用本文設計的切片方法對應用層協議數據進行截取和切片,并將切片數據保存采用csv 格式保存。該格式可以被Weka平臺識別并處理。

對于SimpleKMeans 算法,本文設置聚類數目為6,隨機種子為10 進行測試,其余參數為默認參數。測試結果如表6所示。

表6 SimpleKMeans聚類結果

對于EM算法,設置聚類數目為6,隨機種子分別取100進行測試,其余參數默認。測試結果如表7所示。

表7 EM聚類結果

對于MakeDensityBasedCluster算法,所有參數采用默認值。測試結果如表8所示。

表8 MakeDensityBasedCluster聚類結果

本文通過將結果與人工標記結果進行對比,得到四種聚類算法的聚類準確率,如表9。

實驗結果表明本文方法在三種協議的聚類上明顯優于SimpleKMeans 算法和MakeDensityBasedCluster 算法,在FTP協議的聚類上優于EM算法。

總體上看,通過實驗結果可以看出,本文方法能夠快速準確地將未知混合多協議分類為單協議數據,聚類準確率較高,并且無需訓練,適合實際使用。

5 結束語

本文提出了一種基于自適應聚類的未知應用層協議識別分類方法,首先從采集的原始網絡數據中重組出網絡流,提取網絡流的應用層協議數據載荷特征,進而計算應用層協議數據的相似度作為應用層協議識別分類的依據,利用聚類算法自動化地對網絡流的應用層協議數據進行聚類,高效準確地實現未知應用層協議網絡流量識別分類。方法充分利用了聚類算法的優勢,避免了訓練過程,高效準確,具有較高的實用價值。

本文方法存在的主要問題是無法對經過加密處理的網絡流量進行識別分類。對于經過加密處理的應用層協議網絡流量,由于其數據區域被加密處理過,其特征序列被打亂和隱藏,本文提出的方法并不能自動化提取出數據中的特征序列,無法計算其應用層協議間相似度。對于加密協議的識別,將是下一步研究的主要方向。

表9 四種聚類算法聚類準確率對比%

聚類算法SimpleKMeans EM MakeDensityBasedCluster本文算法HTTP 80.20 99.49 77.66 100.00 FTP 50 50 0 100 SMTP 50 100 0 100

[2] Moore A W,Zuev D.Internet traffic classification using Bayesian analysis techniques[J].ACM SIGMETRICS Performance Evaluation Review,2005,33(1):50.

[3] Bujlow T,Carela-Espa?ol V,Barlet-Ros P.Independent comparison of popular DPI tools for traffic classification[J].Computer Networks,2015,76:75-89.

[4] 汪立東,錢麗萍,王大偉,等.網絡流量分類方法與實踐[M].北京:人民郵電出版社,2013:122-126.

[5] Deri L,Martinelli M,Bujlow T,et al.nDPI:open-source high-speed deep packet inspection[C]//Proc of Wireless Communications and Mobile Computing Conference,2014:617-622.

[6] Karagiannis T.Blinc:multilevel traffic classification in the dark[C]//Proc of the 2005 Conference on Applications,Technologies,Architectures,and Protocols for Computer Communications.New York:ACM Press,2005:229-240.

[7] 譚駿,陳興蜀,杜敏,等.基于自適應BP神經網絡的網絡流量識別算法[J].電子科技大學學報,2012(4):580-585.

[8] Wang W,Zhu M,Zeng X,et al.Malware traffic classification using convolutional neural network for representation learning[C]//Proc of the 2017 International Conference on Information Networking.Piscataway,NJ:IEEE Press,2017:712-717.

[9] 王勇,周慧怡,俸皓,等.基于深度卷積神經網絡的網絡流量分類方法[J].通信學報,2018,39(1):14-23.

[10] Wu D,Chen X,Chen C,et al.On addressing the imbalance problem:a correlated KNN approach for network traffic classification[C]//Proc of International Conference on Network and System Security.Cham:Springer International Publishing,2014:138-151.

[11] Jain A V.Network traffic identification with convolutional neural networks[C]//2018 IEEE 16th Intl Conf on Dependable,Autonomic and Secure Computing.Washington:IEEE Computer Society,2018:1001-1007.

[12] Ren J,Wang Z.A novel deep learning method for application identification in wireless network[J].China Communications,2018,15(10):73-83.

[13] 李林林,張效義,張霞,等.一種基于集成學習的流量分類算法[J].信息工程大學學報,2015(2):240-244.

[14] Munz G,Li S,Carle G.Traffic anomaly detection using K-means clustering[C]//GI/ITG Workshop MMBnet,2007:13-14.

[15] Mcgregor A,Hall M,Lorier P,et al.Flow Clustering Using Machine Learning Techniques[C]//Proc of the International Workshop on Passive and Active Network Measurement.Berlin,Heidelberg:Springer-Verlag,2004:205-214.

[16] Liu S,Hu J,Hao S,et al.Improved EM method for internet traffic classification[C]//Proc of the 8th International Conference on Knowledge and Smart Technology.Piscataway,NJ:IEEE Press,2016:13-17.

[17] 周文剛,陳雷霆,董仕.基于譜聚類的網絡流量分類識別算法[J].電子測量與儀器學報,2013,27(12):1114-1119.

[18] Wang Y,Xue H,Liu Y,et al.Statistical network protocol identification with unknown pattern extraction[J].Annals of Telecommunications,2019,74(7):473-482.

[19] Lippmann R,Haines J W,Fried D J,et al.The 1999 DARPA off-line intrusion detection evaluation[J].Computer Networks,2000,34(4):579-595.

猜你喜歡
特征
抓住特征巧觀察
離散型隨機變量的分布列與數字特征
具有兩個P’維非線性不可約特征標的非可解群
月震特征及與地震的對比
如何表達“特征”
被k(2≤k≤16)整除的正整數的特征
中等數學(2019年8期)2019-11-25 01:38:14
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
詈語的文化蘊含與現代特征
新聞傳播(2018年11期)2018-08-29 08:15:24
抓住特征巧觀察
基于特征篩選的模型選擇
主站蜘蛛池模板: 超薄丝袜足j国产在线视频| 日韩在线成年视频人网站观看| 好久久免费视频高清| 国产91无毒不卡在线观看| 亚洲综合欧美在线一区在线播放| 亚洲精品图区| 亚洲一区波多野结衣二区三区| 国产一级视频久久| 91精品aⅴ无码中文字字幕蜜桃| 亚洲天堂网在线播放| 国产精品专区第1页| 一本色道久久88| 成人免费视频一区| 国产极品美女在线播放| 免费激情网址| 国产精品香蕉在线| 91福利国产成人精品导航| 免费看的一级毛片| 亚洲一区二区黄色| 国产精品第一区| 大陆精大陆国产国语精品1024| 日韩欧美网址| 人妻丰满熟妇啪啪| 在线视频亚洲欧美| 国产精品女熟高潮视频| 国产成人乱码一区二区三区在线| 国产一区二区三区免费| 激情爆乳一区二区| 2048国产精品原创综合在线| 国产一级在线观看www色| 不卡的在线视频免费观看| 国产小视频网站| 国产激情第一页| 国产另类视频| 人妻一本久道久久综合久久鬼色| 青青青国产免费线在| 国产成人三级| 免费在线一区| 亚洲va视频| 亚洲天堂视频在线免费观看| 久久久久亚洲精品成人网 | 国产嫩草在线观看| 久久亚洲日本不卡一区二区| 国产免费好大好硬视频| 亚洲天堂网在线视频| 最新日本中文字幕| 国产精品开放后亚洲| 亚洲无线观看| 这里只有精品国产| 亚洲黄色高清| 日韩大片免费观看视频播放| 亚洲无码A视频在线| 亚洲人成网18禁| 久久青草视频| 国产日韩AV高潮在线| 国产另类视频| 伊人成人在线| 久久无码av三级| 国产9191精品免费观看| 都市激情亚洲综合久久| 中文无码精品A∨在线观看不卡 | 欧美一级高清免费a| 日本精品一在线观看视频| 久久99国产精品成人欧美| 青青青国产在线播放| 91久久性奴调教国产免费| 亚洲人网站| 国产精品不卡片视频免费观看| 成人免费网站在线观看| 久久精品人人做人人爽| 一本大道香蕉高清久久| 嫩草国产在线| 91无码人妻精品一区| 嫩草国产在线| 国产精品久久国产精麻豆99网站| 嫩草国产在线| 亚洲成人在线网| 深爱婷婷激情网| 免费aa毛片| 亚洲成a人片在线观看88| 又爽又黄又无遮挡网站| 国产精品久久久久久久伊一|