一种基于闭合序列模式挖掘的协议格式推断方法技术

技术编号:19186709 阅读:32 留言:0更新日期:2018-10-17 02:20
本发明专利技术提供一种基于闭合序列模式挖掘的协议格式推断方法,包括以下步骤:报文预处理、协议关键字识别及关键字序列提取,以及报文结构推断。本发明专利技术采用两阶段闭合模式挖掘策略对通信报文实施闭合序列模式挖掘,解决了已有闭合序列模式挖掘算法内存消耗巨大、计算时间过长等问题,方法能够避免报文样本中的噪音影响,准确识别协议关键字并生成包含关键字顺序关系的关键字序列。在关键字序列信息的基础上,分析推断出协议关键字之间的顺序关系、平行关系、层次关系,获取准确的报文结构信息。

A protocol format inference method based on closed sequential pattern mining

The invention provides a protocol format inference method based on closed sequence pattern mining, which comprises the following steps: packet preprocessing, protocol keyword recognition, keyword sequence extraction, and message structure inference. The invention adopts two-stage closed pattern mining strategy to implement closed sequence pattern mining for communication messages, solves the problems of huge memory consumption and long calculation time of existing closed sequence pattern mining algorithms, and avoids the influence of noise in message samples, accurately identifies protocol keywords and generates the sequence containing keywords. The key sequence of order relations. On the basis of keyword sequence information, the sequence relation, parallel relation and hierarchical relation between protocol keywords are analyzed and inferred, and the accurate message structure information is obtained.

【技术实现步骤摘要】
一种基于闭合序列模式挖掘的协议格式推断方法
本专利技术涉及网络
,具体而言涉及一种分析协议实体程序的输入输出报文,依据同种类型的报文在结构和语义上的相似性,推断协议报文格式的方法。
技术介绍
网络协议作为网络通信的核心要素,它的质量直接关系到通信的稳定性、可靠性和安全性。对网络协议进行分析,发掘网络协议及其具体实现程序中存在的安全漏洞,并及时实施安全防护,有助于减少安全问题的发生。如果一种网络协议的协议规范是已知的,则对其进行分析处理相对简单,例如著名的开源软件Wireshark可以对2000余种已知协议进行解析,能够获取协议中大量有价值的信息。但是,对于协议规范没有公开的网络协议,Wireshark等协议分析软件则无能为力。在这种情况下,一些研究人员尝试利用协议逆向分析技术来获取未知协议的协议规范。协议逆向分析技术以协议格式和协议状态机的获取为目标。协议格式获取主要推断协议关键字、报文结构以及字段语义信息。协议状态机获取通常是在协议格式信息基础上,识别整个协议运行过程中存在的协议状态并分析协议状态之间的转换关系。依据研究对象的不同,协议逆向分析通常分为基于执行轨迹的逆向分析技术与基于网络流量的逆向分析技术两类。基于执行轨迹的逆向分析方法通过监视协议实体对报文的处理过程以及各报文片段的使用方式获得报文格式信息。基于网络流量的逆向分析基于这样一种观察:每个协议报文都是协议规范的具体实例,相同类型协议报文具有相似性,这种相似性能够反映报文格式中相对稳定的部分,基于这种相似性可以推断协议报文格式。与基于执行轨迹逆向技术相比,基于网络流量协议逆向技术的收集分析样本相对容易与自动化程度更高,所以这种技术的应用范围更为广泛。本专利技术所提供的就是一种基于网络流量进行协议格式推断的方法。目前国内外已有一些基于网络流量对未知协议进行协议格式推断的研究成果。AutoReEngine采用Apriori算法挖掘频繁字符串,其中位置变化频率小于阈值的频繁字符串认为是网络协议的协议关键字,该方法有较高的关键字识别准确率。ProWord系统引入自然语言处理的断词和短语识别技术实现协议关键字识别。但上述方法只能获取报文中单独关键字,忽略了关键字之间的约束关系。一些研究人员对完整报文进行划分并提取报文特征,在识别关键字同时尝试获取关键字之间的组合约束关系。PI项目通过引入生物信息学的序列比对算法,尝试对目标协议进行分析,协议逆向工具Netzob也采用序列比对方法,但该方法对于位置变化大或者过多变长字段的报文,推断结果的准确率较低。PRISMA方法通过n-gram方法识别协议关键字,通过Pearson相关系数计算获得关键字之间的相关性,并推断协议的语义模板。尽管这些方法能够在一定程度上获取协议关键字之间的约束关系,但也只是获取平坦的关键字序列,并没有分析出报文关键字之间的顺序、并列以及层次关系。总体上看,现有的基于网络流量对未知协议进行协议格式推断的方法报文关键字推断的准确率不高,而且没有充分考虑报文关键字之间顺序、并列与层次关系等结构特性,此外,基于网络流量的分析方法还存在噪音处理的问题,一方面,未知协议的报文样本往往会混入其他协议报文,另一方面,由于通信链路质量问题,报文样本中经常有一些时序混乱、完整性缺失的报文,这些报文对于协议分析而言都属于噪音。协议噪音对协议逆向结果会造成干扰,降低分析结果的准确性。
技术实现思路
针对现有技术中存在的问题,本专利技术旨在提供一种基于网络流量的协议格式推断方法。方法在收集未知协议实体程序通信报文的基础上,采用两阶段闭合模式挖掘策略对通信报文实施闭合序列模式挖掘,识别协议关键字并生成包含关键字之间顺序关系的关键字序列。依据关键字序列的信息分析关键字之间的约束关系,进而推断报文结构,获得包含关键字顺序关系、平行关系以及层次关系的详细协议格式信息。协议关键字识别以支持度阈值为基础,关键字出现频率大于所设定的支持度阈值将被识别,这种识别方法有助于降低报文样本内协议噪音的影响,保证关键字识别的准确率。为达成上述目的,本专利技术所采用的技术方案如下:一种基于闭合序列模式挖掘的协议格式推断方法,包括以下步骤:首先是报文预处理阶段。将报文样本按照<源IP地址,目的IP地址,源端口,目的端口,传输层协议类型>五元组划分为若干个会话,而后针对会话提取协议报文,进而将同种类型的报文聚为一类。其次是协议关键字识别及关键字序列提取阶段。实施两阶段闭合序列模式挖掘方法,其中第一阶段为分割阶段,针对汇聚了同种类型报文的报文组,在报文组中基于闭合序列模式挖掘提取闭合频繁邻接段,并采用关键字识别策略判断这些闭合频繁邻接段是否为协议关键字。第二阶段为模式挖掘阶段,基于第一阶段推断为关键字的闭合频繁邻接段,通过闭合序列模式挖掘算法生成由多个关键字组成的闭合频繁序列,最终得到一个报文组内所有的闭合频繁序列。第三步是报文结构推断阶段。报文结构推断以提取到的关键字序列为基础区分不同关键字之间顺序、并列以及层次关系,获得详细的报文结构信息。前述报文预处理阶段的工作流程如下:将报文样本按照<源IP地址,目的IP地址,源端口,目的端口,传输层协议类型>五元组划分为会话,每个报文以各自在会话中先后顺序标记序号,具有相同序号的报文作为一类。由于网络传输中可能出现报文丢包、乱序等因素,报文序号相同并不能保证报文是相同类型的,因此还需提取报文载荷,通过计算报文载荷之间的相似度找出类型相同的报文,将同种类型的报文聚集在一个报文组之内。通过以上处理,一个报文组中的报文类型相同,具有相同的报文特征,可以作为下一阶段分析的基础。前述协议关键字识别及关键字序列提取阶段的工作流程如下:为了判定协议关键字,首要工作是在报文类型相同的报文组中搜寻闭合频繁邻接段。给定报文组CL和最小支持度阈值Min_Sup,如果报文组中的报文所包含的字符串t在报文组CL中的支持度大于Min_Sup,并且其他任何包含t的字符串,在报文组CL中的支持度都不超过t的支持度,则称t为闭合频繁邻接段。其中,t在报文组CL中的支持度,指的是报文组CL中包含字符串t的报文总数除以报文组CL中的报文总数。t在报文组CL中的支持度反映了t在报文组CL中的出现频率。由于报文数据具有序列长、数据稠密、数据规模大等特点,本专利技术设计了两阶段闭合序列模式挖掘方法,能够提高效率,降低内存消耗。其中第一阶段为分割阶段,针对汇聚了同种类型报文的报文组,在报文组中搜索所有的闭合频繁邻接段,并采用关键字识别策略判断这些闭合频繁邻接段是否为关键字。分割阶段第一步的工作是生成候选字符串。候选字符串从报文组中提取,利用n-gram模型将报文划分成字符串,字符串中的字符保持原有的顺序和邻接属性。分割阶段第二步的工作是候选字符串剪枝。报文组中的报文被离散化为字符串,用于确定报文中的协议关键字,这些字符串被作为候选字符片段。候选字符片段集合可能会包含许多重复或不符合关键字基本要求的字符片段。为了缩小冗余搜索空间,需要依据频繁邻接的特征对候选字符片段进行剪枝。在实施剪枝时,如果一个候选字符片段的支持度没有达到最小支持度阈值,则所有包含该字符片段的字符串的支持度也不可能超过最小支持本文档来自技高网
...

【技术保护点】
1.一种基于闭合序列模式挖掘的协议格式推断方法,其特征在于,包括以下步骤:(1)报文预处理:将报文样本按照

【技术特征摘要】
1.一种基于闭合序列模式挖掘的协议格式推断方法,其特征在于,包括以下步骤:(1)报文预处理:将报文样本按照<源IP地址,目的IP地址,源端口,目的端口,传输层协议类型>五元组划分为若干个会话,而后针对会话提取协议报文,进而将同种类型的报文聚为一类便于分析。(2)协议关键字识别及关键字序列提取:实施两阶段闭合序列模式挖掘方法,其中第一阶段为分割阶段,针对汇聚了同种类型报文的报文组,在报文组中基于闭合序列模式挖掘提取闭合频繁邻接段,并采用关键字识别策略判断这些闭合频繁邻接段是否为协议关键字。第二阶段为模式挖掘阶段,基于第一阶段推断为关键字的闭合频繁邻接段,通过闭合序列模式挖掘算法生成由多个关键字组成的闭合频繁序列,最终得到一个报文组内所有的闭合频繁序列。(3)报文结构推断:以提取到的关键字序列为基础区分不同关键字之间的顺序、并列以及层次关系,获得详细的报文结构信息。前述报文预处理阶段的工作流程如下:将报文样本按照<源IP地址,目的IP地址,源端口,目的端口,传输层协议类型>五元组划分为会话,每个报文以各自在会话中的先后顺序标记序号,具有相同序号的报文作为一类。由于网络传输中可能出现报文丢包、乱序等因素,报文序号相同并不能保证报文是相同类型的,因此还需提取报文载荷,通过计算报文载荷之间的相似度找出类型相同的报文,将同种类型的报文聚集在一个报文组内。通过以上处理,一个报文组中的报文类型相同,具有相同的报文特征,可以作为下一阶段分析的基础。前述协议关键字识别及关键字序列提取阶段的工作流程如下:实施两阶段闭合序列模式挖掘方法,其中第一阶段为分割阶段,针对汇聚了同种类型报文的报文组,在报文组中基于闭合序列模式挖掘提取闭合频繁邻接段,并采用关键字识别策略判断这些闭合频繁邻接段是否为关键字。分割阶段第一步的工作是生成候选字符串。候选字符串从报文组中提取,利用n-gram模型将报文划分成字符串,字符串中的字符保持原有的顺序和邻接属性。分割阶段第二步的工作是候选字符串剪枝。报文组中的报文被离散化为字符串,用于...

【专利技术属性】
技术研发人员:吴礼发张洪泽丁兆锟谢波廖赟
申请(专利权)人:南京天控信息技术有限公司
类型:发明
国别省市:江苏,32

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

1