崔 弘,趙 雙,張廣勝,蘇金樹
(1.烽火通信科技股份有限公司,湖北 武漢 430074;2.國防科技大學計算機學院,湖南 長沙 410073;3.中央軍委政法委員會,北京 100080)
移動應用已成為人們開展日?;顒拥闹饕緩街?,如社交、購物和娛樂等[1]。在海量移動應用中,代理應用是一類常見的工具應用。這類應用通過配置一臺或多臺代理服務器,將用戶對網絡資源的直接訪問轉換為借助代理服務器對網絡資源的間接訪問。如圖1所示,當用戶通過代理應用訪問網絡資源時,代理應用客戶端會首先與代理服務器建立連接。基于代理協(xié)議,客戶端將用戶的訪問請求發(fā)送至代理服務器,代理服務器訪問應用服務器,獲取網絡資源并轉發(fā)至代理應用客戶端。最后代理應用客戶端將響應內容展示給用戶。對應用服務器而言,訪問者是代理服務器,而非背后的用戶,從而訪問資源的用戶真實身份得以隱藏?;诖響茫脩裟軌虮Wo個人網絡隱私或繞開網絡限制,例如使用被防火墻禁止的網絡服務。此外,攻擊者也可以利用其發(fā)起惡意攻擊[2,3]。若應用服務器不能識別有效的訪問請求,這類攻擊將更難以識別與防范。因此,代理應用流量識別不僅有助于網絡流量審計與管理,也能幫助入侵檢測系統(tǒng)或防火墻發(fā)現(xiàn)更多可疑行為。
Figure 1 Working process of proxy application
目前,僅有少數(shù)研究人員針對代理應用流量識別展開了研究[2 - 7]。代理應用采用的隨機端口號、加密和混淆等技術,給已有的流量識別方法帶來了極大的挑戰(zhàn),即傳統(tǒng)的基于端口的流量識別方法和基于深度包檢測的流量識別方法的有效性大大降低。針對不具有明顯負載特征的流量,如加密流量,基于機器學習的流量識別方法近年表現(xiàn)出優(yōu)秀的識別能力。按照提取特征方式的不同,這一方法可分為2類:一類基于專家經驗設計流量特征[8 - 10];另一類則在方法的訓練過程中實現(xiàn)特征的自動學習[11 - 13]。近期基于神經網絡的加密流量識別方法廣受關注,該方法通過自動學習流量特征,可避免繁瑣的人工特征設計過程,并且可以提取高維抽象特征,因此具有優(yōu)秀的分類能力。但是,已有方法并不能良好地解決本文提出的移動代理應用流量識別問題,主要原因包括:
(1)已有方法僅關注區(qū)分加密流量和非加密流量[14,15],或同類加密協(xié)議下的應用識別[11 - 13,16,17],未涉及識別不同的代理應用。
(2)多數(shù)方法利用安全套接層/傳輸層安全SSL/TLS(Secure Socket Layer/Transport Layer Security)協(xié)議握手前期的明文信息對加密流量進行識別[11 - 13,16,17],但一些移動代理應用具有透明傳輸?shù)奶攸c[5],其產生的流量不具有明文握手信息,因此相關方法可能會失效。個別代理應用采用TLS協(xié)議進行流量混淆時,會模擬TLS協(xié)議握手過程,如Shadowsocks[18]。
(3)已有方法提出的分類器多采用卷積神經網絡、長短期記憶LSTM (Long Short-Term Memory) 網絡、AutoEncoder和膠囊網絡等學習算法進行訓練,預測過程復雜,對計算環(huán)境要求高,難以滿足實際應用中的高速網絡實時分類需求。
基于人工設計的特征的流量識別方法通常采用隨機森林RF(Random Forest)、決策樹等學習算法實現(xiàn)[4,5,19],計算簡單快速。這類方法雖然會不可避免地遺漏高維特征,但當流量具備有效的低維特征時,依靠人工提出的簡單特征集也可滿足其識別需求。例如,Deng等人[4]針對Shadowsocks提出3 000余種統(tǒng)計特征,包括報文大小、報文個數(shù)等,并基于隨機森林分類器識別其流量。但是,已有相關工作均針對一種特定的代理應用展開分析,如Shadowsocks和V2Ray等,并未對多種代理應用間流量區(qū)分的問題進行進一步研究。
通過分析多種代理應用流量,本文發(fā)現(xiàn)其與非代理移動應用流量在一些特征上存在明顯差異,例如廣泛使用的報文長度特征、突發(fā)特征及其他未被關注到的特征,如options字段。此外,不同代理應用間也表現(xiàn)出不同的流量傳輸模式。為滿足快速甚至實時的流量識別需求,本文基于第一類方法,提出一組新的統(tǒng)計特征,并結合機器學習算法識別代理應用流量,首次對不同移動代理應用間的流量分類展開研究。
本文主要工作包括:提出一組與負載無關的流量特征用于識別移動代理應用流量和分類不同移動代理應用流量。4種機器學習算法XGBoost[20]、隨機森林RF、支持向量機SVM(Support Vector Machine)、樸素貝葉斯NB(Naive Bayes)用于訓練分類器并驗證提出的特征的有效性。由于代理應用與代理服務器間存在不同的交互方式,包括長連接交互和短連接交互,本文將進一步分析通過不同的報文分組方式構建的流和服務突發(fā)2種識別對象對分類器識別結果的影響。最后驗證分類器的魯棒性并基于公開數(shù)據集與其他方法進行比較。
流量識別方法雖已受到廣泛的關注和研究,但其中涉及代理應用流量識別的研究較少,尤其是移動代理應用流量識別。本節(jié)首先介紹最為相關的代理應用流量識別工作,然后介紹基于ISCX VPN-nonVPN流量數(shù)據集[8]展開的加密流量識別研究。
Miller等人[3]提出一組統(tǒng)計特征,例如報文個數(shù)、報文長度和報文持續(xù)時間等,并基于多層感知機MLP(MultiLayer Perceptron)訓練分類器,以識別網頁訪問流量是否來自OpenVPN服務器,該分類器準確率約為93.71%。Foroushani等人[21]利用39種統(tǒng)計特征識別網絡流量是否來自代理IP?;贑4.5分類器,該工作識別準確率約為97%。Deng等人[4]針對Shadowsocks提出一種基于隨機森林的分類器,可實現(xiàn)85%以上的識別準確率。Zeng等人[5]提出12種流量特征識別Shadowsocks流量,包括流上下文特征、主機流行為特征和主機DNS行為特征?;陔S機森林,以上特征用于訓練分類器時,分類器的識別準確率可達93.43%。Cheng等人[6]通過偽裝客戶端主動向疑似Shadowsocks代理服務器發(fā)起連接,提取服務器的響應報文特征,例如時間相關統(tǒng)計特征及報文長度等,并基于XGBoost訓練分類器識別Shadowsocks代理服務器,準確率約為94.63%。唐舒燁等人[7]提出一種基于分段熵的V2Ray代理應用流量識別方法。該方法通過劃分滑動窗口下的報文高熵、低熵區(qū)域,基于膠囊神經網絡訓練分類器實現(xiàn)V2Ray流量的識別,識別準確率為96.34%。
Draper-Gil等人[8]公開ISCX VPN-nonVPN數(shù)據集,并使用時間相關特征對加密流量進行識別,識別準確率約為84%。該數(shù)據集包括7類服務的普通加密流量和相應的經VPN封裝后的加密流量。本節(jié)后述加密流量識別工作均是基于該數(shù)據集的。Bagui等人[14]利用24種時間特征訓練6種分類器,以識別流量是否屬于VPN加密流量,研究表明梯度提升樹和隨機森林具有最好的分類性能,可實現(xiàn)約94%的平均準確率。Deep packet[11]采用IP報文前1 500字節(jié)訓練一維卷積神經網絡及棧式自編碼器對流量進行分類。類似地,Guo等人[12]采用卷積自編碼器和卷積神經網絡分類加密流量,識別準確率約為92.92%。Dong等人[17]采用卷積神經網絡和GRU(Gated Recurrent Unit)自動學習報文負載特征,并融合人工設計的統(tǒng)計特征基于MLP訓練分類器,準確率約為96.08%。Wang等人[22]采用對抗生成網絡補充訓練樣本,以緩解數(shù)據集不均衡問題。利用平衡后的數(shù)據集訓練的基于MLP 的分類器可實現(xiàn)99.1%的識別準確率。Cui等人[13]采用膠囊神經網絡學習流的前784個負載字節(jié)特征并對加密流量進行分類,識別準確率為99.3%。Vu等人[23]提取報文序列中的端口、協(xié)議、報文長度和報文負載字節(jié)作為特征,并基于LSTM訓練分類器識別加密流量。Zou等人[16]對流中任意位置的3個連續(xù)報文進行識別,其首先使用卷積神經網絡提取報文負載特征,然后基于LSTM的分類器提取報文的序列特征,識別精度為91%。王琳等人[24]基于遺傳算法和隨機森林訓練分類器對加密流量進行分類,可實現(xiàn)92.2%的識別準確率。
基于人工設計的統(tǒng)計特征的流量識別方法包括數(shù)據預處理、特征提取及篩選、分類器訓練及分類等步驟。在數(shù)據預處理階段,本文采用2種報文分組方法構建2種識別對象。特征提取階段給出一組流量特征用于訓練分類器。根據分類器訓練結果進一步篩選冗余特征,提高特征集有效性。最后,驗證分類器的有效性。
數(shù)據預處理包括報文分組和異常報文處理。報文分組用于劃分識別對象,異常報文處理包括消除重傳報文、ACK報文等操作。
按五元組劃分的流是流量識別中最常用的一種識別對象。流的劃分方法如下:定義F=〈Pi0,Pi1,…,Pim〉是一條流,其中,Pij(0≤j≤m)為報文并具有相同的五元組(〈源IP,目的IP,源端口,目的端口,協(xié)議〉),Pi0的SYN標志位置1,Pim的FIN標志位置1。此外,若2個具有相同五元組的相鄰報文的間隔時間超過T(T為超時時間閾值),則從后一個報文起將構成一條新流。
服務突發(fā)SB(Service Burst)是另一種常用的識別對象。其劃分方式如下:定義B=〈Pk0,Pk1,…,Pks〉是一個突發(fā),其中,Pkl(0≤l≤s-1)為報文,tkl為第l個報文的時間戳,tk(l+1)-tkl 代理應用轉發(fā)流量時會對流量進行封裝,不同代理應用具有不同的封裝機制。例如,一些代理應用將每一條流封裝為一個短連接,因此封裝后的連接數(shù)與用戶原本產生的流個數(shù)基本一致。另一些代理應用則將多條流封裝于一個長連接中,因此經代理應用封裝后的連接個數(shù)遠遠少于用戶原本產生的流個數(shù)。不同的封裝方式下,不同的識別對象能更好地表示代理應用行為。本文采用流和服務突發(fā)2種識別對象,并比較了其給分類器帶來的影響。為實現(xiàn)快速的識別,本文僅利用每條流或每個服務突發(fā)的前幾個報文信息。考慮到3個握手報文,各方向傳輸?shù)牡?個數(shù)據報文及響應報文,一個完整的流包含的最小報文數(shù)通常為7。因此,本文保留每個樣本的前7個報文,并去除報文數(shù)小于4的樣本。此外,Aceto等人[25]指出去除重傳報文對分類器準確率影響較小??紤]到去除重傳報文會帶來額外的計算開銷,因此本文不進行相關處理。 代理應用流量通常經過加密或混淆處理,因此不再具有明文負載特征。通過分析代理應用流量,本文發(fā)現(xiàn)其報文長度、報文標志位和應用層頭部字段等取值與非代理流量具有一定的差異?;诖耍疚奶岢?1種與負載無關的統(tǒng)計特征,如表1所示。表2列出了表1中涉及的options字段的詳細信息。 Table 1 41 statistical features 如表1所示,特征集包含3類特征:基本特征、options字段特征和標志位特征?;咎卣髟谙嚓P方法中已表現(xiàn)出優(yōu)秀的區(qū)別能力[19,25],PSH標志位也表現(xiàn)出一定的有效性[21]。此外,在TCP層的options字段方面,代理應用流量和非代理應用流量在字段長度、字段選項分布等方面均表現(xiàn)出一定的差異,本文提出options相關字段特征共22種。options相關字段特征尚未在相關識別方法中使用。 Table 2 Description of options 3.3.1 模型設置 本文提出2種不同識別粒度的模型,如圖2所示。這2種模型適用于不同的分類場景:模型1實現(xiàn)粗粒度的代理應用流量二元分類,即區(qū)分流量是否由代理應用轉發(fā);模型2實現(xiàn)細粒度的代理應用流量識別,即識別流量來自哪種代理應用。 基于多種機器學習算法訓練的分類器在相關研究中已表現(xiàn)出良好的分類能力。本文選擇XGBoost、RF、SVM和NB訓練分類器,驗證特征集的有效性并比較不同分類器的分類能力。 Figure 2 Two models with different recognition granularity 3.3.2 評價指標 本文采用整體準確率OA、精度Precision和召回率Recall對分類器的性能進行評估。對于類別A,真正數(shù)TP(True Positive)指類別為A的樣本被識別為類別A的個數(shù);假正數(shù)FP(False Positive)指類別非A被判定為類別A的樣本個數(shù);真負數(shù)TN(True Negative)指類別非A被判定為非A的樣本個數(shù);假負數(shù)FN(False Negative)指類別為A但漏判為非A的樣本個數(shù)?;谝陨?個變量,3種評估指標的計算方法分別如式(1)~式(3)所示: (1) 其中,n為分類類別數(shù)。 (2) (3) 由于移動應用流量不易被標記且涉及隱私等原因,當前沒有公開可用的移動代理應用流量數(shù)據集。為驗證所提特征集的有效性,本文采用安卓模擬器及wireshark[26]捕獲代理應用流量構建本地數(shù)據集。首先,在安卓模擬器上安裝代理應用,將其設置為全局代理模式,即安卓模擬器產生的全部流量都經由代理服務器轉發(fā)。然后在模擬器中運行其他應用并使用wireshark捕獲模擬器產生的所有流量作為該代理應用的流量樣本。另一方面,關閉代理應用并運行其他移動應用,捕獲的流量組成非代理應用流量樣本。 本文選擇6款國內常用或谷歌商店下載量較高的代理應用作為待識別的代理應用,即Shadowsocks(SS)、ShadowsocksR(SSR)、256、Fish、Thunder和WindScribe。其中,SS和SSR需配置代理服務器,其他4種代理應用提供代理服務器。在3臺安卓模擬器上捕獲的流量組成的數(shù)據集如表3所示。 Table 3 Local dataset 此外,ISCX VPN-nonVPN公開數(shù)據集提供的數(shù)據與本文所需數(shù)據最為接近,但仍不能完全滿足本文需求,主要原因包括:(1)數(shù)據集非移動應用流量;(2)所有VPN流量均來自同一種VPN軟件,無法應用于本文提出的模型2分類場景。因此,本文僅使用該數(shù)據集驗證模型1 分類場景中的分類方法的有效性,并與其他工作提出的分類方法進行比較。預處理后的數(shù)據集構成如表4所示。 Table 4 ISCX VPN-nonVPN dataset 對本地數(shù)據集按流分組后,流樣本個數(shù)分布如表3所示。樣本以7∶3的比例隨機劃分為訓練集與測試集,用于訓練和測試分類器。測試結果為運行10次獲得的平均值。 4.2.1 代理應用流量二元分類 二元分類器的目標是識別流量是否由代理應用轉發(fā)。分類器基于scikit-learn[27]實現(xiàn)。其中,XGBoost最大深度設為5,迭代次數(shù)設為6;RF中樹設為10棵,最大深度設為7。SVM學習率設為1e-6;NB保持默認參數(shù)。表5給出基于4種機器學習算法訓練的分類器的識別結果。 Table 5 Classification results of proxy traffic binary classifiers 使用41種特征訓練分類器時,RF和XGBoost表現(xiàn)出最優(yōu)的性能,達到99.98%的整體準確率。SVM的整體準確率略低于RF的,但具有最快的識別速度。雖然NB的訓練時間最短,但其整體準確率低于90%。XGBoost的訓練時間高于RF的,但在相同的整體準確率下,XGBoost具有更快的識別速度。 XGBoost訓練完成后,可以獲得特征的重要性,本文基于此對特征集進行篩選。表6給出了XGBoost分類器選用的27種特征的重要性排序(重要性從大到小排序)。其中,報文長度和options字段具有較高的重要性。本文選取前70%的特征(18種特征)作為新的特征集。由表5可知,基于18種特征訓練的分類器,除NB外,另外3種分類器的整體準確率均未下降,或表現(xiàn)出微小的上升。同時訓練時間和測試時間也有相應的縮短,因此可通過特征篩選去除冗余特征,提高分類器效率。 Table 6 Importance ranking of features used in XGBoost 為進一步驗證提出的3類特征的有效性,本文去除其中1類或2類特征并重新訓練XGBoost分類器,實驗結果如表7所示,其中,+表示僅使用該類特征,*表示僅去除該類特征。 Table 7 XGBoost classification results with different combination of features 由表7可知,在識別代理應用流量/非代理應用流量時,基本特征具有最優(yōu)的識別效果,單獨用于分類時可達到99.93%的整體準確率。options字段特征單獨用于分類時整體準確率為98.83%,有效性略低于基本特征的。標志位特征有效性最低,單獨應用時的分類整體準確率僅為74.04%。 4.2.2 代理應用流量多元分類 多元分類器的分類目標是識別不同代理應用間的流量。各分類器參數(shù)設置如下:XGBoost最大深度設為10,迭代次數(shù)設為6;RF樹設為20棵,最大深度設為20;SVM學習率設為1e-6;NB保持默認參數(shù)。各分類器識別結果如表8所示。 Table 8 Classification results of proxy traffic 6-class 類似地,XGBoost分類器訓練所得的前70%重要性最高的特征(28種特征)同樣用于構建新的特征集。 由表8知,RF分類能力最優(yōu),整體準確率達94.1%,XGBoost的分類能力略低于RF的。在細粒度的代理應用流量識別中,XGBoost分類器復雜度增加,其訓練速度和分類速度均低于RF的。雖然SVM和NB具有最快的分類速度或訓練速度,但兩者的整體準確率均低于60%。各類別識別精度和召回率分布如圖3所示。 Figure 3 Precision and Recall of 6-classe proxy traffic classifiers 對于SS,4種分類器的識別精度均較高,但SVM和NB不能有效區(qū)分另外5種代理應用。召回率上,WindScribe和Fish的召回率低于另外4種代理應用的,RF和XGBoost在其上的召回率僅略高于60%。識別精度上,前3種代理應用的識別精度較高,代理應用256的識別精度可達98%,后3類代理應用的識別精度僅約75%。 表9給出了不同特征組合下訓練的XGBoost分類器的識別結果。識別不同的代理應用流量時,基本特征仍具有最優(yōu)的區(qū)分能力,options字段特征區(qū)分能力優(yōu)于標志位特征的區(qū)分能力?;咎卣髋coptions字段特征共同訓練的分類器的識別性能優(yōu)于僅使用基本特征訓練的分類器,并與完整特征集訓練的分類器識別性能非常接近。 Table 9 XGBoost classification results with different combination of features 從表3可知,各代理應用的流樣本分布極度不均衡,其中Thunder和WindScribe樣本數(shù)遠小于其他代理應用的。經檢查報文發(fā)現(xiàn),除SS和SSR外,其他4種代理應用與代理服務器采用長連接的交互方式,即一段時間內采用同一個端口轉發(fā)設備產生的所有流量,因此超時閾值設置較大時,按流的劃分方法只能得到少量流樣本。對于這種情況,服務突發(fā)更適合表示應用行為,因此本節(jié)重新處理數(shù)據集并獲得服務突發(fā)樣本,然后訓練分類器。 不同時間間隔下服務突發(fā)樣本分布如表10所示?;诜胀话l(fā)分組方法,Thunder和256的樣本數(shù)大幅度增加,WindScribe和Fish的樣本數(shù)量增加相對較少。由4.2節(jié)知特征篩選可有效減少特征數(shù)量,且對整體準確率影響較小。本節(jié)實驗使用全部特征訓練分類器。 4.3.1 代理應用流量二元分類 基于服務突發(fā)識別對象的分類器參數(shù)設置與4.2節(jié)的保持一致。不同時間間隔下的樣本訓練的分類器的分類整體準確率如圖4所示。4種分類器分別在8 s,10 s,15 s和4 s時取得最高的整體準確率99.95%,99.95%,94.99%和87.77%。其中,基于決策樹的分類器的整體準確率受時間閾值影響較小,而SVM則在大的時間閾值時表現(xiàn)出更優(yōu)秀的識別能力。除NB外,另外3種分類器的整體準確率均略低于基于流的識別分類器的。由于不同類型特征有效性與4.2節(jié)的類似,限于篇幅限制,不再詳細介紹。 Table 10 Service burst sample distribution with different time thresholds Figure 4 OA of binary classifiers with different burst time thresholds 4.3.2 代理應用流量多元分類 不同時間閾值下的服務突發(fā)樣本訓練的4種六元分類器在不同應用上的分類精度和召回率分布如圖5所示。由圖5知,時間閾值越大,基于決策樹的分類器在SS、SSR和256這3種代理應用上的識別精度和召回率越高。另外3種代理應用則具有相反的趨勢,即在時間閾值較小時獲得最高的精度和召回率。SVM和NB的性能與時間閾值的取值無明顯的關系,并且穩(wěn)定性較差。XGBoost和RF依然表現(xiàn)出最優(yōu)的分類能力。其中,RF能更有效地識別SS、SSR和256這3種代理應用,而XGBoost在另外3種代理應用上具有更優(yōu)的分類能力。總體上,基于流的分類器能夠更好地識別SS、SSR和256,基于服務突發(fā)的分類器則能更有效地識別Fish、Thunder和WindScribe。對于Thunder,基于服務突發(fā)的分類器的識別精度提高約16%,召回率提高約7%。一個可能的原因是基于服務突發(fā)的Thunder樣本數(shù)量遠遠多于基于流的樣本數(shù)量。 4.4.1 代理應用混淆加強 與另5款代理應用不同,SSR提供2種參數(shù)用于加密和混淆流量,即協(xié)議參數(shù)和混淆方式。其中,協(xié)議參數(shù)定義加密前的協(xié)議,用于長度混淆,增強安全性和隱蔽性?;煜绞接糜趨f(xié)議偽裝。在初始數(shù)據集收集過程中,SSR的配置為最簡單的協(xié)議和混淆方式(origin/plain)。為驗證當代理應用混淆加強時分類器的魯棒性,本文使用新的參數(shù)組合捕獲SSR流量(共采用10組新的參數(shù)組合,涉及5種協(xié)議和3種混淆方式),收集新樣本16 488條流,并使用基于流的分類方法(分類器訓練過程不包含新類型流量)對新捕獲的流量進行分類。分類結果如表11所示。 Figure 5 Precision and recall of 6-classes classifiers on different proxy apps 由表11可知,即使代理應用增強其流量的隱蔽性,本文提出的分類器也能有效區(qū)分代理流量和非代理流量,但細粒度分類的有效性有所降低,其中,XGBoost、RF和SVM分別將18.52%,38.38%,6.22%的流樣本誤識別為SS,將1.13%,0.5%,4.42%的流樣本誤識別為其他4類代理應用。XGBoost和RF能將SSR與其他4類無關的代理應用區(qū)分開,但不能有效區(qū)分SS與SSR。SVM具有最高的整體準確率,但其將SSR誤識別為其他4類無關代理應用的比例最高。需注意的是,SSR是SS的升級版代理應用,且兼容SS。 4.4.2 新代理應用 為分析分類器處理未知的代理應用流量的能力,本節(jié)收集新代理應用V2Ray[28]的流量共1.67 GB,10 650條TCP流樣本,并驗證提出的二 Table 11 Classification results on new SSR dataset 元分類器(訓練樣本不包含V2Ray流量)能否將V2Ray流量識別為代理應用流量。實驗結果表明,XGBoost、RF和SVM識別V2Ray流量的整體準確率分別為67.63%,92.10%和95.65%。因此,本文提出的特征訓練的分類器能有效識別訓練中未學習過的代理應用流量,特征魯棒性強。此外,相比XGBoost,RF和SVM在對代理應用流量進行粗粒度識別時具有更強的魯棒性。 本節(jié)在ISCX VPN-nonVPN公開數(shù)據集上對模型1中的二元分類器與已有工作提出的分類器進行比較。Zeng等人[5]提出的分類器要求主機使用VPN應用時開啟局部代理模式。另外,該分類器采用的特征包含DNS訪問的敏感域名分布情況,不適合應用于該公開數(shù)據集。唐舒燁等人[7]提出的分類器未給出必要的實現(xiàn)細節(jié)。因此,本文選擇MLP[3]和Deng等人[4]的分類器進行比較。其中,本文分類器與Deng等人提出的分類器均基于隨機森林訓練得到,參數(shù)設置一致,包含100棵樹,最大深度為15。MLP采用10種統(tǒng)計特征訓練多層感知機分類器,參數(shù)設置與原分類器一致。此外,MLP及Deng等人提出的分類器均使用完整流的統(tǒng)計特征。本文的分類器則在完整流和前7個報文上提出的特征訓練得到。實驗平臺參數(shù)如下:Intel i7-6800K CPU 3.40 GHz,12核,32 GB內存,GPU包含3個NVIDIA GTX TITAN X。實驗結果如表12所示。其中,*表示使用完整流的統(tǒng)計特征,#表示使用流前7個報文的統(tǒng)計特征。 Table 12 Comparison of identification classifiers from different methods 由表12可知,本文分類器的整體準確率優(yōu)于另外2種分類器的。相比文獻[4]提出的3 000余種特征,本文分類器僅采用40余種特征,因此本文的分類器具有更快的分類速度。雖然MLP僅采用10種統(tǒng)計特征,并且訓練的多層感知機分類器非常簡單(包含1個含有6個神經元的隱藏層),但其分類速度仍然低于本文提出的隨機森林分類器。鑒于目前其他加密流量識別神經網絡分類器通常采用更加復雜的計算算法,因此若應用于快速、實時的分類場景則對計算環(huán)境有更高的需求。相比之下,本文采用的隨機森林分類器更適合實時分類場景。 本文根據代理應用流量的特點,提出一組與負載無關的統(tǒng)計特征,并驗證4種機器學習分類器對流和服務突發(fā)2種不同識別對象的分類性能。結果表明,本文提出的特征可有效識別代理應用流量,提出的分類器更適合實際應用?;诹鞯淖R別方法整體準確率優(yōu)于基于服務突發(fā)的識別方法。但是,當一個代理應用長時間采用固定的五元組轉發(fā)應用流量時,基于服務突發(fā)的識別方法能更好地識別此類代理應用流量。在4種分類器中,基于決策樹的分類器,包括XGBoost和隨機森林的識別能力及穩(wěn)定性均優(yōu)于SVM和樸素貝葉斯的。隨機森林在識別代理應用流量時可達到99%以上的整體準確率,細粒度識別代理應用的整體準確率高于94%。 未來工作的開展方向包括: (1)更細粒度的代理應用流量識別,即識別代理應用流量承載哪些移動應用。這一工作要求更復雜的流量收集過程。直觀的方法是在收集代理應用流量時,每次只運行一個移動應用,收集的流量的標簽默認為該移動應用。但是,移動設備本身會產生背景流量,導致數(shù)據集標簽不準確。其次在這種識別粒度下,一些統(tǒng)計特征會失效,如本文使用的options字段和PSH標志位相關特征很有可能不再有效,人工提取有效的特征變得更加困難。深度學習模型能夠自動學習流量特征的特點,使其在此類應用場景中更有優(yōu)勢。 (2)本文未驗證樣本不均衡對分類器性能的影響,對于基于服務突發(fā)的識別分類器,Thunder應用的識別精度和召回率獲得極大的提升,而其服務突發(fā)樣本量也遠遠多于流樣本數(shù)目,因此可進一步分析樣本不均衡問題給分類器帶來的影響。3.2 特征設計
3.3 模型設計
4 實驗與結果分析
4.1 數(shù)據集
4.2 基于流的分類方法
4.3 基于突發(fā)的分類方法
4.4 分類器魯棒性
4.5 與其他方法比較
5 結束語