劉翼 詹宇昊
摘 要: 針對傳統的網絡終端識別方法對移動設備特征信息的召回率和識別準確率較低,提出一種基于流的移動設備識別方法,從網絡流量中準確地提取出移動設備的特征信息。在真實網絡流量中,利用所提方法分別對目前流行的Android和iOS移動系統平臺設備進行測試。實驗結果顯示,移動系統平臺特征信息覆蓋率達91.66%,Android系統平臺和iOS系統平臺設備識別準確率分別達到92.69%和83.88%;Android系統平臺設備型號特征覆蓋率達70.12%,識別準確率達到96.15%。
關鍵詞: 移動設備識別; DPI; 特征識別; HTTP; Android; iOS
中圖分類號: TN711?34; TP393 文獻標識碼: A 文章編號: 1004?373X(2018)19?0093?03
Abstract: Since the traditional network terminal identification method has low recall rate and identification accuracy for mobile equipment feature information, a flow?based mobile equipment identification method is proposed to accurately extract the feature information of the mobile equipment from network traffic. In the real network traffic, the proposed method is used to test the popular Android and iOS mobile system platforms. The experimental results show that the feature information coverage rate of mobile system platform can reach up to 91.66%, and the identification accuracy of Android system platform and iOS system platform can reach up to 92.69% and 83.88% respectively; the feature coverage rate and identification accuracy for equipment models of Android system platform can reach up to 70.12% and 96.15% respectively.
Keywords: mobile equipment recognition; DPI; feature identification; HTTP; Android; iOS
面對日益增長和變化的網絡流量[1?2],網絡管理員和運營商希望更加清晰地了解和剖析在網絡上傳輸的流量的概要,尤其是移動設備產生的流量的概要。在此情況下,移動設備操作系統和類型在網絡上的分布成為關注的熱點之一[3]。
網絡設備識別通常采用網絡流量識別技術,通過區別網絡流量的類型,確定產生這些流量設備的類型和特征。網絡流量識別技術分為主動識別技術和被動識別技術[4]。主動識別技術[5]主動向終端設備發送探針數據包,并利用終端設備返回數據包的特征區分終端設備。主動識別技術不具備良好的網絡擴展性,當網絡內存在大量節點時,主動探測不能全面覆蓋所有網絡,所以主要用在故障隱患檢測和網絡及應用性能測試等方面。由于運營商也不想面對主動識別產生的額外數據流量,而被動識別技術能夠很好地應用在諸多方面,并且避免了上述情況的發生。
傳統的被動流量識別技術[6]只關注桌面設備的特征識別,對移動終端特征識別存在明顯不足。首先,傳統流量識別方法僅統計分析各類型設備TCP協議頭部字段的區別,不能有效地識別移動設備;其次,傳統流量識別方法并沒有完全將移動設備的特征納入到自身的特征庫;最后,傳統流量識別方法對深度數據包檢測的特征位置不明確。這些情況導致傳統流量識別技術在識別移動設備時的準確性較差。
本文提出一個基于HTTP流的特征識別框架,采用DPI方法提取HTTP協議頭部字段中的特征,能夠準確地識別和采集移動設備特征。
首先,基于流的監測體系結構[7]已經廣泛用于大規模網絡監控,這是本文提出的系統部署的基礎條件;其次,網絡流量采集使用旁路采集方式,通常在網絡主干鏈路核心交換機或邊界設備上抓取傳輸中的網絡流量,同時又不會影響網絡鏈路的正常傳輸;最后,基于流的網絡監測體系結構能夠很好地適用于高速網絡。本文提出基于HTTP流移動設備識別方法,抓取網絡數據包并提取其數據信息,然后聚合為流,最后提取HTTP流中的特征識別移動設備,系統體系結構如圖1所示。
1.1 網絡流量采集
網絡流量利用端口鏡像技術采集網絡流量。系統將網絡設備目標端口A鏡像到相同設備端口B,這樣鏡像端口就完全復制目標端口A的全部數據,并發送到流量采集服務器端,采集服務器利用高性能網絡流量采集卡收集發送來的全部流量數據。
在采集高速網絡中的流量時,網絡流量采集系統有三個方面能夠影響整個系統性能的關鍵點。一方面,在網絡設備上作端口鏡像后,目標端口和鏡像端口的總流量相當于目標端口的1倍,在網絡目標端口原本吞吐量較大時,要保證網絡設備總交換吞吐量遠大于目標端口的1倍,這樣就不會導致網絡設備本身被太大的流量擁塞,以致目標網絡鏈路的斷開;另一方面,流量被傳輸到采集服務器時,需要被全部收集到服務器存儲起來,當鏡像端口發送來的網絡流量數據巨大時,采集卡的性能必須能夠保障數據采集不丟失數據包。另外,采集卡接收到數據后寫入計算機外存,外存設備要保障寫入的速度,否則也會出現丟失數據的現象。
網絡流量采集過程包括先存儲后過濾和先過濾后存儲兩種方式,這兩種方式分別使用在不同的環境。先存儲后過濾方式首先通過采集卡將全部流量抓取后,以結構化的文件格式保留存儲,然后再讀取格式化文件進行分析;與之相反,先過濾后存儲方式先按照過濾條件只抓取所需數據包或者特征字段,然后將過濾后的流量或者特征存儲起來。
先存儲后過濾方式將網絡傳輸的流量全部采集后,按照PCAP格式存儲到硬盤上或存儲陣列中。在存儲過程中,寫入存儲的速度一定要大于端口流量的采集速度,這樣才不會丟失數據。Wireshark工具[8]是一款支持包括PCAP等多種文件格式的網絡流量分析工具,使用它可以讀取、過濾并分析以PCAP格式文件存儲的網絡流量。
先過濾后存儲方式利用采集卡支持的tcpdum[9]命令在端口過濾并抓取特征字段,將特征字段以文本的格式存儲到文本文件或者MySQL,Hadoop等數據庫內。
本文采用先過濾后存儲的方式,直接提取數據包的五元組信息、數據包長度,以及HTTP數據包頭的信息進行存儲。
1.2 信息流聚合
依次提取采集到數據包的五元組[7]信息和數據包長度等信息,按照數據包的五元組信息將數據包聚合為若干流,并存入流表。同時,提取網絡流量中HTTP數據包的五元組及頭部信息建立HTTP信息表。根據HTTP信息表中的五元組字段查詢流表中相同五元組的流信息,將HTTP信息表與流表合并成為HTTP信息流表,具體表結構及數據流如圖2所示。
HTTP信息流表記錄HTTP流所需的各種信息,特別是使用正則表達式將HTTP數據包頭的User?Agent字段存入HTTP信息流表的字段中,作為設備識別特征。
1.3 HTTP流特征識別
HTTP信息流表中的特征字段被提取出來匹配特征庫內的正則表達式,并提取出相應的信息返回到HTTP信息流表的字段中,最后從表中輸出結果。
特征識別采用一款開源的工具UASparser[10],它能夠準確地解釋User?Agent字段[11]的字符串,其特征庫利用正則表達式覆蓋94%的User?Agent字符串,可以有效地提取出User?Agent字段中攜帶的終端設備信息。
2.1 實驗數據集介紹
利用實驗搭建的無線網絡環境,本文采集了2016年6月8日—16日一周的真實流量作為數據集。數據集共計52.1 GB流量,6 900萬個數據包。
經過排除IPv6、局域網廣播等干擾數據包,對數據集進行過濾和清洗。利用網絡上的物理地址(MAC)和現實接入網絡的終端設備的對應關系,統計出具體設備的類型,并以此結果作為數據集的基線(Ground Trues)。
數據集在一周內總共接入網絡終端設備44臺,其中Android系統終端設備15臺、iOS系統終端設備8臺和Windows系統傳統臺式設備21臺。
2.2 實驗結果與分析
實驗從采集的數據集中提取出HTTP Request數據包共計696 603個,并檢測HTTP包頭中User?Agent字段,詳細分布情況如表1所示。由此可見,并不是全部的HTTP Request數據包頭中都含有User?Agent字段,其包含數量約占[23]。
實驗利用UASparser工具的特征庫提取數據包中的特征信息。通過檢測發現,在整個數據集中共有397 993條有效字段,占總體的91.66%。這個情況證明UASparser工具的特征庫較為全面地覆蓋了大多數UA特征信息。實驗提取UA特征信息的結果包括系統平臺信息和設備型號,其中系統平臺信息的準確率分布如表1所示,設備型號分布如圖3所示。
在三種主流的系統平臺中,Android系統平臺設備的系統識別率最高,達到92.69%,這是因為Android系統的開放性,基于Android平臺的應用在發送HTTP請求時,多數會在UA字段內嵌入標志信息用來區分其他應用或收集信息。 iOS系統平臺設備識別率相對較低(83.88%),這是因為iOS系統平臺應用在編寫時對請求字段有一定的要求和規范,保護用戶的隱私。Windows系統平臺設備的系統識別率只有66.79%。經過研究發現,近[13]的Winodws系統硬件上部署了虛擬機軟件或虛擬Mac OS系統,導致部分(21.22%)Windows平臺設備被識別成Mac OS系統。
本文提出一種基于流的移動設備識別系統,能夠從流量中有效地提取出移動設備的特征信息,準確識別移動設備的操作系統和設備類型。以真實網絡流量作為實驗數據,利用本文提出的方法分別對目前流行的Android和iOS移動系統平臺特征信息和設備型號特征信息進行檢測。實驗結果顯示,本文提出的系統在識別移動系統平臺與設備型號兩種特征信息的過程中具有較高的覆蓋率和準確率。
參考文獻
[1] TONGAONKAR A. A look at the mobile APP identification landscape [J]. IEEE Internet computing, 2016, 20(4): 9?15.
[2] DAINOTTI A, PESCAPE A, CLAFFY K C. Issues and future directions in traffic classification [J]. IEEE network, 2012, 26(1): 35?40.
[3] RANJAN G, TONGAONKAR A, TORRES R. Approximate mat?ching of persistent Lexicon using search?engines for classifying mobile APP traffic [C]// Proceedings of the 35th Annual IEEE International Conference on Computer Communications. [S.l.]: IEEE, 2016: 1?9.
[4] CALLADO A, KAMIENSKI C, SZABO G, et al. A survey on Internet traffic identification [J]. IEEE communications surveys & tutorials, 2009, 11(3): 37?52.
[5] FALAKI H, LYMBEROPOULOS D, MAHAJAN R, et al. A first look at traffic on smartphones [C]// Proceedings of ACM Conference on Internet Measurement. Melbourne: ACM, 2010: 281?287.
[6] LUCKIE M, BEVERLY R, WU T, et al. Resilience of deployed TCP to blind attacks [C]// Proceedings of 2015 ACM Conference on Internet Measurement. Tokyo: ACM, 2015: 13?26.
[7] CLAISE B, TRAMMELL B, AITKEN P. RFC 7011: specification of the IP flow information export (IPFIX) protocol for the exchange of flow information [S/OL]. [2013?09?11]. http://www.openssl.ps.pl/pub/rfc/rfc7011.txt.pdf.
[8] NDATINYA V, XIAO Z, MANEPALLI V R, et al. Network forensics analysis using Wireshark [J]. International journal of security and networks, 2015, 10(2): 91?106.
[9] FUENTES F, KAR D C. Ethereal vs. Tcpdump: a comparative study on packet sniffing tools for educational purpose [J]. Journal of computing sciences in colleges, 2005, 20(4): 169?176.
[10] HUS?K M, VELAN P, VYKOPAL J. Security monitoring of http traffic using extended flows [C]// Proceedings of the 10th International Conference on Availability, Reliability and Security (ARES). Toulouse: IEEE, 2015: 258?265.
[11] XU Y, XIONG G, ZHAO Y, et al. Toward identifying and understanding user?agent strings in HTTP traffic [C]// Procee?dings of 2014 Asia?Pacific Web Conference. Switzerland: Springer, 2014: 177?187.