一种文本协议的逆向解析方法和系统技术方案

技术编号:10393703 阅读:154 留言:0更新日期:2014-09-05 19:35
一种文本协议的逆向解析方法和系统,包括:抓取一文本协议的多个网络数据包,从每一网络数据包中提取应用层数据并转换为文本形式的数据流,得到的多个数据流组成一数据集;对所述数据集中的每一数据流,使用分隔符进行分词处理,将该数据流的内容划分为多个数据项并记录各个数据项的位置信息;对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项;将每一数据流中相同的特征项按行提取出来,将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征。本发明专利技术从同一文本协议大量数据包中分析共性和关联性,得出协议格式,使得逆向解析更为精确。

【技术实现步骤摘要】
一种文本协议的逆向解析方法和系统
本专利技术涉及一种协议逆向解析,更具体地,涉及一种文本协议的逆向解析方法和系统。
技术介绍
信息在不同计算机系统之间交互的过程中,网络通信协议发挥了不可替代的作用,得到越来越高的关注。协议消息的格式对诸多网络安全应用必不可少,如漏洞挖掘、入侵检测系统等。但是许多网络应用协议是非开放的,尤其在企业网络中,正式的协议描述文档越来越少,使得人们不能直接通过协议规范获取协议消息的特征。协议逆向解析不依赖于协议规范或描述,通过分析协议的数据包或交互过程等技术方式,可以逆向提取协议的格式字段等信息,进而进行其它应用如自动生成测试例等。当前协议逆向解析有2种方案:基于协议报文序列分析和基于程序执行轨迹分析。基于协议报文序列分析的核心技术是序列比对,对于同一种协议来说,其不同的报文样本之间具有相似性,序列比对的目的就是寻找相似性内容或结构。其流程如下:通过局部序列比对算法计算报文字节序列之间的相对距离;按照序列相对距离的远近,根据UPGMA(非加权成对群算术平均法)算法构建进化树;采用渐进比对算法遍历进化树,通过层层采用全局序列比对算法实现多序列比对,最后得出协议结构。序列比对的局限性在于对于紧凑、简单、序列结构较为类似的协议,其识别效果较好,对于复杂、冗余较多的协议,其效率和准确度明显降低,而实际情况是很多协议格式是比较复杂的。此外,序列比对以字节作为基元,粒度小,不具有针对性,分析较为繁琐。基于程序执行轨迹的协议逆向解析理论依据在于网络应用程序对协议数据的处理过程包含了大量有关协议消息格式的信息,通过分析网络应用程序对协议数据进行处理的相关指令及数据流信息可以得到协议格式。基于程序执行轨迹的分析是动态分析的方法,其关键技术是动态污点分析技术。其基本流程如下:动态监控网络协议数据的处理过程,实时记录程序执行轨迹,将程序从协议消息读入到内存空间的每个输入字节标记为污点数据,并对应于一个唯一的污点标签(在输入消息中的偏移);对程序执行轨迹进行分析,根据一定的解析策略得到协议的字段,如分隔符、关键词、定长域、变长域等。例如分隔符的解析策略是在执行指令中查找与协议数据中连续位置进行比较的常量字符,定长域的解析策略是域的解析范围由指令中的常量参数指定,等等;将解析出的字段与污点标签(即位置)关联起来,即可得出基本的协议结构。基于程序执行轨迹的动态分析方法,其缺点在于程序执行轨迹需要在程序执行过程中实时记录,而进行实时记录目前尚无公开的工具,因此分析对象的获取较难,而且实时记录程序执行轨迹所需的时空开销很大,每次只是对单条协议消息的处理,导致精确度也不闻。
技术实现思路
本专利技术要解决的技术问题是提供一种更为精确的文本协议的逆向解析方法和系统。为了解决的上述技术问题,本专利技术提供了一种对文本协议的逆向解析方法,包括:抓取一文本协议的多个网络数据包,从每一网络数据包中提取应用层数据并转换为文本形式的数据流,得到的多个数据流组成一数据集;对所述数据集中的每一数据流,使用分隔符进行分词处理,将该数据流的内容划分为多个数据项并记录各个数据项的位置信息;对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项;将每一数据流中相同的特征项按行提取出来,将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征。较佳地,所述分隔符为分隔符集中的分隔符,包括回车换行符、空格符、制表符、逗号、冒号和分号; 所述对每一文本文件,使用分隔符进行分词处理,包括:先根据回车换行符将该数据流的内容划分为一行或多行;再使用其他分隔符对每一行进行划分,得到一个或多个数据项,并记录每一数据项位置信息,包括数据项所在行、列的值。较佳地,所述对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项,包括:判断出现该数据项是否满足以下条件之一:条件一,位置固定;条件二,t(DF)≤ K1X N 且 t (TF) <K2 X N ;如果满足其中的任一条件,则该数据项为特征项,否则非特征项;其中,t(DF)为出现该数据项的数据流的个数,t (TF)为所述数据集中该数据项出现的次数,N为所述数据集包括的数据流的总数,K1为预设的第一比值,K1U ;K2为预设的第二比值,Κ2>1。较佳地,所述K1在1/5~1/2的范围取值,所述1(2在3~6的范围取值。较佳地,所述将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征,包括:对固定域聚类,得到固定域的取值集合;对可变域聚类,得到可变域的域类型和长度信息,其中,所述域类型为文本域和数字域中的一种,所述长度信息为变长和定长中的一种。相应地,本专利技术提供的对文本协议的逆向解析系统包括:预处理模块,用于抓取一文本协议的多个网络数据包,从每一网络数据包中提取应用层数据并转换为文本形式的数据流,得到的多个数据流组成一数据集;分词模块,用于对所述数据集中的每一数据流,使用分隔符进行分词处理,将该数据流的内容划分为多个数据项并记录各个数据项的位置信息;特征提取模块,用于对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项;结构建模模块,用于将每一数据流中相同的特征项按行提取出来,将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征。较佳地 ,所述分词模块使用的所述分隔符为分隔符集中的分隔符,包括回车换行符、空格符、制表符、逗号、冒号和分号;所述分词模块对每一文本文件,使用分隔符进行分词处理,包括:先根据回车换行符将该数据流的内容划分为一行或多行;再使用其他分隔符对每一行进行划分,得到一个或多个数据项,并记录每一数据项位置信息,包括数据项所在行、列的值。较佳地,所述特征提取模块对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项,包括:判断出现该数据项是否满足以下条件之一:条件一,位置固定;条件二,t(DF)≥ K1X N 且 t (TF) <K2 X N ;如果满足其中的任一条件,则该数据项为特征项,否则非特征项;其中,t(DF)为出现该数据项的数据流的个数,t (TF)为所述数据集中该数据项出现的次数,N为所述数据集包括的数据流的总数,K1为预设的第一比值,K1U ;K2为预设的第二比值,Κ2>1。较佳地,所述K1在1/5~1/2的范围取值,所述1(2在3~6的范围取值。较佳地,所述结构建模模块将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征,包括:对固定域聚类,得到固定域的取值集合;对可变域聚类,得到可变域的域类型和长度信息,其中,所述域类型为文本域和数字域中的一种,所述长度信息为变长和定长中的一种。上述基于文本挖掘的协议逆向解析方法和系统,针对文本协议,从同一协议大量数据包中分析共性和关联性,得出协议格式,使得逆向解析更为精确。【附图说明】图1是本专利技术实施例协议逆向解析方法的总体流程示意图;图2是本专利技术实施例协议逆向解析方法的流程图;图3本文档来自技高网
...

【技术保护点】
一种对文本协议的逆向解析方法,包括:抓取一文本协议的多个网络数据包,从每一网络数据包中提取应用层数据并转换为文本形式的数据流,得到的多个数据流组成一数据集;对所述数据集中的每一数据流,使用分隔符进行分词处理,将该数据流的内容划分为多个数据项并记录各个数据项的位置信息;对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项;将每一数据流中相同的特征项按行提取出来,将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征。

【技术特征摘要】
1.一种对文本协议的逆向解析方法,包括: 抓取一文本协议的多个网络数据包,从每一网络数据包中提取应用层数据并转换为文本形式的数据流,得到的多个数据流组成一数据集; 对所述数据集中的每一数据流,使用分隔符进行分词处理,将该数据流的内容划分为多个数据项并记录各个数据项的位置信息; 对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项; 将每一数据流中相同的特征项按行提取出来,将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征。2.如权利要求1所述的方法,其特征在于: 所述分隔符为分隔符集中的分隔符,包括回车换行符、空格符、制表符、逗号、冒号和分号; 所述对每一文本 文件,使用分隔符进行分词处理,包括: 先根据回车换行符将该数据流的内容划分为一行或多行; 再使用其他分隔符对每一行进行划分,得到一个或多个数据项,并记录每一数据项位置信息,包括数据项所在行、列的值。3.如权利要求1或2所述的方法,其特征在于: 所述对每一数据项,根据其位置信息及在所述数据流、数据集中出现次数的统计结果,确定该数据项是否为特征项,包括: 判断出现该数据项是否满足以下条件之一: 条件一,位置固定; 条件二,t (DF)≥ K1XN 且 t (TF)〈K2XN ; 如果满足其中的任一条件,则该数据项为特征项,否则非特征项; 其中,t(DF)为出现该数据项的数据流的个数,t (TF)为所述数据集中该数据项出现的次数,N为所述数据集包括的数据流的总数,K1为预设的第一比值,K1U ;K2为预设的第二比值,Κ2>1。4.如权利要求3所述的方法,其特征在于: 所述K1在1/5~1/2的范围取值,所述1(2在3~6的范围取值。5.如权利要求1或2或4所述的方法,其特征在于: 所述将特征项作为固定域,将相邻的非特征项合并后作为可变域,进行聚类分析,确定所述文本协议的格式特征,包括: 对固定域聚类,得到固定域的取值集合; 对可变域聚类,得到可变域的域类型和长度信息,其中,所述域类型为文本域和数字域中的一种,所述长度信息为变长和定长中的一种。6.一种对文本协议的逆向解析系统,包括: 预处理模块,...

【专利技术属性】
技术研发人员:李建宇刘媛媛
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京;11

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

1