喻曉偉 陳丹偉
(南京郵電大學計算機學院、軟件學院、網(wǎng)絡空間安全學院 南京 210023)
近年來,互聯(lián)網(wǎng)快速普及和發(fā)展,信息技術(shù)給人們的生活帶來了許多便利.同時,隨著網(wǎng)絡用戶安全隱私意識的不斷提升,以及流量加密技術(shù)的廣泛應用,互聯(lián)網(wǎng)中加密流量急劇增加.流量加密技術(shù)在保護網(wǎng)絡數(shù)據(jù)安全的同時,增加了流量識別的難度,給網(wǎng)絡流量規(guī)劃、網(wǎng)絡內(nèi)容審計和網(wǎng)絡安全等領(lǐng)域[1]帶來了新的挑戰(zhàn).
VPN(virtual private network)是一種通過共享的公共網(wǎng)絡建立私有的數(shù)據(jù)通道的加密技術(shù),常用的VPN技術(shù)有基于網(wǎng)絡層的IPSec(IP security)VPN和基于應用層的SSL(secure socket layer)VPN[2].相較于IPSec VPN,SSL VPN的易用性更好,在安全傳輸中得到了廣泛應用.但SSL VPN技術(shù)也會導致防火墻等安全設施只能檢測到SSL加密流量,而無法對其中的惡意流量進行有效識別.加密流量識別技術(shù)能夠?qū)赟SL VPN的流量進行精確分析,為管理網(wǎng)絡資源、審計網(wǎng)絡內(nèi)容、網(wǎng)絡入侵檢測等方面[3]提供了技術(shù)支撐.因此,如何實現(xiàn)對SSL VPN加密流量進行高準確率和高效率識別的研究對保證網(wǎng)絡信息安全、維護網(wǎng)絡正常穩(wěn)定和可靠運行具有重要的實際意義.
對于非加密流量的識別有傳統(tǒng)的基于網(wǎng)絡端口號[4]和基于數(shù)據(jù)包有效載荷[5]的方法,但隨著加密技術(shù)的廣泛應用,這些方法對加密流量的特征難以進行有效的識別,逐漸失效.對加密流量識別的本質(zhì)是根據(jù)不同協(xié)議或不同主機產(chǎn)生的流量中特征的不同部分來進行有效區(qū)分.目前國內(nèi)外研究的加密流量識別技術(shù)主要分為基于機器學習的識別方法和基于圖的識別方法.
近年來,機器學習技術(shù)對分類問題取得了較好的成果,而流量識別問題本質(zhì)上就是分類問題.文獻[6]介紹了應用于網(wǎng)絡加密流量分類的大多數(shù)機器學習方法,如邏輯回歸(logistic regression, LR)、支持向量機(support vector machine, SVM)、隨機森林(random forests, RF)等;文獻[7]使用機器學習技術(shù),結(jié)合指紋特征、行為分析、威脅情報等多維信息,實現(xiàn)了對SSL加密流量的異常檢測和威脅識別.但這些方法的主要缺點是依賴于從網(wǎng)絡流量中提取的統(tǒng)計特征或時間序列特征,其性能在很大程度上依賴于專家設計的特征工程,極大地限制了它們的通用性.
而基于深度學習的方法[8],如卷積神經(jīng)網(wǎng)絡(convolutional neural networks, CNN)[9]、循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network, RNN)等,將經(jīng)過預處理的網(wǎng)絡流量輸入到深度學習模型中,可以通過訓練自動選擇更本質(zhì)、更有效的特征.2015年,文獻[10]首先將深度學習技術(shù)用于網(wǎng)絡流量分類,將多層感知器(multilayer perceptron, MLP)模型應用于對網(wǎng)絡流量分類.
基于深度學習的方法雖然可以從輸入的原始數(shù)據(jù)中自動學習高層特征,克服了傳統(tǒng)機器學習的特征設計難題,卻受限于固有的神經(jīng)網(wǎng)絡架構(gòu),只能輸入固定形狀的數(shù)據(jù).
由于網(wǎng)絡流量數(shù)據(jù)本質(zhì)上是非歐幾里得距離空間的,具有豐富的時間關(guān)系,研究人員提出了使用基于圖的方法對網(wǎng)絡流量進行識別.文獻[11]將預先推導出的協(xié)議主機行為以圖的形式存儲,并使用圖匹配實現(xiàn)協(xié)議識別,該方法的準確率超過95%;文獻[12]提出了將網(wǎng)絡通信場景建模為散度圖TDG(traffic dispersion graph),把通信主機作為節(jié)點,主機之間的通信作為邊,不同協(xié)議TDG節(jié)點的分布、連通子圖具有明顯區(qū)別,可以據(jù)此推斷出網(wǎng)絡流的協(xié)議信息;文獻[13]提出了一種新型去中心化應用程序指紋識別方法,該方法提出了一種名為流量交互圖的圖結(jié)構(gòu),保留了豐富的原始流特征,并用多層感知器MLP進行向量表示,最后進行分類識別研究.
近年來,圖神經(jīng)網(wǎng)絡(graph neural networks, GNN)已成為深度學習領(lǐng)域的研究熱點,研究人員開始將圖神經(jīng)網(wǎng)絡應用到加密流量分類領(lǐng)域.Sun等人[14]提出了將流量跟蹤圖和GCN模型訓練中的統(tǒng)計特征相結(jié)合的方法,可以在低標簽的情況下實現(xiàn)一定的性能提升,但其準確性仍較低;Mo等人[15]提出了一種使用圖卷積神經(jīng)網(wǎng)絡的加密流量分類方法,該方法通過CNN捕獲流量級別特征,并通過異構(gòu)圖卷積神經(jīng)網(wǎng)絡(graph convolution neural networks, GCN)捕獲網(wǎng)絡范圍內(nèi)的行為,但該方法會損失部分流級特征.
本文在現(xiàn)有研究基礎(chǔ)上提出一種基于圖神經(jīng)網(wǎng)絡的加密流量識別方法.該方法首先使用了基于圖的加密流量表示方法,通過將網(wǎng)絡流量會話交互的一系列數(shù)據(jù)包轉(zhuǎn)換為信息豐富的流量圖結(jié)構(gòu)的形式,即將加密流量分類問題轉(zhuǎn)換為圖分類問題;然后將構(gòu)建完成的流量圖數(shù)據(jù)輸入到使用基于自注意力機制的圖池化方法構(gòu)建圖分類模型中,該模型能夠從輸入流量圖中自動提取特征,并通過將它們映射到嵌入空間中的不同表示區(qū)分不同的圖結(jié)構(gòu);最后對SSL VPN通道下的不同協(xié)議流量進行有效的識別.
本文提出的方法的優(yōu)點在于使用流量圖保留了加密協(xié)議交互過程中數(shù)據(jù)包的長度、方向、排序等信息,同時考慮了加密網(wǎng)絡流量的協(xié)議特征和拓撲結(jié)構(gòu),無需手動選擇特征,且不依賴于數(shù)據(jù)包有效載荷的內(nèi)容.實驗結(jié)果表明,本文方法對SSL VPN流量的精確識別具有良好的效果.
本文方法主要基于加密協(xié)議交互過程和自注意力池化機制的圖神經(jīng)網(wǎng)絡,下面就SSL加密協(xié)議相關(guān)概念和基本知識進行介紹.
SSL協(xié)議,即安全套接字協(xié)議,是建立在傳輸層與應用層之間的加密協(xié)議,在應用層協(xié)議進行通信之前需要對加密算法和密鑰進行協(xié)商,在此之后所傳輸?shù)臄?shù)據(jù)都會被加密[16].SSL協(xié)議解決了信息明文傳輸帶來的竊聽、篡改和冒充等風險,從而保證了通信的安全.SSL協(xié)議主要分為2層:上層由握手協(xié)議、更改密文協(xié)議和警報協(xié)議組成;底層為記錄協(xié)議[17].
SSL加密協(xié)議交互過程大體可分為2個階段:在傳輸應用數(shù)據(jù)之前,首先使用握手協(xié)議對加密算法和密鑰進行協(xié)商,建立安全連接;在握手協(xié)議完成后,記錄協(xié)議負責使用對稱加密算法加密應用數(shù)據(jù),通信雙方開始加密數(shù)據(jù)的傳輸[18].如圖1所示,SSL加密協(xié)議的主要通信流程如下:
圖1 SSL加密協(xié)議的主要通信流程
1) 客戶端發(fā)送Client Hello.
客戶端先向服務器發(fā)出加密通信的請求,消息中包含客戶端支持的協(xié)議版本、生成的隨機數(shù)、支持的加密算法和壓縮算法.
2) 服務器發(fā)送Server Hello.
服務器收到客戶端請求后,向客戶端發(fā)出回應,消息中包含服務器確認使用的加密算法.
3) 服務器發(fā)送Server Certificate,Server Key Exchange,Server Hello Done.
Server Certificate消息包含服務器證書信息;Server Key Exchange消息包含服務器生成的隨機數(shù)和數(shù)字簽名等信息;Server Hello Done消息表明服務器握手消息發(fā)送完成.
4) 客戶端發(fā)送Client Key Exchange,Change Cipher Spec,Finished.
客戶端收到服務器回應后,首先進行服務器證書驗證,如果證書沒有問題,客戶端會從證書中取出服務器的公鑰,并向服務器發(fā)送一個用服務器公鑰加密的隨機數(shù)消息Client Key Exchange、編碼改變通知消息Change Cipher Spec和客戶端握手結(jié)束通知消息Finished.
5) 服務器發(fā)送Change Cipher Spec,Finished.
服務器收到客戶端的加密隨機數(shù)后,計算出會話密鑰,然后向客戶端發(fā)送編碼改變通知消息Change Cipher Spec和服務器握手結(jié)束通知消息Finished.至此,整個握手階段全部結(jié)束.接下來,客戶端和服務器進入加密通信.
通過將加密流量轉(zhuǎn)換為圖結(jié)構(gòu)的方式,可以將協(xié)議的交互過程具體地表示出來.為了更好地理解圖結(jié)構(gòu)的表示能力,本文將SSL加密協(xié)議握手階段可視化為典型的交互子圖,具體如圖2所示.該圖的結(jié)構(gòu)可以清楚地表示出SSL加密協(xié)議握手階段的交互過程.
圖2 SSL加密協(xié)議典型交互圖
由于SSL VPN加密是對應用層數(shù)據(jù)進行加密,不同應用在流統(tǒng)計特征上表現(xiàn)出的差異較大,因此可以根據(jù)相關(guān)的流統(tǒng)計特征,來對加密流量的類型進行有效區(qū)分.在實驗中,選擇表1中提到的雙向流統(tǒng)計特征來表示應用會話交互過程.特征可以分為5種類型,包括數(shù)據(jù)包、數(shù)據(jù)包長度、數(shù)據(jù)包的方向、數(shù)據(jù)包的之間的突發(fā)、數(shù)據(jù)包序列.本文采用的方法按照上述特征集將每條SSL VPN應用流量轉(zhuǎn)換為流量交互圖,并使用圖神經(jīng)網(wǎng)絡進行圖分類,實現(xiàn)SSL VPN應用流量的精確識別.
表1 統(tǒng)計特征
圖神經(jīng)網(wǎng)絡是一種基于圖數(shù)據(jù)結(jié)構(gòu)的深度學習方法,將圖結(jié)構(gòu)和節(jié)點信息作為模型的輸入,可以對結(jié)構(gòu)不規(guī)則的非歐幾里得空間圖數(shù)據(jù)進行有效的學習.圖數(shù)據(jù)結(jié)構(gòu)常被用來表示物體與物體之間的關(guān)系.圖數(shù)據(jù)中同時包含屬性信息和結(jié)構(gòu)信息.屬性信息描述了圖中對象的固有屬性;結(jié)構(gòu)信息描述了對象之間的關(guān)聯(lián)性質(zhì),能夠有效地刻畫圖數(shù)據(jù)中的節(jié)點.現(xiàn)實生活中的許多系統(tǒng)都可以用圖來描述,如社交網(wǎng)絡、化學分子、人物關(guān)系、交通路線等.相較于簡單的文本和圖像,非結(jié)構(gòu)化數(shù)據(jù)具有任意大小、拓撲結(jié)構(gòu)復雜等特點,無法使用傳統(tǒng)的神經(jīng)網(wǎng)絡結(jié)構(gòu)如CNN,RNN進行處理,因此研究人員提出使用圖神經(jīng)網(wǎng)絡來學習建模圖數(shù)據(jù).
圖學習任務通常有3種:節(jié)點分類、邊預測和圖分類,本文主要關(guān)注圖分類問題.圖分類需要關(guān)注圖數(shù)據(jù)的全局信息,包括圖的拓撲信息和各個節(jié)點的屬性信息.給定多張圖及每張圖對應的標簽,圖分類任務可以通過學習得到一個由圖到相應標簽的分類模型,使用該模型可以預測整個圖的類標簽.
圖分類模型[19]一般通過圖卷積根據(jù)圖節(jié)點和結(jié)構(gòu)特征映射后的節(jié)點表示,并利用圖池化操作學習聚合圖的全局信息,將圖的規(guī)??s小.重復多次這個步驟,得到一個圖表示向量,從而對該向量進行分類操作.圖池化操作分為全局池化和層次池化.全局池化是對節(jié)點表示進行一次池化得到整個圖的表示.層次池化可以對節(jié)點進行篩選,保留有用的節(jié)點,將圖的規(guī)模縮小,最終能得到整個圖的表示.
本節(jié)主要介紹基于圖神經(jīng)網(wǎng)絡加密流量按協(xié)議分類的方法.方法的流程圖主要由2個部分組成:流量圖構(gòu)建和分類模型構(gòu)建.
在網(wǎng)絡流量分類領(lǐng)域中,流的定義是指具有相同五元組(源/目的IP地址、源/目的端口和協(xié)議)的數(shù)據(jù)包序列,而會話則是由雙向流組成.由于數(shù)據(jù)集中數(shù)據(jù)包序列通常由多個會話組成,首先需要將整個數(shù)據(jù)包序列劃分為單獨的會話.一個由n個數(shù)據(jù)包組成的會話P通??梢杂靡粋€數(shù)據(jù)包序列表示,即表示為P=(p1,p2,…,pn),其中有符號整數(shù)pi表示該會話的第i個數(shù)據(jù)包,負數(shù)表示客戶端到服務器的上行包,正數(shù)表示服務器到客戶端的下行包.如圖3所示的是一個服務器和客戶端會話的交互過程,會話中的每個數(shù)據(jù)包都有長度和方向.圖3中的灰色和白色塊分別代表加密協(xié)議中的握手階段和加密傳輸階段.則該會話可以表示為P=(-57,-81,73,69,-65,-80,-97,68,85,-59,97,105,-70,88).然而,數(shù)據(jù)包序列忽略了交互過程中的突發(fā)等信息,對客戶端和服務器之間交互的表示能力較為有限.
受文獻[13]的啟發(fā),本文選擇使用信息豐富的圖結(jié)構(gòu)數(shù)據(jù),即流量交互圖來表示網(wǎng)絡流量.首先給出流量交互圖的定義:流量交互圖由G表示,G=(V,E),其中,V是頂點的集合,E是邊的集合.具體流量交互圖構(gòu)建過程如下:首先,將加密流量的數(shù)據(jù)包長度序列作為輸入,開始構(gòu)造頂點集V,每個頂點v∈V代表每個會話中的1個數(shù)據(jù)包,頂點值的大小代表數(shù)據(jù)包的長度,頂點的符號值代表數(shù)據(jù)包的方向;確定頂點后還要添加邊,將這些頂點連接起來構(gòu)造邊集E,每個e∈E分為突發(fā)內(nèi)邊和突發(fā)間邊.突發(fā)內(nèi)邊是順序連接每個突發(fā)中連續(xù)頂點的邊,突發(fā)間邊是連接2個連續(xù)突發(fā)的開始或結(jié)束頂點的邊,一個會話通常包含多個突發(fā),突發(fā)定義為沿同一方向傳輸?shù)囊幌盗羞B續(xù)數(shù)據(jù)包,如圖3所示,橙色和藍色箭頭代表會話中的不同突發(fā);最后,得到的G=(V,E)就是所需的流量交互圖,經(jīng)過構(gòu)建每個會話都可以轉(zhuǎn)換為1張流量交互圖.圖4所示為與圖3中的會話相對應的流量交互圖.
圖3 數(shù)據(jù)包交互過程
圖4 流量交互圖
流量交互圖具有強大的信息表示能力,可以從數(shù)據(jù)包的方向、長度、突發(fā)和排序這4個方面提取會話的特征.這4個方面對流量分類都很有價值,數(shù)據(jù)包的方向可以反映服務器和客戶端的交互,長度信息是加密流量分類的關(guān)鍵特征,不同協(xié)議的突發(fā)信息可能會有很大的差異,而數(shù)據(jù)包的排序信息可以表示加密協(xié)議會話從握手到加密數(shù)據(jù)傳輸?shù)臄?shù)據(jù)包順序,分類器可以根據(jù)它們進行判別.流量交互圖構(gòu)建完成后,將加密流量分類問題轉(zhuǎn)換為了圖分類問題.
經(jīng)過流量交互圖的構(gòu)建后獲得了加密流量的圖結(jié)構(gòu)數(shù)據(jù),即將加密流量的分類問題變成圖分類問題.圖神經(jīng)網(wǎng)絡可以自動從流量交互圖中提取特征并有效地區(qū)分這些圖,因此成為最適合這個問題的解決方案.本文構(gòu)建了基于圖神經(jīng)網(wǎng)絡的加密流量分類模型.下面將詳細介紹本文圖分類模型的設計細節(jié).
3.2.1 概述
首先,收集不同類型的加密流量,并將數(shù)據(jù)包序列解析為會話;然后,將所有的加密流量轉(zhuǎn)換為對應的流量交互圖;最后,將流量交互圖輸入到圖神經(jīng)網(wǎng)絡中對分類器進行訓練.使用基于自注意力機制的圖池化來構(gòu)建分類器,該模型不需要人工選擇和微調(diào)特征,可以有效地區(qū)分不同的圖結(jié)構(gòu).在測試階段,使用訓練好的分類器對訓練集中的流量交互圖進行分類.
3.2.2 圖分類模型
給定1組圖{G1,G2,…,GN}∈G,及其對應的標簽{y1,y2,…,yN}?Y,圖神經(jīng)網(wǎng)絡的目的是是學習1個可以預測每個流量圖標簽的表示向量hG,即y=g(hG).
基于自注意力池化機制的加密流量分類模型通過圖卷積從圖中自適應地學習到節(jié)點的重要性,為每個節(jié)點賦予1個重要性分數(shù),然后使用基于自注意力機制的圖池化方法構(gòu)建圖分類模型.
該模型是端到端的,結(jié)合圖卷積層、圖池化層和讀出層來實現(xiàn).圖卷積層負責學習節(jié)點的重要度分數(shù);圖池化層則負責下采樣,對節(jié)點進行篩選,保留有用的節(jié)點;讀出層用于聚合節(jié)點信息以生成圖級表示;全連接層用于分類決策.分類模型使用交叉熵函數(shù)作為損失函數(shù),損失函數(shù)L定量地衡量預測標簽和實際標簽之間的差異,圖神經(jīng)網(wǎng)絡在訓練中逐漸減低損失函數(shù)L的值.
1) 圖卷積.
圖卷積操作主要是通過對圖進行特征變換和特征提取,得到圖上的節(jié)點表示,圖卷積公式為
(1)
2) 圖池化.
基于自注意力的池化機制是一個不斷丟棄節(jié)點的過程.具體來說,首先利用圖卷積網(wǎng)絡學習出表示節(jié)點在圖中重要度的注意力分數(shù)值Z.
(2)
得到重要性分數(shù)后,設置1個超參數(shù)k表示要保留的節(jié)點比例,k∈(0,1),按照重要度分數(shù)Z對節(jié)點進行降序排序,對鄰接矩陣和節(jié)點特征進行更新,留下最重要的kN個節(jié)點以及與其相連的邊:
i=top_rank(Z,kN).
(3)
函數(shù)top_rank返回值i是保留的kN個節(jié)點的索引.
Zmask=Zi,X′=Xi,:,
(4)
Xout=X′⊙Zmask,Aout=Ai,i,
(5)
Xi,:表示按照向量i的值對特征矩陣進行行切片,Ai,i表示按照向量i的值對鄰接矩陣同時進行行切片和列切片;Xout是池化后圖中節(jié)點的特征矩陣,Aout是池化后的鄰接矩陣.如圖5所示:
圖5 自注意力池化示意圖
3) 讀出層.
要進行圖分類還需要進行全局的聚合操作,將節(jié)點數(shù)不同的圖降維到統(tǒng)一維度.讀出機制是對所有節(jié)點進行一次性聚合操作,從而輸出圖的全局表示,其公式為
(6)
其中R可以是max,mean,sum等類型的函數(shù),也就是說讀出層可以對圖運用最大池化、均值池化和加和池化等操作,將得到的值作為整張圖的表示.
4) 全連接層.
(7)
5) 損失函數(shù).
分類模型利用交叉熵函數(shù)作為損失函數(shù),在多分類問題中常用交叉熵函數(shù)來計算預測標簽與真實標簽之間的損失,定義為
(8)
其中|X|為訓練的流量圖數(shù)量,yic為真實的標簽值.
6) 優(yōu)化器.
在分類模型中采用Adam優(yōu)化器.Adam是一種基于自適應低階矩估計的隨機目標函數(shù)逐步優(yōu)化算法,是一種只需要一階梯度和小內(nèi)存的有效隨機優(yōu)化方法.
至此,可以定義圖分類模型.該模型具體如圖6所示,由3個模塊組成,每個模塊由一個圖卷積層和一個圖池化層組成,節(jié)點在每一層池化之后的讀出層中聚合,并在最后一層作求和,這樣有助于所有節(jié)點的信息融合.然后將每個讀出層的輸出總和傳遞到全連接層進行分類.
圖6 基于自注意力機制的圖神經(jīng)網(wǎng)絡分類模型
使用基于自注意力機制的圖池化方法構(gòu)建圖神經(jīng)網(wǎng)絡分類模型,通過圖分類模型輸出加密流量分類結(jié)果,該方法充分考慮了節(jié)點的特征和圖的拓撲結(jié)構(gòu).該模型用來學習每個流量圖的表示向量,能夠?qū)⒉煌膱D映射到嵌入空間中的不同表示,可以區(qū)分不同的圖結(jié)構(gòu).通過以上所有的設計,模型通過訓練來獲取圖節(jié)點和結(jié)構(gòu)的相似性,具體將在第4節(jié)的實驗結(jié)果中展示.
本節(jié)將介紹用于評估模型的實驗數(shù)據(jù)集,評估提出模型有效性的評價指標以及證明模型效果的實驗結(jié)果.
為了驗證本文提出的方法,使用了加拿大網(wǎng)絡安全研究所提供的ISCX VPN-nonVPN流量數(shù)據(jù)集(ISCX-VPN).該數(shù)據(jù)集由賬戶Alice和賬戶Bob通過Skype,F(xiàn)acebook等服務產(chǎn)生了28 GB數(shù)據(jù),有6個類別,每個類別又包含常規(guī)會話和VPN會話.其中的VPN流量是使用OpenVPN進行SSL VPN連接產(chǎn)生的,通過Wireshark和Tcpdump進行捕獲.不同類別的流量生成方式如表2所示.
本文使用準確率、精確率、召回率、F1值為指標來評估分類器的性能.TP(true positive)表示被分類正確預測出的目標流量數(shù)量,F(xiàn)P(false positive)表示被分類錯誤預測的目標流量數(shù)目,F(xiàn)N(false negative)表示被錯誤分類為其他類別的流量樣本數(shù)量,TN(true negative)是正確歸類為非目標類別的流量樣本數(shù)量.
表2 數(shù)據(jù)集類別
1) 準確率(accuracy).
準確率是指分類正確的樣本占總樣本數(shù)的比例,定義為
(9)
2) 精確率(precision).
精確率是指在分類正確的正樣本個數(shù)占分類器判定為正樣本的樣本數(shù)的比例,定義為
(10)
3) 召回率(recall).
召回率是指分類正確的正樣本個數(shù)占真正的正樣本個數(shù)的比例,定義為
(11)
4)F1值(F1score).
F1是精準率和召回率的調(diào)和平均值,同時兼顧了分類模型的準確率和召回率,用來衡量樣本類別不均衡時的模型性能,定義為
(12)
本文提出的方法對SSL VPN流量分類的準確率達到97.5%.各個類別具體的精確率、召回率和F1值如表3所示.根據(jù)實驗結(jié)果,綜合4項評價指標可以看出本文的方法對加密流量具有良好的識別效果,在各項指標上都取得了較好的結(jié)果.
表3 不同加密流量分類的實驗結(jié)果比較
為了證明本文提出的圖神經(jīng)網(wǎng)絡分類模型的有效性和優(yōu)越性,選擇了K近鄰(KNN)、邏輯回歸(LR)、隨機森林(RF)、卷積神經(jīng)網(wǎng)絡(CNN)4種算法和本文提出的方法進行比較,分別對比了準確率、精確率、召回率和F1值4個指標,結(jié)果如表4所示:
表4 SSL VPN流量識別結(jié)果對比
從實驗結(jié)果可以看出,基于LR的方法準確率較低,只有68.6%,基于KNN和RF的方法準確率分別達到83.5%和90.3%,基于CNN的方法準確率達到94.7%,取得了較好的結(jié)果.而本文提出的基于圖神經(jīng)網(wǎng)絡分類的模型準確率達到了97.6%,明顯優(yōu)于其他算法,可見應用流量交互圖和圖神經(jīng)網(wǎng)絡分類模型對加密流量識別效果有顯著提升.
本文提出了基于圖神經(jīng)網(wǎng)絡的加密流量分類模型,該模型可以使用GNN識別網(wǎng)絡加密流量的類別.基于數(shù)據(jù)包長度和數(shù)據(jù)包方向構(gòu)造了加密會話的流量交互圖,將加密協(xié)議識別問題轉(zhuǎn)化為一個圖分類問題.然后,利用圖卷積層、圖池化層和讀出層來構(gòu)建一個基于GNN的分類器.并在公開數(shù)據(jù)集上進行了實驗,以評估本文方法.實驗結(jié)果表明,該方法對SSL VPN流量分類的準確率可以達到97.6%.在未來的工作中,計劃使該模型更能適應流量變化,進一步提高其適用范圍.