基于HTTP流的移动终端设备识别方法研究

2018-10-12 05:48刘翼詹宇昊
现代电子技术 2018年19期

刘翼 詹宇昊

摘 要: 针对传统的网络终端识别方法对移动设备特征信息的召回率和识别准确率较低,提出一种基于流的移动设备识别方法,从网络流量中准确地提取出移动设备的特征信息。在真实网络流量中,利用所提方法分别对目前流行的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

0 引 言

面對日益增长和变化的网络流量[1?2],网络管理员和运营商希望更加清晰地了解和剖析在网络上传输的流量的概要,尤其是移动设备产生的流量的概要。在此情况下,移动设备操作系统和类型在网络上的分布成为关注的热点之一[3]。

网络设备识别通常采用网络流量识别技术,通过区别网络流量的类型,确定产生这些流量设备的类型和特征。网络流量识别技术分为主动识别技术和被动识别技术[4]。主动识别技术[5]主动向终端设备发送探针数据包,并利用终端设备返回数据包的特征区分终端设备。主动识别技术不具备良好的网络扩展性,当网络内存在大量节点时,主动探测不能全面覆盖所有网络,所以主要用在故障隐患检测和网络及应用性能测试等方面。由于运营商也不想面对主动识别产生的额外数据流量,而被动识别技术能够很好地应用在诸多方面,并且避免了上述情况的发生。

传统的被动流量识别技术[6]只关注桌面设备的特征识别,对移动终端特征识别存在明显不足。首先,传统流量识别方法仅统计分析各类型设备TCP协议头部字段的区别,不能有效地识别移动设备;其次,传统流量识别方法并没有完全将移动设备的特征纳入到自身的特征库;最后,传统流量识别方法对深度数据包检测的特征位置不明确。这些情况导致传统流量识别技术在识别移动设备时的准确性较差。

本文提出一个基于HTTP流的特征识别框架,采用DPI方法提取HTTP协议头部字段中的特征,能够准确地识别和采集移动设备特征。

1 基于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 实验与结果分析

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系统。

3 结 语

本文提出一种基于流的移动设备识别系统,能够从流量中有效地提取出移动设备的特征信息,准确识别移动设备的操作系统和设备类型。以真实网络流量作为实验数据,利用本文提出的方法分别对目前流行的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.