• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Xgboost算法的Shadowsocks流量識別研究

      2018-02-12 12:24:56何杭松
      軟件導(dǎo)刊 2018年12期

      何杭松

      摘要:匿名通信技術(shù)的濫用給網(wǎng)絡(luò)安全帶來了前所未有的挑戰(zhàn),Shadowsocks作為新興的匿名通信軟件,因?yàn)槌錾耐ㄐ判室约胺€(wěn)定性逐漸流行。為了有效解決匿名通信的濫用問題,研究并分析了Shadowsocks的通信原理,總結(jié)出部分bitflow特征,并采用Xgboost算法學(xué)習(xí)bitflow特征以識別其流量。使用同樣的特征通過隨機(jī)森林算法與支持向量機(jī)算法分別對Shadowsocks流量進(jìn)行識別。測試結(jié)果表明,Xgboost算法在識別Shadowsocks流量時的準(zhǔn)確率和召回率均有一定提高。

      關(guān)鍵詞:匿名通信;流量識別;Shadowsocks;Xgboost

      Research on Shadowsocks Traffic Identification Based on Xgboost Algorithm

      HE Hang?song

      (People′s Public Security University of China Institute of Information technology and Network Security,Beijing 102600, China)

      Abstract:The abuse of anonymous communication technology has brought unprecedented challenges to network security. As an emerging anonymous communication software, Shadowsocks is gradually popular in China because of its excellent communication efficiency and its stability. In order to effectively solve the abuse problem of anonymous communication, and put forward an effective supervision method,?the communication principles of Shadowsocks, some bitflow features are summarized, and use Xgboost algorithm is used to learn its bitflow characteristics to identify its traffic. Then the same feature is used again to identify the traffic of Shadowsocks by random forest algorithm and support vector machine algorithm respectively. By comparing the test results it shows that the accuracy and recall rate of the Xgboost algorithm in identifying Shadowsocks traffic are improved.

      Key Words:anonymous communication;traffic identification; shadowsocks; Xgboost

      0?引言

      隨著信息化的飛速發(fā)展,個人隱私和信息安全問題越來越被人們重視。Shadowsocks是目前流行的一款匿名通信軟件,憑借其穩(wěn)定性及安全性被大量使用,逐漸成為網(wǎng)民突破訪問限制加密通信的主流軟件。雖然大部分人通過正常渠道獲取合法信息,但也有不法分子利用其匿名特性逃避網(wǎng)絡(luò)監(jiān)管,以此獲取、傳播不良信息進(jìn)行違法犯罪(如傳播淫穢信息、倒賣個人隱私信息等)。因此,只有先識別出匿名通信流量才能根據(jù)情況決定是否對其進(jìn)行追蹤、內(nèi)容分析、取證。流量識別技術(shù)可用于提升網(wǎng)絡(luò)監(jiān)管質(zhì)量、改善網(wǎng)絡(luò)使用效率[1]。文獻(xiàn)[2?4]綜述了目前流量識別技術(shù)發(fā)展情況,其中大部分是針對非加密流量的綜述。目前網(wǎng)絡(luò)流量識別技術(shù)主要有4種類型[5]:基于端口的識別方式、基于應(yīng)用協(xié)議特征字識別方式、基于行為特征的識別方式、基于機(jī)器學(xué)習(xí)的識別方式?;诙丝诘牧髁孔R別方法采用簡單的端口映射方式對網(wǎng)絡(luò)流量進(jìn)行識別 [6]。為防止端口偽裝技術(shù)對流量識別的干擾,產(chǎn)生了深度包檢測(DPI)[7]技術(shù),Dreger等 [11]利用DPI技術(shù)對包負(fù)載里的特定特征串過濾進(jìn)行異常流量監(jiān)測?;诙丝诘牧髁孔R別方法和DPI技術(shù)均基于包負(fù)載的流量識別技術(shù)。當(dāng)通信過程加密時,這兩個方法就無效了。Nguyen等[12]綜述了機(jī)器學(xué)習(xí)對于流量識別的研究進(jìn)展。Haffner 等[13]通過特征統(tǒng)計(jì)和機(jī)器學(xué)習(xí)算法,測試并實(shí)現(xiàn)了部分應(yīng)用流量的識別。文獻(xiàn)[14]引入機(jī)器學(xué)習(xí)方法,研究不同加密流量應(yīng)該選用何種bitflow特征,同時使用不同算法進(jìn)行對比測試。文獻(xiàn)[15]使用機(jī)器學(xué)習(xí)算法對 Skype 和 SSH 加密流量進(jìn)行識別。文獻(xiàn)[16]針對網(wǎng)絡(luò)流量識別問題,提出一種基于支持向量機(jī)(SVM)的網(wǎng)絡(luò)流量識別模型。目前匿名通信流量識別研究主要是針對TOR通信系統(tǒng)的識別,對于Shadowsocks流量識別的文獻(xiàn)較少。文獻(xiàn)[17]根據(jù)TOR匿名通信系統(tǒng)TLS 連接和轉(zhuǎn)發(fā)鏈路的建立等通信機(jī)制,提出基于 TLS 指紋和基于報(bào)文長度分布的 Tor 匿名通信流量識別方法;文獻(xiàn)[18]以時間間隔為水印載體,提出一種改進(jìn)的雙時隙質(zhì)心匿名通信追蹤技術(shù);文獻(xiàn)[19]針對低延時匿名系統(tǒng)在轉(zhuǎn)發(fā)數(shù)據(jù)時無法完全消除流量中數(shù)據(jù)包時間特征的缺陷,提出了基于包抵達(dá)時間的流水印技術(shù);文獻(xiàn)[20]采用半監(jiān)督學(xué)習(xí)算法——隨機(jī)森林(RF)算法實(shí)現(xiàn)了對Shadowsocks流量的識別。

      1?Shadowsocks通信特征

      1.1?Shadowsocks通信原理

      Shadowsocks是為實(shí)現(xiàn)翻墻功能而開發(fā)的一款代理軟件,主要基于Socks5協(xié)議。用 Python、C#、C++等多種語言進(jìn)行開發(fā),其源代碼目前掛載在網(wǎng)絡(luò)社區(qū),由志愿者維護(hù)。Shadowsocks 的運(yùn)行原理和基于代理技術(shù)的匿名通信軟件的運(yùn)行原理大致相同,即使用特定的中轉(zhuǎn)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)傳輸。通過在遠(yuǎn)程服務(wù)器與本地客戶端配置好連接密碼、加密方式等代理參數(shù),就可使用Shadowsocks進(jìn)行翻墻:當(dāng)通過瀏覽器訪問某個地址時,數(shù)據(jù)會轉(zhuǎn)發(fā)到本地代理,由本地代理加密后轉(zhuǎn)發(fā)到服務(wù)器端,服務(wù)器端處理完請求后把數(shù)據(jù)加密返回給客戶端的本地代理,本地代理再次返回給瀏覽器。在Shadowsocks架構(gòu)中Socks5協(xié)議作為“獲取用戶請求”的手段,Shadowsocks將Socks5協(xié)議拆分為客戶端和服務(wù)器端,如圖1所示。

      Shadowsocks使用一套自己的協(xié)議進(jìn)行加密通信。Shadowsocks協(xié)議除去了繁瑣的握手階段,Shadowsocks利用加密控件預(yù)先獲得加密密鑰和加密方法,客戶端與服務(wù)端間使用加密傳輸。從外層看只是單純發(fā)送TCP數(shù)據(jù)包,具體加密方式包括 AES、IDEA、RC4 等。

      1.2?Shadowsocks握手流程

      客戶端與服務(wù)端間交換數(shù)據(jù)格式如表1所示。

      對每個TCP連接,首次發(fā)送的數(shù)據(jù)包會攜帶一個IV(初始向量),它會和預(yù)共享密鑰一起應(yīng)用在加密中,加密算法也是預(yù)先協(xié)定的,如表2所示。

      在交換第一個數(shù)據(jù)包后,雙方都有了IV、預(yù)共享密鑰、加密算法,后續(xù)數(shù)據(jù)包就不再需要IV了。

      Shadowsocks中客戶端和服務(wù)器之間的通訊數(shù)據(jù)包都是加密傳輸?shù)?,因此傳統(tǒng)的基于端口的流量識別方法、基于DPI的流量識別方法都無法起作用了,這時可通過“流量特征”識別流量。

      1.3?Shadowsocks的biflow特征

      由于Xgboost算法會自動確定特征的重要度,因此本文選用盡可能多的biflow特征進(jìn)行識別,在結(jié)合傳統(tǒng)數(shù)據(jù)流特征的前提下還加入部分信息熵特征,用到的biflow特征如表3所示。

      2?Xgboost算法

      2.1?Xgboost算法原理

      Xgboost全稱是eXtrenme Gradient Boosting(極端梯度提升樹),是一種提升算法,它誕生之前的AdaBoost算法和GBDT算法等已經(jīng)具有較好的效率, Xgboost 算法根據(jù)這兩種算法改進(jìn)而來。Boosting分類器屬于集成學(xué)習(xí)模型,其核心是把大量的樹型模型組合成一個準(zhǔn)確率較高的模型。在成功構(gòu)建一棵最完備的樹之前,該模型會不斷迭代。Gradient Boostomg Machine算法在生成每一棵樹時采用梯度下降思想,以上一步生成的所有樹為基礎(chǔ),向著最小化給定目標(biāo)函數(shù)方向前進(jìn)。在合理的參數(shù)設(shè)置下,需要生成一定數(shù)量的樹才能達(dá)到預(yù)期準(zhǔn)確率,但如果在數(shù)據(jù)量較大且復(fù)雜時,Gradient Boostomg Machine算法就會耗費(fèi)過大的資源及時間。Xgboost可通過CPU多線程并行計(jì)算提高效率,通過對算法的改進(jìn)提高精度。Xgboost的損失函數(shù)采用二階泰勒展開,而傳統(tǒng)的GBDT 只利用了泰勒展開式的一階導(dǎo)數(shù),因此Xgboost具有高準(zhǔn)確度、不易過擬合、可擴(kuò)展性等特點(diǎn),能分布式處理高維稀疏特征。因此,在同等情況下,Xgboost算法的效率遠(yuǎn)遠(yuǎn)超過其它算法。下面是XGBoost 目標(biāo)函數(shù)的理論推導(dǎo):

      其中,?g?i=a?(t-1)l(y?i,(t-1),h?i=a?2?((t-1)l(y?i,(t-1)),?Ω(?f?t )=γT+ 1/2 λ∑?T?j=1?2w?j。

      去掉常數(shù)項(xiàng),定義分裂候選集合?I?j={i|q(x?i=j) }為葉子j?的集合,化簡公式(1)得:

      定義G?j=∑?i∈I?jg?i,H?i=∑?i∈I?jh?i ,對W?j求導(dǎo)得最優(yōu)的權(quán)重系數(shù)w?*?j:

      公式(4)是針對一個樹結(jié)構(gòu)進(jìn)行打分的函數(shù),稱為structure score,分?jǐn)?shù)越小樹結(jié)構(gòu)越好。算法利用公式(4)構(gòu)造不同的樹結(jié)構(gòu)搜尋最優(yōu)的樹結(jié)構(gòu)。

      2.2?Xgboost模型參數(shù)

      Xgboost模型包含通用參數(shù)、輔助參數(shù)和學(xué)習(xí)目標(biāo)參數(shù)。通用參數(shù)用作對函數(shù)的宏觀控制,有樹模型和線性模型。輔助參數(shù)根據(jù)選取的迭代模型控制每一步驟,學(xué)習(xí)目標(biāo)參數(shù)控制目標(biāo)的表現(xiàn)。

      Xgboost模型中部分常用參數(shù)說明如下:

      (1)booster:用來決定需要使用的迭代模型,有g(shù)btree(樹模型)和gblinear(線性模型)兩種選擇。

      (2)nthread:Xgboost參數(shù)用來進(jìn)行多線程控制,可設(shè)置并發(fā)線程數(shù),默認(rèn)為當(dāng)前系統(tǒng)可獲得的最大可用線程數(shù)。

      (3)eta:縮步長,即學(xué)習(xí)速率。在更新葉子節(jié)點(diǎn)時,權(quán)重乘以eta以避免在更新過程中的過擬合。

      (4)max_depth:每棵樹的最大深度,也是用來避免過擬合的,需要調(diào)優(yōu)。

      (5)subsample:用來控制每棵樹隨機(jī)采樣的比例。值為0.5意味著Xgboost隨機(jī)抽取一半的數(shù)據(jù)實(shí)例生成樹模型,這樣能防止過擬合。

      (6)colsample_tree:在構(gòu)建每棵樹時用來控制每棵樹隨機(jī)采樣的特征占比。

      (7)objective:該參數(shù)定義需要被損失函數(shù)最小化。

      (8)seed:隨機(jī)數(shù)種子,通過設(shè)置可復(fù)現(xiàn)隨機(jī)數(shù)據(jù)結(jié)果,也可用于調(diào)整參數(shù)。

      3?實(shí)驗(yàn)與評估

      3.1?環(huán)境搭建

      目前對于Shadowsocks的研究較少,因此沒有合適的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),本文通過環(huán)境搭建手動獲取數(shù)據(jù)集,實(shí)驗(yàn)設(shè)置30臺PC機(jī)產(chǎn)生流量,流量在本地通過Libpcap捕獲并解析,隨后用于提取特征值。

      3.2?數(shù)據(jù)集

      在可控環(huán)境下的PC只通過Shadowsocks代理產(chǎn)生流量,所有捕獲到的流量只包含純Shadowsocks流量,因此標(biāo)記就變得簡單。通過30臺不同的PC機(jī),部分產(chǎn)生純Shadowsocks流量,部分不通過Shadowsocks代理產(chǎn)生正常流量,這樣產(chǎn)生的測試集組成如表2所示。

      3.3?評價標(biāo)準(zhǔn)

      為評價Xgboost算法的優(yōu)劣度,本文使用召回率(recall)及準(zhǔn)確率(accuracy)兩個指標(biāo)評價識別結(jié)果,同時使用隨機(jī)森林算法(Random Forest)和SVM(支持向量機(jī))與Xgboost算法進(jìn)行對比。公式如下:

      其中,TP(True Positive) 為被分類器正確分類為正例的樣本數(shù),TN(False Negative)為被分類器正確分類為負(fù)例的樣本數(shù),F(xiàn)P(False Positive)為被分類器錯誤分類為正例的樣本數(shù),F(xiàn)N(True Negative)為被分類器錯誤分類為負(fù)例的樣本數(shù)。

      3.4?結(jié)果分析

      實(shí)驗(yàn)結(jié)果如表3所示。

      由上述3個表中的測試結(jié)果可知,在召回率和準(zhǔn)確率上Xgboost算法均有一定優(yōu)勢。當(dāng)數(shù)據(jù)集中Shadowsocks流量所占的比例較小時,3種方法的準(zhǔn)確率均有一定程度的下降,導(dǎo)致分類效果較差。

      4?結(jié)語

      本文主要針對Shadowsocks的通信流量進(jìn)行識別。介紹了Shadowsocks的通信原理與特征,根據(jù)其通信特征提出多個用于機(jī)器學(xué)習(xí)的流量特征,提出基于Xgboost算法的流量識別方法。實(shí)驗(yàn)結(jié)果表明,基于Xgboost算法的流量識別方法具有較高的準(zhǔn)確率和召回率。

      未來需要提取更多的用于精確識別Shadowsocks的流量特征,加入除biflow特征以外具有區(qū)分度的特征以提升最終識別效果。

      參考文獻(xiàn):

      [1]?ROUGHAN M, SEN S, SPATSCHECK O, et al. Class?of?service mapping for QoS:a statistical signature?based approach to IP traffic classification[C].The 4th ACM SIGCOMM Conference on Internet measurement, 2004:135?148.

      [2]?NGUYEN T T T, ARMITAGE G. A survey of techniques for internet traffic classification using machine learning[J].?Communications Surveys & Tutorials, IEEE, 2008, 10(4):56?76.

      [3]?NAMDEV N, AGRAWAL S, SILKARI S.?Recent advancement in machine learning based Internet traffic classification[J].?Procedia Computer Science, 2015(60):784?791.

      [4]?DAINOTTI A, PESCAPE A, CLAFFY K C. Issues and future directions in traffic classification[J]. Network, IEEE, 2012,26(1):35?40.

      [5]?彭立志.互聯(lián)網(wǎng)流量識別研究綜述[J]. 濟(jì)南大學(xué)學(xué)報(bào):自然科學(xué)版,2016,30(2):95?104.

      [6]?MADHUKAR A,WILLIAMSON C. A longitudinal study of p2p traffic classification[C].14th IEEE International Symposium on Modeling,Analysis, and Simulation of Computer and Telecommunication Systems, 2006:179?188.

      [7]?HAFFNE R P,SEN S,SPATSCHECK O,et al.ACAS:automated construction of application signatures[C].2005 ACM SIGCOMM Workshop on Mining Network Data:ACM, 2005:197?202.

      [8]?MA J,LEVCHENKO K,KREIBICH C,et al. Unexpected means of protocol inference[C].6th ACM SIGCOMM Conference on Internet Measurement,2006:313?326.

      [9]?MOOREA W,PAPAGIANNAKI K.Toward the accurate identification of network applications[C].6th International Conference on Passive and Active Network Measurement, 2005:41?54.

      [10]?SEN S,SPATSCHECK O,WANG D.Accurate,scalable in?network identification of p2p traffic using application signatures[C].13th International Conference on World Wide Web,2004:512?521.

      [11]?DREGER H, FELDMANN A.?Dynamic application layer protocol analysis for network intrusion detection [C].?Proceedings of the 15th conference on USENIX Security Symposium. 2006, 18(15):257?272.

      [12]?GRIMAUDO L, MELLIA M, BARALIS E. Hierarchical learning for fine grained Internet traffic classification[C]. International Wireless Communications and Mobile Computing Conference. IEEE, 2012:463?468.

      [13]?HAFFNER P,?SEN S. ACAS:automated construction of application signatures [C].?Proceedings of the 2005 ACM?SIGCOMM Workshop on Mining Network Data (Mine Net 2005), 2005:197?202.

      [14]?MOORE A W,ZUEV D,CROGAN M. Discriminators for use in flow based classification[R]. London:Intel Research,2005.

      [15]?MOORE A W,ZUEV D.Internet traffic classification using Bayesian analysis techniques[C].2005 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, 2005:50?60.

      [16]?陳勇,徐釗,蔡陽波,等.基于支持向量機(jī)的網(wǎng)絡(luò)流量識別模型[J].軟件導(dǎo)刊,2017,16(7):162?164.

      [17]?何高峰,楊明,羅軍舟,等.Tor匿名通信流量在線識別方法[J].軟件學(xué)報(bào),2013(3):540?556.

      [18]?HOUMANSADR, AMIR, BORISOV N. SWIRL:a scalable watermark to detect correlated network flows[C]. Network and Distributed System Security Symposium, 2011:1?15.

      [19]?WANG X, CHEN S, JAJODIA S. Tracking anonymous peer?to?peer VoIP calls on the Internet[C]. ACM Conference on Computer and Communications Security,?2005:81?91.

      [20]?DENG Z Y ,?LIU Z H , CHEN Z G,et al. The random forest based detection of Shadowsock's traffic[C]. 2017 9th International Conference on Intelligent Human?Machine Systems and Cybernetics (IHMSC),2017.

      南康市| 紫金县| 永和县| 自治县| 荣成市| 乌兰浩特市| 侯马市| 丘北县| 河北区| 垫江县| 家居| 田林县| 勃利县| 泉州市| 缙云县| 屏边| 深圳市| 老河口市| 崇信县| 炎陵县| 喀喇沁旗| 星座| 洪湖市| 米林县| 化州市| 温州市| 饶阳县| 四平市| 凤冈县| 郸城县| 双辽市| 久治县| 额济纳旗| 南皮县| 成武县| 拜泉县| 龙泉市| 衡水市| 红安县| 旬邑县| 洪洞县|