一种基于第三方流量HTTP报文的移动应用识别方法与流程

文档序号:16433784发布日期:2018-12-28 20:20阅读:926来源:国知局
本发明属于移动应用识别
技术领域
:,具体涉及一种基于第三方流量http报文的移动应用识别方法。
背景技术
:随着移动智能终端的普及和移动应用市场的繁荣,移动流量占网络总体流量比例不断增加,如何对其进行有效监管日益受到关注。为了对移动流量进行细粒度监控,需要对流量的来源、功能等属性进行识别,而移动应用识别技术由于能够有效解决上述问题而受到广泛关注。移动应用识别的一种常用途径是通过对广告等第三方流量中的应用特征进行识别。具体来说,第三方服务出于功能需要或者盈利的目的,常需要对应用身份进行识别,这就使得第三方流量报文中常会填充一些用于识别应用身份的value值作为应用的id。它们与应用之间存在明显的映射关系,故而可以用来识别应用。但是,由于第三方服务商数量较多,产生的流量也有各自的模式,所以难以自动化地建立id值与应用之间的映射关系;而且目前提取第三方流量应用id的方法多基于语法上的分析,这种方法耗时且容易误判。技术实现要素:本发明的目的,在于提供一种基于第三方流量http报文的移动应用识别方法,其利用统计方法判断第三方流量报文并提取报文中的应用id,建立id与应用之间的映射关系,从而进行应用识别。为了达成上述目的,本发明的解决方案是:一种基于第三方流量http报文的移动应用识别方法,包括如下步骤:步骤1,用户通过使用自动化流量采集平台进行流量样本采集,并自动标记流量;步骤2,用户通过统计http报文关键字序列在数据集中出现的状况,判断该序列所对应的报文是否为第三方流量;步骤3,统计http报文组成序列,通过报文value值在同一应用中以及不同应用之间的出现状况判断value值是否与应用存在映射关系,从而建立第三方指纹库;然后,当捕捉到待测报文以后,首先判断该报文是否为第三方流量,然后查看第三方指纹库找到标识应用的value值,即应用id,并通过id与应用之间的映射关系来识别该报文的应用来源。上述步骤1中,利用android虚拟机以及monkey搭建自动化测试平台,保证同一台模拟器上同一时间最多只安装一个待测应用,从而通过模拟器编号以及应用运行时间段为测试平台触发的流量进行标记。上述步骤2中,使用http报文剔除value值以后的关键字序列来表征报文,并通过该序列在多个不同应用中出现的次数来判断该序列所对应的报文是否来自第三方服务。其中,使用域名、资源路径及query和content域中的参数名组成关键字序列。上述步骤3中,如果不同报文组成序列中某一位置上的值在同一应用内相同,在多个不同应用之间各不相同,则认为这个位置的value值是与应用存在映射关系的应用id。其中,使用域名、路径、query和content与中的参数名与参数值作为报文组成序列。根据调查发现,同一服务商为不同应用提供服务时产生的流量除了个别位置填充的value值以外都完全相同,而且这些value之中即存在用于识别应用身份的应用id。基于此,本发明提供的识别方法与现有技术相比,具有以下优点:(1)本发明采用统计方法判断一个http报文是否为第三方服务流量;(2)本发明采用统计方法提取一个第三方流量报文的应用id,并使用这个id值来识别应用,方法简单,计算量较小。附图说明图1是本发明的流程图。具体实施方式以下将结合附图,对本发明的技术方案及有益效果进行详细说明。如图1所示,本发明提供一种基于第三方流量http报文的移动应用识别方法,包括以下步骤:(1)流量数据自动化采集:用户通过使用自动化流量采集平台进行流量样本采集,并自动标记流量。利用android虚拟机以及monkey等模糊测试工具搭建自动化测试平台,保证同一台模拟器上同一时间最多只安装一个待测应用,这样就可以通过模拟器编号以及应用运行时间段为测试平台触发的流量进行标记;进行应用识别之前需要大量已经标记好的流量样本。(2)识别第三方流量:用户通过统计http报文关键字序列在数据集中出现的状况,判断该序列所对应的报文是否为第三方流量。使用http报文剔除value值以后的关键字序列来表征报文,具体是将报文中的域名、资源路径与query和content两个域中的参数名顺序拼接起来形成关键字序列,用以表征报文。在建立第三方报文关键字序列库后就可以对待测报文进行匹配以判断该报文是否属于第三方服务。同时,如果同样的关键字序列在多个不同应用中出现,则认为该序列对应的报文来自第三方服务的流量。以此为依据建立第三方流量库,当待测报文关键字序列在该流量库中,则可以认为这个报文是第三方服务的流量。(3)利用第三方流量识别应用:用户统计http报文组成序列,通过报文value值在同一应用中以及不同应用之间的出现状况判断value值是否与应用存在映射关系,从而建立第三方指纹库。然后,通过判断第三方流量中特殊的value值完成应用识别。将报文中的域名、资源路径与query和content两个域中的参数名和参数值顺序拼接起来形成序列。将该序列在多个应用之间进行比对,如果该序列某一位置的值在同一个应用中不变,但在多个应用之间都不相同,则可以认为这个值是第三方服务用于识别应用的应用id。根据上述规则建立应用id与应用之间的映射关系,即可以通过应用id识别待测报文所属应用。实施例:本实施例中的基于第三方流量http报文的移动应用识别方法,包括以下步骤:一、流量数据自动化采集:首先通过爬虫工具下载大量移动应用;然后基于android虚拟机和模糊测试工具monkey的移动应用自动化测试平台在应用库中选取应用,自动化安装并运行应用以产生流量;接着使用mitmproxy中间人代理工具对虚拟机上应用产生的流量进行监听和保存,记录流量日志;最后使用脚本工具通过流量日志判断应用来源从而为流量打上标记,然后将其存入流量数据库。特别的,由于模拟器上同一时间最多只能运行一个应用,所以可以通过监听到报文的时间以及其模拟器来源来判断报文由哪一个应用产生,所以可以进行应用标记。二、识别第三方流量:用户通过统计http报文关键字序列在数据集中出现的状况,判断该序列所对应的报文是否为第三方流量,在建立第三方报文关键字序列库以后就可以对待测报文进行匹配以判断该报文是否属于第三方服务。由于同一个第三方服务的交互协议总是固定的,所以其格式,即关键字序列总是不变的,会改变的只有因为搭载信息不同而取值不同的value。为此,将每个报文中的value除去,留下其域名、资源路径、query和content中的关键字序列。若该序列在3个或3个以上的应用中出现,则认为该报文属于第三方流量,并将该关键字序列thirdpktstr存储下来。特别的,当这些应用属于同一个应用的不同版本或者属于同一家厂商同一系列的不同产品时,它们很可能使用了公司内部的公共服务,但是这些应用产生的相似流量却不应该归类为第三方流量。通常开发者会将apk命名为‘domain1.domain2…name_version.apk’的形式,而相同厂商的产品名中‘domain1.domain2’常相同。例如,com.youdao.dict_6070000与com.youdao.note_65是网易有道旗下的两款产品,其中‘com.youdao’指明了产品厂商和系列,而‘_6070000’与‘_65’又代表了某一个版本的序列号。据此对应用厂商与版本进行判断,若应用的‘domain1.domain2’相同,则它们来自同一厂商,若应用仅‘_version’的部分不同,则认为它们实际上是同一款应用。算法1描述了整个过程:三、利用第三方流量识别应用:统计http报文组成序列,通过报文value值在同一应用中以及不同应用之间的出现状况判断value值是否与应用存在映射关系,从而建立第三方指纹库。然后,通过判断第三方流量中特殊的value值完成应用识别。在进一步研究第三方流量以后,发现部分特殊报文某一特定位置的value与应用之间存在一一对应的关系,它可以作为一个有效特征identifier,对应用识别提供帮助。本发明设计了第三方标识提取算法对其进行提取,建立identifier与应用之间的映射表,从而识别应用。与应用有对应关系的identifier值存在以下特征:其中报文种类可以使用thirdpktstr进行表示。假设consistlist为报文的key、value序列,identifier提取算法如下所示,thirdpktstr与consistlist示例如表1所示。表1thirdpktstr与consistlist示例第三方标识提取方法如算法2所示,最后将id与应用之间的映射关系记录在thirdidtable表中:在报文识别阶段,首先将报文的结构序列thirdpktstr提取出来,查询是否有thirdpktstr的记录,若有则提取该报文consistlist中的元素进行拼接而形成feature,最后通过查询thirdidtable获知该feature对应的应用。综合上述,本发明一种基于第三方流量http报文的移动应用识别方法,通过搭建基于android虚拟机以及模糊测试工具的自动化流量采集平台收集并标记应用流量,实现数据样本的自动化获取;在采集到流量数据集的基础上,使用基于统计的第三方流量http报文识别方法,识别第三方服务流量,并自动建立第三方流量中特定位置的value值与应用之间的对应关系,从而识别应用。本发明使用户可以自动识别移动应用流量中属于第三方服务的http报文,并通过这些报文识别应用。以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1