本發明屬于網絡空間安全領域,特別涉及一種基于詞義聚合和語義分離技術的加密流量分類方法及系統。
背景技術:
1、加密流量分析是指在不解密實際內容的情況下對加密網絡流量進行監測和分析,是網絡安全和網絡管理領域的一項重要研究。理解加密流量非常重要,因為這可以為網絡運營商執行網絡運營和管理活動提供有價值的見解。例如,通過分析加密流量模式中的異常來檢測惡意活動和入侵,從而保證網絡安全。一些常見的應用程序包括加密應用程序分類、攻擊檢測、vpn(virtual?private?networks)分類等。
2、網絡流量往往以數據包的形式存在于網絡空間,包含著豐富的語義信息。數據包通常可以分為兩部分。報頭部分主要包括源ip地址、目的地ip地址、源端口、目的地端口、協議類型等。有效載荷部分是指正在傳輸的實際數據,通常是加密的。如今,加密協議的發展趨勢和網絡流量的快速發展使傳統的流量分類方法變得過時。這些傳統方法,如端口匹配、服務器名稱指示匹配、深度包檢測等,主要基于明文字段或有效載荷進行規則匹配。然而,它們對加密流量中的有效載荷無法進行進一步的特征提取和分析。
3、近年來,隨著深度學習(deep?learning)和預訓練語言模型(pre-traininglanguage?models)的發展,越來越多的研究人員專注于利用自然語言處理(naturallanguage?processing)方法直接從原始流量數據中學習,進行自動特征提取,將加密數據視為文本序列進行語義理解。通過將流量數據分析問題作為一個語言建模任務,長短時記憶網絡(long?short?term?memory)和transformers等深度學習模型可以應用于網絡流量的順序建模和語義理解。這允許學習加密流量的模式并執行分析任務,而不需要解密有效載荷,如:流量分類和異常檢測。目前針對加密流量數據的分類主要可以包括基于字節的方法和基于預訓練語言模型的方法。
4、基于字節的模型直接處理原始流量字節,并使用卷積神經網絡(cnns)和長短時記憶網絡等技術學習流量特征表示。它們可以在無需特征工程的情況下捕獲加密數據包中的復雜模式。根據這些方法如何理解輸入流量,可以將其分類為基于圖像或基于文本的分類方法。具體而言,基于圖像的模型通過將原始字節轉換為灰度強度值或rgb顏色,將流量數據視為2d圖像。然后,他們應用現成的的圖像分類cnn架構,例如resnet或者inception進行流量分類。基于文本的模型,例如如循環神經網絡(recurrent?neural?network)和長短時記憶網絡,將輸入按順序處理為文本序列。它們可以分析原始流量包中的長舉例依賴關系。像transformer這樣的自注意模型也被廣泛使用,用于學習加密流量數據中的上下文關系。
5、最近,越來越多的研究人員利用預訓練語言模型進行加密流量分類。遵循自監督預訓練范式,該范式已被證明對自然語言處理任務非常有效。模型首先以自監督的方式在大量未標記的網絡流量數據上進行訓練,以學習通用流量表示。通過預定義的任務,如掩碼令牌預測、同源burst預測等進行實現,這些任務允許模型捕獲原始字節并挖掘流量的內在特性。et-bert通過從大規模的流量數據中進行預訓練,獲取上下文的數據表示。netgpt為流量理解和生成任務提供了一個生成的預訓練模型。然而,這種類型的方法需要大量的數據和計算資源來重新訓練大型語言模型。在本發明中,所提出的方法有效地利用了在bert的預訓練階段學習到的一般自然語言知識,而無需重新進行預訓練。同時通過語義分離技術,顯式地在不同類別的語義空間中進行獨立的特征學習,從而加強特征的可區分性。
6、隨著網絡環境的變化和加密協議的快速發展,傳統基于規則的方法(例如端口匹配、深度包檢測技術等)不再適用于加密流量分類任務。從詞義的角度來說,對流量數據的理解和文本中詞語的理解并不一致,尤其是當流量加密之后。目前現有的基于預訓練語言模型的流量分析方法如bert,主要是理解自然語言層面的信息,直接處理流量信息不一定合適。從語義的角度來說,流量數據可以有多種語義。然而現在的方法多是隱式地通過頂層學習的抽象語義特征進行分類,未更進一步解耦不同類別或者任務下的獨立語義特征,導致樣本的特征區分性并不明顯。由此可見,目前基于預訓練語言模型的方法要么直接利用bert處理流量數據,要么重新對bert模型進行預訓練,雖然都能一定程度上提高分類效果。但是直接利用bert處理流量數據會破壞流量數據中的完整詞義,導致特征失效。重新對bert模型進行預訓練雖然能保證詞義的完整性,但是需要大量的計算資源和數據,同時也未考慮對頂層抽象語義的分離學習。
技術實現思路
1、本發明的目的是提出一種基于詞義聚合和語義分離技術的加密流量分類方法及系統,通過詞義聚合保留完整詞義,通過語義分離將抽象特征解耦在不同類別空間,增強特征可區分性,提高加密流量的分類效果。
2、本發明實現上述目的所采用的技術方案是:
3、一種基于詞義聚合和語義分離技術的加密流量分類方法,包括以下步驟:
4、將網絡流量數據通過bert分詞器進行分詞,得到子詞;
5、將子詞通過流量編碼器進行語義特征編碼,得到隱藏狀態表示;
6、將隱藏狀態表示通過語義聚合器進行語義聚合,得到包級別的語義特征;
7、設計具有分類提示的提示模板,在提示模板的引導下將包級別的語義特征通過語義分離器進行語義分離,得到類別級別的語義特征;
8、將類別級別的語義特征輸入到分類器進行分類預測;
9、將帶有真實類別標簽的訓練數據通過上述步驟處理,訓練流量編碼器、語義分離器和分類器,訓練完成后按照上述步驟處理加密流量,得到加密流量的分類結果。
10、進一步地,bert分詞器使用wordpiece分詞器。
11、進一步地,流量編碼器選用預訓練的bert編碼器。
12、進一步地,詞義聚合器利用bert分詞器保留的子詞長度信息來聚合隱藏狀態表示的詞義。
13、進一步地,提示模板由數據類別詢問和類別序列組成。
14、進一步地,在提示模板的引導下將包級別的語義特征通過語義分離器進行語義分離的步驟包括:
15、使用與上述流量編碼器相同架構的另一個流量編碼器,對提示進行語義特征編碼,得到提示的隱藏狀態表示;
16、將包級別的語義特征和提示的隱藏狀態表示一同進行激活處理,將包級別的語義特征分離為各類別對應的獨立隱藏狀態;
17、將包級別的語義特征和對應的獨立隱藏狀態進行平均池化處理,得到類別級別的語義特征。
18、進一步地,將包級別的語義特征和提示的隱藏狀態表示一同進行激活處理的公式如下:
19、score=softmax(h·h′t)
20、h″c=(score·h′)wc+bc
21、其中,h為包級別的語義特征,h′為提示的隱藏狀態表示,h″c為獨立隱藏狀態,softmax表示激活函數,wc,bc為可學習的參數,c表示類別。
22、進一步地,接利用殘差結構組合包級別的語義特征和對應的獨立隱藏狀態,然后進行平均池化處理,公式如下:
23、lc=average-pooling(h+αh″c)
24、其中,lc為類別級別的語義特征,h為包級別的語義特征,h″c為獨立隱藏狀態,α為權重超參數,average-pooling表示平均池化。
25、進一步地,分類器基于多層感知器和sigmoid函數進行分類預測,公式如下:
26、pc=sigmoid(mlp(lc))
27、其中,pc表示類別預測概率,sigmoid表示將變量映射到0到1上的激活函數,mlp表示多層感知器,lc為類別級別的語義特征。
28、進一步地,訓練時使用如下交叉熵損失函數對模型進行優化:
29、
30、其中,l1表示交叉熵損失,n表示訓練數據集樣例個數,y表示樣本對應的真實類別標簽,pc表示類別預測概率。
31、一種基于詞義聚合和語義分離技術的加密流量分類系統,包括:
32、bert分詞器,用于對網絡流量數據進行分詞,得到子詞;
33、流量編碼器,用于對子詞進行語義特征編碼,得到隱藏狀態表示;
34、語義聚合器,用于對隱藏狀態表示進行語義聚合,得到包級別的語義特征;
35、語義分離器,用于在提示模板的引導下對包級別的語義特征進行語義分離,得到類別級別的語義特征;
36、分類器,用于根據類別級別的語義特征進行分類預測,得到加密流量分類結果。
37、與現有技術相比,本發明具有的優點:
38、本發明提出的方法針對目前方法無法有效理解加密流量數據的問題,通過詞義聚合和語義分離技術,實現更準確的加密流量分類效果。通過采用對預訓練語言模型分詞后的單元進行詞義聚合,并結合提示語言學習技術進行語義的顯式分離,加強模型對流量數據的理解,從而提高模型在分類任務上的效果。本發明從詞義和語義兩個角度,在保留完整詞義的同時,又能夠將抽象特征解耦在各個不同的類別空間,增強了特征的可區分性,從而提高了分類效果。在2個公開數據集上的4類任務均取得了進一步的提升。