趙 偉,倪綠林,李 楓
(國(guó)防科技保密通信重點(diǎn)實(shí)驗(yàn)室,四川 成都 610041)
隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)以及云技術(shù)的快速發(fā)展,網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)用戶的數(shù)量呈爆發(fā)式增長(zhǎng),隨之而來(lái)的是爆發(fā)式增長(zhǎng)的流量信息。據(jù)互聯(lián)網(wǎng)知名商業(yè)公司Miniwatts的調(diào)查統(tǒng)計(jì)[1],截至2019年12月31日,全球互聯(lián)網(wǎng)用戶達(dá)到45億,占目前全球人口的58%。可見(jiàn),互聯(lián)網(wǎng)已經(jīng)成為人們生活的重要組成部分,網(wǎng)絡(luò)管理面臨著巨大挑戰(zhàn)。圖1給出了Miniwatts公司對(duì)全球互聯(lián)網(wǎng)用戶的統(tǒng)計(jì)信息。

圖1 2020年全球各大洲網(wǎng)絡(luò)用戶分布
為了管理和規(guī)劃網(wǎng)絡(luò)流量,網(wǎng)絡(luò)服務(wù)公司經(jīng)常使用流量識(shí)別技術(shù)對(duì)網(wǎng)絡(luò)中的流量進(jìn)行分類。但是,隨著各種新的網(wǎng)絡(luò)應(yīng)用的加入和網(wǎng)絡(luò)通信技術(shù)的發(fā)展,網(wǎng)絡(luò)流量組成結(jié)構(gòu)變得越來(lái)越復(fù)雜。流量識(shí)別技術(shù)成為相關(guān)部門管理和維護(hù)網(wǎng)絡(luò)的重要手段。
文獻(xiàn)[2-4]介紹了近期流量識(shí)別技術(shù)發(fā)展的情況,其中大部分是針對(duì)非加密流量的介紹。目前,網(wǎng)絡(luò)流量識(shí)別技術(shù)包含基于端口的識(shí)別技術(shù)、基于應(yīng)用協(xié)議特征碼識(shí)別技術(shù)、基于行為特征的識(shí)別技術(shù)和基于機(jī)器學(xué)習(xí)的識(shí)別技術(shù)4類。基于端口的識(shí)別技術(shù)部署簡(jiǎn)單,適用于傳統(tǒng)的網(wǎng)絡(luò)環(huán)境。它通過(guò)識(shí)別TCP/UDP包頭中的目的端口號(hào),找到對(duì)應(yīng)于該端口的網(wǎng)絡(luò)應(yīng)用完成流量分類[5]。文獻(xiàn)[6]采用端口映射的方法對(duì)p2p流量進(jìn)行研究分類,簡(jiǎn)單易操作,容易實(shí)現(xiàn),只需要簡(jiǎn)單的規(guī)則既可以完成流量識(shí)別,且效率和準(zhǔn)確率很高。缺點(diǎn)是無(wú)法識(shí)別不使用默認(rèn)端口的應(yīng)用流量。為了解決上述問(wèn)題,深度包檢測(cè)技術(shù)(Deep Packet Inspection,DPI)應(yīng)運(yùn)而生。Dreger[7]等使用DPI技術(shù)檢測(cè)包載荷中的特定字符串對(duì)流量進(jìn)行分類。Grimaudo[8]等在DPI的基礎(chǔ)上使用層次化分類結(jié)構(gòu),建立了一個(gè)對(duì)流量細(xì)化分類的層次自學(xué)習(xí)模型。DPI的優(yōu)點(diǎn)是可以根據(jù)現(xiàn)有的特征庫(kù)對(duì)流量數(shù)據(jù)分類且準(zhǔn)確率高。但是,DPI的缺點(diǎn)也很明顯:需要建立、維護(hù)特征庫(kù);只能檢測(cè)未加密流量,無(wú)法識(shí)別加密流量。為了解決上述問(wèn)題,研究者們將機(jī)器學(xué)習(xí)的概念引入加密流量識(shí)別中。一般將結(jié)合機(jī)器學(xué)習(xí)的流量識(shí)別技術(shù)稱為深度流檢測(cè)技術(shù)(Deep Flow Inspection,DFI)[9]。Moore等人[10]使用有監(jiān)督的樸素貝葉斯機(jī)器學(xué)習(xí)方法實(shí)現(xiàn)對(duì)不同應(yīng)用流量的分類,實(shí)驗(yàn)結(jié)果具有很高的準(zhǔn)確率,但是沒(méi)有解決占比很小的不均衡樣本識(shí)別效果不好的問(wèn)題。Bernaille等人[11]根據(jù)聚類的方法,通過(guò)K-means算法分類流量,只統(tǒng)計(jì)TCP的前幾個(gè)數(shù)據(jù)包的特征來(lái)區(qū)分不同的流量。目前,公認(rèn)對(duì)流量統(tǒng)計(jì)特征比較全面的是由劍橋大學(xué)的Moore[12]所在的小組總結(jié)的248維流量特征,包括了包維度、時(shí)間維度等不同統(tǒng)計(jì)特征。
本文的研究?jī)?nèi)容結(jié)合流載荷特征和流行為特征,通過(guò)K-means聚類分析,結(jié)合LightGBM方法,對(duì)ShadowscoksR(SSR)應(yīng)用的HTTP偽裝流量進(jìn)行有監(jiān)督學(xué)習(xí)。根據(jù)在加密流量偽裝成普通HTTP流量下的有效識(shí)別規(guī)則,它的精度能夠達(dá)到95%,召回率能達(dá)到100%,準(zhǔn)確率能達(dá)到99%。
SS是一款基于Socks5協(xié)議的可翻墻軟件,原理如圖2所示。它使用python、C#、C++等語(yǔ)言開(kāi)發(fā),開(kāi)源代碼目前掛載一些公開(kāi)網(wǎng)站,由志愿者維護(hù)。SS的運(yùn)行原理與代理匿名通信軟件的運(yùn)行原理相同,都是通過(guò)搭建好的特定服務(wù)器作為中轉(zhuǎn)服務(wù)器來(lái)完成數(shù)據(jù)傳輸。通過(guò)在本地和遠(yuǎn)程服務(wù)器之間配置相同的加密密碼、加密方式等參數(shù),可以訪問(wèn)國(guó)外資源。當(dāng)本地訪問(wèn)國(guó)外某網(wǎng)站時(shí),客戶端會(huì)將訪問(wèn)請(qǐng)求發(fā)送給遠(yuǎn)程服務(wù)器。遠(yuǎn)程服務(wù)器將訪問(wèn)該網(wǎng)站,并將訪問(wèn)到該網(wǎng)站的數(shù)據(jù)通過(guò)加密的方式反饋給本地客戶端,再由客戶端解密成可視資源。

圖2 Shadowscoks通信原理
而SSR是SS的升級(jí)版,也是增強(qiáng)版。如圖3所示,SSR的整個(gè)運(yùn)行原理與SS的運(yùn)行原理大致相同,只是為了保證數(shù)據(jù)的安全性和抗檢測(cè)性,SSR在SS的“加密”基礎(chǔ)上增加了“協(xié)議”和“混淆”插件選項(xiàng)。“協(xié)議”插件的主要功能是在將網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)“加密”前按照某種格式進(jìn)行封裝,增加數(shù)據(jù)的安全性;“混淆”插件的主要功能是將網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)在“加密”后偽裝成包括HTTP、HTTPS等標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,增加數(shù)據(jù)的抗檢測(cè)性。目前,最新的SSR版本為5.15。該版本中“協(xié)議”插件支持13種可選項(xiàng),“混淆”支持6種選項(xiàng),“加密”支持AES系列、IDEA、RC4等十幾種加密算法。SSR與SS一樣,代碼都是開(kāi)源的,目前由志愿者維護(hù)。

圖3 ShadowscoksR通信原理
K-means聚類算法是一種簡(jiǎn)單的迭代型聚類算法,采用距離[13]作為相似性度量,從而將給定數(shù)據(jù)集分為k個(gè)類,具體過(guò)程如下:
(1)隨機(jī)選取k個(gè)樣本作為初始聚類中心;
(2)計(jì)算各樣本與聚類中心的距離;
(3)將各樣本回歸與距離最近的聚類中心;
(4)求解各個(gè)類的均值作為新的聚類中心;
(5)如果聚類中心不變或者達(dá)到迭代次數(shù),算法結(jié)束,否則回到第(2)步。
LightGBM是boosting集合模型的新進(jìn)成員,由微軟提供的開(kāi)源機(jī)器學(xué)習(xí)模型,和XGBoost一樣高效實(shí)現(xiàn)GBDT。原理上,它和GBDT和XGBoost一樣,都是采用損失函數(shù)的負(fù)梯度作為當(dāng)前決策樹(shù)的殘差近似值來(lái)擬合新的樹(shù)。相對(duì)于XGBoost,LightGBM具有訓(xùn)練效率快、占用內(nèi)存低、高準(zhǔn)確率、支持并行學(xué)習(xí)以及支持大規(guī)模數(shù)據(jù)等更多優(yōu)勢(shì)。
LightGBM主要包括兩個(gè)算法:?jiǎn)芜吿荻炔蓸樱℅radient-based One-Side Sampling,GOSS)和 互斥特征綁定(Exclusive Feature Bundling,EFB)。
GOSS保留所有梯度較大的實(shí)例,在梯度小的實(shí)例集合中進(jìn)行隨機(jī)采樣。為了降低對(duì)數(shù)據(jù)分布的影響,在計(jì)算信息增益時(shí),對(duì)小梯度實(shí)例加入常數(shù)乘量。GOSS首先根據(jù)數(shù)據(jù)的梯度絕對(duì)值進(jìn)行排序,選取前x個(gè)實(shí)例,在剩余數(shù)據(jù)中選取y個(gè)實(shí)例;其次,在計(jì)算信息增益時(shí)將小梯度數(shù)據(jù)乘(1-x)/k,使模型更加關(guān)注訓(xùn)練不足的實(shí)例而不會(huì)改變數(shù)據(jù)集的分布。
EFB是一種通過(guò)捆綁特征的方式達(dá)到降維的技術(shù),以此提高計(jì)算效率。只有互斥的特征(一個(gè)特征值為0,而另一個(gè)不為0)才能被捆綁,這樣不會(huì)丟失特征信息。假如兩個(gè)特征并不是完全互斥的(小部分?jǐn)?shù)據(jù)兩個(gè)特征都不為0),可以使用一個(gè)指標(biāo)度量?jī)蓚€(gè)特征之間的互斥度,稱之為沖突比率。如果兩個(gè)特征的沖突比率較小,可以將這兩個(gè)特征進(jìn)行捆綁,而對(duì)結(jié)果的精度不會(huì)有太大影響。
LightGBM部分超參數(shù)如下。
boosting_type:訓(xùn)練模型選項(xiàng),支持傳統(tǒng)的梯度增強(qiáng)決策樹(shù)(gbdt)、基于梯度的單邊采樣(goss)、隨機(jī)森林(rf)等多種機(jī)器學(xué)習(xí)算法。
objective:學(xué)習(xí)目標(biāo)選項(xiàng),支持二分類、多分類、線性回歸等多種學(xué)習(xí)目標(biāo)。
learning_rate:學(xué)習(xí)率,使用較小的學(xué)習(xí)率可以提高準(zhǔn)確率。
n_estimators:決策樹(shù)的數(shù)量,給定該參數(shù)值整數(shù)k,從訓(xùn)練出來(lái)的k棵樹(shù)中選擇最優(yōu)樹(shù)作為訓(xùn)練結(jié)果。
max_depth:決策樹(shù)的最大深度,選擇合適的參數(shù)可以避免過(guò)擬合。
num_leaves:決策樹(shù)的最大葉子數(shù),使用較大的值可以獲取更好的準(zhǔn)確率,但是也可能引起過(guò)擬合。
min_data_in_leaf:葉子節(jié)點(diǎn)上的最小樣本數(shù)量,合適的值可以緩解過(guò)擬合。
SSR流量偽裝成HTTP協(xié)議流量后具有一些HTTP協(xié)議的特征,但是仍然保留了一部分加密流量特征。提取單條流的前4個(gè)包的載荷信息熵作為分類的特征來(lái)衡量SSR流量的隨機(jī)程度。ShadowscoksR流量識(shí)別特征集,如表1所示。

表1 ShadowscoksR流量識(shí)別特征集
在計(jì)算載荷信息熵時(shí),為了平均HTTP協(xié)議特征與加密流量特征之間的差異性,添加固定可打印字符將流量中的不可打印字符和控制字符進(jìn)行平均化,降低同一種類型流量之間的載荷信息熵反差過(guò)大的可能性,有益于分類結(jié)果。
表2中的HTTP流量是SSR中使用HTTP模式翻墻訪問(wèn)國(guó)外網(wǎng)站資源,混淆成HTTP協(xié)議的加密流量。白流量是訪問(wèn)國(guó)內(nèi)公眾網(wǎng)站產(chǎn)生的普通流量,其中包含一些真正的HTTP協(xié)議流量。為了保證訓(xùn)練模型的準(zhǔn)確性,將訓(xùn)練集的正樣本(HTTP流量)和負(fù)樣本(白流量)的占比平均化。表2中的采集時(shí)間是相對(duì)于2020年6月1日計(jì)算的時(shí)間。

表2 數(shù)據(jù)集分布信息
采用等寬分箱分析和K-means聚類分析算法兩種分析方式。圖4(a)是通過(guò)等寬分箱分析法分析訓(xùn)練集HTTP流量第一包的載荷信息熵,圖4(b)是通過(guò)K-means聚類分析法分析訓(xùn)練集HTTP流量第一包載荷信息熵;圖4(c)是通過(guò)等寬分箱分析法分析訓(xùn)練集HTTP流量第二包載荷信息熵;圖4(d)是通過(guò)K-means聚類分析法分析訓(xùn)練集HTTP流量第二包載荷信息熵。采用上述畫圖表現(xiàn)方式的原因是為了查找數(shù)據(jù)集的離群點(diǎn),估計(jì)數(shù)據(jù)的取值范圍;通過(guò)排除離群點(diǎn)的分析并結(jié)合準(zhǔn)確率的反饋值,確定第一包和第二包載荷信息熵的取值范圍。

圖4 采用等寬法和K-means聚類分析法對(duì)特征數(shù)據(jù)集4分類
將訓(xùn)練集的數(shù)據(jù)導(dǎo)入LightGBM訓(xùn)練模型中,調(diào)整好合適的超參數(shù),對(duì)訓(xùn)練集進(jìn)行二分類任務(wù)。圖5描述的是各特征在訓(xùn)練過(guò)程中的重要程度,橫坐標(biāo)是特征的重要性,縱坐標(biāo)是訓(xùn)練數(shù)據(jù)的特征維度。比如,第一維(圖5中的0)的重要性是191。

圖5 訓(xùn)練模型特征重要性排列
表3描述的測(cè)試集在訓(xùn)練模型中的預(yù)測(cè)結(jié)果。

表3 測(cè)試集測(cè)試結(jié)果
由表3的預(yù)測(cè)結(jié)果可知,通過(guò)聚類分析將訓(xùn)練集中離群點(diǎn)數(shù)據(jù)清除,提高了訓(xùn)練模型的魯棒性,在對(duì)遠(yuǎn)期數(shù)據(jù)(測(cè)試集1)和近期數(shù)據(jù)(測(cè)試集2)都有很高的精度、召回率和準(zhǔn)確率。此外,在數(shù)據(jù)集中正樣本的占比小的數(shù)據(jù)集(2.78%(測(cè)試集1)、3.3%(測(cè)試集2))和占比大的數(shù)據(jù)集(86.6%(測(cè)試集3))進(jìn)行測(cè)試時(shí),也具有很高的精度和召回率。
本文主要針對(duì)ShadowscoksR中混淆成HTTP協(xié)議的流量進(jìn)行識(shí)別。根據(jù)HTTP流量的特征采取等寬法和K-means聚類分析方法進(jìn)行分析,提取HTTP流量的隱藏特征,清洗訓(xùn)練集的離散點(diǎn)流量,基于LightGBM對(duì)HTTP流量和白流量進(jìn)行有監(jiān)督機(jī)器學(xué)習(xí)分類。實(shí)驗(yàn)結(jié)果表明,訓(xùn)練模型魯棒性較高,精度、召回率和準(zhǔn)確率比較理想。