一种基于扩展前缀树的私有协议报文格式推断方法技术

技术编号:17211824 阅读:146 留言:0更新日期:2018-02-07 23:03
本发明专利技术提供一种基于扩展前缀树的私有协议报文格式推断方法,包括以下步骤:报文预处理、协议关键词提取、报文结构与语义推断、协议格式合并。本发明专利技术针对现有的基于网络流量的报文格式推断方法时间复杂度高、准确率偏低的问题,采用N‑gram分词方法,基于点间互信息准确判定私有协议中的协议关键词,以扩展前缀树描述报文所对应的协议关键词序列,实施分段的多序列比对,降低序列比对的计算开销,提高比对结果的准确性。此外,针对网络协议灵活性强的特点,通过有效的格式合并,减少冗余的报文格式,增强推断结果的实用性。

An inference method for private protocol message format based on extended prefix tree

The invention provides a private protocol message format inference method based on extended prefix tree, including the following steps: message preprocessing, protocol key extraction, message structure and semantic inference, protocol format merging. According to the invention time estimation method of network traffic based on the packet format of high complexity and low accuracy of the existing problems, using N gram segmentation method, the mutual information between points accurately determine the private protocol in protocol based on keywords, to extend the prefix tree description keyword sequence corresponding to the message protocol, the implementation of multiple sequence alignment segments to reduce the computational overhead, sequence alignment, improve the accuracy of the results. In addition, in view of the characteristics of the flexibility of the network protocol, an effective format is merged to reduce the redundant message format and enhance the practicability of the inference results.

【技术实现步骤摘要】
一种基于扩展前缀树的私有协议报文格式推断方法
本专利技术涉及网络
,尤其是一种基于扩展前缀树的私有协议报文格式推断方法,该方法能够依据同类报文在结构和语义上的相似性,推断私有协议的报文格式。
技术介绍
协议规范是对网络协议语法、语义以及同步等信息的具体描述,在网络安全领域扮演着重要角色。僵尸网络中,攻击者使用C&C(CommandandControl)协议来控制存在漏洞的主机实施分布式拒绝服务攻击,网络管理员需要依据C&C协议规范来发现和分析僵尸网络。入侵检测领域,需要基于协议规范从繁杂的网络流量中辨识出恶意流量。在模糊测试过程中,需要利用协议规范指导测试用例生成以实现高效的自动化漏洞挖掘。实际的网络环境中有大量私有协议存在。所谓私有协议,就是协议规范没有进行公开的网络协议。例如,微软使用的网络文件共享SMB(ServerMessageBlock)协议,Oracle数据库访问的TNS(TransparenceNetworkSubstrate)协议以及微信、QQ、飞秋等即时通信软件所使用的协议都没有公开协议细节。大量恶意软件也会采用自定义的私有协议实现网络通信。这些私有协议在网络中的广泛使用,给网络安全防护带来了极大的阻碍。对于私有协议而言,目前主要通过协议逆向分析方法获取其协议规范。依据分析对象的不同,逆向分析方法可分为两类:基于网络流量的分析方法和基于指令执行轨迹的分析方法。基于网络流量的分析方法对截获的网络数据流进行分析,通过生物信息学、统计分析、数据挖掘等方法,对报文样本进行聚类分析,依据相同格式报文在取值上的相似性,分析获取协议语法、语义信息,并利用报文间的时序关系推断协议状态机。基于指令执行轨迹的分析方法以协议解析过程中的指令执行轨迹为分析对象,将协议输入数据作为污点数据源,利用动态污点分析方法跟踪数据解析过程,依据协议解析程序如何使用污点数据以及相应的上下文信息获取协议规范。基于指令执行轨迹的分析方法通常具有较高的准确率,能够获得更全面的语义信息,但这类分析方法的实施需要分析人员拥有协议终端的可执行程序,并要求依据协议解析环境进行分析,依赖于底层平台,无法移植,通用性不强,还需操作人员具备较高的专业水平。基于网络流量的分析方法以网络数据流为输入,虽然其准确率依赖于捕获样本的丰富程度,但实现灵活,适用于各种应用场景,便于实施自动化分析。目前国内外已有一些基于网络流量进行私有协议报文格式推断的研究成果。PI(ProtocolInformation)项目引入了生物学中的多序列比对算法,通过将报文样本进行比对对齐的方式提取协议格式信息。Discoverer协议格式提取方案按照文本和二进制两种属性对报文字节流进行标注,得到报文属性序列,通过对报文属性序列进行序列比对得到初始聚类结果,随后依据格式标志字段进行递归聚类获取协议格式。ASAP是一种基于特征词的格式推断方法,利用分隔符以及自然语言处理中的N-gram方法对报文进行分词,构建特征向量,利用非负矩阵分解得到向量基,在此基础上进行聚类以提取协议格式。ProDecoder是一种基于概率模型的格式推断方法,利用LDA(LatentDirichletAllocation)主题生成模型描述“特征词构成协议关键词”以及“协议关键词构成报文”两层语义关系,得到协议关键词及其对应的概率,随后对报文样本进行聚类,并使用多序列比对算法得到最终的协议格式。AutoReEngine是一种基于位置信息的协议格式推断方法,采用Apriori算法获取特征词,利用位置信息对特征词进行合并和筛选,得到协议关键词集合,最终再次利用Apriori算法对协议关键词进行组合提取协议格式及协议状态机。现有的私有协议报文格式推断方案都存在一些缺陷。PI项目对完整的报文样本进行序列比对,时间复杂度较高。Discoverer虽然采用构造报文属性序列的方式降低了时间复杂度,但其采用常见文本类分隔符对报文样本进行划分的处理方法并不适用于二进制协议。此外,对于私有协议而言哪些分隔符会在协议中使用无法确定。ASAP中对文本协议使用分隔符方法进行划分,也存在类似问题。且ASAP在处理二进制协议时,采用N-gram方法选取固定长度的特征词,而实际报文中特征词的长度并不固定。AutoReEngine通过Apriori算法结合位置信息提取协议关键词,对于字段位置可变的协议,如HTTP协议、SIP协议,可能会遗失部分关键词导致无法得到准确的协议格式信息。总体上看,目前基于网络流量的报文格式推断方法主要面临的问题是报文样本的序列长、数量多,分析算法的时间复杂度高,此外,由于一些推断方法预设的推断条件不完全合理,导致推断结果的准确率不高。
技术实现思路
专利技术目的:针对现有技术中存在的问题,本专利技术旨在提供一种基于网络流量的私有协议报文格式推断方法。针对私有协议的协议关键词长度无法事先预知的问题,采用N-gram方法对报文进行分词,依据点间互信息PMI(PointMutualInformation)判断候选关键词的关联关系,确保获得准确的协议关键词。针对长报文比对的计算开销高、准确率低的问题,采用构建协议关键词序列,并以扩展前缀树(ExtendedPrefixTree,EPT)对协议关键词序列进行描述,实施分段的多序列比对,降低序列比对的计算开销,提高比对结果的准确率。针对字段位置可变的协议以及存在枚举字段的协议,容易被划分出较多冗余报文格式的问题,依据协议报文结构和语义对扩展前缀树实施合并,获取准确的协议格式。技术方案:为解决上述技术问题,实现上述技术效果,本专利技术提供的技术方案为:一种基于扩展前缀树的私有协议报文格式推断方法,包括步骤(1)至(4):(1)报文预处理:从原始网络数据流中提取出所有独立的报文,形成报文集合;(2)协议关键词提取:对报文集合中的每条报文进行N-gram分词处理,得到所有在报文集合中出现过的长度为N的字符串;将在报文集合中出现的频率大于预设频率阈值的所有字符串选取出来作为候选关键词;采用点间互信息衡量相邻候选关键词的相关程度,并将相关程度大于预设相关阈值的相邻候选关键词进行合并,合并的结果作为协议关键词;确定所有协议关键词后,将报文集合中的所有报文转换为协议关键词序列,使每个报文由其所包含的协议关键词表示;(3)报文结构与语义推断:构建扩展前缀树,按顺序将每个协议关键词序列中的协议关键词作为叶子节点插入扩展前缀树中;扩展前缀树中从起点开始到叶子节点结束的每条路径代表一种报文格式;确定扩展前缀树中所有的边,并对每条边对应的报文片段采用Needleman-Wunsch多序列比对算法进行比对,得到相应报文片段的格式信息;综合每条边的Needleman-Wunsch多序列比对结果,得到扩展前缀树所包含的所有报文的格式信息;(4)协议格式合并:对步骤(3)获取的报文格式信息进行合并,包括:对字段前后位置可变的同类报文进行格式合并,以及对协议关键词属于枚举类型的同类报文进行格式合并。进一步的,所述步骤(1)中报文预处理的具体步骤为:针对连续的网络数据流,先以会话为粒度进行分割,将通信实体间的独立会话分离出来;再对每一次独立会话进行报文定界,从独立会话中分离出单个协议报文。进一本文档来自技高网
...
一种基于扩展前缀树的私有协议报文格式推断方法

【技术保护点】
一种基于扩展前缀树的私有协议报文格式推断方法,其特征在于,包括步骤(1)至(4):(1)报文预处理:从原始网络数据流中提取出所有报文,形成报文集合;(2)协议关键词提取:对报文集合中的每条报文进行N‑gram分词处理,得到所有在报文集合中出现过的长度为N的字符串;将在报文集合中出现的频率超过预设频率阈值的所有字符串选取出来作为候选关键词;采用点间互信息衡量相邻候选关键词的相关程度,将相关程度大于预设相关阈值的相邻候选关键词实施合并,合并的结果作为协议关键词;确定所有协议关键词后,将报文集合中的所有报文转换为协议关键词序列,使每个报文由其所包含的协议关键词表示;(3)报文结构与语义推断:构建扩展前缀树,按顺序将每个协议关键词序列中的协议关键词作为叶子节点插入扩展前缀树中;扩展前缀树中从起点开始到叶子节点结束的每条路径代表一种报文格式;确定扩展前缀树中的所有的边,并对每条边对应的报文片段采用Needleman‑Wunsch多序列比对算法进行比对,得到相应报文片段的格式信息;综合每条边的Needleman‑Wunsch多序列比对结果,得到扩展前缀树所包含的所有报文的格式信息;(4)协议格式合并:对步骤(3)获取的报文格式信息进行合并,包括:对字段前后位置可变的同类报文进行格式合并,以及对协议关键词属于枚举类型的同类报文进行格式合并。...

【技术特征摘要】
1.一种基于扩展前缀树的私有协议报文格式推断方法,其特征在于,包括步骤(1)至(4):(1)报文预处理:从原始网络数据流中提取出所有报文,形成报文集合;(2)协议关键词提取:对报文集合中的每条报文进行N-gram分词处理,得到所有在报文集合中出现过的长度为N的字符串;将在报文集合中出现的频率超过预设频率阈值的所有字符串选取出来作为候选关键词;采用点间互信息衡量相邻候选关键词的相关程度,将相关程度大于预设相关阈值的相邻候选关键词实施合并,合并的结果作为协议关键词;确定所有协议关键词后,将报文集合中的所有报文转换为协议关键词序列,使每个报文由其所包含的协议关键词表示;(3)报文结构与语义推断:构建扩展前缀树,按顺序将每个协议关键词序列中的协议关键词作为叶子节点插入扩展前缀树中;扩展前缀树中从起点开始到叶子节点结束的每条路径代表一种报文格式;确定扩展前缀树中的所有的边,并对每条边对应的报文片段采用Needleman-Wunsch多序列比对算法进行比对,得到相应报文片段的格式信息;综合每条边的Needleman-Wunsch多序列比对结果,得到扩展前缀树所包含的所有报文的格式信息;(4)协议格式合并:对步骤(3)获取的报文格式信息进行合并,包括:对字段前后位置可变的同类报文进行格式合并,以及对协议关键词属于枚举类型的同类报文进行格式合并。2.根据权利要求1所述的一种基于扩展前缀树的私有协议报文格式推断方法,其特征在于,所述步骤(1)中报文预处理的具体步骤为:针对连续的网络数据流,先以会话为粒度进行分割,将通信实体间的独立会话分离出来;再对每一次独立会话进行报文定界,从独立会话中分离出单个协议报文。3.根据权利要求1所述的一种基于扩展前缀树的私有协议报文...

【专利技术属性】
技术研发人员:洪征田益凡吴礼发张洪泽李华波周振吉薛迪黄康宇
申请(专利权)人:中国人民解放军陆军工程大学
类型:发明
国别省市:江苏,32

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

1