張琪鑫 吳 超 羅 娜 魏松杰
(南京理工大學計算機科學與工程學院 江蘇 南京 210094)
以互聯(lián)網(wǎng)信息傳播為基礎的信息技術時代,網(wǎng)絡數(shù)據(jù)交換越發(fā)頻繁,應用程序的網(wǎng)絡流量在承載并傳輸用戶信息的同時,也成為行為模式分析、數(shù)據(jù)挖掘、用戶追蹤、隱私泄露的一個薄弱環(huán)節(jié)。雖然通過數(shù)據(jù)加密技術和網(wǎng)絡安全協(xié)議,可以保證網(wǎng)絡數(shù)據(jù)在傳播過程中內(nèi)容的保密性和完整性,但通過對于指定網(wǎng)絡接入設備和應用程序的連接會話、數(shù)據(jù)流量的分布情況的分析記錄,可以輕易地區(qū)分并識別不同的網(wǎng)絡流量發(fā)送實體,進而對于特定的網(wǎng)絡接入設備和應用程序進行特征描述和行為追蹤[1]。這類方法在網(wǎng)絡流量分析和異常檢測中為研究者提供了基于流量工程的獨特檢測方法,但在網(wǎng)絡攻擊者和隱私竊取者手里,也成為了嗅探、識別用戶網(wǎng)絡行為隱私的雙刃劍[2-3]。
流量混淆作為網(wǎng)絡流量數(shù)據(jù)在分發(fā)共享過程中的一個隱私保護手段,可以實現(xiàn)在不改變流量數(shù)據(jù)包的分布特征、時序狀態(tài)和數(shù)據(jù)一致性的前提下,對于指定包頭信息的混雜和模糊,典型的如Anonym、Anontool等[4-5]。但這些混淆工具不適用于對于網(wǎng)絡流量的實時在線處理,無法支持具有隱私保護的匿名通信過程。流量混淆方法可以用于在線匿名通信,例如常用的匿名通信系統(tǒng)Tor[6]。為了抵御流量分析和流量監(jiān)管,Tor引入了多種傳輸插件對其流量進行混淆。Meek作為Tor的一種最常用的傳輸插件,它把Tor的流量偽裝成訪問云服務平臺的流量。Meek通過第三方服務器進行流量轉(zhuǎn)發(fā),使得傳輸內(nèi)容看起來像是在訪問另一個站點[7]。但是基于Tor的匿名通信系統(tǒng),也存在著以下不足[8]:
1) 依賴基于瀏覽器代理的加密技術,通過瀏覽器建立HTTPS隧道進行流量傳輸,從而隱藏Tor的TLS指紋特征。
2) 由于Tor匿名流量必須經(jīng)過第三方服務器,所以它的連接特征、數(shù)據(jù)流統(tǒng)計特征和數(shù)據(jù)流動態(tài)特征趨于固定,可以被基于SVM等的機器學習算法分類建模,實現(xiàn)對Tor匿名流量的識別。
3) Tor系統(tǒng)的混淆無法根據(jù)用戶需求定制方案。
本文針對以上Tor匿名通信系統(tǒng)的不足,面向移動智能設備平臺上的應用程序流量,立足于對于網(wǎng)絡TCP數(shù)據(jù)包流量的實時處理與在線混淆,設計并實現(xiàn)了一個基于規(guī)則擬合的數(shù)據(jù)包混淆系統(tǒng),其主要功能與創(chuàng)新點如下:
1) 設計并實現(xiàn)了一個基于混淆規(guī)則的流量擬合系統(tǒng),可以實時地在網(wǎng)絡連接端口實現(xiàn)TCP數(shù)據(jù)包的嗅探、緩存、處理、轉(zhuǎn)發(fā)。
2) 提出的混淆方法完全從數(shù)據(jù)流統(tǒng)計特征、數(shù)據(jù)流靜態(tài)特征和數(shù)據(jù)流動態(tài)特征進行處理,混淆后的TCP數(shù)據(jù)包流量難以被現(xiàn)有的面向網(wǎng)絡時序數(shù)據(jù)的機器學習算法分析建模或分類識別。
3) 用戶可以對數(shù)據(jù)包的分布、間隔、順序、長度等四種時序特征處理方法進行組合定制,實現(xiàn)自己所需的TCP流量的混淆效果。
4) 系統(tǒng)實現(xiàn)作為獨立程序運行在網(wǎng)絡層,不需要第三方軟件環(huán)境,混淆窗口和細粒度可以被用戶自由定制。
本系統(tǒng)基于OSI網(wǎng)絡層次結(jié)構(gòu)模型,在網(wǎng)絡層實現(xiàn)面向TCP數(shù)據(jù)包的流量混淆功能,在網(wǎng)絡端口實現(xiàn)數(shù)據(jù)包的截取和緩存,在應用程序?qū)崿F(xiàn)對于混淆規(guī)則的配置和管理,具體系統(tǒng)架構(gòu)如圖1所示。運行在設備網(wǎng)絡連接端口上的數(shù)據(jù)包嗅探程序,將所有符合混淆規(guī)則的IP網(wǎng)絡流量,例如指定協(xié)議和端口的數(shù)據(jù)包,進行截取并存入相應的緩存隊列?;煜娼邮諔脤映绦蚝陀脩魧τ诨煜繕说脑O置,并將設置的規(guī)則與模板提供給網(wǎng)絡流量混淆引擎。網(wǎng)絡流量混淆引擎根據(jù)規(guī)則設定,調(diào)用相應的混淆功能模塊,對緩存隊列中的數(shù)據(jù)包進行在線處理,將處理結(jié)果即混淆后的新的數(shù)據(jù)包通過鏈路層注入到網(wǎng)絡環(huán)境中。
圖1 流量混淆的系統(tǒng)結(jié)構(gòu)圖
圖2具體描述了運行在網(wǎng)絡層的數(shù)據(jù)包混淆流程。本系統(tǒng)目前共支持四種數(shù)據(jù)包混淆操作,即針對數(shù)據(jù)包的分布擬合、時間間隔、相鄰順序和包長度的調(diào)整和混雜操作。分布擬合功能就是將截取的多組數(shù)據(jù)包分析后按照指定時序特征發(fā)送出去,是對于已知樣本數(shù)據(jù)包的分布特征的模擬,這需要應用層提供作為被模擬對象的數(shù)據(jù)包流樣本。時間間隔混淆就是在不改變數(shù)據(jù)包個數(shù)和相鄰順序的前提下,將數(shù)據(jù)包之間的發(fā)送時間間隔進行調(diào)整和控制,以便符合應用程序設置的間隔時間分布規(guī)律。順序混淆是指將一段時間窗口中的相鄰數(shù)據(jù)包的局部發(fā)送順序進行調(diào)整亂序。長度混淆是指對于相鄰數(shù)據(jù)包進行符合混淆規(guī)則的合并和拆分,其效果為數(shù)據(jù)包個數(shù)的改變。未來根據(jù)用戶的隱私保護和流量亂序的需求,并可以開發(fā)并配置更多的混淆操作功能模塊。所有混淆模塊對數(shù)據(jù)包流的混淆操作后,必須保證相應的TCP連接不能中斷,并且收到服務器返回的應答信息也不能出錯,即不能影響應用層的正常通信功能。
圖2 數(shù)據(jù)包流量混淆的流程
本節(jié)主要介紹四種流量混淆操作的基本思路。其中流量分布擬合即將A流量的分布擬合成符合另一流量B特性的新流量。其他三種混淆方式則在時間、順序、長度上進行數(shù)據(jù)包流的混雜效果。同時這三種方式也可以互相疊加重復。例如,mixorder(order1,order2,mixinterval(normal,traffic))的方式就是先對traffic數(shù)據(jù)包的時間間隔按照正態(tài)分布混淆后,再將混淆后的數(shù)據(jù)包的order1和order2的次序?qū)φ{(diào)。
先讀取trafficA的流量信息,著重分析其包間間隔的時序特征,隨后我們再讀取trafficB的流量信息,著重分析其包計數(shù)。再將trafficA的時序特征擬合到trafficB上,就能實現(xiàn)流量分布特征的擬合目的。
通過總結(jié)Tor匿名通信系統(tǒng)固定數(shù)據(jù)流統(tǒng)計特征的不足,本系統(tǒng)采用隨機化的辦法,將數(shù)據(jù)包之間的時間間隔混淆成無法體現(xiàn)用戶流量特性的多種隨機分布再發(fā)送出去,支持正態(tài)分布mixinterval(normal,traffic)、指數(shù)分布mixinterval(exp,traffic)等。
典型的TCP協(xié)議實現(xiàn)具有差錯控制機制,即對于提前到達的亂序數(shù)據(jù)包暫不確認,直到前面的順序數(shù)據(jù)包到達后再一起進行累計確認。依托于這一機制,將一個session內(nèi)指定時間窗口的數(shù)據(jù)包順序進行混淆。若超時發(fā)送方仍未收到確認,發(fā)送方將重發(fā)該數(shù)據(jù)段,造成接收方收到重復數(shù)據(jù)段,接收方只需要簡單地丟棄重復段即可,不影響連接雙方的正常通信。
利用TCP連接的Seq和Ack連接機制,將一個會話內(nèi)指定的數(shù)據(jù)包拆分為多個數(shù)據(jù)包,或者將多個連續(xù)數(shù)據(jù)包進行報文合并,以期改變會話過程中數(shù)據(jù)包的個數(shù),以及單個數(shù)據(jù)包的長度[9]。圖3顯示了該混淆操作的一個具體的混淆示例。
圖3 數(shù)據(jù)包的長度混淆示例
為了驗證所提出的面向TCP數(shù)據(jù)包的流量混淆系統(tǒng)的有效性和運行效率,對主流移動應用Android平臺進行了混淆的系統(tǒng)實現(xiàn)和實驗驗證。其中混淆模塊采用Android系統(tǒng)中的VpnService形式進行實現(xiàn)。對于數(shù)據(jù)包的各種混合操作采用Python腳本程序?qū)崿F(xiàn)。在實驗過程中運行的網(wǎng)絡連接端口的網(wǎng)口監(jiān)控和數(shù)據(jù)包抓取采用scapy開源軟件[10],它是一款功能豐富的交互式數(shù)據(jù)包處理、網(wǎng)絡掃描和發(fā)現(xiàn)工具。提供多種類別的交互式數(shù)據(jù)包構(gòu)造和分析方法,能方便地對數(shù)據(jù)包進行編輯、發(fā)送、嗅探、應答和反饋匹配等。
實驗設計:將不同類型的Android應用App單獨運行在模擬器上,采用ADT中的Monkey工具進行人機交互并捕獲產(chǎn)生的網(wǎng)絡流量數(shù)據(jù)。在此基礎上,進行以下兩種方式的流量清洗與選擇:(1) 過濾掉TCP/IP等其他協(xié)議的通信數(shù)據(jù);(2) 過濾掉一些不完整或中斷的TCP連接的數(shù)據(jù)流量。在網(wǎng)絡流量清洗后,進行流量分布擬合與流量混淆兩類實驗,其中流量混淆由包間隔混淆、包順序混淆、包長度混淆三種方式疊加而成,并采用了不同的混淆參數(shù)進行三次混淆實驗。
特征提?。悍治鰌cap流量文件,提取了總包數(shù)、總連接數(shù)、平均TCP連接時長、源地址端口信息熵、目的地址IP信息熵、目的地址端口信息熵。信息熵表示信息的分散與混亂程度,能夠一定程度上量化信息的價值。信息熵的計算公式如下:
(1)
式中:pi表示每一種信源Ui出現(xiàn)的概率,若某一信息的取值確定且唯一,例如源地址端口的IP信息,那么該信息的信息熵為0,即該信息只存在有一種取值,沒有繼續(xù)探索的價值。因此,實驗分析中并沒有使用源端口IP信息熵。
相似度分析:實驗采用歐幾里德距離與余弦相似度進行流量擬合與混淆的相似度評估。歐幾里德距離衡量的是空間中兩點的實際距離,即與流量各個維度的特征值大小直接相關,距離越小,兩點位置越近。余弦相似度則是度量空間兩個向量的夾角,強調(diào)的是方向上的差異,相似度越接近1,則兩向量越相似。若對于兩個網(wǎng)絡流量中的TCP數(shù)據(jù)包序列X和Y可以分別提取出一系列特征:X(x1,x2,…,xn),Y(y1,y2,…,yn),則兩點之間的歐幾里德距離與余弦相似度的計算公式如式(2)、式(3)所示,式(4)可進一步將歐幾里德距離轉(zhuǎn)換為相似度Sim1進行度量。實驗采用Sim1、Sim2這兩種評估方式綜合度量流量擬合與混淆的效果,更具有說服力與可信度。
(2)
(3)
(4)
針對Android應用程序的網(wǎng)絡流量分析和行為建模方面的研究,已經(jīng)發(fā)現(xiàn)具有相似功能的應用程序在網(wǎng)絡流量上具有行為一致性,而不同類型應用程序的網(wǎng)絡流量則在時序特征上差別較大[3]。以下實驗將選用具有不同網(wǎng)絡流量特征的三類應用程序進行流量混淆和比較。
3.2.1流量擬合
實驗中采用Android平臺上的新聞類應用“百度新聞”、社交類應用“陌陌”與視頻類應用“愛奇藝視頻”進行流量擬合分析。具體方法是通過分析百度新聞、陌陌與愛奇藝視頻的流量,使得愛奇藝視頻應用、陌陌應用的流量特征與分布與百度新聞相似,從而實現(xiàn)指定目標流量對象的擬合。
如圖4(a)所示,展示了三種不同類型APP的典型網(wǎng)絡行為。因為新聞類應用的特點是一次點擊返回大量回復,所以圖中顯示的百度新聞在0~0.5秒內(nèi)已經(jīng)返回了80%的數(shù)據(jù)包。視頻類應用的特點是連續(xù)綿長的連接,所以愛奇藝視頻在圖中顯示為較為均勻的分布特征。社交類應用在無廣告時都是發(fā)送消息時才會發(fā)送流量,所以陌陌在圖中表現(xiàn)為時斷時續(xù)的階梯型特征。圖4(b)是將視頻類和社交類應用擬合成新聞類應用后的分布圖,除了在拐點處有細小差別外,其余時間間隔的分布與新聞類的行為特征無異。如果不考慮數(shù)據(jù)包的內(nèi)容信息,單從時序特征分析,愛奇藝這種視頻類和陌陌這種社交類的流量特性已經(jīng)非常類似于新聞類的流量特征?;煜蟮木W(wǎng)絡流量在TCP/IP層完全可以抵御基于類別的數(shù)據(jù)流量分析和建模。
圖4 網(wǎng)絡流量的數(shù)據(jù)包分布擬合
3.2.2流量混淆
本實驗中對搜狐新聞與百度新聞的流量進行包間隔混淆、包順序混淆、包長度混淆三種方式的疊加混淆,同時還修改了源地址與目的地址的端口信息,混淆結(jié)果如表1和表2所示。
表1 搜狐新聞App的流量混淆結(jié)果
表2 百度新聞App的流量混淆結(jié)果
由數(shù)據(jù)可知,每一列的特征值并不是處于相同規(guī)模,因此采用式(5)進行歸一化預處理:
(5)
歸一化后,實驗分別采用歐幾里德相似度式(4)與余弦相似度式(3)計算原始流量與混淆后流量的相似度Sim1、Sim2。表3、表4分別為搜狐新聞特征值歸一化的結(jié)果與相似度計算結(jié)果。表5、表6為百度新聞特征歸一化后的結(jié)果與相似度計算結(jié)果。歐幾里德相似度的取值范圍為[0,1],越接近1則越相似;余弦相似度的取值范圍為[-1,1],越接近1表示方向越相似,等于0表示方向不相似,越接近-1則表示方向完全相反。由表4、表6可發(fā)現(xiàn),兩個應用的混淆效果都較好,歐幾里德相似度都低于0.3,余弦相似度都小于0,證明本文提出的混淆方法的有效性。
表3 搜狐新聞應用的流量歸一化處理結(jié)果
表4 搜狐新聞應用的流量混淆結(jié)果
表5 百度新聞應用的流量歸一化處理結(jié)果
表6 百度新聞應用的流量混淆結(jié)果
本文針對TCP網(wǎng)絡流量數(shù)據(jù)包,設計并實現(xiàn)了一個在線流量混淆系統(tǒng),可以實現(xiàn)流量擬合和流量混雜兩大功能,并支持不同混淆的規(guī)則定義與操作組合。通過實驗結(jié)果分析可以看出,擬合流量的相似度很高,對流量的混淆也具有選擇性與針對性。本系統(tǒng)目前采用VpnService方式部署在Android平臺上時,每秒能同時并發(fā)處理上千個應用數(shù)據(jù)包請求,且能在1秒內(nèi)完成對流量的擬合和模擬,用戶端幾乎沒有延遲感。
本系統(tǒng)專注于數(shù)據(jù)流統(tǒng)計特征、數(shù)據(jù)流靜態(tài)特征、數(shù)據(jù)流動態(tài)特征的混淆,并不依賴于第三方服務器,但是可以擴展并部署在第三方代理服務器上;也不需要指定的瀏覽器插件,基于最常用的TCP連接,即可實現(xiàn)對既有數(shù)據(jù)包的擬合和混淆,擬合和混淆均不會斷開原先連接,且能收到既定的回復;用戶還可以自定義自己的混淆方式,大大增強了混淆的靈活性。
[1] RezaeiTabar A H,Diyanat A,Khonsari A.On the Perfect Privacy:A Statistical Analysis of Network Traffic Approach[J].IEEE Communications Letters,2016,20(7):1357-1360.
[2] Lakhina A,Crovella M,Diot C.Mining anomalies using traffic feature distributions[C]//ACM SIGCOMM Computer Communication Review.ACM,2005,35(4):217-228.
[3] Wei S,Wu G,Zhou Z,et al.Mining network traffic for application category recognition on Android platform[C]//Progress in Informatics and Computing (PIC),2015 IEEE International Conference on.IEEE,2015:409-413.
[4] Foukarakis M,Antoniades D,Antonatos S,et al.Flexible and high-performance anonymization of NetFlow records using anontool[C]//Security and Privacy in Communications Networks and the Workshops,2007.SecureComm 2007.Third International Conference on.IEEE,2007:33-38.
[5] Farah T,Trajkovic L.Anonym:A tool for anonymization of the Internet traffic[C]//Cybernetics (CYBCONF),2013 IEEE International Conference on.IEEE,2013:261-266.
[6] Tor Anonymity Network[OL].https://www.torproject.org/.
[7] 李響.基于Meek的Tor匿名通信識別方法的研究和實現(xiàn)[D].北京交通大學,2016.
[8] 周勇.基于Tor的匿名通信研究[D].西安電子科技大學,2013.
[9] 楊偉偉,劉勝利,蔡瑞杰,等.一種Tor匿名通信系統(tǒng)的改進方案[J].信息工程大學學報,2012,13(4):503-507.
[10] 李樹軍.Scapy在網(wǎng)絡協(xié)議分析實驗教學中的應用[J].實驗科學與技術,2014,12(6):110-113.