一种移动应用流量特征自动分析的方法和系统的制作方法

文档序号:7816551阅读:490来源:国知局
一种移动应用流量特征自动分析的方法和系统的制作方法
【专利摘要】本发明提供了一种移动应用流量特征自动分析的方法和系统,能够自动完成移动应用的下载、安装、使用并触发流量,提取流量中的特征、生成特征库需要的语法描述并添加到特征库中,从而提高了特征库的创建效率,节约人力成本,避免了传统人工离线方式进行应用特征分析和提取导致的人为错误。
【专利说明】一种移动应用流量特征自动分析的方法和系统
【【技术领域】】
[0001]本发明主要涉及网络流量识别【技术领域】。
【【背景技术】】
[0002]现有的流量识别系统都是通过预先收集建立的一个特征库来进行识别的。将流量识别设备或软件以串接或并联的方式部署在某个网络节点,系统会预先装载一个包含了按照某种格式定义好的应用协议的特征库,当采集到的网络流量与特征库中的特征匹配时,则返回对应的识别结果。
[0003]应用协议特征库的创建和维护方式是:首先定义一个任务列表,包括了准备分析的应用;然后建立起抓包环境(通常会使用wireshark/sniffer等工具),通过人工的方式在手机上安装相应的应用,模拟进行业务操作,抓取应用产生的网络流量;观察、提取应用产生的网络流量中的特征,并用相应的语法描述出来,收集和建立起应用特征数据库;最后把应用特征数据库部署到网络出口或入口处以达到识别业务流量并完成相应控制功能。
[0004]对于这个先验的特征库所未收录的应用特征,该应用的流量将无法被识别。一般会通过在线或离线的方式,将未识别的流量收集并反馈回来,与分析新应用类似的方式进行人工的离线分析,提取特征并增加到特征库中。
[0005]通常这种流量识别系统还会允许使用者自定义一些应用或协议的特征,以便适应用户千差万别的独特的网络环境。目前这种自定义协议的方式主要局限于IP地址和/或端口信息,可能包含一些最简单的特征语法。但由于应用协议特征的描述语法属于各个厂家的技术机密,很难完全开放给用户;另外这些语法往往晦涩难懂,用户很难自己无障碍地使用,而不得不依赖流量识别系统提供商的技术支持。这一方面限制了自定义协议的便利性,同时也拉长了流量识别问题得到处理的周期。
[0006]虽然DPI技术已经历多年的发展,各种识别算法也都取得了一些成果,但在应用特征的分析和提取方式上却始终没有多大变化,主要依赖于人工离线的方式进行,因此在效率上和质量上均存在一些较明显的缺陷。
[0007]现有的移动应用分析系统在收集和建立应用特征库的方式上存在如下明显缺陷:
[0008]一、依赖于人工离线的方式完成,需要消耗大量的人力成本。一般来说,需要有专门的人员在各自的移动设备上安装应用,使用这些应用进行各种操作,并把产生的流量采集和保存下来,再从中提取特征,书写成特征语法。由于每一个应用都需要多个步骤,而移动网络中的应用数目成千上万,因此保持特征库的时效性,对人力成本的消耗将十分巨大。
[0009]二、人工分析依赖于人员个体的经验和素质,提取出的特征质量无法保证,人为错误的因素难以避免。
[0010]三、应用协议特征库的更新周期较长,严重滞后于实际网络场景。由于这种纯手工的工作方式,步骤繁多,根本无法跟上移动网络上新应用层出不穷的节奏,因此导致应用协议特征库严重滞后于实际的网络场景,更新速度也无法满足用户的需求,从而总是处在被动的响应问题状态。
[0011]自定义协议手段受限,用户无法及时满足个性化需求。由于应用特征的分析和提取方式依赖于专业人员的手动完成,使得自定义协议只能使用最简单的IP和端口,而不能使用特征库的全部语法,从而极大限制了自定义协议的表达范围。

【发明内容】

[0012]本发明提供一套完全自动化的移动应用协议特征的分析和提取系统,该系统可以自动完成移动应用的下载、安装、使用并触发流量、提取流量中的特征、生成特征库需要的语法描述并添加到特征库中。整个过程基本将原先需要手工完成的步骤全部实现了自动化,从而极大地提高了特征库创建的效率,节约人力成本,并且极大扩充了自定义协议的表述范围,简化了相关操作。
[0013]本发明首先提供一种移动应用流量特征自动分析的方法,其特征在于,包括如下步骤:
[0014]从某一个固定的网络节点自动下载应用文件到本地;
[0015]自动启动所述应用,模拟人行为运行所述应用;
[0016]自动启动抓包程序,并将抓取的数据包存入到指定位置;
[0017]从所述指定位置提取抓取的数据包,并提取出对应的应用特征;
[0018]对提取的应用特征进行分析识别。
[0019]优选地,所述固定的网络节点为一固定的网站。
[0020]优选地,所述从某一个固定的网络节点自动下载应用文件到本地,具体为:从一个固定的网站获取需要下载应用文件的URL,并通过下载工具将所述应用文件下载到本地。
[0021]优选地,所述下载工具为开源下载工具。
[0022]优选地,所述自动启动所述应用,模拟人行为运行所述应用包括:获取应用文件的存储位置,并自动安装所述应用,获取所述应用的进程信息,并模拟人行为运行该应用。
[0023]优选地,在所述自动启动抓包程序,并将抓取的数据包存入到指定位置之后,还包括自动卸载所述应用。
[0024]优选地,所述模拟人行为运行所述应用,通过设置shell命令文件,并自动运行所述shell命令文件的方式实现。
[0025]优选地,其各步骤的执行均在内网中进行。
[0026]其次,本发明提供一种移动应用流量特征自动分析的系统,其包括:网关设备、无线路由器、一个或多个终端设备,其特征在于:
[0027]所述网关设备包括:
[0028]下载模块,用于从某一个固定的网络节点自动下载应用文件到本地;
[0029]启动和运营模块,用于自动启动所述应用,模拟人行为运行所述应用;
[0030]抓包模块,用于自动启动抓包程序,并将抓取的数据包存入到指定位置;
[0031]特征提取模块,用于从所述指定位置提取抓取的数据包,并提取出对应的应用特征;
[0032]识别模块,用于对提取的应用特征进行分析识别。
[0033]优选地,所述固定的网络节点为一固定的网站。
[0034]优选地,所述下载模块具体用于:从一个固定的网站获取需要下载应用文件的URL,并通过下载工具将所述应用文件下载到本地。
[0035]优选地,所述下载工具为开源下载工具。
[0036]优选地,所述启动和运营模块具体用于:获取应用文件的存储位置,并自动安装所述应用,获取所述应用的进程信息,并模拟人行为运行该应用。
[0037]优选地,所述系统还包括:卸载模块,用于自动卸载所述应用。
[0038]优选地,所述模拟人行为运行所述应用,通过设置shell命令文件,并自动运行所述shell命令文件的方式实现。
[0039]本发明实现了移动应用的自动安装和运行,使移动流量可以自动触发和采集,然后可以针对采集的数据包自动分析和提取出协议特征,并生成应用协议特征库,使整个特征库的生产过程实现了完全的自动化,大大提高了效率和质量。该方法还大大扩展了自定义协议的使用范围和便利程度。
【【专利附图】

【附图说明】】
[0040]图1是本发明的网络拓扑示意图。
【【具体实施方式】】
[0041]本项目所采用的技术方案是:通过一套网络环境,可以达到对移动应用的自动安装和卸载,自动触发和抓取应用的网络流量,自动提取移动应用流量的特征。整个生产流程完全达到自动化,无需人为干涉。
[0042]1、本项目的网络拓扑如图1所示:
[0043]硬件:无线路由器(I个),移动设备(2个),网关设备(I个),移动设备数据线(I个)
[0044]软件:移动应用的安装文件(*.apk),相关代码。
[0045]接入方式:
[0046]网关设备是通过工位IP接入公司内网的,IP是192.168.6.217,其接入方式与PC相同。
[0047]网关设备的作用:
[0048]⑴用来抓取192.168.1.*网段产生的数据流量。
[0049]⑵承载运行在设备上的相关程序。
[0050]⑶用来观察流量的识别结果。
[0051]2、功能模块划分:
[0052]⑴自动下载模块
[0053]描述:自动下载模块类似于网络爬虫,从某一个固定的网站上获取下载资源的urI,通过wget的方式将其下载到本地。
[0054]此模块的思路是通过解析某知名android程序下载网站的html代码,从代码中提取出apk文件对应的“应用名称”,“更新日期”,“下载连接”,“类别”。其中“下载连接”用于调用Iinux下的wget进行下载使用。“名称”、“更新日期”、“类别”用于记录在数据库中,供之后检查应用版本更新提供数据支持。下载完apk文件,通过android的开源工具aapt将每一个apk应用的进程信息,包名信息等读取出来,同apk文件的存放路径一同写入文件中,输出给下一个模块。
[0055]⑵自动安装、运行、卸载、抓包模块
[0056]描述:此模块是通过一个shell脚本实现的,利用android的开源工具adb实现对apk文件的安装、启动、卸载等功能。抓包和自动模拟人行为运行应用的步骤也在此进行。此模块的功能主要包括以下几个行为(执行以下操作的前提条件是手机必须用数据线直连程序所运行的设备上):
[0057]①自动安装程序
[0058]方法:通过读取Android, php传给的文件,获取文件的存储位置,通过“adbinstall文件名”的方式安装程序。
[0059]②自动启动程序
[0060]方法:通过读取Android, php传给的文件,获取此apk文件的进程信息,通过“adbshell am start-W_n$package_name/$pckage_activity”的方式进行启动(其中 $package_name是apk文件名,$pckage_activity是通过读取apk文件获取的进程信息)。
[0061]③自动抓包
[0062]方法:先启动抓包,通过Iinux下的tcpdump进行
[0063]④自动运行程序
[0064]方法:自动运行程序主要通过android的monkey模块来处理,通过“adb shellmonkey -p apk文件名-v num”来模拟人行为运行apk程序(apk文件名:apk对应的名称,例如“com.a.b”,num对应点击的次数)。
[0065]⑤自动卸载程序
[0066]方法:通过读取Android, php传给的文件,获取文件的存储位置,通过“adbuninstall文件名”的方式卸载程序。
[0067]⑥输出pcap存放路径的文件
[0068]方法:将输入的文件每行后面添加pcap的路径,输出给下一个模块。
[0069]3.自动提取特征模块
[0070]描述:此模块是通过对抓取的pcap包进行读取,提取出对应的移动应用的特征码。
[0071]此模块主要用来处理上层模块提供的pcap文件,提取出相应的特征码供dpi模块识别。模块的输入为:存有pcap文件路径的文件,输出为:特征文件和已成功提取特征应用信息的excel表。
【权利要求】
1.一种移动应用流量特征自动分析的方法,其特征在于,包括如下步骤: 从某一个固定的网络节点自动下载应用文件到本地; 自动启动所述应用,模拟人行为运行所述应用; 自动启动抓包程序,并将抓取的数据包存入到指定位置; 从所述指定位置提取抓取的数据包,并提取出对应的应用特征; 对提取的应用特征进行分析识别。
2.根据权利要求1所述的方法,其中,所述固定的网络节点为一固定的网站。
3.根据权利要求2所述的方法,其中,所述从某一个固定的网络节点自动下载应用文件到本地,具体为:从一个固定的网站获取需要下载应用文件的URL,并通过下载工具将所述应用文件下载到本地。
4.根据权利要求3所述的方法,其中,所述下载工具为开源下载工具。
5.根据权利要求1所述的方法,其中,所述自动启动所述应用,模拟人行为运行所述应用包括:获取应用文件的存储位置,并自动安装所述应用,获取所述应用的进程信息,并模拟人行为运行该应用。
6.根据权利要求1所述的方法,其中,在所述自动启动抓包程序,并将抓取的数据包存入到指定位置之后,还包括自动卸载所述应用。
7.根据权利要求1所述的方法,其中,所述模拟人行为运行所述应用,通过设置shell命令文件,并自动运行所述shell命令文件的方式实现。
8.根据权利要求1所述的方法,其各步骤的执行均在内网中进行。
9.一种移动应用流量特征自动分析的系统,其包括:网关设备、无线路由器、一个或多个终端设备,其特征在于: 所述网关设备包括: 下载模块,用于从某一个固定的网络节点自动下载应用文件到本地; 启动和运营模块,用于自动启动所述应用,模拟人行为运行所述应用; 抓包模块,用于自动启动抓包程序,并将抓取的数据包存入到指定位置; 特征提取模块,用于从所述指定位置提取抓取的数据包,并提取出对应的应用特征; 识别模块,用于对提取的应用特征进行分析识别。
10.根据权利要求9所述的系统,所述下载模块具体用于:从一个固定的网站获取需要下载应用文件的URL,并通过下载工具将所述应用文件下载到本地。
【文档编号】H04L12/26GK104348682SQ201410534912
【公开日】2015年2月11日 申请日期:2014年10月11日 优先权日:2014年10月11日
【发明者】崔渊博 申请人:北京中创腾锐技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1