CN113271237B - 工控协议的解析方法、装置、存储介质及处理器 - Google Patents
工控协议的解析方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN113271237B CN113271237B CN202110667843.7A CN202110667843A CN113271237B CN 113271237 B CN113271237 B CN 113271237B CN 202110667843 A CN202110667843 A CN 202110667843A CN 113271237 B CN113271237 B CN 113271237B
- Authority
- CN
- China
- Prior art keywords
- data
- result
- taint
- industrial control
- inspection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本申请公开了一种工控协议的解析方法、装置、存储介质及处理器。该方法包括:获取工控协议的数据报文;对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;基于污点检验结果,解析工控协议。通过本申请,解决了相关技术中对工业控制协议解析时效率较低的问题。
Description
技术领域
本申请涉及信息处理技术领域,具体而言,涉及一种工控协议的解析方法、装置、存储介质及处理器。
背景技术
大多数工控设备的厂商出于安全以及商业等考虑对工控协议并不公开,因此在工控网络中有大量的私有协议。私有协议的存在给工业控制系统带来了很多不确定的风险。首先,由于缺乏协议规范信息,目前现有的一些解析技术无法对协议进行安全测试,比如基于深度包解析识别协议字段语义。另外,因为私有协议没有公开测评,所以出现漏洞的概率大大增加,现阶段很多私有协议都是通过人工分析完成的,或者基于报文的协议分析和逆向方法都是通过机器学习,动态规划,对比,聚类分析,语义分析,关联规则挖掘等方法对报文本身进行格式化的分析,缺点是只能针对数据特征明显的文本协议,且无法分析出数据中未出现过的字段,只能人工对分析结果进行验证,无法自动化对数据进行验证,使得对工控协议的解析时效率变低。
针对相关技术中对工业控制协议解析时效率较低的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种工控协议的解析方法、装置、存储介质及处理器,以解决相关技术中对工业控制协议解析时效率较低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种工控协议的解析方法。该方法包括:获取工控协议的数据报文;对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;基于污点检验结果,解析工控协议。
进一步地,对数据报文进行聚类分析,获取聚类分析结果包括:若工控协议为私有数据协议,根据私有数据协议的标识符信息的不同对数据报文进行原始数据分析,得到原始数据分析结果,其中,原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;对原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
进一步地,控制字段数据内容包括如下至少之一:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
进一步地,控制字段数据类型包括如下至少之一:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
进一步地,采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果包括:基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果,得到执行结果,其中,聚类分析结果作为污点检验数据;将执行结果作为污点检验结果。
进一步地,污点检验结果包括如下至少之一:污点检验数据函数的执行操作指令信息、污点检验数据函数的函数调用链信息。
进一步地,基于污点检验结果,解析工控协议包括:若聚类分析结果与污点检验数据函数的执行操作指令信息匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息匹配;输出匹配结果,基于匹配结果解析工控协议。
进一步地,该方法还包括:若聚类分析结果与污点检验数据函数的执行操作指令信息不匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息不匹配;基于污点检验结果对聚类分析结果进行调整,基于调整后的聚类分析结果解析工控协议。
为了实现上述目的,根据本申请的另一方面,提供了一种工控协议的解析装置。该装置包括:第一获取单元,用于获取工控协议的数据报文;第一分析单元,用于对数据报文进行聚类分析,获取聚类分析结果;第一验证单元,用于采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;第一解析单元,用于基于污点检验结果,解析工控协议。
进一步地,第一分析单元包括:第一分析模块,用于若工控协议为私有数据协议,根据私有数据协议的标识符信息的不同对数据报文进行原始数据分析,得到原始数据分析结果,其中,原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;第二分析模块,用于对原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
进一步地,控制字段数据内容包括如下至少之一:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
进一步地,控制字段数据类型包括如下至少之一:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
进一步地,第一验证单元包括:第一执行模块,用于基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果,得到执行结果,其中,聚类分析结果作为污点检验数据;第一获取模块,用于将执行结果作为污点检验结果。
进一步地,污点检验结果包括如下至少之一:污点检验数据函数的执行操作指令信息、污点检验数据函数的函数调用链信息。
进一步地,第一解析单元包括:第一匹配模块,用于若聚类分析结果与污点检验数据函数的执行操作指令信息匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息匹配;第一解析模块,用于输出匹配结果,基于
匹配结果解析工控协议。
进一步地,该装置还包括:第一匹配单元,用于若聚类分析结果与污点检验数据函数的执行操作指令信息不匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息不匹配;第一调整单元,用于基于污点检验结果对聚类分析结果进行调整,基于调整后的聚类分析结果解析工控协议。
为了实现上述目的,根据本申请的另一方面,提供了一种处理器,所述处理器用于执行程序,其中,所述程序执行时执行上述任意一项所述的方法。
为了实现上述目的,根据本申请的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述任意一项所述的方法。
通过本申请,采用以下步骤:获取工控协议的数据报文;对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;基于污点检验结果,解析工控协议。解决了相关技术中对工业控制协议解析时效率较低的问题,通过对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,基于检验结果,准确解析出工控协议,进而达到了提高对工业控制协议解析效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的工控协议的解析方法的流程图;
图2是根据本申请实施例提供的工控协议的解析方法的系统执行示意图;
图3是根据本申请实施例提供的工控协议的解析方法的聚类分析示意图;
图4是根据本申请实施例提供的工控协议的解析方法的QEMU插桩执行示意图;
图5是根据本申请实施例提供的工控协议的解析方法的工控协议结构示意图;
图6是根据本申请实施例提供的工控协议的解析装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请的实施例,提供了一种工控协议的解析方法。
图1是根据本申请实施例的工控协议的解析方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,获取工控协议的数据报文。
图2是根据本申请实施例提供的工控协议的解析方法的系统执行示意图。如图2所示,经过报文协议初步处理模块,获取多个工控协议基于工控协议获取工控协议的数据报文,并对数据报文进行聚类分析。
步骤S102,对数据报文进行聚类分析,获取聚类分析结果。
具体的,首先是通过工控协议捕捉模块对工控协议数据报文进行捕捉以及抓包,将抓取到的数据报文以二进制的方式进行存储,然后将存储后的数据报文输入至初步处理模块中进行聚类分析。
需要说明的是,上述方案中获取到的工控协议,需要进行判断其工控协议类型,若工控协议类型时私有协议时,可以基于采集到的数据报文的报文协议根据私有数据协议的标识符信息的不同,对数据报文进行原始数据分析,原始数据分析结果至少包含控制字段数据、数据帧数据。
可选地,在本申请实施例提供的工控协议的解析方法中,对数据报文进行聚类分析,获取聚类分析结果包括:若工控协议为私有数据协议,根据私有数据协议的标识符信息的不同对数据报文进行原始数据分析,得到原始数据分析结果,其中,原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;对原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
具体的,若采集到的数据报文是私有的数据报文,按照数据报文功能的不同将数据报文分为控制字段数据以及数据帧数据,其中,利用其功能作用的不同以及协议格式的明显不同对控制字段数据和数据帧数据进行区分,数据帧包括数据荷载部分同时也是通信双方交互以及传递的原始数据。对报文协议格式的影响比较弱,同时对报文协议后续在程序执行当中的影响也不起决定性的作用,因此将协议的数据帧和控制字段区分开来。同时这部分内容与报文协议格式关联较弱,过滤掉协议载荷部分可以使报文协议格式的解析更加高效,避免了对数据报文进行分类时资源的浪费,提升了数据解析时的效率。
可选地,在本申请实施例提供的工控协议的解析方法中,控制字段数据内容包括如下至少之一:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
具体的,对原始数据分析后的控制数据字段,基于序列比对方法进行聚类分析,工控协议数据报文都是具有一定的帧头格式的数据包,按照对其数据包抓包时的特定的操作字串序列,对工控协议数据报文的类型以及功能作用进行原始工控协议数据的划分,将原始数据划分为控制字段以及数据帧数据之后,对原始数据进行进一步地K均值聚类算法聚类分析。其中,控制字段数据的具体的标识符内容信息包括数据源IP地址、目的IP地址、端口协议标识码信息、帧长度标识、工控协议类型以及工控关键字等,上述的标识符在工控协议中分段字节的变化频率较低,且其标识符字节处于协议帧的头部,因此,上述基于标识符提取出工控协议中的目标关键字、目标关键语句以及目标关键格式作为聚类分析结果,其中,目标关键字为工控报文格式下控制字段数据标识符中的工控关键字,目标关键语句为报文协议模式下的工控关键字提炼出的关键语句,目标关键格式为报文协议消息中相对固定的部分格式。
其中,聚类分析计算方式如下:
输入:数值化的报文数据,聚类簇数目k此处拟定为2,指定聚类中心Unit_Center;
输出:协议段初步分类结果;
算法步骤可以如下:
Step1:从数据中选择k个对象作为初始聚类中心;
Step2:计算每个聚类对象到聚类中心的距离来划分;
Step3:再次计算每个聚类中心;
Step4:计算标准测度函数,直到达到最大迭代次数,则停止,否则,继续操作;
Step5:输出基础的协议段分类结果;
可选地,在本申请实施例提供的工控协议的解析方法中,控制字段数据类型包括如下至少之一:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
图3是根据本申请实施例提供的工控协议的解析方法的聚类分析示意图,如图3所示,将原始帧数据进行聚类分析,分为单元化数据(对应于本申请的控制字段数据),并对单元化数据进行属性的配置,最终输出为不同的管理帧字节类型,其中,管理帧主体由长度固定的字段以及长度不定的数据块组成。
也即,对控制字段数据进行于K均值聚类算法计算后,控制字段数据至少可以分类为固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型,其中,固定字段数据一般用于标明工控协议的数据报文信息,例如,协议的数据报文信息包含版本号信息,工控协议的前号码以及标识符信息;地址字段数据包含工控协议进行网络发送时的双方通信的目的IP地址以及源IP地址;序号字段数据用于标明工控协议发送数据的先后顺序;长度字段数据用于记录工控网络协议的字段长度;类型字段数据一般为功能码或者命令;除此之外,控制字段数据还可以分类为校验字段数据以及大小字段数据。
步骤S103,采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果。
工控协议进行聚类分析的结果为两方面,一方面为基于聚类分析对控制字段数据分类后的工控协议,进而确定不同类型的数据报文,另一方面为协议段初步聚类结果(也即本申请中对控制字段数据进行聚类分析结果),将聚类分析确定的不同类型的数据报文作为虚拟化插桩验证执行的输入,采用对数据报文进行遍历的方式,对聚类分析确定的不同类型的数据报文进行污点检验分析,且本申请使用污点检验的分析方式避免了工控协议的分析数据过分依赖样本量,且对工控协议的语法解析以及数据粒度的分析更加的精确。
可选地,在本申请实施例提供的工控协议的解析方法中,采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果包括:基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果,得到执行结果,其中,聚类分析结果作为污点检验数据;将执行结果作为污点检验结果。
具体的,为了使得对数据报文的数据粒度的分析更加精确,以及精确的对工控协议类型的分辨获取,本申请采用目标模拟器作为虚拟化插桩检验方法的污点检验分析平台工具,采用符号执行的程序运行方式对聚类分析结果进行污点检验,针对聚类分析输出的工控协议控制字段数据结果,通过程序运行相应的不同类型、不同作用的报文数据,再根据程序运行结果的反馈,对初步处理模块的聚类结果进行反馈和校正,提高了目标模拟器的虚拟化插桩校验准确性以及校验效率。
可选地,在本申请实施例提供的工控协议的解析方法中,污点检验结果包括如下至少之一:污点检验数据函数的执行操作指令信息、污点检验数据函数的函数调用链信息。
具体的,污点检验分析基于插桩的程序符号执行方法分析,使用QEMU(对应于本申请的目标模拟器)搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果(作为污点检验数据),在工控协议污点分析过程中,插桩的动态污点分析用于追踪协议数据报文在程序内部执行的路径,将经过聚类分析的报文数据进行污点标记,在污点检验数据前后插入分析调用的函数,基于搭建在QEMU上的污点分析平台,记录运行的污点检验数据,后台返回函数执行结果,并对该函数的执行结果采用污点检验分析工具进行分析,得到数据报文在程序运行中的活动轨迹,该轨迹作为污点检验结果至少由两方面组成,包括污点检验数据函数的执行操作指令信息以及污点检验数据函数的函数调用链信息。其中,函数的执行操作指令信息包括如下至少之一:指令地址、指令汇编、污点数据在数据报文中的位置、污点数据原内存地址、污点数据值等;函数调用链信息是指程序运行时函数的调用轨迹信息,并对污点检验数据执行指令的跟踪基于二进制指令操作进行记录,通过对上述信息的分析,可以高效的解析出数据报文的工控协议格式。
图4是根据本申请实施例提供的工控协议的解析方法的QEMU插桩执行示意图,如图4所示,根据不同类型的数据报文输入进虚拟化插桩模块进行污点分析,污点分析引擎主要利用QEMU环境对单独的固件进行程序仿真,以及对程序执行指令进行污点分析。
例如,启动QEMU(纯软件实现的虚拟化模拟器可模拟不同架构的处理器)建立通信连接,开始遍历报文,发送报文A执行污点数据的检验,并记录程序执行的函数链以及程序执行的污点关键函数指令,也可以同时并发式的发送报文B执行污点数据的检验,并记录程序执行的函数链以及程序执行的污点关键函数指令。进而提升校验效率。
步骤S104,基于污点检验结果,解析工控协议。
将污点验证结果与聚类分析结果进行匹配验证,判断协议报文中不同控制字段的作用,以及匹配验证聚类分析结果是否正确,由于协议报文中不同的控制字段数据在不同函数中处理数据的逻辑并不相同,可以作为验证匹配的依据,其中,函数调用链信息与函数的执行操作指令信息两者为嵌套关系,基于匹配验证结果,解析工控协议。
可选地,在本申请实施例提供的工控协议的解析方法中,基于污点检验结果,解析工控协议包括:若聚类分析结果与污点检验数据函数的执行操作指令信息匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息匹配;输出匹配结果,基于匹配结果解析工控协议。
具体的,本申请基于函数调用链信息以及函数的执行操作指令信息之间的调用结合以及与聚类分析结果进行比较来判断协议控制字段数据是否匹配成功,也即判断经过聚类分析的控制字段数据结果是否和污点分析输出的函数调用链信息以及函数的执行操作指令信息相适应,若适应则证明污点检验结果与聚类分析结果相同,则输出工控协议的最终格式作为解析后的工控协议。
例如,图5是根据本申请实施例提供的工控协议的解析方法的工控协议结构示意图,如图5所示,Modbus协议结构如下,包括协议地址段,标识符,协议长度,单元标识符,协议功能码以及协议数据段,假设协议控制字段数据的标识符在Modbus(一种串行通信协议)中都是2bytes,如果聚类分析的结果出现错误,将上述控制字段数据的标识符2bytes判断为3bytes,导致系统将聚类分析的结果作为污点检验数据的输入产生错误,针对不同种类的协议污点检验数据进行输入时,会发现协议控制字段中相同的污点检验数据作为输入的执行结果反而不同,此时,该污点检验数据对应程序运行的函数调用链信息以及函数的执行操作指令信息之间的调用必然不匹配,说明部分协议报文控制字段数据并未划分正确,需要按照污点分析的结果进行重新划分调整。
可选地,在本申请实施例提供的工控协议的解析方法中,方法还包括:若聚类分析结果与污点检验数据函数的执行操作指令信息不匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息不匹配;基于污点检验结果对聚类分析结果进行调整,基于调整后的聚类分析结果解析工控协议。
基于污点检验结果对聚类分析结果进行调整后,需要判断重新遍历调整后的污点分析的结果是否与聚类分析结果匹配,若重新遍历调整后的污点分析的结果与聚类分析结果匹配,输出最终的匹配结果作为解析后的工控协议,本申请通过反复污点校验分析的方式进行控制字段数据的成功匹配,使得控制字段数据的目标格式以及目标语句更加精确规范,进而提高了工控协议的解析效率。
综上,本申请实施例提供的工控协议的解析方法,通过获取工控协议的数据报文;对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;基于污点检验结果,解析工控协议。解决了相关技术中对工业控制协议解析时效率较低的问题,通过对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,基于检验结果,准确解析出工控协议,进而达到了提高对工业控制协议解析效率的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种工控协议的解析装置,需要说明的是,本申请实施例的工控协议的解析装置可以用于执行本申请实施例所提供的用于工控协议的解析方法。以下对本申请实施例提供的工控协议的解析装置进行介绍。
图6是根据本申请实施例的工控协议的解析装置的示意图。如图6所示,该装置包括:第一获取单元601、第一分析单元602、第一验证单元603、第一解析单元604。
具体的,第一获取单元601,用于获取工控协议的数据报文;
第一分析单元602,用于对数据报文进行聚类分析,获取聚类分析结果;
第一验证单元603,用于采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;
第一解析单元604,用于基于污点检验结果,解析工控协议。
综上,本申请实施例提供的工控协议的解析装置,通过第一获取单元601获取工控协议的数据报文;第一分析单元602对数据报文进行聚类分析,获取聚类分析结果;第一验证单元603采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;第一解析单元604基于污点检验结果,解析工控协议,解决了相关技术中对工业控制协议解析时效率较低的问题,通过对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,基于检验结果,准确解析出工控协议,进而达到了提高对工业控制协议解析效率的效果。
可选地,在本申请实施例提供的工控协议的解析装置中,第一分析单元602包括:第一分析模块,用于若工控协议为私有数据协议,根据私有数据协议的标识符信息的不同对数据报文进行原始数据分析,得到原始数据分析结果,其中,原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;第二分析模块,用于对原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
可选地,在本申请实施例提供的工控协议的解析装置中,控制字段数据内容包括如下至少之一:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
可选地,在本申请实施例提供的工控协议的解析装置中,控制字段数据类型包括如下至少之一:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
可选地,在本申请实施例提供的工控协议的解析装置中,第一验证单元603包括:第一执行模块,用于基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果,得到执行结果,其中,聚类分析结果作为污点检验数据;第一获取模块,用于将执行结果作为污点检验结果。
可选地,在本申请实施例提供的工控协议的解析装置中,污点检验结果包括如下至少之一:污点检验数据函数的执行操作指令信息、污点检验数据函数的函数调用链信息。
可选地,在本申请实施例提供的工控协议的解析装置中,在本申请实施例提供的工控协议的解析装置中,第一解析单元604包括:第一匹配模块,用于若聚类分析结果与污点检验数据函数的执行操作指令信息匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息匹配;第一解析模块,用于输出匹配结果,基于匹配结果解析工控协议。
工控协议的解析装置包括处理器和存储器,上述的第一获取单元601、第一分析单元602、第一验证单元603、第一解析单元604等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来进行工控协议的解析。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现工控协议的解析方法。
本发明实施例提供了一种处理器,处理器用于执行程序,其中,程序执行时执行工控协议的解析方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上执行的程序,处理器执行程序时实现以下步骤:获取工控协议的数据报文;对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;基于污点检验结果,解析工控协议。
处理器执行程序时还实现以下步骤:若工控协议为私有数据协议,根据私有数据协议的标识符信息的不同对数据报文进行原始数据分析,得到原始数据分析结果,其中,原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;对原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
处理器执行程序时还实现以下步骤:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
处理器执行程序时还实现以下步骤:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
处理器执行程序时还实现以下步骤:基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果,得到执行结果,其中,聚类分析结果作为污点检验数据;将执行结果作为污点检验结果。
处理器执行程序时还实现以下步骤:污点检验数据函数的执行操作指令信息、污点检验数据函数的函数调用链信息。
处理器执行程序时还实现以下步骤:若聚类分析结果与污点检验数据函数的执行操作指令信息匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息匹配;输出匹配结果,基于匹配结果解析工控协议。
处理器执行程序时还实现以下步骤:若聚类分析结果与污点检验数据函数的执行操作指令信息不匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息不匹配;基于污点检验结果对聚类分析结果进行调整,基于调整后的聚类分析结果解析工控协议。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取工控协议的数据报文;对数据报文进行聚类分析,获取聚类分析结果;采用符号执行的方式对聚类分析结果进行污点检验,得到污点检验结果;基于污点检验结果,解析工控协议。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:若工控协议为私有数据协议,根据私有数据协议的标识符信息的不同对数据报文进行原始数据分析,得到原始数据分析结果,其中,原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;对原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行聚类分析结果,得到执行结果,其中,聚类分析结果作为污点检验数据;将执行结果作为污点检验结果。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:污点检验数据函数的执行操作指令信息、污点检验数据函数的函数调用链信息。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:若聚类分析结果与污点检验数据函数的执行操作指令信息匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息匹配;输出匹配结果,基于匹配结果解析工控协议。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:若聚类分析结果与污点检验数据函数的执行操作指令信息不匹配,和/或,若聚类分析结果与污点检验数据函数的函数调用链信息不匹配;基于污点检验结果对聚类分析结果进行调整,基于调整后的聚类分析结果解析工控协议。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种工控协议的解析方法,其特征在于,包括:
获取工控协议的数据报文;
对所述数据报文进行聚类分析,获取聚类分析结果;
采用符号执行的方式对所述聚类分析结果进行污点检验,得到污点检验结果;
基于所述污点检验结果,解析所述工控协议;
其中,所述污点检验结果包括如下至少之一:污点检验数据函数的执行操作指令信息、所述污点检验数据函数的函数调用链信息;
基于所述污点检验结果,解析所述工控协议包括:
若所述聚类分析结果与所述污点检验数据函数的执行操作指令信息匹配,和/或,若所述聚类分析结果与所述污点检验数据函数的函数调用链信息匹配;
输出匹配结果,基于所述匹配结果解析所述工控协议;
若所述聚类分析结果与所述污点检验数据函数的执行操作指令信息不匹配,和/或,若所述聚类分析结果与所述污点检验数据函数的函数调用链信息不匹配;
基于所述污点检验结果对所述聚类分析结果进行调整,基于调整后的聚类分析结果解析所述工控协议。
2.根据权利要求1所述的方法,其特征在于,对所述数据报文进行聚类分析,获取聚类分析结果包括:
若所述工控协议为私有数据协议,根据所述私有数据协议的标识符信息的不同对所述数据报文进行原始数据分析,得到原始数据分析结果,其中,所述原始数据分析结果包括如下至少之一:控制字段数据、数据帧数据;
对所述原始数据分析结果采用序列比对的方法进行聚类分析,得到聚类分析结果,其中,所述聚类分析结果包括如下至少之一:目标关键字、目标关键语句、目标关键格式。
3.根据权利要求2所述的方法,其特征在于,所述控制字段数据内容包括如下至少之一:源IP地址、目的IP地址、端口协议的标识信息、数据长度标识、协议类型以及目标关键字。
4.根据权利要求2所述的方法,其特征在于,所述控制字段数据类型包括如下至少之一:固定字段数据类型、地址字段数据类型、序号字段数据类型、长度字段数据类型以及类型字段数据类型。
5.根据权利要求1所述的方法,其特征在于,采用符号执行的方式对所述聚类分析结果进行污点检验,得到污点检验结果包括:
基于目标模拟器搭建污点检验分析平台,基于符号执行的方式在污点检验分析平台上执行所述聚类分析结果,得到执行结果,其中,所述聚类分析结果作为污点检验数据;
将所述执行结果作为污点检验结果。
6.一种工控协议的解析装置,其特征在于,包括:
第一获取单元,用于获取工控协议的数据报文;
第一分析单元,用于对所述数据报文进行聚类分析,获取聚类分析结果;
第一验证单元,用于采用符号执行的方式对所述聚类分析结果进行污点检验,得到污点检验结果;
第一解析单元,用于基于所述污点检验结果,解析所述工控协议;
其中,所述污点检验结果包括如下至少之一:污点检验数据函数的执行操作指令信息、所述污点检验数据函数的函数调用链信息;
基于所述污点检验结果,解析所述工控协议包括:
若所述聚类分析结果与所述污点检验数据函数的执行操作指令信息匹配,和/或,若所述聚类分析结果与所述污点检验数据函数的函数调用链信息匹配;
输出匹配结果,基于所述匹配结果解析所述工控协议;
若所述聚类分析结果与所述污点检验数据函数的执行操作指令信息不匹配,和/或,若所述聚类分析结果与所述污点检验数据函数的函数调用链信息不匹配;
基于所述污点检验结果对所述聚类分析结果进行调整,基于调整后的聚类分析结果解析所述工控协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110667843.7A CN113271237B (zh) | 2021-06-16 | 2021-06-16 | 工控协议的解析方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110667843.7A CN113271237B (zh) | 2021-06-16 | 2021-06-16 | 工控协议的解析方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113271237A CN113271237A (zh) | 2021-08-17 |
CN113271237B true CN113271237B (zh) | 2022-12-13 |
Family
ID=77235142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110667843.7A Active CN113271237B (zh) | 2021-06-16 | 2021-06-16 | 工控协议的解析方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113271237B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125079B (zh) * | 2021-09-07 | 2023-09-12 | 北京网藤科技有限公司 | 一种火电安全模拟平台协议解析系统及其解析方法 |
CN114338104B (zh) * | 2021-12-15 | 2023-04-25 | 北京六方云信息技术有限公司 | 安全网关解析功能验证方法、装置、设备及存储介质 |
CN114944997B (zh) * | 2022-03-24 | 2024-02-20 | 浙江大华技术股份有限公司 | 一种协议检测方法、协议检测装置和计算机可读存储介质 |
CN114760234A (zh) * | 2022-03-30 | 2022-07-15 | 中核武汉核电运行技术股份有限公司 | 一种工控系统协议解析结果的验证系统和方法 |
CN115866087B (zh) * | 2022-11-29 | 2023-11-17 | 广发银行股份有限公司 | 一种报文映射、报文转换方法、装置及传输系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213243A (zh) * | 2019-05-15 | 2019-09-06 | 浙江大学 | 一种基于动态污点分析的工业通信协议逆向分析方法 |
CN112817877A (zh) * | 2021-04-19 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 异常脚本检测方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831562A (zh) * | 2020-07-08 | 2020-10-27 | 信联科技(南京)有限公司 | 一种基于机器学习的模糊测试用例生成方法及运行该方法的计算机设备与可读存储介质 |
-
2021
- 2021-06-16 CN CN202110667843.7A patent/CN113271237B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213243A (zh) * | 2019-05-15 | 2019-09-06 | 浙江大学 | 一种基于动态污点分析的工业通信协议逆向分析方法 |
CN112817877A (zh) * | 2021-04-19 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 异常脚本检测方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113271237A (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113271237B (zh) | 工控协议的解析方法、装置、存储介质及处理器 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN111797403B (zh) | 基于大数据和物联网的数据处理方法及云计算服务器中心 | |
US11601462B2 (en) | Systems and methods of intelligent and directed dynamic application security testing | |
CN112035359B (zh) | 程序测试方法、装置、电子设备及存储介质 | |
CN110909363A (zh) | 基于大数据的软件第三方组件漏洞应急响应系统及方法 | |
CN112511546A (zh) | 基于日志分析的漏洞扫描方法、装置、设备和存储介质 | |
CN112822187B (zh) | 网络攻击的检测方法及装置 | |
JP2018505506A (ja) | 機械ベースの命令編集 | |
CN113328914B (zh) | 工控协议的模糊测试方法、装置、存储介质及处理器 | |
CN105630656A (zh) | 基于日志模型的系统健壮性分析方法及装置 | |
CN113722719A (zh) | 针对安全拦截大数据分析的信息生成方法及人工智能系统 | |
CN111124870A (zh) | 一种接口测试方法及装置 | |
CN112131573A (zh) | 安全漏洞的检测方法、装置及存储介质 | |
CN116346456A (zh) | 业务逻辑漏洞攻击检测模型训练方法及装置 | |
CN111309589A (zh) | 一种基于代码动态分析的代码安全扫描系统及方法 | |
CN114024761A (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
CN114036526A (zh) | 漏洞测试方法、装置、计算机设备和存储介质 | |
CN111625448B (zh) | 协议包生成方法、装置、设备及存储介质 | |
Zhang et al. | Automatic detection of Android malware via hybrid graph neural network | |
CN116821903A (zh) | 检测规则确定及恶意二进制文件检测方法、设备及介质 | |
CN116415851A (zh) | 一种基于深度学习的设施运维性态指标智能识别评价方法 | |
CN115982053A (zh) | 一种检测软件源代码缺陷的方法、装置及应用 | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
CN115828264A (zh) | 智能合约漏洞检测方法、系统及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |