程 光 陳玉祥
(東南大學計算機科學與工程學院, 南京 211189)(東南大學教育部計算機網(wǎng)絡與信息集成重點實驗室, 南京 211189)
基于支持向量機的加密流量識別方法
程 光 陳玉祥
(東南大學計算機科學與工程學院, 南京 211189)(東南大學教育部計算機網(wǎng)絡與信息集成重點實驗室, 南京 211189)
針對現(xiàn)有的加密流量識別方法難以區(qū)分加密流量和非加密壓縮文件流量的問題,對互聯(lián)網(wǎng)中的加密流量、txt流量、doc流量、jpg流量和壓縮文件流量進行分析,發(fā)現(xiàn)基于信息熵的方法能夠有效地將低熵值數(shù)據(jù)流和高熵值數(shù)據(jù)流區(qū)分開.但該方法不能識別每個字節(jié)是隨機的而全部流量是偽隨機的非加密壓縮文件流量,因此采用相對熵特征向量{h0,h1,h2,h3}區(qū)分低熵值數(shù)據(jù)流和高熵值數(shù)據(jù)流,采用蒙特卡洛仿真方法估計π值的誤差perror來區(qū)分局部隨機流量和整體隨機流量.最終提出基于支持向量機的加密流量和非加密流量的識別方法SVM-ID,并將特征子空間φSVM={h0,h1,h2,h3,perror}作為SVM-ID方法的輸入.將SVM-ID方法和相對熵方法進行對比實驗,結果表明,所提方法不僅能夠很好地識別加密流量,還能區(qū)分加密流量和非加密的壓縮文件流量.
加密流量識別;相對熵;蒙特卡洛仿真;支持向量機
近年來,隨著網(wǎng)絡技術的高速發(fā)展,網(wǎng)絡安全問題也得到了人們越來越多的關注.一些惡意軟件通過加密通道技術繞過防火墻和入侵識別系統(tǒng)[1]將機密信息發(fā)送到外網(wǎng),如僵尸網(wǎng)絡[2]、木馬和高級持續(xù)性威脅(APT)[3].APT攻擊普遍采用未知木馬進行遠程控制,通過隱蔽通道、加密通道避免網(wǎng)絡行為被檢測,同時攻擊持續(xù)數(shù)月甚至數(shù)年時間.因此有效識別和檢測加密流量對維護網(wǎng)絡安全運行有著重要意義.
文獻[4-5]綜述了網(wǎng)絡加密流量的識別研究現(xiàn)狀,并從多個角度進行分析對比,認為加密和非加密流量的分類是現(xiàn)在一個重要的研究方向.當前加密流量識別方法有4類:基于負載隨機性檢測的方法、基于有效負載的識別方法、基于機器學習的方法、多種策略相結合的混合方法.趙博等[6]提出一種基于加權累積和檢驗的加密流量盲識別方法,該方法通過對待檢測數(shù)據(jù)流中的網(wǎng)絡報文負載依次進行累積和檢驗,然后參考實際報文長度對所得結果進行加權總和,實現(xiàn)加密流量的識別.Bonfiglio等[7]提出一種通過2個互補方法來識別Skype流量的框架,確定具體的協(xié)議數(shù)據(jù)流.Okada等[8]通過計算未加密流量與加密流量的相關性從49種特征中選取29種未加密流量與加密流量強相關的特征,根據(jù)相關性特征采用機器學習方法識別加密與未加密混合流量.Dorfinger等[9]通過第1個數(shù)據(jù)包的有效載荷的熵估計進行識別.Sun等[10]采用特征匹配方法識別SSL/TLS流量,然后應用統(tǒng)計分析方法確定具體的應用協(xié)議.Callado等[11]通過4種不同的組合機制在4個不同的網(wǎng)絡場景下進行驗證.Alshammari等[12]使用多種監(jiān)督學習分類方法來識別SSH和非SSH,以及Skype和非Skype.以上方法基本沒有考慮非加密壓縮文件流量的處理,導致壓縮文件流量被誤識別為加密流量.互聯(lián)網(wǎng)中壓縮文件流量在流量成分中所占的比重較大,壓縮文件流量的誤報將大大影響算法的性能.
針對以上問題,本文通過對互聯(lián)網(wǎng)中的加密流量、txt流量、doc流量、jpg流量、壓縮文件流量這5種流量進行分析,發(fā)現(xiàn)基于信息熵方法不能識別非加密壓縮文件流量.通過分析文件壓縮原理發(fā)現(xiàn),局部字符的出現(xiàn)規(guī)律會具有一定的隨機性,但是文件在壓縮前字符出現(xiàn)的概率仍符合一定的統(tǒng)計規(guī)律,從而使得壓縮后從整體上來看體現(xiàn)出的是一種偽隨機性,并不會像加密流量那樣表現(xiàn)出高的隨機性.由此本文提出將蒙特卡洛仿真方法估計π值的誤差和相對熵作為流量分類測度,采用基于支持向量機(SVM)的分類方法(SVM-ID)對加密流量和非加密的壓縮文件流量進行分類.將SVM-ID方法和相對熵方法進行對比實驗,結果表明,本文方法不僅能夠很好地識別加密流量,還能很好地區(qū)分加密流量和非加密的壓縮文件流量.
1.1 流量隨機性分析
熵理論目前被廣泛應用于信息安全領域的數(shù)據(jù)分析和異常檢測.熵可用來表示能量分布均勻程度,能量分布越均勻,熵就越大.熵計算有香農(nóng)熵和Tsallis熵2種方法[13].
本文選擇doc流量、txt流量、jpg流量、壓縮文件流量、加密流量這5種文件流量,采用香農(nóng)熵的方法以8 bit作為一個碼元符號逐字節(jié)計算字符熵,圖1是5種文件類型字符熵值圖.從圖1可知,doc和txt文件熵值略小,jpg、壓縮文件、加密流量負載熵值均接近8,本質上jpg圖像文件也是一種壓縮文件.因此基于信息熵的方法能夠有效地將低熵值數(shù)據(jù)流和高熵值數(shù)據(jù)流區(qū)分開.但是,僅使用該方法并不能很好地區(qū)分壓縮文件和加密流量.
圖1 5種文件類型字符熵值圖
1.2 相對熵
本文使用相對熵作為特征向量.針對流量文件F,文件中的每一個字節(jié)都可以當作集合S中的一個元素Si,這樣便可以得到文件中所有字節(jié)的熵.更一般地,可以將文件F中任意的K個連續(xù)字節(jié)當作一個元素,并計算給定文件中所有K個連續(xù)字節(jié)所組成的新集合S′的熵值.下面定義fk代表所有的K個連續(xù)字節(jié)所組成的集合,hk為該集合所對應的相對熵,其計算公式為
(1)
如前所述,對一個特定的文件,相應的特征有h1,h2,…,hn,但在實際應用中,可能存在不相關的特征,特征之間也可能存在相互依賴.此外,考慮到實時加密流量識別應用場景的需要,需要進行特征選擇,剔除冗余特征,在保證所構建出來的分類器具有比較好的識別效果的同時,減少運行時間,提高系統(tǒng)識別效率.本文采用徐峻嶺等[14]提出的特征選擇算法選擇{h0,h1,h2,h3}.Burges等[15]和Wang等[13]都只使用數(shù)據(jù)流的前幾個數(shù)據(jù)包進行加密流量的識別,本文采用文獻[16]的實驗結果,計算有效負載前1 KB內(nèi)容的相對熵{h0,h1,h2,h3}.由于加密通信信道的性質,在實際流量中,加密流的有效負載都大于1 KB.
1.3 蒙特卡洛π值估計誤差
數(shù)據(jù)壓縮的原理是找出那些重復出現(xiàn)的字符串,然后用更短的符號代替,從而達到縮短字符串的目的,所以壓縮后的文件中字符偏向于均勻分布,從而熵值較大,這與數(shù)據(jù)加密類似.本文將采用蒙特卡洛π估計誤差對全局隨機性進行評估.蒙特卡洛方法的基本思想是通過實驗的方法求解問題的概率,蒙特卡洛π值估計法的過程是:在一個正方形內(nèi)有一個內(nèi)切圓,向這個正方形內(nèi)隨機畫點,點落入圓內(nèi)的概率p為圓面積與正方形面積之比,π=4p,越均勻分布的數(shù)據(jù)點集所得到的π估計值越接近其真實值,從而可以根據(jù)蒙特卡洛π估計誤差來表征數(shù)據(jù)集的隨機性.由此本文給出了針對網(wǎng)絡流量字節(jié)的蒙特卡洛π估計誤差算法,算法的基本思路如下:對于每個需要處理的數(shù)據(jù)文件,每48 bit比特流作為一組計算一個蒙特卡洛仿真點,前24 bit作為montex,后24 bit作為montey,利用montex和montey計算48 bit比特流的點是否落在圓面積內(nèi),根據(jù)落在圓面積中的點數(shù)估計出蒙特卡洛π值,然后計算蒙特卡洛π值和真實π值之間的差.
圖2為加密文件、jpg文件和壓縮文件的蒙特卡洛π估計誤差的統(tǒng)計結果.由圖2可知,壓縮文件和jpg文件的蒙特卡洛π估計誤差較大,而加密文件的則比較小,因此基于蒙特卡洛 π估計誤差值能夠將加密流量、jpg以及壓縮文件流量區(qū)分開.
圖2 3種文件的蒙特卡洛π估計誤差
加密流量分類器所采用的特征子空間設置為φSVM={h0,h1,h2,h3,perror},其中perror為蒙特卡洛仿真方法估計π值的誤差值.
1.4 基于支持向量機加密流量識別方法架構
支持向量機(SVM)是一種輸入特征空間上間隔最大的線性分類器,本文使用SVM將待檢測流量分為加密流量和非加密流量.加密流量識別是一個二類分類問題,數(shù)據(jù)的特征空間{h0,h1,h2,h3,perror}是一個4維空間,這里用x表示,類別加密和非加密用y表示,加密取1,非加密取-1,因此本文的分類目標是在所確定的4維空間中找到一個分類的超平面.SVM-ID方法流程如圖3所示.
圖3 SVM-ID方法流程圖
SVM-ID方法主要包括2個過程:支持向量機的分類器訓練過程和加密流量分類過程.訓練過程主要由訓練樣本獲取和分類器訓練2個功能模塊構成,其中分類器訓練模塊采用有標記的訓練數(shù)據(jù)的特征值{h0,h1,h2,h3,perror}作為輸入,使用LibSVM的SVM分類器進行模型的訓練.在得到分類器后,模型一直存在檢測系統(tǒng)中,隨時供決策判斷模塊調(diào)用.
分類過程主要有數(shù)據(jù)采集、會話生成、會話過濾、相對熵計算、誤差計算、決策判斷、結果輸出等功能模塊.其中會話過濾模塊對數(shù)據(jù)流根據(jù)相應規(guī)則完成過濾.相對熵計算模塊使用文件數(shù)據(jù)有效負載的前1 KB內(nèi)容根據(jù)式(1)計算相對字符熵h0,h1,h2,h3.誤差計算模塊采用文件數(shù)據(jù)的有效負載計算其蒙特卡洛π值的誤差.決策判斷模塊對未知網(wǎng)絡通信流量進行分析,使用分類器訓練階段產(chǎn)生的分類模型對未知流量進行判斷,并對分類結果進行決策評估.
1.5 時間復雜度分析
加密流量分類過程主要由相對熵計算、蒙特卡洛π值誤差估計和決策判斷3個過程構成.設相對熵的文件長度為A,K為連續(xù)字節(jié)數(shù),n為需要計算相對熵的數(shù)量,則相對熵計算的時間復雜度為O(nAK).計算蒙特卡洛π值估計誤差的時間復雜度為O(A),決策判斷過程的時間復雜度為O(1),因此整個算法的時間復雜度為O(nAK).
SVM-ID算法采用C語言進行編寫,第三方軟件及API包括:libpcap,pthread,LibSVM.主機的配置為:HP ProLiant BL465c服務器,CPU為雙核皓龍2216 HE 2.4 GHz,內(nèi)存8 GB,硬盤1 TB;操作系統(tǒng)為Red Hat 3.4.6-2.本文將SVM-ID算法和常用的只采用相對熵的相對熵方法進行對比實驗.
2.1 數(shù)據(jù)集
實驗數(shù)據(jù)集的獲取過程為:使用4臺普通主機(拓撲結構如圖4所示)向FTP服務器以加密方式傳送數(shù)據(jù)來獲得加密流量,通過嗅探捕獲在數(shù)據(jù)傳輸過程中產(chǎn)生的數(shù)據(jù)包.另外還捕獲主機在正常通信時的數(shù)據(jù)樣本流量.最后將這這些數(shù)據(jù)樣本使用Wireshark的mergecap命令將其整合成一個pcap文件,形成最終數(shù)據(jù)集.
圖4 數(shù)據(jù)采集網(wǎng)絡拓撲結構
在傳統(tǒng)的監(jiān)督學習中,分類器通過對大量有標記的訓練實例進行學習,從而建立模型用于預測未標記實例的類別.收集大量未標記實例是相當容易的,而獲取大量有標記的實例則相對較為困難.這里,為了簡化訓練分類器的過程,訓練樣本的特征是通過對已標記的加密流量和非加密流量進行特征提取得到的,從而可以用來方便地對SVM分類器進行快速訓練.
2.2 算法結果分析
為了評價識別算法的性能,本文選用查準率、查全率和綜合評價3種評價指標.查準率Pr、查全率Re和綜合評價Fm的計算公式為
Pr=TP/(TP+FP)
(2)
Re=TP/(TP+FN)
(3)
Fm=2PrRe/(Pr+Re)
(4)
式中,TP為加密樣本中被正確標記的樣本數(shù);FN為加密樣本中被誤標識為非加密的樣本數(shù);FP為非加密樣本中被誤標識為加密的樣本數(shù).
查準率和查全率體現(xiàn)了識別方法的識別效果,Fm是根據(jù)查準率Pr和查全率Re二者給出的一個綜合的評價指標,當Fm較高時則說明該方法比較理想.
本文先選取50個加密通信流和100個正常數(shù)據(jù)流組成訓練樣本對SVM模型進行訓練,構建SVM分類器.然后選取73個加密通信流和276個正常數(shù)據(jù)通信流,使用加密流量識別方法對這些會話數(shù)據(jù)流進行檢測.分別采用本文的SVM-ID方法和不采用蒙特卡洛π估計誤差值的相對熵方法進行實驗,結果如表1所示.
由表1可知,SVM-ID方法的查準率、查全率和綜合評價分別為94.03%,91.31%,92.65%.不采用蒙特卡洛π估計誤差的相對熵方法的查準率、查全率和綜合評價分別為58.82%,86.96%,70.18%.可看出,本文SVM-ID方法的識別效果要優(yōu)于相對熵方法.這是由于相對熵方法單純采用相對熵,會將壓縮文件類流量誤判為加密流量,因此在正常流量中會存在一定的誤報,由表1可知,42個正常的通信流被識別為加密流量從而提高了誤報率,而對加密通信流的識別這2種方法的結果偏差不是很大.
表1 2種分類算法針對加密和正常流量結果對比
對所有加密流中識別出來的和未識別出來的流進行包數(shù)和字節(jié)數(shù)的統(tǒng)計,發(fā)現(xiàn)未被識別出的加密流量都是報文數(shù)和字節(jié)數(shù)都比較小的短流,而被識別出的是報文數(shù)和字節(jié)數(shù)都較大的長流,說明本文識別算法對通信數(shù)據(jù)量較小的加密流量識別效果不佳.其原因是混亂性和隨機性是一種從統(tǒng)計學角度進行度量的特征,如果樣本數(shù)據(jù)量少,可能不能從這2個特征尺度對其進行考量.
1) 對互聯(lián)網(wǎng)中的加密流量、txt流量、doc流量、jpg流量、壓縮文件流量5種流量進行了分析,發(fā)現(xiàn)基于信息熵的方法能夠有效地將低熵值數(shù)據(jù)流和高熵值數(shù)據(jù)流區(qū)分開,但是不能區(qū)分非加密壓縮文件和加密文件.
2) 考慮到相對熵具有很好的局部隨機性的識別能力,且支持向量機在二類分類上具有很好的分類特性,提出將蒙特卡洛仿真方法估計π值的誤差和相對熵作為流量分類測度,利用支持向量機算法對加密流量和非加密的壓縮文件流量進行分類.
3) 將本文提出的SVM-ID方法和相對熵方法進行對比實驗,結果表明本文方法準確率較高且實時性好,優(yōu)于僅使用相對熵特征向量的方法.
References)
[1]Fadlullah Z M, Taleb T, Vasilakos A V, et al. DTRAB: Combating against attacks on encrypted protocols through traffic-feature analysis[J].IEEE/ACMTransactionsonNetworking, 2010, 18(4): 1234-1247. DOI:10.1109/tnet.2009.2039492.
[2]Gu G, Perdisci R, Zhang J, et al. BotMiner: Clustering analysis of network traffic for protocol- and structure-independent botnet detection[C]//USENIXSecuritySymposium. San Jose, CA, USA, 2008: 139-154.
[3]Tankard C. Advanced persistent threats and how to monitor and deter them[J].NetworkSecurity, 2011, 2011(8): 16-19. DOI:10.1016/s1353-4858(11)70086-1.
[4]潘吳斌,程光,郭曉軍,等.網(wǎng)絡加密流量識別研究綜述及展望[J].通信學報,2016,37(9):154-167. DOI:10.11959/j.issn.1000-436x.2016187. Pan Wubin, Cheng Guang, Guo Xiaojun, et al. Review and perspective on encrypted traffic identification research[J].JournalonCommunications, 2016, 37(9): 154-167. DOI:10.11959/j.issn.1000-436x.2016187.(in Chinese)
[5]Cao Z, Xiong G, Zhao Y, et al. A survey on encrypted traffic classification[C]//InternationalConferenceonApplicationsandTechniquesinInformationSecurity. Berlin: Springer, 2014, 490: 73-81. DOI:10.1007/978-3-662-45670-5_8.
[6]趙博,郭虹,劉勤讓,等.基于加權累積和檢驗的加密流量盲識別算法[J].軟件學報,2013,24(6):1334-1345. Zhao Bo, Guo Hong, Liu Qinrang, et al. Protocol independent identification of encrypted traffic based on weighted cumulative sum test[J].JournalofSoftware, 2013, 24(6): 1334-1345.(in Chinese)
[7]Bonfiglio D, Mellia M, Meo M, et al. Revealing skype traffic: When randomness plays with you[J].ACMSIGCOMMComputerCommunicationReview, 2007, 37(4): 37-48. DOI:10.1145/1282427.1282386.
[8]Okada Y, Ata S, Nakamura N, et al. Comparisons of machine learning algorithms for application identification of encrypted traffic[C]//10thIEEEInternationalConferenceonMachineLearningandApplicationsandWorkshops. Honolulu, USA, 2011, 2: 358-361. DOI:10.1109/icmla.2011.162.
[9]Dorfinger P, Panholzer G, John W. Entropy estimation for real-time encrypted traffic identification (short paper)[C]//InternationalWorkshoponTrafficMonitoringandAnalysis. Vienna, Austria, 2011: 164-171. DOI:10.1007/978-3-642-20305-3_14.
[10]Sun G L, Xue Y, Dong Y, et al. A novel hybrid method for effectively classifying encrypted traffic[C]//2010IEEEGlobalTelecommunicationsConference. Miami, USA, 2010: 1-5. DOI:10.1109/glocom.2010.5683649.
[11]Callado A, Kelner J, Sadok D, et al. Better network traffic identification through the independent combination of techniques[J].JournalofNetworkandComputerApplications, 2010, 33(4): 433-446. DOI:10.1016/j.jnca.2010.02.002.
[12]Alshammari R, Zincir-Heywood A N. Can encrypted traffic be identified without port numbers, IP addresses and payload inspection?[J].ComputerNetworks, 2011, 55(6): 1326-1350. DOI:10.1016/j.comnet.2010.12.002.
[13]Wang Y, Zhang Z, Guo L, et al. Using entropy to classify traffic more deeply[C]//2011IEEESixthInternationalConferenceonNetworking,Architecture,andStorage. Dalian, China, 2011. DOI:10.1109/nas.2011.18.
[14]徐峻嶺,周毓明,陳林,等.基于互信息的無監(jiān)督特征選擇[J].計算機研究與發(fā)展,2012,49(2):372-382. Xu Junling, Zhou Yuming, Chen Lin, et al. An unsupervised feature selection approach based on mutual information[J].JournalofComputerResearchandDevelopment, 2012, 49(2): 372-382.(in Chinese)
[15]Burges C J C. A tutorial on support vector machines for pattern recognition[J].DataMiningandKnowledgeDiscovery, 1998, 2(2): 121-167.
[16]Bernaille L, Teixeira R. Early recognition of encrypted applications[C]//InternationalConferenceonPassiveandActiveNetworkMeasurement. Louvain-la-neuve, Belgium, 2007: 165-175.
Identification method of encrypted traffic based on support vector machine
Cheng Guang Chen Yuxiang
(School of Computer Science and Engineering, Southeast University, Nanjing 211189, China)(Key Laboratory of Computer Network and Information Integration of Ministry of Education, Southeast University, Nanjing 211189, China)
The existing methods of encrypted traffic classification are difficult to effectively distinguish encrypted traffic and compressed file traffic. Through analyzing the encrypted traffic, txt traffic, doc traffic, jpg traffic,and compressed file traffic, it is found that the methods based on information entropy can effectively separate the low entropy traffic and the high entropy traffic. However, this method cannot distinguish non-encrypted compressed file traffic with byte randomness and full flow pseudo randomness. Therefore, the relative entropy feature vector {h0,h1,h2,h3} is employed to distinguish the low entropy traffic and the high entropy traffic,and the Monte Carlo simulation method is used to estimate the error of π value,perror, which can be used to distinguish the local random traffic and the whole random traffic. Finally, a support vector machine (SVM)-based identification method (SVM-ID) for encrypted traffic and non encrypted traffic is proposed. And, the SVM-ID method uses the feature spaceφSVM={h0,h1,h2,h3,perror} as the input. The SVM-ID method is compared with the relative entropy method. The experimental results show that the proposed method can not only identify the encrypted traffic well, but also distinguish the encrypted traffic and the non-encrypted compressed file traffic.
encrypted traffic identification; relative entropy; Monte Carlo simulation; support vector machine
10.3969/j.issn.1001-0505.2017.04.005
2016-12-04. 作者簡介: 程光(1973—),男,博士,教授,博士生導師, gcheng@njnet.edu.cn.
國家高技術研究發(fā)展計劃(863計劃)資助項目(2015AA015603)、國家自然科學基金資助項目(61602114)、中興通訊研究基金資助項目、軟件新技術與產(chǎn)業(yè)化協(xié)同創(chuàng)新中心資助項目.
程光,陳玉祥.基于支持向量機的加密流量識別方法[J].東南大學學報(自然科學版),2017,47(4):655-659.
10.3969/j.issn.1001-0505.2017.04.005.
TP393.4
A
1001-0505(2017)04-0655-05