一种基于语义预挖掘的工控协议逆向分析方法技术

技术编号:25405995 阅读:20 留言:0更新日期:2020-08-25 23:09
本发明专利技术公开了一种基于语义预挖掘的工控协议逆向分析方法,在进行协议格式逆向分析之前,通过对时间戳、长度、序号等语义的预先挖掘,然后再进行字段划分的方法,实现工控数据样本协议逆向分析结果的优化。该方法的基本思想是:在对目标工控数据样本进行协议格式分析时,首先将待分析的样本集根据报文长度进行聚类,然后针对不同类别的报文分别分析其中是否有时间戳、长度、序号等字段,对发现的语义字段用通配符替换;在完成语义的预先分析之后,采用Needleman‑Wunsch序列比对算法对数据样本进行分析;最后将分析结果中再将预先分析得到的语义结果进行替换,从而提升分析结果的准确性。本发明专利技术具有分析结果准确、语义识别率高等优点。

【技术实现步骤摘要】
一种基于语义预挖掘的工控协议逆向分析方法
本专利技术涉及一种对工控协议进行逆向分析的方法,具体是一种基于语义预挖掘的工控协议逆向分析方法,属于信息安全

技术介绍
基于网络流量的工控协议逆向分析技术是通过对上位机和工控设备之间的通信流量进行逆向分析,从而推断出流量所遵循的通信协议,并以此作为模糊测试和漏洞挖掘等技术的基础。基于网络流量的方法具有通用性强,不依赖复杂的技术的特点,因此广泛应用于协议逆向领域。在现有的基于网络流量的工控协议逆向方法中,经典的分析方法是采用Needleman-Wunsch等序列比对算法计算报文字节序列之间的相对距离,然后将具备较高相似性的报文序列聚类到一起,再根据相同类别中报文内容的变化特征进行字段的切分。然而,这种方法在很多时候会出现失效的情况,这是因为许多字段不仅仅是由单纯的可变数据或者固定数据所构成,很多时候还是由两种组合而成,在这种情况下,序列比对算法会将这种类型的字段拆分为两个部分,从而破坏实际协议的格式,影响后续字段语义的识别,甚至导致分析结果失败,典型的例子包括时间戳字段和具有多个字节的长度、序号等字段。同时,这些字段中的变化部分也可能会导致序列比对算法在对报文集合进行聚类的时候,将某些具有相同报文结构的报文划分到不同的类别中,从而降低分析结果的准确性。
技术实现思路
专利技术目的:针对工控协议逆向分析过程中采用序列比对算法时难以准确识别出由固定数据和可变数据构成的字段问题,提出一种基于语义预挖掘的工控协议逆向分析方法,从而提高协议逆向分析结果的准确性。经过研究表明,部分带有特定语义的字段具有较为显著的特征,可以利用这些特征预先对样本数据进行初步的分析和处理,从中挖掘出相应的语义,然后将这一信息代入到后续的序列比对分析过程中,从而可以提高分析的效果。为此通过语义预挖掘技术来改善协议逆向效果具有非常重要的作用。技术方案:一种基于语义预挖掘的工控协议逆向分析方法,着重描述了在对未知工控协议进行协议逆向分析时所采用的方法,在对目标工控数据样本进行协议格式分析时,首先将待分析的样本集根据报文长度进行聚类,然后针对不同类别的报文分别发现和标识语义字段,完成语义的预先分析,之后,采用Needleman-Wunsch序列比对算法对数据样本进行分析;最后在分析结果中再将预先分析得到的语义结果进行替换。具体包括以下步骤:步骤1,读取要进行协议逆向分析的样本数据集中的报文,并将报文保存到报文集合Dataset中,然后转入步骤2;步骤2,采用聚类算法对Dataset中的报文进行分析,将所有报文长度相同的报文分别聚合到一起,然后转入步骤3;步骤3,对每个类别的报文进行时间戳语义识别,如果识别出时间戳字段,则将该字段的位置进行标识,然后转入步骤4;步骤4,对每个类别的报文进行长度和序号识别,如果识别出长度或序号字段,则将该字段位置标识为长度或序号字段,然后转入步骤5;步骤5,将Dataset中被标识为时间戳、长度和序号字段的报文内容采用通配符替代,然后采用Needleman-Wunsch序列比对算法对Dataset中的报文进行协议逆向分析,然后转入步骤6;步骤6,对得到的分析结果中的通配符部分按照之前的替换方式反向替换,得到原始的数据内容和相应的语义标识,然后将转换后的结果作为最终的分析结果,并结束程序的运行。所述步骤3中,对每个类别的报文从头开始以4个字节长度为单位进行时间戳语义识别,如果识别出时间戳字段,则将该字段的位置进行标识。所述步骤3中,对每个类别的报文进行时间戳语义识别,如果识别出时间戳字段,则将该字段的位置进行标识,使用通配符将时间戳字段的内容进行替换,同时生成记录表,记录报文中被替换的时间戳字段的内容和位置。所述步骤4中,对每个类别的报文从头开始分别以2个字节和1个字节长度为单位进行长度和序号识别,如果识别出长度或序号字段,则将该字段位置标识为长度或序号字段。所述步骤4中,对每个类别的报文进行长度和序号识别,如果识别出长度或序号字段,则将该字段位置标识为长度或序号字段,使用通配符分别将长度和序号字段的内容进行替换,同时生成记录表,分别记录报文中被替换的长度字段和序号字段的内容和位置。所述步骤5中,将Dataset中被标识为时间戳、长度和序号字段的报文内容采用通配符“*”替代。本专利技术相对现有技术具有以下优点:(1)能提高协议语义的识别率:本专利技术提出的方法能够通过语义的预挖掘提前进行语义分析,从而避免时间戳等字段的结构被错误划分导致语义分析的失败,从而提高了协议语义的识别率。(2)能提高分析结果的准确度:本专利技术方法在采用目前国际上较为认可和流行的Needleman-Wunsch序列比对算法对协议进行逆向分析之前通过语义预挖掘和内容替换,可以提高报文之间的相似性,从而将属于同一种结构的报文划归到一类,保证了分析结果的准确性。附图说明图1为本专利技术实施例对样本数据集进行工控协议逆向分析和处理的流程图。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。首先给出基于语义预挖掘的工控协议逆向分析方法所需要的运行环境。本专利技术所需的运行环境为一台Intel-Windows架构的PC机以及格式为pcap类型的样本数据集,该样本数据集可采用wireshark等工具通过抓包的方式获得,且样本数据集中的报文都与待分析的工控协议有关。运行本专利技术提供的基于语义预挖掘的工控协议逆向分析方法的PC机系统配置如下:在Intel-Windows架构的PC机上安装并运行基于本专利技术方法实现的软件,该PC机硬件的主频2.5GHz及以上的Core八核CPU的PC机,内存≥4GB,硬盘500GB,运行Windows7操作系统。图1给出了本专利技术基于语义预挖掘的工控协议逆向分析方法的处理流程,该流程开始于步骤S101,程序读取pcap文件并将所有报文都添加到数据集Dataset中,然后转S102。在步骤S102中,采用聚类算法对Dataset中的报文聚类,将具有相同长度的报文划归到同一类别中,然后转S103。在步骤S103中,对每个类别的报文从头开始以4个字节长度为单位进行时间戳语义识别,然后转S104。在步骤S104中,判断报文中是否有时间戳字段,如果有转S105,否则转S106。在步骤S105中,对时间戳字段进行标识,并将时间戳字段内容全部用通配符“*”替换,同时生成记录表,记录报文中被替换的时间戳字段的内容和位置,然后转S106。在步骤S106中,对每个类别的报文从头开始分别以2个字节长度和1个字节长度为单位进行长度和序号语义识别,然后转S107。在步骤S107中,判断报文中是否有长度或序号字段,如果有转S108,否则转S109。在本文档来自技高网...

【技术保护点】
1.一种基于语义预挖掘的工控协议逆向分析方法,其特征在于:在对目标工控数据样本进行协议格式分析时,首先将待分析的样本集根据报文长度进行聚类,然后针对不同类别的报文分别发现和标识语义字段,完成语义的预先分析,之后,采用Needleman-Wunsch序列比对算法对数据样本进行分析;最后在分析结果中再将预先分析得到的语义结果进行替换。/n

【技术特征摘要】
1.一种基于语义预挖掘的工控协议逆向分析方法,其特征在于:在对目标工控数据样本进行协议格式分析时,首先将待分析的样本集根据报文长度进行聚类,然后针对不同类别的报文分别发现和标识语义字段,完成语义的预先分析,之后,采用Needleman-Wunsch序列比对算法对数据样本进行分析;最后在分析结果中再将预先分析得到的语义结果进行替换。


2.根据权利要求1所述的基于语义预挖掘的工控协议逆向分析方法,其特征在于,将待分析的样本集根据报文长度进行聚类,针对不同类别的报文分别发现和标识语义字段,完成语义的预先分析,具体包括如下步骤:
步骤1,读取要进行协议逆向分析的样本数据集中的报文,并将报文保存到报文集合Dataset中,然后转入步骤2;
步骤2,采用聚类算法对Dataset中的报文进行分析,将所有报文长度相同的报文分别聚合到一起,然后转入步骤3;
步骤3,对每个类别的报文进行时间戳语义识别,如果识别出时间戳字段,则将该字段的位置进行标识,然后转入步骤4;
步骤4,对每个类别的报文进行长度和序号识别,如果识别出长度或序号字段,则将该字段位置标识为长度或序号字段,然后转入步骤5;
步骤5,将Dataset中被标识为时间戳、长度和序号字段的报文内容采用通配符替代。


3.根据权利要求2所述的基于语义预挖掘的工控协议逆向分析方法,其特征在于:采用Needleman-Wunsch序列比对算法对步骤5的Dataset中的报文进行协议逆向分析;并且对得到的分析结果中的通配符部分按照之前的替换方式反向替换,得到原始的数据内容和相应的语义标识,然后将转换后的结果作为最终的分析结果。


4.根据权利要求1所述的基于语义预挖掘的工控协议逆向分析方法,其特征...

【专利技术属性】
技术研发人员:王群苏子漪叶时平王章权
申请(专利权)人:浙江树人学院浙江树人大学
类型:发明
国别省市:浙江;33

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

1