王 琳 封化民, 劉 飚 崔明輝 趙 會(huì) 孫曦音
1(西安電子科技大學(xué) 陜西 西安 710071)2(北京電子科技學(xué)院 北京 100070)
隨著信息技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)規(guī)??焖贁U(kuò)張,各種類型的網(wǎng)絡(luò)服務(wù)不斷增多,信息的安全性問(wèn)題也受到越來(lái)越多的關(guān)注。為了保障數(shù)據(jù)傳輸?shù)陌踩?,越?lái)越多的流量都在加密后進(jìn)行傳輸,這在保障信息安全的同時(shí),也給流量的審計(jì)帶來(lái)了挑戰(zhàn)。
流量識(shí)別是網(wǎng)絡(luò)監(jiān)管的重要組成部分,也是近些年來(lái)的熱門研究方向。自“棱鏡”監(jiān)控項(xiàng)目曝光以后,全球的加密網(wǎng)絡(luò)流量急劇增加。安全套接層SSL協(xié)議在流量加密傳輸?shù)倪^(guò)程中得到廣泛使用,SSL加密在打擊非法信息竊取和黑客攻擊,保護(hù)敏感數(shù)據(jù)等方面起著至關(guān)重要的作用。SSL VPN(基于安全套接層的虛擬專用網(wǎng))也因其安全性和易用性在安全傳輸中得到廣泛使用,但這也使得一些惡意流量有了可乘之機(jī)。
目前對(duì)于SSL VPN流量識(shí)別的研究還比較少,本文提出一種混合方法,通過(guò)兩步來(lái)實(shí)現(xiàn)SSL VPN流量的識(shí)別。首先利用指紋識(shí)別的方法從網(wǎng)絡(luò)流量中提取出SSL流,然后利用統(tǒng)計(jì)學(xué)習(xí)方法,根據(jù)時(shí)間相關(guān)的流特征,使用改進(jìn)的RF算法,識(shí)別出其中的SSL VPN流量。
對(duì)于SSL流量的識(shí)別,目前常用的方法有基于機(jī)器學(xué)習(xí)的方法和基于指紋識(shí)別的方法,它們有其各自的優(yōu)缺點(diǎn)。由于混合方法分兩步實(shí)現(xiàn),考慮到識(shí)別效率和準(zhǔn)確率的因素,本文提出一種改進(jìn)的“指紋識(shí)別”方法,通過(guò)匹配分組特定位置的字段信息來(lái)判斷當(dāng)前數(shù)據(jù)包是否使用SSL協(xié)議進(jìn)行加密,進(jìn)而判斷當(dāng)前流是否為SSL流。對(duì)于第二階段的SSL VPN流量識(shí)別,本文提出兩種基于遺傳算法的改進(jìn)RF算法,并與RF算法及其他機(jī)器學(xué)習(xí)方法進(jìn)行了比較。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的RF算法有更好的識(shí)別效果。
Paxson等[1]在20世紀(jì)90年代初就開(kāi)始了基于分組大小和基于流的流量分類研究,其中一些統(tǒng)計(jì)特征,如:分組長(zhǎng)度、分組到達(dá)時(shí)間間隔和流持續(xù)時(shí)間等,被認(rèn)為對(duì)協(xié)議識(shí)別有較好的效果。后來(lái),文獻(xiàn)[2]僅使用流量的前幾個(gè)分組統(tǒng)計(jì)數(shù)據(jù),提高了流量識(shí)別的效率。此外,為了提高大規(guī)模、高速網(wǎng)絡(luò)的分類效率,文獻(xiàn)[3]提出了基于簽名的流量識(shí)別方法。此方法縮短了流量分類的時(shí)間,但無(wú)法檢測(cè)出未知的或手動(dòng)創(chuàng)建的簽名。
對(duì)于SSL加密流量,文獻(xiàn)[4]在2010年對(duì)HTTPS加密流量進(jìn)行了研究,使用SVM算法來(lái)區(qū)分WebMail流量和其他HTTPS流量,但沒(méi)有更進(jìn)一步地細(xì)分其他類型的流量。
文獻(xiàn)[5]在2010年提出一種混合框架,結(jié)合簽名和統(tǒng)計(jì)的方法,來(lái)實(shí)現(xiàn)SSL流量的分類。首先使用簽名匹配的方法來(lái)識(shí)別出SSL流量,然后使用統(tǒng)計(jì)的方法(樸素貝葉斯方法)來(lái)判斷SSL流的具體應(yīng)用協(xié)議。
目前的流量識(shí)別研究中,大多是對(duì)某種協(xié)議流量的識(shí)別,而對(duì)于VPN流量識(shí)別的研究很少。文獻(xiàn)[6]在2016年首次提出僅利用時(shí)間相關(guān)的流特征識(shí)別VPN流量,比較了KNN和C4.5兩種算法的識(shí)別效果,并公開(kāi)了實(shí)驗(yàn)所使用的數(shù)據(jù)集。
西佛羅里達(dá)大學(xué)的Bagui等[6]在文獻(xiàn)[7]發(fā)布的數(shù)據(jù)集的基礎(chǔ)上做了進(jìn)一步的研究,比較了Logistic回歸、SVM、樸素貝葉斯、KNN、隨機(jī)森林(RF)和梯度提升樹(shù)(GBT)六種方法的識(shí)別效果,并對(duì)算法參數(shù)進(jìn)行了適當(dāng)優(yōu)化,對(duì)VPN流量實(shí)現(xiàn)了90%以上的識(shí)別率。
SSL位于傳輸層和應(yīng)用層之間,是一種在主機(jī)之間提供安全通信的協(xié)議,保證了數(shù)據(jù)的可靠性傳輸[7]。SSL協(xié)議由握手協(xié)議、記錄協(xié)議、更改密文協(xié)議和警報(bào)協(xié)議組成,如圖1所示。
圖1 SSL協(xié)議位置與組成
握手協(xié)議是SSL協(xié)議中十分重要的協(xié)議,通信雙方通過(guò)握手來(lái)提供身份驗(yàn)證??蛻舳撕头?wù)器在此過(guò)程中確認(rèn)所使用的密鑰和算法,此外,還需協(xié)商雙方的信息摘要算法、數(shù)據(jù)壓縮算法等數(shù)據(jù)加密傳輸時(shí)需要用到的信息。握手協(xié)議完成后,雙方開(kāi)始數(shù)據(jù)的加密傳輸。握手協(xié)議的通信流程如圖2所示。
圖2 SSL握手協(xié)議通信流程
(1) ClientHello消息??蛻舳税l(fā)送此消息到服務(wù)器,包括客戶端所支持的算法和初始隨機(jī)數(shù)。
(2) ServerHello消息。服務(wù)器從可選的加密算法中選擇一種作為通信使用的加密算法。
(3) ServerCertificate消息。ServerCertificate包含服務(wù)器標(biāo)識(shí)和用于生成加密參數(shù)的隨機(jī)數(shù)。
(4) CertificateRequest消息。可選消息,當(dāng)服務(wù)器需要驗(yàn)證客戶端的身份時(shí)可發(fā)送此消息。
(5) ServerHelloDone消息。這條消息在上面幾條消息完成后發(fā)送,表明服務(wù)器在等候客戶端的回應(yīng)??蛻舳耸盏竭@條消息后便開(kāi)始驗(yàn)證數(shù)字證書(shū)的合法性。
(6) ClientKeyExchange消息。此消息負(fù)責(zé)傳輸客戶端生成的預(yù)主密鑰。
(7) ChangeCipherSpec消息。通知服務(wù)器開(kāi)始使用協(xié)商好的各項(xiàng)參數(shù)。
(8) Finish消息。這是第一條安全處理過(guò)的消息,包含了之前所有握手消息的驗(yàn)證碼。
SSL握手協(xié)議的各類消息都有其特定的報(bào)文結(jié)構(gòu)特征,下面對(duì)其進(jìn)行介紹,主要包括ClientHello報(bào)文、SeverHello報(bào)文、Certificate報(bào)文、SeverHelloDone報(bào)文、ClientKeyExchange報(bào)文、ChangeCipherSpec報(bào)文。
2.2.1 ClientHello報(bào)文結(jié)構(gòu)
根據(jù)RFC6101[9],ClientHello報(bào)文數(shù)據(jù)結(jié)構(gòu)如表1所示。
表1 ClientHello報(bào)文結(jié)構(gòu)
(1) ClientHello消息的TCP數(shù)據(jù)段第1個(gè)字節(jié)為0x16,表示當(dāng)前數(shù)據(jù)包是HandShake消息報(bào)文,屬于SSL握手協(xié)議的一部分。
(2) 第2、3兩個(gè)字節(jié)表示SSL協(xié)議版本號(hào),其中第2字節(jié)的值均為0x03,表2為SSL各個(gè)版本號(hào)對(duì)應(yīng)的字節(jié)表示。
表2 SSL協(xié)議版本
(3) Length1占兩個(gè)字節(jié),表示剩余數(shù)據(jù)包的長(zhǎng)度。
(4) 第6個(gè)字節(jié)為HandShake Type,0x01表示當(dāng)前數(shù)據(jù)包為ClientHello消息。
(5) Length2占三個(gè)字節(jié),表示其后剩余數(shù)據(jù)包的長(zhǎng)度。
2.2.2 SeverHello報(bào)文結(jié)構(gòu)
SeverHello報(bào)文數(shù)據(jù)結(jié)構(gòu)如表3所示。
表3 SeverHello報(bào)文結(jié)構(gòu)
(1) SeverHello報(bào)文第一個(gè)字節(jié)為0x16,表示當(dāng)前數(shù)據(jù)包為握手協(xié)議的一部分。
(2) 與ClientHello對(duì)應(yīng)的Type值不同,SeverHello的第6個(gè)字節(jié)為0x02,表示當(dāng)前數(shù)據(jù)包為SeverHello消息。
2.2.3 Certificate報(bào)文結(jié)構(gòu)
Certificate數(shù)據(jù)報(bào)文結(jié)構(gòu)如表4所示。
表4 Certificate報(bào)文結(jié)構(gòu)
(1) Certificate報(bào)文第一個(gè)字節(jié)為0x16,表示當(dāng)前數(shù)據(jù)包為握手協(xié)議的一部分。
(2) Certificate的第6個(gè)字節(jié)為0x0b,表示當(dāng)前數(shù)據(jù)包為Certificate消息。
2.2.4 SeverHelloDone報(bào)文結(jié)構(gòu)
SeverHelloDone數(shù)據(jù)報(bào)文結(jié)構(gòu)如表5所示。
表5 SeverHelloDone報(bào)文結(jié)構(gòu)
(1) SeverHelloDone報(bào)文第一個(gè)字節(jié)為0x16,表示當(dāng)前數(shù)據(jù)包為握手協(xié)議的一部分。
(2) ServerHelloDone的第6個(gè)字節(jié)為0x0e,表示當(dāng)前數(shù)據(jù)包為SeverHelloDone消息。
2.2.5 ClientKeyExchange報(bào)文結(jié)構(gòu)
ClientKeyExchange數(shù)據(jù)報(bào)文結(jié)構(gòu)如表6所示。
表6 ClientKeyExchange報(bào)文結(jié)構(gòu)
(1) ClientKeyExchange報(bào)文第一個(gè)字節(jié)為0x16,表示當(dāng)前數(shù)據(jù)包為握手協(xié)議的一部分。
(2) ClientKeyExchange的第6個(gè)字節(jié)為0x10,對(duì)應(yīng)ClientKeyExchange消息報(bào)文。
2.2.6 ChangeCipherSpec報(bào)文結(jié)構(gòu)
ChangeCipherSpec數(shù)據(jù)報(bào)文結(jié)構(gòu)如表7所示。
表7 ChangeCipherSpec報(bào)文結(jié)構(gòu)
(1) 由SSL協(xié)議格式可知ChangeCipherSpec報(bào)文第一個(gè)字節(jié)為0x14,表示這是ChangeCipherSpec協(xié)議的一部分。
(2) 第6個(gè)字節(jié)為0x01,對(duì)應(yīng)當(dāng)前數(shù)據(jù)包為Change-CipherSpecMassge消息。
2.2節(jié)介紹了SSL握手協(xié)議的通信過(guò)程以及報(bào)文結(jié)構(gòu)。由于SSL握手協(xié)議是通過(guò)明文傳輸?shù)模?,可以通過(guò)解析捕獲的PCAP文件獲取數(shù)據(jù)包的頭部信息,與上面幾種不同類型消息的報(bào)文結(jié)構(gòu)進(jìn)行比對(duì),從而可以識(shí)別出當(dāng)前數(shù)據(jù)包是否為SSL握手協(xié)議的特定消息類型。對(duì)于一個(gè)完整的SSL會(huì)話,其通信過(guò)程一定包含以下幾種類型的消息:ClientHello、SeverHello、SeverHelloDone、ClientKeyExchange、ChangeCipher-Spec。若某個(gè)數(shù)據(jù)流中沒(méi)有檢測(cè)到以上消息,則可以將其判斷為非SSL流。若數(shù)據(jù)流檢測(cè)到其中部分消息,則存在兩種可能:一是SSL握手過(guò)程不完整,導(dǎo)致SSL連接建立失敗,因此將這類數(shù)據(jù)流判斷為非SSL流;二是這條數(shù)據(jù)流本身是SSL流,但抓包時(shí)由于網(wǎng)絡(luò)延遲等各種原因,存在丟包的可能。若數(shù)據(jù)流中沒(méi)有全部包含以上5種類型的消息,則將此流判斷為非SSL流。反之,則判斷為一個(gè)SSL流。具體識(shí)別流程如圖3所示。
圖3 SSL流識(shí)別流程圖
在實(shí)際的實(shí)驗(yàn)環(huán)境中,通常會(huì)確定一個(gè)截?cái)鄷r(shí)間,把這個(gè)時(shí)間段內(nèi)相同ip和端口號(hào)的數(shù)據(jù)包識(shí)別成一個(gè)流,而將超過(guò)截?cái)鄷r(shí)間的數(shù)據(jù)包分配到下一個(gè)流中。因此,可能出現(xiàn)如下情況,即一個(gè)流本身為SSL流,但并不是從其握手階段開(kāi)始截取的,而是從數(shù)據(jù)加密傳輸階段開(kāi)始截取的。這時(shí),用上面的方法沒(méi)有檢測(cè)到SSL握手協(xié)議的消息,會(huì)產(chǎn)生漏識(shí)別的情況。為了解決這一問(wèn)題,這里提出一種改進(jìn)的指紋識(shí)別方法。
使用SSL加密的數(shù)據(jù)包根據(jù)其消息類型的不同有不同的消息格式,但其前五個(gè)字節(jié)的格式是固定的,分別表示通信的階段(握手(Handshake)、開(kāi)始加密傳輸(ChangeCipherSpec)還是正常通信(Application)等)、SSL協(xié)議版本號(hào)和剩余包長(zhǎng)度,如表8所示。
表8 SSL協(xié)議前五字節(jié)格式
其中ContentType和Version的字節(jié)表示與其對(duì)應(yīng)的類型見(jiàn)表9和表10。
表9 ContentType對(duì)應(yīng)信息
表10 Version Type對(duì)應(yīng)信息
改進(jìn)的指紋識(shí)別方法通過(guò)tcp數(shù)據(jù)段的頭幾個(gè)字節(jié)信息識(shí)別當(dāng)前數(shù)據(jù)包是否使用SSL協(xié)議加密,包括ChangeCipherSpec、Alert、Handshake、Application幾種類型的消息。這種方法擴(kuò)大了SSL流識(shí)別的范圍,不僅能夠識(shí)別SSL握手階段的流,同時(shí)也能識(shí)別數(shù)據(jù)傳輸階段的SSL流。具體的識(shí)別流程如圖4所示。
圖4 改進(jìn)的SSL流識(shí)別流程圖
與普通的機(jī)器學(xué)習(xí)方法相比,集成學(xué)習(xí)在實(shí)踐中通常表現(xiàn)出更好的效果。集成學(xué)習(xí)利用多個(gè)學(xué)習(xí)器的協(xié)作來(lái)完成學(xué)習(xí)任務(wù),有時(shí)又被稱為多分類器系統(tǒng)、基于委員會(huì)的學(xué)習(xí)等[10]。
根據(jù)個(gè)體學(xué)習(xí)器的生成方式,目前的集成學(xué)習(xí)方法大致可分為兩類:一是序列化方法,個(gè)體學(xué)習(xí)器之間存在強(qiáng)依賴關(guān)系,且必須以串行的方式產(chǎn)生;二是并行學(xué)習(xí)方法,個(gè)體學(xué)習(xí)器間不存在強(qiáng)依賴關(guān)系并且可以同時(shí)生成;其代表分別是Boosting和隨機(jī)森林算法RF。
隨機(jī)森林算法是由LeoBreiman(2001)提出的,它利用Bootstrap方法,從原始訓(xùn)練樣本集N中有放回地重復(fù)隨機(jī)抽取樣本,生成k個(gè)新的訓(xùn)練樣本集合(這k個(gè)新的訓(xùn)練樣本集合可能存在部分重合),然后利用這些新的訓(xùn)練樣本集構(gòu)建隨機(jī)森林。RF算法本質(zhì)上是對(duì)決策樹(shù)算法的改進(jìn),將多個(gè)決策樹(shù)結(jié)合到一起來(lái)做決策。由于森林中的每棵樹(shù)都由不同的訓(xùn)練樣本集構(gòu)建,因此也有著不同的分布。
隨機(jī)森林算法的構(gòu)建過(guò)程如下:
(1) 從原始訓(xùn)練集出發(fā),使用Bootstraping方法進(jìn)行有放回的隨機(jī)抽樣,選出m個(gè)樣本,重復(fù)進(jìn)行n次采樣,生成n個(gè)訓(xùn)練集。
(2) 對(duì)于n個(gè)訓(xùn)練集,分別訓(xùn)練生成n個(gè)決策樹(shù)模型。
(3) 對(duì)于單個(gè)決策樹(shù)模型,假設(shè)訓(xùn)練樣本特征的個(gè)數(shù)為N,那么每次分裂時(shí)根據(jù)信息增益/信息增益比/基尼指數(shù)選擇最好的特征進(jìn)行劃分。
(4) 每棵樹(shù)都按同樣的方式分裂,直到該節(jié)點(diǎn)的所有訓(xùn)練樣例不再可分。同時(shí),在構(gòu)建決策樹(shù)的過(guò)程中不需要剪枝。
(5) 將構(gòu)建好的多棵決策樹(shù)組成隨機(jī)森林,用投票的方式?jīng)Q定分類結(jié)果。
相比于傳統(tǒng)的決策樹(shù)算法,隨機(jī)森林算法通過(guò)生成多棵樹(shù)來(lái)避免過(guò)擬合的問(wèn)題,為了使預(yù)測(cè)效果更好,應(yīng)盡可能使生成的每棵樹(shù)之間保持足夠的差異性。因此,選擇合適的參數(shù)十分重要,其中最為重要的兩個(gè)參數(shù)分別是n_estimators和max_features,它們分別代表弱學(xué)習(xí)器的最大迭代次數(shù)和RF劃分時(shí)考慮的最大特征數(shù)。
本文的原始特征集合使用Lashkari[6]在其論文中提出的時(shí)間相關(guān)的流特征,一共23個(gè)特征,具體信息如表11所示。
表11 識(shí)別SSL VPN流量使用的流特征
遺傳算法GA是根據(jù)遺傳學(xué)知識(shí)和生物進(jìn)化理論提出的一種模型,它通過(guò)多次迭代來(lái)實(shí)現(xiàn)特定目標(biāo)的優(yōu)化。遺傳算法利用遺傳、突變、雜交和自然選擇的概念實(shí)現(xiàn)啟發(fā)式搜索,最終得到最優(yōu)解或準(zhǔn)最優(yōu)解,其流程圖如圖5所示。
圖5 遺傳算法流程圖
前面講到,RF算法中有兩個(gè)需要人為設(shè)定的重要參數(shù),分別是max_features和n_estimators,其中max_features表示隨機(jī)森林允許單個(gè)決策樹(shù)使用特征的最大數(shù)量。max_features對(duì)于算法的性能有著重要的影響,當(dāng)增加max_features時(shí),通??梢蕴岣吣P偷男阅?,因?yàn)槲覀冊(cè)诿總€(gè)節(jié)點(diǎn)上都有更多的選擇。然而,這并不完全正確,因?yàn)樗档土藛蝹€(gè)樹(shù)的多樣性,而這正是隨機(jī)森林獨(dú)特優(yōu)勢(shì)。但是,增加max_features會(huì)降低算法的速度。因此,有必要平衡和選擇最佳max_features。n_estimators表示建立子樹(shù)的數(shù)量,理論上來(lái)說(shuō),更多的子樹(shù)可以使模型性能更好,使預(yù)測(cè)的結(jié)果更加穩(wěn)定。但受限于機(jī)器的處理性能,較大的n_estimators會(huì)使代碼變慢,大大降低模型的效率。因此,需要選擇一個(gè)合適的n_estimators值,使得模型在滿足性能要求的同時(shí)也具有較好的預(yù)測(cè)效果。
本文提出一種基于遺傳算法改進(jìn)的RF算法,通過(guò)遺傳算法來(lái)實(shí)現(xiàn)RF算法中上面兩個(gè)參數(shù)的優(yōu)化。對(duì)于模型效果的評(píng)估,本文將流量識(shí)別的準(zhǔn)確率與召回率作為評(píng)價(jià)標(biāo)準(zhǔn),并將其作為遺傳算法的適應(yīng)度函數(shù)。
本文的特征集合里共有23個(gè)特征,為了比較不同max_features值的效果,需要選出當(dāng)前條件下的最優(yōu)特征子集。由于特征子集的選取存在的可能性較多,采用枚舉的方式顯然是不可取的。本文利用遺傳算法,采用迭代的方式選出最佳的特征子集。將23個(gè)特征分別編號(hào)為1~23,染色體的長(zhǎng)度為max_features的值,染色體每個(gè)位點(diǎn)上的取值規(guī)定為1~23之間的一個(gè)常數(shù),且不能重復(fù)出現(xiàn)。適應(yīng)度函數(shù)設(shè)置為模型的F值,對(duì)于某一個(gè)特征子集模型的F值計(jì)算,為了保證結(jié)果的準(zhǔn)確性,這里計(jì)算10次取平均值作為最后的F值結(jié)果。表12為分類結(jié)果混淆矩陣,F(xiàn)值的計(jì)算公式如式(1)-式(3)所示:
查準(zhǔn)率: (1)
算法構(gòu)建如圖6所示。
圖6 PGA-RF算法構(gòu)建
考慮到參數(shù)優(yōu)化對(duì)分類器性能的影響有限,本文同時(shí)采用選擇性集成方法與參數(shù)優(yōu)化方法進(jìn)行比較。選擇性集成的概念由文獻(xiàn)[11]提出,它利用某種策略從已構(gòu)建的個(gè)體學(xué)習(xí)器集合中選出一部分構(gòu)成新的集成。研究表明選擇性集通過(guò)把預(yù)測(cè)性能不好的個(gè)體學(xué)習(xí)器去除,只保留少量?jī)?yōu)質(zhì)的個(gè)體學(xué)習(xí)器,能夠提高集成預(yù)測(cè)性能。此外,選擇性集成還可以提高集成的泛化能力。
隨機(jī)森林由決策樹(shù)構(gòu)成,因此每棵決策樹(shù)的好壞在很大程度上影響著模型的效果。隨機(jī)森林最大的特點(diǎn)是通過(guò)增加樣本擾動(dòng)和屬性擾動(dòng)使個(gè)體學(xué)習(xí)器之間產(chǎn)生差異性,進(jìn)而使集成的性能增加[12]。選擇優(yōu)質(zhì)的個(gè)體學(xué)習(xí)器使得子分類器有更高的準(zhǔn)確率,但這也可能導(dǎo)致個(gè)體學(xué)習(xí)器之間的差異性減少,從而使得集成模型的效果下降。為了解決這一問(wèn)題,本文在生成決策樹(shù)時(shí)限制可用特征的數(shù)量,從而增大每棵樹(shù)之間的差異性。同時(shí),通過(guò)遺傳算法的多次迭代,可以保證篩選得到的集成模型的子分類器之間有較好的差異性。
基于子分類器優(yōu)化的改進(jìn)RF算法主要流程如下,首先用訓(xùn)練集構(gòu)建一定數(shù)量的決策樹(shù),組成原始的決策樹(shù)集合。然后根據(jù)選擇性集成的思路,從原始的決策樹(shù)集合中篩選出性能較優(yōu)的決策樹(shù),構(gòu)成新的決策樹(shù)集合。最后利用遺傳算法迭代多次得到最優(yōu)的隨機(jī)森林模型,構(gòu)建方法如圖7所示。
圖7 CGA-RF算法構(gòu)建
本文采用的數(shù)據(jù)集是Lashkari等[6]在2016年發(fā)布的VPN-nonVPN數(shù)據(jù)集,該實(shí)驗(yàn)室官網(wǎng)對(duì)數(shù)據(jù)集有詳細(xì)介紹并且提供下載。為了產(chǎn)生一個(gè)有代表性的真實(shí)流量數(shù)據(jù)集,他們定義了一系列任務(wù)來(lái)保證數(shù)據(jù)的多樣性和質(zhì)量。他們創(chuàng)建了Alice和Bob兩個(gè)賬號(hào)來(lái)使用Skype、Facebook等服務(wù),以產(chǎn)生相關(guān)流量。這些流量根據(jù)應(yīng)用類型的不同共分為7個(gè)類別,每個(gè)類別又包括普通會(huì)話流量和VPN會(huì)話流量,因此共有14個(gè)類別的流量。
數(shù)據(jù)集的流量是通過(guò)wireshark和tcpdump捕獲的,一共28 GB數(shù)據(jù)。對(duì)于VPN流量,實(shí)驗(yàn)使用Open-VPN進(jìn)行SSL VPN連接。同時(shí),對(duì)于文件傳輸流量,實(shí)驗(yàn)使用Filezilla作為客戶端來(lái)產(chǎn)生SFTP和FTPS流量。不同類別的流量生成方式如表13所示。
表13 數(shù)據(jù)集中各類流量的生成信息
對(duì)于SSL流的識(shí)別,本文使用改進(jìn)的指紋識(shí)別方法除ICQ等少數(shù)流量無(wú)法識(shí)別外,其余應(yīng)用的SSL流識(shí)別率均達(dá)到99%以上,結(jié)果如圖8所示。
圖8 SSL流識(shí)別結(jié)果
本文對(duì)比了KNN(K近鄰)、LR(邏輯回歸)、RF(隨機(jī)森林)、PGA-RF(基于參數(shù)優(yōu)化的改進(jìn)RF算法)、CGA-RF(基于子分類器優(yōu)化的改進(jìn)RF算法)5種算法的識(shí)別效果,分別對(duì)比了Accuracy(準(zhǔn)確率)、Precision(精確率)、Sensitivity(召回率)、Specificity(特異性)四個(gè)指標(biāo),結(jié)果如表15所示。
表15 SSL VPN流量識(shí)別結(jié)果
從實(shí)驗(yàn)結(jié)果可以看出,LR的準(zhǔn)確率為68.6%,KNN的準(zhǔn)確率達(dá)到83.5%,而RF的準(zhǔn)確率達(dá)到90.3%,可見(jiàn)集成算法的效果要明顯好于普通的機(jī)器學(xué)習(xí)算法。同時(shí),基于參數(shù)優(yōu)化的改進(jìn)RF算法準(zhǔn)確率為91.6%,基于子分類器優(yōu)化的改進(jìn)RF算法準(zhǔn)確率為92.2%,其效果都要優(yōu)于直接使用RF算法的效果,且CGA-RF的效果要優(yōu)于PGA-RF,可見(jiàn)選擇性集成對(duì)模型效果有所提升,實(shí)驗(yàn)結(jié)果對(duì)比如圖9所示。
圖9 SSL VPN識(shí)別結(jié)果
由于網(wǎng)絡(luò)中的SSL加密流量越來(lái)越多,對(duì)于加密流量的監(jiān)管也變得越來(lái)越重要。本文提出的混合方法,將指紋識(shí)別與機(jī)器學(xué)習(xí)方法相結(jié)合,實(shí)現(xiàn)了SSL VPN加密流量的識(shí)別。對(duì)于SSL流的識(shí)別,本文提出的改進(jìn)的指紋識(shí)別方法對(duì)流漏識(shí)別的情況有所改善,使得識(shí)別效果更好。對(duì)于SSL VPN的識(shí)別,本文提出的改進(jìn)RF算法也對(duì)準(zhǔn)確率有所提升。實(shí)驗(yàn)結(jié)果表明,當(dāng)前方法能夠到達(dá)92.2%的準(zhǔn)確率,實(shí)現(xiàn)了SSL VPN加密流量的有效識(shí)別。