一种基于深度学习序列分析的移动应用识别方法与流程

文档序号:15281791发布日期:2018-08-28 23:37阅读:1056来源:国知局

本发明涉及一种基于深度学习序列分析的移动应用识别方法。



背景技术:

应用识别是指依据应用本身的特征,将承载在同一类型应用协议上的不同应用区分出来;移动应用识别特指对移动终端,如智能手机等设备上的应用来进行应用识别。随着移动互联网的发展与智能手机的普及,手机平台上诞生了涵盖各行各业的数以万计的手机应用;同时,wi-fi覆盖率的大幅度增加,越来越多的公共场所安装了公用wi-fi,使得用户在使用手机的时空限制上也大大降低。为了更好地了解用户的喜好、需求,帮助管理者优化服务,通过wi-fi流量来对不同用户的应用安装情况进行识别是至关重要的。

通过对大量移动终端产生的数据包进行分析,tcp协议是绝大多数移动应用都会或多或少采用的一种传输协议。因此,对tcp报文段中的信息进行分析是最合适的方法。tcp报文段本质是一串字节流,由固定长度的首部与可变长度的数据组成,数据部分包含了上层协议信息与数据信息。字节流以字节为单位,每一字节为8位二进制数,其取值范围是固定的,将每一字节看作一个节点,那么字节流即可视为一段序列,因此,使用序列分析的方法也可以对tcp报文段进行分析。

深度学习源于人工神经网络的研究,通过组合多个底层特征以形成更加抽象的高层特征来发现数据的分布式特征表示,现在广泛用于语音识别和计算机视觉等领域。对于序列这种特征维度高,信息含量大的数据来说,深度学习拥有极大的优势。

综上所述,可以将移动应用所产生数据包的tcp报文段中的数据部分转化为序列,再利用深度学习对序列进行分析,从而达到应用识别的效果。

现有的关于应用识别的方法,包括深度包检测,即对tcp协议及其上层协议中出现的关键字与特征库中的关键字进行逐一对比从而进行应用识别;其他机器学习方法,如朴素贝叶斯,bp神经网络等方法,使用人工总结出的数据流的特征以及数据流之间的特征来进行流量分类进而进行应用识别。

对于深度包检测,需要大量的人力来构建特征库,并且在获取关键字的过程中可能会侵犯用户的隐私信息,对于加密数据,更会失去效果;对于其他的机器学习方法,由于采用的特征信息是由人工总结而来,因此无法在更细粒度层面区分应用信息,它往往只能在流量分类上达到效果。



技术实现要素:

针对现有的移动应用识别方法存在的缺点,本文提出了一种基于深度学习序列分析的移动应用识别方法。

为解决上述技术问题,本发明所采用的技术方案是:

1)通过位于无线局域网的发射源ap端的数据采集模块,将连接至本机的移动终端所产生的数据包收集并转发至服务器;

2)从转发至服务器的来自于不同终端多种协议的数据包中识别出按终端分类的tcp协议数据流;

3)将tcp协议数据流中的每个数据包输入深度置信网络进行特征提取与数据降维,得到多个处理后的tcp数据包;

4)通过深度置信网络与lstm型rnn网络来对tcp数据包进行分类处理,得到lstm输出的识别结果;

5)利用应用识别模块,将终端信息与应用识别结果以一对多的模式匹配起来,并以直观的方式输出。

本发明提供的移动应用识别方法充分利用了深度学习在序列分析上的优势,并结合了移动应用数据的特点,达到了保护用户隐私前提下的精准应用识别。帮助无线局域网的管理者了解用户的需求,提供更加合适的服务。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例系统结构示意图;

图2为本发明实施例数据处理流程示意图;

图3为本发明实施例分类算法流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

针对现有的移动应用识别方法存在的缺点,本文提出了一种基于深度置信网络与lstm型rnn网络组合模型的移动应用识别方法。

系统总体设计及理论基础

系统由数据采集、数据处理、分类算法、应用识别模块组成。

如图1所示,数据采集模块位于无线局域网的发射源ap端,负责将连接至本机的移动终端所产生的数据包收集并转发至服务器。数据处理模块位于服务器端,先对接收到的数据包进行解析,识别出tcp协议;之后根据mac地址按不同的终端进行分类;再根据每个数据包的源ip地址,目的ip地址,源端口号,目的端口号将tcp协议按不同的tcp流缓存起来,得到多个tcp流。先将tcp流中的每个数据包输入深度置信网络进行特征提取与数据降维,得到多个处理后的tcp数据包;再以流为单位,将每个tcp流中处理后的数据包作为lstm的多个输入,得到lstm输出的识别结果。最后利用应用识别模块,将终端信息与应用识别结果以一对多的模式匹配起来,并以直观的方式输出。

数据采集模块

数据采集模块位于无线局域网的发射源ap端,负责将连接至本机的移动终端所产生的数据包收集并转发至服务器。在本专利中所要求的ap应至少具有两块网卡,一块用于连接互联网与无线终端,另一块用于连接ap与服务器。其具体原理是,通过交叉编译至路由器系统的libpcap库中的数据包捕获函数,将移动终端所经过的网卡的数据包捕获,捕获的数据包暂时缓存在ap本地。ap再通过另一块网卡与服务器建立socket连接,将前一步所缓存的数据包以二进制数据的形式通过socket传输至服务器。为了保证系统的实时性,当ap与服务器之间遇到传输瓶颈的情况而导致缓存空间不足时,则将新捕获的数据包全部丢弃,直到空间足够为止。通过这一模块可以将不同来源的数据包全部收集并统一转发至服务器来进行后续处理。

数据处理模块

如图2所示,本模块的目的是从转发至服务器的来自于不同终端多种协议的数据包中识别出按终端分类的tcp协议数据流。为了使算法更加高效,本模块以如下三个步骤来实现:

1识别tcp协议

根据osi对于网络协议栈的规定和rfc对于协议格式的规定,对捕获的数据包按顺序进行逐字符解析,可通过标识符最终判断一个数据包是否属于tcp协议。若此数据包为tcp协议,则缓存该数据包的内容,并记录此数据包的源ip地址,目的ip地址,源端口号,目的端口号和源mac地址;否则将该数据包丢弃。

2按终端分类

由数据采集模块的流程可得知,数据处理模块所处理的数据包是来源于多个移动终端的。因此,将不同的数据包按不同终端分类才能进行后续处理。根据缓存中所缓存的tcp数据包,以不同的mac地址分为多个不同的组。具体为,按顺序从缓存中读取一个数据包的源mac地址,若此mac地址已经存在,则将该数据包分到该mac地址所在的组中;若此mac地址不存在,则创建一个新的组,并将该数据包存入这个新的组中。

3获取完整tcp流

在每个终端的组中,设置多个tcp流缓存队列。根据源ip地址,目的ip地址,源端口号,目的端口号可以判断出多个数据包是否来自于同一tcp连接。将来自于同一tcp连接的数据包全部缓存在一个队列中,即可得到完整的tcp流。具体为,当一个数据包被分到某个组的时候,根据源ip地址,目的ip地址,源端口号,目的端口号这四项指标来判断是否已经存在该tcp缓存队列,若已存在,则将数据包放至该缓存队列中;若不存在,则创建一个新的tcp缓存队列,并将数据包存入这个队列中。

在以下三种情况下,视为该tcp流已经结束:

接收到代表断开tcp连接的四次挥手数据包,则认为该tcp连接已经结束,将该tcp缓存队列传输至下一模块,之后从缓存中删除该队列。

接收到第二个代表建立tcp连接的三次握手数据包,则认为前一个tcp连接已经结束,将此数据包之前的缓存队列传输至下一模块,并从缓存中删除该队列,再建立一个新的队列,将此tcp握手数据包存入新队列中。

经过一个设定的超时时间,还没有收到任何新的数据,则认为该tcp连接已经结束,将该tcp缓存队列传输至下一模块,之后从缓存中删除该队列。

分类算法模块

如图3所示,在此模块中,通过深度置信网络与lstm型rnn网络两个步骤来对数据包进行分类处理。

深度置信网络的本质是多个限制玻尔兹曼机(rbm)堆叠起来的产物。在本专利所设计的网络结构中采用两层rbm堆叠来进行数据包的特征提取与降维操作。具体为,将数据处理模块中所收集的tcp流中的单个数据包,以二进制数据的形式作为输入,输入到第一个rbm中进行运算,得到的结果再输入到第二个rbm中进行运算,最终得到的结果是向量形式的,它代表该数据包通过特征提取与降维之后的更少维度的特征向量。将tcp流中的每一个数据包都通过这一步骤进行处理,可以得到一串经过处理后的tcp流,该流中的每个数据包都用更少的数据来表示。

将由深度置信网络处理后的tcp流中的每个数据包作为lstm的一个输入,一个tcp流的所有数据包作为lstm的所有输入,根据tcp数据包的顺序,构建一个lstm网络。该网络的目的是寻找数据包之间以及数据包与时序之间的关系。最终lstm的输出就是应用识别的结果,将识别结果传输至下一模块。

应用识别模块

本模块将终端信息与应用识别结果以一对多的模式匹配起来,并以直观的方式输出。具体为,当识别出某一应用后,判断该应用的来源mac地址,并将此应用信息添加到该mac地址所安装的应用列表中。若应用列表中已存在该应用,则不做任何操作。在结束流程后,按不同的mac地址将所有应用列表分类输出或显示,即得到最终的应用识别结果。

本发明提出了一种基于深度置信网络与lstm型rnn网络组合模型的移动应用识别方法。充分利用了深度学习在序列分析上的优势,并结合了移动应用数据的特点,达到了保护用户隐私前提下的精准应用识别。有其他的方法也可以达到利用深度学习进行应用识别,如将应用流量数据转为二维数字图像,采用在图像领域比较擅长的网络,如cnn等,也能达到应用识别的效果。但是数据流量的本质更接近于序列而非图像,因此本发明所提出的方法更具有科学性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1