一种基于二维卷积神经网络的应用层协议识别方法技术

技术编号:21344429 阅读:31 留言:0更新日期:2019-06-13 22:49
本发明专利技术提出一种基于二维卷积神经网络的应用层协议识别方法,包括以下步骤:数据预处理、分类模型的构建、未知网络流的应用层协议识别。本发明专利技术从捕获的原始网络数据中提取出网络流,将网络流转化为二维卷积神经网络的输入,由二维卷积神经网络在训练过程中自动提取特征作为协议识别的依据。最后,利用训练好的卷积神经网络分类模型进行网络协议识别。本发明专利技术能够避免应用层协议识别领域人工提取特征的困难,有效提高应用层协议识别结果的准确率。

An Application Layer Protocol Recognition Method Based on Two-Dimensional Convolutional Neural Network

The invention proposes an application layer protocol identification method based on two-dimensional convolutional neural network, which includes the following steps: data preprocessing, construction of classification model, application layer protocol identification of unknown network flow. The method extracts network flow from captured original network data, transforms network flow into input of two-dimensional convolution neural network, and automatically extracts features from two-dimensional convolution neural network in training process as the basis of protocol recognition. Finally, the trained convolutional neural network classification model is used to identify network protocols. The invention can avoid the difficulty of manual feature extraction in the application layer protocol recognition field and effectively improve the accuracy of the application layer protocol recognition result.

【技术实现步骤摘要】
一种基于二维卷积神经网络的应用层协议识别方法
本专利技术涉及网络
,尤其是一种基于二维卷积神经网络的应用层协议识别方法,该方法以网络数据流为分析对象,将网络数据流映射成二维特征矩阵输入二维卷积神经网络,通过卷积神经网络自动化提取出合适的特征用于识别网络流所对应的应用层协议,在训练好卷积神经网络之后,通过卷积神经网络对应用层协议归属信息未知的网络流量进行协议识别。
技术介绍
应用层协议识别是指通过人工分析或自动化手段从IP协议承载的网络流量中提取出能够标识网络应用层协议的关键特征,然后以这些特征为基础准确标识网络流量所隶属的应用层协议。应用层协议识别技术有助于对网络流量的组成进行分析,能够为网络管理与维护、网络内容审计、网络安全防御等多个研究领域提供数据支撑。根据对人力的依赖程度,应用层协议识别可以分为人工分析和自动分析两类。人工分析方法依靠研究人员的领域经验或先验知识获取协议特征信息,进而对网络流量进行协议识别。而自动分析方法则基于模式识别、机器学习等理论从网络流量中自动化提取协议特征,并以此特征作为协议识别的根据,减少了人工开销。根据研究方法的不同,目前应用层协议自动识别方法主要包括基于预设规则的协议识别方法、基于载荷特征的协议识别方法、基于主机行为的协议识别方法以及基于机器学习的协议识别方法四种。基于预设规则的协议识别方法中最典型的方法是利用端口进行协议识别。但是随着网络应用的快速发展,很多应用都向用户提供了自定义端口的功能,用户可以根据自己的喜好设置网络应用所使用的端口,这使得基于传统的IANA的端口分配规则越来越难准确识别流量类型。比如,不能因为通信使用了80端口,就判定其为HTTP协议的流量。基于载荷特征的协议识别方法主要是使用深度包检测和正则表达式技术,通过匹配数据包载荷中预定义的固定特征串,来进行协议识别。这种识别方法简单、准确度较高,但不能识别加密协议,而且当特征串的数量较多时,计算开销将显著增长,识别效果会降低。基于主机行为的协议识别方法主要利用了网络流量的统计特性,如数据流持续时间、字节数、传输间隔时间等在网络数据传输过程可直接测量的统计参数。此类方法有效避免前两种方法的特征提取操作,但因统计信息采集繁琐,且受网络环境影响,统计结果可能不稳定,应用层协议识别的准确度偏低。面对与日俱增的网络流量,基于机器学习的协议识别方法是目前效果较好的一类应用层协议识别方法。根据分类模型结构的不同,机器学习方法可以分为浅层学习和深度学习两类。浅层学习算法本质上属于浅层结构算法,主要包括支持向量机、朴素贝叶斯、决策树、k-means等机器学习算法。这些算法在应用层协议识别领域应用时,难以表示复杂的非线性函数关系,处理复杂问题的泛化能力有限,而且依赖于人工选择特征,特征选择的好坏会严重影响协议识别效果。相比于浅层学习算法,深度学习算法的特征是从原始数据中自动学习得到。深度学习算法不需要繁琐的特征提取与特征数据建模,仅需依据原始数据,通过多层网络学习得到原始数据的抽象高层特征。卷积神经网络是深度学习领域目前最为重要的模型。卷积神经网络已经应用在自然语言处理、图像分类与识别、语音识别等领域,并且取得了很好的效果,但在协议识别领域的应用相对较少。目前,卷积神经网络在应用层协议识别领域的应用尚处于起步阶段。如何将网络流量转化为卷积神经网络的输入缺乏深入研究,卷积神经网络结构的设计也需要系统分析,充分考虑网络结构和参数对应用层协议识别过程的影响。在提高卷积神经网络训练效率的同时,提升应用层协议识别的准确率,是该领域研究的核心目标。
技术实现思路
专利技术目的:为克服现有技术的缺陷,本专利技术提供一种基于二维卷积神经网络的应用层协议识别方法。本专利技术以网络流为分析对象,所涉及的网络流可以是一个完整的TCP连接或者一次完整的UDP交互。同一种协议的网络流之间存在一定的相似性,可以利用这种相似性区分不同协议产生的网络流量。本专利技术首先从捕获的原始网络数据中提取出网络流,然后将网络流转化为二维特征矩阵作为二维卷积神经网络的输入,基于二维卷积神经网络自动提取合适特征作为网络协议识别的基础,并进行卷积神经网络的训练。最后,利用训练好的卷积神经网络分类模型对应用层协议信息未知的网络流量进行网络协议识别。本专利技术能够避免应用层协议识别领域人工提取特征的困难,有效提高应用层协议识别结果的准确率。技术方案:为实现上述技术效果,本专利技术提出一种基于二维卷积神经网络的应用层协议识别方法,包括以下步骤:(1)数据预处理,包括步骤:(1-1)将捕获的原始网络流进行流重组,将捕获的每一条原始网络流中捕获的数据包重新整合为有序流;(1-2)对重组得到的每一条网络流进行流切分,截取出每条网络流前部的一段固定长度的数据作为该条网络流协议识别的依据;(1-3)对每一条网络流进行归一化处理:为每一条网络流构造一个长度与相应截取数据的长度相同的向量x,将截取数据中每个字节对应的十进制数值依次赋给向量中的各个分量,将向量x中每个分量的数值除以256,使分量的取值统一到区间[0,1)内;然后,将向量x中的所有分量按排序等分为若干组,建立二维特征矩阵,以每一组为对应矩阵中的一行的规律将向量x中的所有分组依次填充到二维特征矩阵中;(1-4)为每一条原始网络流添加应用层协议类型标签;(2)搭建二维卷积神经网络,二维卷积神经网络输入层的数据格式与步骤(1)中二维特征矩阵的格式一致;将步骤(1)中得到的各条网络流的二维特征矩阵和相应的应用层协议类型标签作为训练数据,对二维卷积神经网络进行训练,训练过程中根据二维卷积神经网络输出的预测值与真实的应用层协议标签之间的差异,调整卷积神经网络中的各项参数,迭代训练二维卷积神经网络,直至满足预设的停止条件;(3)捕获应用层信息未知的网络流,对捕获的网络流依次进行流重组、流切分、归一化处理,得到应用层信息未知的网络流的二维特征矩阵,将二维特征矩阵输入训练好的二维卷积神经网络,计算得到网络流的应用层协议类型。进一步的,所述一条网络流为一次完整的TCP连接所形成的TCP流,或者一次UDP交互所形成的UDP流。进一步的,对于TCP流的流重组步骤为:以TCP连接建立的时刻为TCP流的开始时刻,以TCP连接建立连接断开的时刻作为TCP流的结束时刻,利用TCP首部的序列号和标识,将到达的数据包重新整合为一条有序流;对于UDP流的流重组步骤为:设置一个时间窗口,以时间窗口中第一个数据包的发送时间为UDP流的开始时间,在时间窗口所规定的时间内未捕获下一个数据包,认为这条UDP流结束,将该时刻作为UDP流的结束时间,将时间窗口内捕获到的所有UDP数据包按照捕获时间从前到后进行排序。进一步的,所述步骤(1-4)中采用one-hot标签的方式标识应用层协议类型标签。进一步的,所述卷积神经网络结构包括依次级联的输入层、C1层、S2层、C3层、S4层、FC5层、FC6层、FC7层和输出层,其中,C1层、C3层为卷积层,S2、S4为池化层,FC5层、FC6层、FC7层为全连接层。进一步的,所述输出层为一个SoftMax分类器,输出层有n个神经元,n为应用层协议的类别总数。有益效果:与现有技术相比,本专利技术具有以下优势:本专利技术充分利用了二维卷积神经网络的优势,不需本文档来自技高网
...

【技术保护点】
1.一种基于二维卷积神经网络的应用层协议识别方法,其特征在于,包括顺序执行的步骤(1)至(3):(1)数据预处理,包括步骤:(1‑1)将捕获的原始网络流进行流重组,将捕获的每一条原始网络流中捕获的数据包重新整合为有序流;(1‑2)对重组得到的每一条网络流进行流切分,截取出每条网络流前部的一段固定长度的数据作为该条网络流协议识别的依据;(1‑3)对每一条网络流进行归一化处理:为每一条网络流构造一个长度与相应截取数据的长度相同的向量x,将截取数据中每个字节对应的十进制数值依次赋给向量中的各个分量,将向量x中每个分量的数值除以256,使分量的取值统一到区间[0,1)内;然后,将向量x中的所有分量按排序等分为若干组,建立二维特征矩阵,以每一组为对应矩阵中的一行的规律将向量x中的所有分组依次填充到二维特征矩阵中;(1‑4)为每一条原始网络流添加应用层协议类型标签;(2)搭建二维卷积神经网络,二维卷积神经网络输入层的数据格式与步骤(1)中二维特征矩阵的格式一致;将步骤(1)中得到的各条网络流的二维特征矩阵和相应的应用层协议类型标签作为训练数据,对二维卷积神经网络进行训练,训练过程中根据二维卷积神经网络输出的预测值与真实的应用层协议标签之间的差异,调整卷积神经网络中的各项参数,迭代训练二维卷积神经网络,直至满足预设的停止条件;(3)捕获应用层信息未知的网络流,对捕获的网络流依次进行流重组、流切分、归一化处理,得到应用层信息未知的网络流的二维特征矩阵,将二维特征矩阵输入训练好的二维卷积神经网络,计算得到网络流的应用层协议类型。...

【技术特征摘要】
1.一种基于二维卷积神经网络的应用层协议识别方法,其特征在于,包括顺序执行的步骤(1)至(3):(1)数据预处理,包括步骤:(1-1)将捕获的原始网络流进行流重组,将捕获的每一条原始网络流中捕获的数据包重新整合为有序流;(1-2)对重组得到的每一条网络流进行流切分,截取出每条网络流前部的一段固定长度的数据作为该条网络流协议识别的依据;(1-3)对每一条网络流进行归一化处理:为每一条网络流构造一个长度与相应截取数据的长度相同的向量x,将截取数据中每个字节对应的十进制数值依次赋给向量中的各个分量,将向量x中每个分量的数值除以256,使分量的取值统一到区间[0,1)内;然后,将向量x中的所有分量按排序等分为若干组,建立二维特征矩阵,以每一组为对应矩阵中的一行的规律将向量x中的所有分组依次填充到二维特征矩阵中;(1-4)为每一条原始网络流添加应用层协议类型标签;(2)搭建二维卷积神经网络,二维卷积神经网络输入层的数据格式与步骤(1)中二维特征矩阵的格式一致;将步骤(1)中得到的各条网络流的二维特征矩阵和相应的应用层协议类型标签作为训练数据,对二维卷积神经网络进行训练,训练过程中根据二维卷积神经网络输出的预测值与真实的应用层协议标签之间的差异,调整卷积神经网络中的各项参数,迭代训练二维卷积神经网络,直至满足预设的停止条件;(3)捕获应用层信息未知的网络流,对捕获的网络流依次进行流重组、流切分、归一化处理,得到应用层信息未知的网络流的二维特征矩阵,将二维特征矩阵输入训练好的二维卷积神经网络,计算得到网络流的应用层协...

【专利技术属性】
技术研发人员:洪征冯文博李毅豪付梦琳周振吉李华波赵鹏
申请(专利权)人:中国人民解放军陆军工程大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1