武思齊, 王俊峰
(1.四川大學(xué)計算機學(xué)院, 成都 610065; 2.四川大學(xué)空天科學(xué)與工程學(xué)院, 成都 610065)
移動互聯(lián)網(wǎng)的快速發(fā)展造成了網(wǎng)絡(luò)流量的急劇增長,其中移動流量逐漸占據(jù)了運營網(wǎng)絡(luò)中的主要流量.移動流量是指由手機、平板電腦、電子書等智能移動終端設(shè)備產(chǎn)生的網(wǎng)絡(luò)流量.2016年11月,全球智能手機和平板電腦的互聯(lián)網(wǎng)使用量首次超過傳統(tǒng)桌面設(shè)備[1].2018年,僅智能手機的web流量在全球web流量中的份額已經(jīng)超過了52%[2].預(yù)計到2021年,僅智能手機將占總IP流量的33%,流量增長率將達到49%[2].隨著移動終端的普及與發(fā)展,移動終端已經(jīng)成為研究用戶行為特征的一種理想的探測器[3],移動流量的海量增長給移動網(wǎng)絡(luò)安全、網(wǎng)絡(luò)測量和服務(wù)質(zhì)量等方面帶來了更多挑戰(zhàn).根據(jù)劍橋大學(xué)的研究數(shù)據(jù)顯示,近87%的安卓智能手機有至少一個嚴重漏洞;Zimperium Lab在2018年發(fā)現(xiàn),黑客只需通過一條簡單的短信便能對 95% 的 Android 設(shè)備發(fā)起攻擊[4];2018年全球移動設(shè)備上檢測到的惡意軟件安裝包數(shù)量超過600萬個;越來越多的家庭智能設(shè)備、穿戴設(shè)備需要手機實時監(jiān)測數(shù)據(jù)并對其進行操控;移動設(shè)備需要保障更多的手機游戲、手機視頻軟件的并行操作等等.由此可見,移動設(shè)備面臨諸多領(lǐng)域的風(fēng)險和挑戰(zhàn)[5-6].
從大量混雜流量中識別出移動流量并對流量進行分析,是深入研究移動互聯(lián)網(wǎng)特性的第一步,同時可以為移動網(wǎng)絡(luò)測量與管理、移動安全和隱私保護提供有價值的信息.傳統(tǒng)的移動流量分類方法采用的特征取決于協(xié)議字段的差異,對于差別較小的協(xié)議特征無法區(qū)別,識別性能較低;深度數(shù)據(jù)包檢測的方法在識別的過程中會遇到大量不包含特征信息的無效數(shù)據(jù)包,覆蓋率低、計算代價很大并且不適用于加密流量的識別.為了解決上述問題,本文提出了基于數(shù)據(jù)流多維統(tǒng)計特征的移動流量識別方法.該方法從硬件特征、操作系統(tǒng)指紋和用戶使用習(xí)慣三個方面提取了數(shù)據(jù)流中具有代表性的特征并對特征進行分析,使用集成學(xué)習(xí)的方法生成識別模型.在移動流量識別的準確率和主流的5種操作系統(tǒng)流量分類的準確率都達到了99%以上.相較于目前其他方法[7-9],基于數(shù)據(jù)流多維特征的移動流量識別方法準確率較高.本方法采用的特征整合了網(wǎng)絡(luò)協(xié)議中網(wǎng)絡(luò)層和傳輸層的數(shù)據(jù)流特征,適用于加密流量的識別.特征選擇考慮了硬件特征、操作系統(tǒng)指紋和用戶使用習(xí)慣三個方面,相較于其他使用傳統(tǒng)網(wǎng)絡(luò)協(xié)議特征識別方法的研究[10-12],本文的特征選擇更具有多維性.同時,本文對于移動流量的識別和操作系統(tǒng)流量分類使用了不同類型的機器學(xué)習(xí)分類算法,對比了bagging和boosting分類算法的分類效果.本文說明了在使用機器學(xué)習(xí)分類方法時,同樣需要對使用場景進行細分,根據(jù)具體場景選擇分類算法才能實現(xiàn)較好的分類效果.
移動流量的識別問題可以通過終端操作系統(tǒng)的分類來實現(xiàn),將攜帶有移動操作系統(tǒng)(Android、iOS等)特征的流量識別為移動流量[13].目前移動流量的識別方法主要分為四類:基于端口的分析方法、網(wǎng)絡(luò)協(xié)議特征識別方法、基于統(tǒng)計和機器學(xué)習(xí)的分析方法和深度數(shù)據(jù)包檢測方法.不同方法可以基于不同的流量測量粒度實現(xiàn)移動流量的識別.
(1) 基于端口的分析方法.基于端口的分析方法是最基礎(chǔ)的移動流量識別技術(shù),端口是應(yīng)用層進程的標識符號,不同端口號對應(yīng)著不同應(yīng)用程序.可以通過提取報文頭的端口號,與互聯(lián)網(wǎng)數(shù)字分配機構(gòu)(Internet Assigned Numbers Authority)為應(yīng)用程序分配的端口列表進行對比,從而推斷出網(wǎng)絡(luò)流量的來源[14].但是諸如P2P應(yīng)用等許多新的應(yīng)用程序,采用的是動態(tài)端口或者采用其他協(xié)議的端口號來偽裝,單純使用基于端口的分類方法逐漸被淘汰.胡婷等人[15]結(jié)合端口號匹配和機器學(xué)習(xí)分類方法,引入了目前較流行的自適應(yīng)深度學(xué)習(xí)機制,采用輸出結(jié)果可視化的自組織映射網(wǎng)絡(luò)算法實現(xiàn)網(wǎng)絡(luò)流量在應(yīng)用層的分類,時間復(fù)雜度很低,實現(xiàn)簡單,適用于在高速網(wǎng)絡(luò)環(huán)境下的應(yīng)用層協(xié)議識別.將基于端口的識別和其他技術(shù)結(jié)合,能夠兼顧識別的準確性和識別效率.
(2) 網(wǎng)絡(luò)協(xié)議特征識別方法.網(wǎng)絡(luò)協(xié)議特征識別方法是檢測數(shù)據(jù)包頭字段的特征,如鏈路層數(shù)據(jù)包的MAC地址、網(wǎng)絡(luò)層數(shù)據(jù)包頭的各字段以及傳輸層數(shù)據(jù)包頭的各字段,方法根據(jù)相同類型設(shè)備具有相似的數(shù)據(jù)包頭字段,來推測流量的設(shè)備類型.Chen等人[7]使用TCP協(xié)議頭部字段TTL、IP ID、TCP窗口大小選項以及時鐘頻率識別Android、iOS和Windows操作系統(tǒng).Nmap[16]是一款支持各種操作系統(tǒng)的開源網(wǎng)絡(luò)掃描工具,它使用TCP/IP協(xié)議棧fingerprinting進行遠程操作系統(tǒng)探測,Nmap發(fā)送一系列TCP和UDP報文到遠程主機,檢查響應(yīng)中的每一個比特.然后把結(jié)果和數(shù)據(jù)庫nmap-os-fingerprints中已知的操作系統(tǒng)的fingerprints進行比較,如果有匹配,就打印出操作系統(tǒng)的詳細信息. 每個fingerprint包括一個自由格式的關(guān)于OS的描述文本和一個分類信息,它提供供應(yīng)商名稱、操作系統(tǒng)版本和設(shè)備類型.Nmap通過實現(xiàn)操作系統(tǒng)流量的分類實現(xiàn)移動流量的識別.網(wǎng)絡(luò)協(xié)議特征取決于協(xié)議字段的差異,需要對各類型設(shè)備的流量特征建立特征庫,開銷較大,對于較為混淆的協(xié)議特征無法區(qū)別.
(3) 深度數(shù)據(jù)包檢測方法.深度數(shù)據(jù)包檢測方法(Deep Packet Inspection, DPI)是通過對應(yīng)用層數(shù)據(jù)流的報文內(nèi)容進行特征字符串的匹配.檢測數(shù)據(jù)包的有效載荷的特征字段以此確定流量類型.劉翼等人[8]提出了一種采用輕量級流表與深度數(shù)據(jù)包檢測技術(shù)相結(jié)合的移動流量實時分類方法UAFs,將網(wǎng)絡(luò)流量按照時間間隔組成時序流,并提取HTTP頭部“User-Agent”字段中的簡單特征字符串進行移動流量識別.深度數(shù)據(jù)包檢測方法在會遇到大量的不包含特征字段的無用數(shù)據(jù)包,覆蓋率較低;很多數(shù)據(jù)包都采用HTTPS加密的方式[17],很多數(shù)據(jù)包中的特征也無法提取.DPI技術(shù)需要事先提取移動操作系統(tǒng)的模式,利用提取到的模式在未知網(wǎng)絡(luò)流量中區(qū)分不同流量的來源.由于移動流量的特征可能會隨時間推移發(fā)生變化,因而DPI技術(shù)需要定期更新模式,才能在匹配的過程中準確的檢測流量類型.
(4) 基于統(tǒng)計和機器學(xué)習(xí)的分析方法.基于統(tǒng)計和機器學(xué)習(xí)的流量分析方法是近年來較為主流的方法.不同類型設(shè)備產(chǎn)生的網(wǎng)絡(luò)流量具有獨特的統(tǒng)計分布特性,在已知網(wǎng)絡(luò)流量中訓(xùn)練獲得分布特性并應(yīng)用于分析未知網(wǎng)絡(luò)流量,可以實現(xiàn)流量分類[18].機器學(xué)習(xí)應(yīng)用于網(wǎng)絡(luò)流量的分類方式主要分為兩種形式:有監(jiān)督和無監(jiān)督.基于統(tǒng)計和機器學(xué)習(xí)的方法適用于傳統(tǒng)和新型網(wǎng)絡(luò),可擴展性強,但是分類的速度較慢,耗費資源較多,并且受到樣本分布不均等問題的影響.
針對上述分析,本文提出了基于數(shù)據(jù)流多維統(tǒng)計特征的移動流量識別方法.該方法從硬件特征、操作系統(tǒng)指紋和用戶使用習(xí)慣三個方面提取了數(shù)據(jù)流中具有代表性的特征并對特征進行分析,使用機器學(xué)習(xí)的方法生成識別模型,實現(xiàn)了移動流量的識別和操作系統(tǒng)的分類.
基于數(shù)據(jù)流多維統(tǒng)計特征的移動流量識別方法架構(gòu)如圖1所示.
圖1 移動流量識別框架Fig.1 Mobile traffic identification framework
該框架主要包括4個部分:樣本預(yù)處理、特征提取、生成流量分類模型以及流量類型預(yù)測.在樣本采集和預(yù)處理部分,通過網(wǎng)絡(luò)采集設(shè)備將鏡像端口的網(wǎng)絡(luò)流量數(shù)據(jù)抓取后,進行過濾,去掉IPv6、局域網(wǎng)廣播等干擾數(shù)據(jù)包以及過濾了非TCP、UDP的數(shù)據(jù)包,選取源IP為移動設(shè)備的數(shù)據(jù)包,然后將五元組(Tuple<源IP,源端口,目標IP,目標端口,傳輸層協(xié)議>)相同的數(shù)據(jù)包組成流,完成數(shù)據(jù)的預(yù)處理.然后從數(shù)據(jù)流中多個方面提取了具有代表性的特征,構(gòu)建樣本特征矩陣.借助使用集成方法形成分類模型,達到從傳統(tǒng)網(wǎng)絡(luò)流量中識別出移動流量以及對各類操作系統(tǒng)分類的目的.
對于移動設(shè)備,操作系統(tǒng)主要是Android、iOS,對于非移動設(shè)備,操作系統(tǒng)主要是Windows、Mac OS、Linux.操作系統(tǒng)對TCP/IP的實現(xiàn),都是嚴格遵從RFC文檔的,因為必須遵從相同的協(xié)議才能實現(xiàn)網(wǎng)絡(luò)通信.但是在具體實現(xiàn)上還是有略微的差別,這些差別是在協(xié)議規(guī)范之內(nèi)所允許的,大多數(shù)操作系統(tǒng)指紋識別工具都是基于這些細小的差別進行探測分析的.
移動設(shè)備和非移動設(shè)備在尺寸、耗能、內(nèi)存等硬件上存在差異,移動設(shè)備尺寸和體積都要小于非移動設(shè)備;移動設(shè)備使用的芯片一般都是RISE指令集CPU,而電腦等非移動設(shè)備一般用的都是CISC指令集CPU,RISC CPU比CISC CPU成本低,發(fā)熱少,因此移動設(shè)備耗能可能會少于非移動設(shè)備.人們在使用移動設(shè)備和非移動設(shè)備的習(xí)慣也存在差異,一般使用手機進行簡單單一的任務(wù),非移動設(shè)備更適用于進行大型文件下載、開發(fā)程序、渲染視頻等需要具有較高性能的處理器支持的任務(wù).同時,電腦在多個任務(wù)并行的情況下,可以保持各方面的性能,因此,在相同時間內(nèi),移動設(shè)備的流量消耗可能會低于電腦等非移動設(shè)備.移動設(shè)備的鍵盤輸入是虛擬鍵盤,通過觸碰屏幕點擊事件,非移動設(shè)備的鍵盤輸入是實體鍵盤,通過鼠標點擊事件,對于小的按鈕或者需要精細操作的任務(wù),用戶更習(xí)慣于使用非移動設(shè)備.綜合考慮移動設(shè)備和非移動設(shè)備在尺寸、耗能、內(nèi)存等硬件上的需求差異、不同操作系統(tǒng)的差異以及用戶使用設(shè)備習(xí)慣的差異,本文總結(jié)了以下10個具有較高區(qū)分度的特征.
(1) 數(shù)據(jù)流中數(shù)據(jù)包間的平均間隔.即一條數(shù)據(jù)流中的數(shù)據(jù)包之間的平均間隔時間,如式(1)所示.
(1)
其中,[F]pkt為數(shù)據(jù)包總數(shù);f(T)為每兩個數(shù)據(jù)包的時間間隔.不同類型設(shè)備會根據(jù)無線信道傳輸協(xié)議存在不同的數(shù)據(jù)包間隔,比如網(wǎng)絡(luò)抖動會影響數(shù)據(jù)包間間隔等.
(2) 數(shù)據(jù)流中數(shù)據(jù)包間隔標準差. 指一條數(shù)據(jù)流的數(shù)據(jù)包包間間隔對于平均大小的分散程度,如式(2)所示.
(2)
根據(jù)對大量樣本的統(tǒng)計和觀察,移動流量的標準差小于非移動流量的標準差,并且移動流量標準差的最大值遠小于非移動流量標準差的最大值.
(3) 數(shù)據(jù)流持續(xù)時間.即流最后一個數(shù)據(jù)包與初始數(shù)據(jù)包之間的間隔.如式(3)所示.
(3)
其中,Pi(T)為流中第i個數(shù)據(jù)包的包間隔.根據(jù)對樣本的概率統(tǒng)計可以發(fā)現(xiàn),移動設(shè)備的數(shù)據(jù)流持續(xù)最長時間遠小于非移動設(shè)備的數(shù)據(jù)流持續(xù)最長時間.這與移動設(shè)備和非移動設(shè)備在內(nèi)存、CPU速度方法有明顯差異有關(guān).
(4) 數(shù)據(jù)流中數(shù)據(jù)包總數(shù).即一條數(shù)據(jù)流中的數(shù)據(jù)包數(shù)目.對采集樣本進行隨機抽樣,統(tǒng)計移動設(shè)備和非移動設(shè)備的數(shù)據(jù)包總數(shù),其中移動流的數(shù)據(jù)包總數(shù)為9萬左右,而非移動流的數(shù)據(jù)包總數(shù)為239萬左右.可以發(fā)現(xiàn),不同類型設(shè)備數(shù)據(jù)流的數(shù)據(jù)包總數(shù)存在明顯的差異,移動設(shè)備和非移動設(shè)備的內(nèi)存大小、耗能,屏幕大小以及用戶使用的應(yīng)用類型都會對該特征產(chǎn)生影響.
(5) 數(shù)據(jù)流中數(shù)據(jù)包平均大小.數(shù)據(jù)包的平均大小是指一條數(shù)據(jù)流的數(shù)據(jù)包平均長度,如式(4)所示.
(4)
移動設(shè)備的平均數(shù)據(jù)包長度的最大值基本上大于非移動設(shè)備的平均數(shù)據(jù)包長度.這同樣與設(shè)備的硬件特性和無線信道傳輸方法有關(guān).
(6) 數(shù)據(jù)流中數(shù)據(jù)包大小標準差.指一條數(shù)據(jù)流的數(shù)據(jù)包平均長度的分散程度.如式(5)所示.
(5)
根據(jù)對移動設(shè)備和非移動設(shè)備數(shù)據(jù)包大小標準差的統(tǒng)計,移動流量的標準差較小,并且標準差的最大值也遠小于非移動流量的標準差.這同樣與設(shè)備的硬件特性和無線信道傳輸方法有關(guān).
(7) 數(shù)據(jù)流生存時間.IP報頭中的數(shù)據(jù)流生存時間(Time To Live, TTL)值指定數(shù)據(jù)包可以遍歷的最大躍點.不同操作系統(tǒng)設(shè)置不同的初始TTL值.比如,Windows 10發(fā)出的數(shù)據(jù)包,其TTL值是128,iOS和安卓默認值為64,而不同版本的Linux操作系統(tǒng),其數(shù)據(jù)包的TTL值各有所不同.可以根據(jù)這些細微的差別識別遠程主機的操作系統(tǒng),從而更準確地識別操作系統(tǒng)流量.
(8) 數(shù)據(jù)流標識單調(diào)性.即IP報頭的標識字段在流中的單調(diào)性,主要用于IP去碎片化.根據(jù)對不同操作系統(tǒng)數(shù)據(jù)包的觀察,Windows設(shè)備的包中IP ID隨著時間的推移單調(diào)遞增,iOS設(shè)備的包中IP ID總是隨機變化的.而Android設(shè)備的IP ID則完全隨機,其他設(shè)備的IP ID則單調(diào)遞增一段時間,并定期重置為隨機值.
(9) 數(shù)據(jù)流類型.數(shù)據(jù)流類型包括TCP、UDP兩種類型.移動和非移動設(shè)備使用的操作系統(tǒng)不同,操作系統(tǒng)在協(xié)議棧實現(xiàn)上有差異.
(10) 數(shù)據(jù)流生成時間.即形成一條流的時間.數(shù)據(jù)流的生成時間與用戶的不同設(shè)備的使用習(xí)慣相關(guān).移動設(shè)備和非移動設(shè)備在使用時間分布上存在差異,移動設(shè)備的使用時間基本小于非移動設(shè)備的使用時間.
在以上的10個特征中,特征(1)~(6)根據(jù)移動設(shè)備和非移動設(shè)備在尺寸、耗能、內(nèi)存等硬件上的需求差異,以及無線信道傳輸?shù)牟町愄崛√卣? 特征(7)~(9)根據(jù)操作系統(tǒng)指紋提取特征;特征(10)根據(jù)用戶的使用習(xí)慣提取特征.提取上述10個統(tǒng)計特征,構(gòu)建樣本的特征矩陣,作為后續(xù)分類模型訓(xùn)練的輸入.
該模塊使用了機器學(xué)習(xí)中的集成學(xué)習(xí)的方法生成分類器.集成學(xué)習(xí)是一種強學(xué)習(xí)器,它通過一定的方式集成一些弱學(xué)習(xí)器,達到了超過所有弱學(xué)習(xí)器的準確度的效果,同時它能避免單一模型的過擬合現(xiàn)象,有較好的泛化能力.本方法以樣本特征矩陣作為輸入,采用AdaBoostM1集成學(xué)習(xí)算法生成移動流量識別模型,在對流量進行操作系統(tǒng)的細分類上,采用隨機森林集成學(xué)習(xí)算法生成操作系統(tǒng)識別模型.
3.3.1 移動流量識別模型 從訓(xùn)練樣本中提取3.2節(jié)提到的10個特征形成特征矩陣,使用AdaBoostM1集成學(xué)習(xí)算法進行訓(xùn)練,形成移動流量識別模型,如圖2所示.
圖2 移動流量識別模型Fig.2 Mobile traffic identification model
AdaBoostM1使用boosting方法[19],本模型使用的AdaBoostM1的函數(shù)表示形式如式(6)所示.
classifier[trer,tser,w]=adaboostM1(type,tr,trfea,
ts,tsfea,M,Y)
(6)
其中,trer為訓(xùn)練錯誤率;tser為測試錯誤率;w為弱分類器的權(quán)重.type為弱分類器的類型;tr、trfea為訓(xùn)練樣本和訓(xùn)練樣本的特征,ts、tsfea為測試樣本和測試樣本的特征;M為輪訓(xùn)次數(shù);Y為樣本類別數(shù).為每個用來訓(xùn)練的數(shù)據(jù)流集合賦予一個權(quán)重,權(quán)重的大小代表了該數(shù)據(jù)流被下一個弱分類器列入訓(xùn)練樣本集的概率.如果某個流樣本能被當(dāng)前弱分類器準確分類, 那么在構(gòu)造下一個弱分類器的流訓(xùn)練樣本時, 該樣本被選中的概率就降低;反之,它被選中的權(quán)重就相應(yīng)提高.AdaBoostM1算法只要有足夠的數(shù)據(jù)以及弱分類器就能夠達到任意預(yù)測精度,因此非常實用于移動流量識別研究.
3.3.2 操作系統(tǒng)流量分類模型 可以通過操作系統(tǒng)流量的分類實現(xiàn)移動流量的識別,將分類為Android、iOS的流量識別為移動流量,將分類為Windows、Linux和Mac OS的流量識別為非移動流量.操作系統(tǒng)多分類模型如圖3所示.從訓(xùn)練樣本中提取3.2節(jié)提到的10個特征形成特征矩陣,使用隨機森林算法進行訓(xùn)練,形成操作系統(tǒng)流量分類模型.
圖3 操作系統(tǒng)流量分類模型Fig.3 Operating system traffic classification model
隨機森林使用bagging方案,隨機森林由一定數(shù)量的決策樹組成,森林中的每棵決策樹根據(jù)數(shù)據(jù)流樣本的屬性得出一個分類結(jié)果,然后把這些分類結(jié)果以投票的形式保存下來,隨機森林選出票數(shù)最高的分類結(jié)果令其成為這個森林的分類結(jié)果.隨機森林能夠大幅降低偏差和方差,提高機器學(xué)習(xí)的穩(wěn)定性和準確性,同時避免了過度擬合.對于操作系統(tǒng)的分類研究使用的流量數(shù)據(jù)均為在實驗室采集的流量,樣本數(shù)量和樣本分布具有一定的局限性,隨機森林算法在運算量沒有顯著提高的前提下提高了預(yù)測精度,可以很好的彌補數(shù)據(jù)集分布不均衡的問題.
利用實驗室搭建的無線網(wǎng)絡(luò)環(huán)境,如圖4所示.使用網(wǎng)絡(luò)封包分析軟件Wireshark采集了為期一周的流量數(shù)據(jù),首先對數(shù)據(jù)進行過濾,去掉IPv6、局域網(wǎng)廣播等干擾數(shù)據(jù)包以及過濾了非TCP、UDP的數(shù)據(jù)包.然后利用數(shù)據(jù)包的物理地址和接入網(wǎng)絡(luò)的終端設(shè)備的對應(yīng)關(guān)系,統(tǒng)計出具體設(shè)備類型.最后選擇源IP為已知設(shè)備的流量數(shù)據(jù).隨后以數(shù)據(jù)流作為后續(xù)分析處理的對象.為了使數(shù)據(jù)集盡可能的分布均勻,本實驗一共接入網(wǎng)絡(luò)終端設(shè)備23臺,其中移動設(shè)備11臺,傳統(tǒng)臺式設(shè)備12臺,共分配IP數(shù)量21個.終端設(shè)備操作系統(tǒng)包括Android、iOS、Mac OS、Linux、Ubuntu、Windows 7、Windows 8、Windows 10、Windows XP.表1是進行移動流量識別使用的流數(shù)據(jù)集,表2是進行操作系統(tǒng)識別使用的流數(shù)據(jù)集.其中D1、D3為訓(xùn)練集,D2、D4為測試集.
流量類型識別和操作系統(tǒng)分類的所有檢測結(jié)果如表3和表4所示.
圖4 數(shù)據(jù)集采集環(huán)境Fig.4 Data collection environment
表1移動流量識別數(shù)據(jù)集
Tab.1Mobiletrafficrecognitiondataset
流數(shù)據(jù)集設(shè)備總數(shù)移動流量數(shù)/個非移動流量數(shù)/個數(shù)據(jù)流總數(shù)/條D1185 8255 77011 595D282 5942 5635 157
表2 操作系統(tǒng)分類數(shù)據(jù)集
表3 流量類型識別結(jié)果
表4 操作系統(tǒng)分類結(jié)果
在移動流量的識別結(jié)果中,使用十倍交叉驗證隨機森林和AdaBoostM1的檢測準確率都很高,準確率達到99%以上.使用D2樣本數(shù)據(jù)集獨立測試模型的泛化能力,隨機森林檢測準確率基本沒有變化,AdboostM1的結(jié)果為92.98%左右.
在操作系統(tǒng)的分類結(jié)果中,使用十倍交叉驗證隨機森林的結(jié)果很好,準確率達到了99%左右.使用十倍交叉驗證AdaboostM1的結(jié)果略低,準確率只有80%,其中AdaboostM1對于Windows、Android的準確率略高,但是iOS和mac OS的分類效果比較差,導(dǎo)致整體的準確率降低.使用D4樣本數(shù)據(jù)集獨立測試模型的泛化能力,隨機森林的檢測率結(jié)果降低了25%準確率結(jié)果沒有變化,AdaboostM1的準確率基本沒有變化.
由此可以證明,本文方法可以準確識別移動流量,并且能夠較為準確的識別目前主流使用的5種操作系統(tǒng)類型.對于所采用的10個特征,本文采用Best first和CFS Subset Evaluator方法,對特征進行篩選,得到具有較高區(qū)分度的特征.其中數(shù)據(jù)流生成時間、數(shù)據(jù)流標識單調(diào)性和數(shù)據(jù)流平均生存TTL這三個特征的識別和分類效果最好.
本文進行了三組對比實驗,第一組實驗使用加拿大網(wǎng)絡(luò)安全研究所的入侵檢測評估數(shù)據(jù)CICIDS2017[11],該數(shù)據(jù)集中包含Windows、Mac OS和Linux三類非移動設(shè)備的良性樣本.本實驗?zāi)康氖球炞C本文提出的操作系統(tǒng)流量分類模型的魯棒性.使用本文方法進行分類識別,可以準確的識別Linux、Windows和Mac OS,準確率如表5所示.
表5本文方法識別未知數(shù)據(jù)集操作系統(tǒng)
Tab.5Accuracyofunknowndatasetoperatingsystembymethodinthispaper
實驗WindowsMac OSLinux準確率/%10094.197.2
第二組實驗對比了基于數(shù)據(jù)流和基于數(shù)據(jù)包的移動流量識別方法.在基于數(shù)據(jù)包的移動流量識別方法中,提取了包括TCP數(shù)據(jù)包、IP數(shù)據(jù)包中的部分字段,一共12個特征.相同數(shù)據(jù)量的樣本的檢測時間如表6所示.雖然基于數(shù)據(jù)包的移動流量的識別準確能夠達到99%,但是基于數(shù)據(jù)流多維特征的移動流量識別模型生成時間遠少于基于數(shù)據(jù)包的識別方法,同時十倍交叉驗證的時間更是遠少于基于數(shù)據(jù)包的識別方法.本文提出的方法在識別效率上的優(yōu)勢非常明顯.
表6基于數(shù)據(jù)流的方法與基于數(shù)據(jù)包的方法效率對比
Tab.6Efficiencycomparisonbetweenflow-basedmethodandpacket-basedmethod
方法基于數(shù)據(jù)流多維特征的移動流量識別基于數(shù)據(jù)包的移動流量識別移動流量識別模型使用時長/s0.168.70操作系統(tǒng)流量分類模型生成時長/s0.49181.66
第三組實驗對比了基于數(shù)據(jù)流的多維特征和基于數(shù)據(jù)流傳統(tǒng)特征的識別方法.Chen等人[7]使用了IP Time to live、IP ID單調(diào)性、TCP時間戳選項、TCP窗口大小選項和時鐘頻率5個特征,對移動設(shè)備的iOS、Android和Windows三種操作系統(tǒng)進行識別.上述的5個特征屬于被廣泛使用的流量特征,本實驗使用這些特征,在相同的數(shù)據(jù)集上進行移動流量的識別,識別準確率如表7所示.在移動流量的識別上,使用本文的多維特征比傳統(tǒng)特征的準確率更高.
表7基于數(shù)據(jù)流傳統(tǒng)特征的方法與本文方法結(jié)果對比
Tab.7Accuracycomparisonsbetweentraditionalflowfeature-basedmethodandthemethodinthispaper
方法基于數(shù)據(jù)流傳統(tǒng)特征的方法本文方法準確率/%80.0099.97
本文以“流”為分析粒度,設(shè)計了一種利用網(wǎng)絡(luò)流量中的統(tǒng)計特征來識別移動流量以及設(shè)備的操作系統(tǒng)的方法.本方法從硬件平臺、操作系統(tǒng)指紋及用戶使用習(xí)慣三個不同角度提取了移動設(shè)備和非移動設(shè)備間具有差異性的10個特征,構(gòu)建了基于流的樣本特征庫;以此特征庫結(jié)合AdboostM1算法和隨機森林算法訓(xùn)練分類器模型,所得模型在完全無交叉的兩個數(shù)據(jù)集上取得較好的檢測準確率和泛化性能.本文評估了一些特征的有效性,通過分析樣本發(fā)現(xiàn)TTL、IP ID的單調(diào)性在識別移動流量時有較強的區(qū)分度.本文同時結(jié)合試驗結(jié)果分析了兩種機器學(xué)習(xí)分類方法對于樣本數(shù)據(jù)集以及分類結(jié)果有影響的具體表現(xiàn)原因.實驗結(jié)果表明,本方法所選取的特征能夠較好的識別移動流量以及具體操作系統(tǒng),識別準確率達到99%以上.與P0F方法比較,本文提出的方法的識別準確率較高.該方法的特征具有多維性,方法同樣適用于加密流量的分類,且分類準確率達到99%,高于現(xiàn)有的其他方法.移動流量的識別可以為進一步惡意移動流量、移動流量管理等研究奠定基礎(chǔ).