CN108924010A - 一种通信协议识别方法及装置 - Google Patents

一种通信协议识别方法及装置 Download PDF

Info

Publication number
CN108924010A
CN108924010A CN201810827599.4A CN201810827599A CN108924010A CN 108924010 A CN108924010 A CN 108924010A CN 201810827599 A CN201810827599 A CN 201810827599A CN 108924010 A CN108924010 A CN 108924010A
Authority
CN
China
Prior art keywords
bit
sequence
bit stream
frequent mode
mode
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.)
Pending
Application number
CN201810827599.4A
Other languages
English (en)
Inventor
梁野
王景
邵立嵩
苏达
马力
李航
孙辰军
李士林
卢朝晖
刘欣
王琼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
State Grid Hebei Electric Power Co Ltd
Beijing Kedong Electric Power Control System Co Ltd
NARI Group Corp
Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd
Original Assignee
State Grid Hebei Electric Power Co Ltd
Beijing Kedong Electric Power Control System Co Ltd
Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Hebei Electric Power Co Ltd, Beijing Kedong Electric Power Control System Co Ltd, Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd filed Critical State Grid Hebei Electric Power Co Ltd
Priority to CN201810827599.4A priority Critical patent/CN108924010A/zh
Publication of CN108924010A publication Critical patent/CN108924010A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本申请提供了一种通信协议识别方法及装置,该方法中,首先读取比特流,基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,有限状态自动机的最大位数与频繁模式序列包含的比特的位数的最大值保持一致;再从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;然后根据具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,数据帧为构成比特流的基本单元;最后将至少两个数据帧之间进行对比,确定比特流的通信协议格式。通过这种方式能解析纯比特流数据,实现对未知通信协议的识别,增加了提升工业控制系统通信时的安全性。

Description

一种通信协议识别方法及装置
技术领域
本申请涉及计算机技术领域,尤其是涉及一种通信协议识别方法及装置。
背景技术
随着信息技术的高速发展,工业控制网络应用的也越来越广泛,但随着工业控制网络的普及使用,工业控制网络的通信安全也面临着严重的威胁。
为了保障工业控制系统的通信安全,目前可以针对工业控制系统接收到的数据包进行通信协议的识别,例如常用的通信协议的识别方法包括基于端口号的协议分析技术、基于深度包检测的协议分析技术、基于深度流检测的协议分析技术等。然而上述识别技术只能识别出常见的已知格式的通信协议,对于一些不常见或一些未知的通信协议并不能有效识别出来。并且,上述识别技术使用的协议解析工具的基本解析对象是数据包,对于完全未经加工的原始数据,如比特流等并不能进行有效分析。
基于此,在进行通信协议识别时很可能出现因无法有效识别通信协议而导致工业控制网络遭受安全威胁的问题。
发明内容
有鉴于此,本申请的目的在于提供一种通信协议识别方法及装置,以提升工业控制系统通信时的安全性。
第一方面,本申请实施例提供了一种通信协议识别方法,该方法包括:
读取比特流;
基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,有限状态自动机的最大位数与频繁模式序列包含的比特的位数的最大值保持一致;
从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;
根据具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,数据帧为构成比特流的基本单元;
将至少两个数据帧之间进行对比,确定比特流的通信协议格式。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,包括:
每读取一个比特,在有限状态自动机中统计由该比特构成的模式序列的出现次数;
判断由该比特构成的模式序列的出现次数是否大于计算的第一阈值;
当判断结果为是时,确定由该比特构成的模式序列为频繁模式序列;
当判断结果为否时,确定由该比特构成的模式序列不为频繁模式序列,并在有限状态自动机中将由该比特构成的模式序列删除。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第二种可能的实施方式,其中,在有限状态自动机中统计由该比特构成的模式序列的出现次数之后,本方法还包括:
根据读取的比特流包含的比特的总位数、以及由该比特构成的模式序列包含的比特的总位数,计算第一阈值。
结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,其中,从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列,包括:
计算每两个频繁模式序列之间的置信度;
将置信度在预设的第二阈值范围内的每两个频繁模式序列确定为具有关联关系的频繁模式序列。
结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,对读取的比特流进行切分,得到至少两个数据帧,包括:
以具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从比特流中查找与切分序列相同的匹配序列,匹配序列包括比特流中连续的至少一个比特;
将查找到的当前的匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个匹配序列的前一个比特作为一个数据帧的结束位置,对比特流进行切分,得到至少两个数据帧。
第二方面,本申请实施例还提供一种通信协议识别装置,包括:
读取模块,用于读取比特流;
筛选模块,用于基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,有限状态自动机的最大位数与频繁模式序列包含的比特的位数的最大值保持一致;
第一确定模块,用于从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;
切分模块,用于根据具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,数据帧为构成比特流的基本单元;
第二确定模块,用于将至少两个数据帧之间进行对比,确定比特流的通信协议格式。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,筛选模块在从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列时,具体用于:
每读取一个比特,在有限状态自动机中统计由该比特构成的模式序列的出现次数;
判断由该比特构成的模式序列的出现次数是否大于计算的第一阈值;
当判断结果为是时,确定由该比特构成的模式序列为频繁模式序列;
当判断结果为否时,确定由该比特构成的模式序列不为频繁模式序列,并在有限状态自动机中将由该比特构成的模式序列删除。
结合第二方面的第一种可能的实施方式,本申请实施例提供了第二方面的第二种可能的实施方式,其中,筛选模块,在有限状态自动机中统计由该比特构成的模式序列的出现次数之后,还用于:
根据读取的比特流包含的比特的总位数、以及由该比特构成的模式序列包含的比特的总位数,计算第一阈值。
结合第二方面,本申请实施例提供了第二方面的第三种可能的实施方式,其中,第一确定模块,在从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列时,具体用于:
计算每两个频繁模式序列之间的置信度;
将置信度在预设的第二阈值范围内的每两个频繁模式序列确定为具有关联关系的频繁模式序列。
结合第二方面,本申请实施例提供了第二方面的第四种可能的实施方式,其中,切分模块在对读取的比特流进行切分,得到至少两个数据帧时,具体用于:
以具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从比特流中查找与切分序列相同的匹配序列,匹配序列包括比特流中连续的至少一个比特;
将查找到的当前的匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个匹配序列的前一个比特作为一个数据帧的结束位置,对比特流进行切分,得到至少两个数据帧。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线通信,机器可读指令被处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本申请实施例提供的一种通信协议识别方法及装置,通过读取比特流,基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,有限状态自动机的最大位数与频繁模式序列包含的比特的位数的最大值保持一致;再从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;然后根据具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,数据帧为构成比特流的基本单元;最后将至少两个数据帧之间进行对比,确定比特流的通信协议格式。与传统的通信协议识别技术相比,通过这种方式能解析纯比特流数据,且能实现对未知通信协议的识别,增加了提升工业控制系统通信时的安全性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的通信协议识别方法的流程图;
图2示出了本申请实施例所提供的完全二叉树形有限状态自动机示意图;
图3示出了本申请实施例所提供的完全二叉树形态的状态图;
图4示出了本申请实施例所提供的通信协议识别装置400的结构示意图;
图5示出了本申请实施例所提供的一种电子设备500的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前对通信协议的识别主要是对已知格式的协议进行解析,且解析对象是数据包,对于比特流数据仍然无法进行识别,这可能会对工业控制系统的通信安全带来威胁。基于此,本申请实施例提供了一种通信协议识别方法及装置,用以提升工业控制系统通信时的安全性。
下面,为便于对申请进行理解,给出具体实施例对本申请提供的通信协议识别方法及装置进行详细说明。
实施例一
参照图1所示,为本申请实施例提供的通信协议识别方法的流程示意图,包括以下步骤:
S101、读取比特流。
在本步骤中,工业控制系统在与其它设备之间进行通信时,可以接收来自其它设备的数据,数据的传输过程可以理解为是连续多个比特的传输过程。这里,可以将传输的连续多个比特称为比特流,每个比特的取值为0或1。
S102、基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列。
在本步骤中,可以预先设定由至少一个比特组成的模式序列的长度范围为L(min,max),该长度范围可以根据匹配经验和结果进行动态调整。其中,模式序列的最大长度max表示模式序列能够包括的比特的最大数量,模式序列的最小长度min表示模式序列能够包括的比特的最小数量。示例性的,可以将最大长度max配置为8,即模式序列最多包含8个比特,将最小长度min配置为3,即模式序列最少包含3个比特。
其中,有限状态自动机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型,具体的,在本申请中是记录有限个模式序列在有限长的比特流中的出现次数的数学模型。从构成来说,本申请有限状态自动机为完全二叉树形有限状态自动机;从类型来说,本申请的有限状态自动机为数组型有限状态自动机,即完全二叉树的每个节点都为一个数组。
具体实施中,首先可以根据预先设定的模式序列的长度范围为L(min,max),建立深度为max+1位的完全二叉树形有限状态自动机,该完全二叉树形有限状态自动机所包含的模式序列的最大长度为max,模式序列的最小长度为min。完全二叉树中每个节点可以表示一个模式序列,故这里将父节点称为父序列,将子节点称为子序列。如图2所示,建立的完全二叉树形有限状态自动机的深度为4,该完全二叉树的根部为空,每一个父序列都有两个子序列,其中,子序列表示的模式序列为父序列表示的模式序列后分别加0或1构成,其中,父序列或子序列所表示模式序列的最大长度为3、模式序列的最小长度为1。
进一步地,针对完全二叉树形有限状态自动机中每个父序列或子序列,可以配置用于标识父序列或子序列所表示的模式序列的状态。例如,参照图3所示的完全二叉树形态的状态图,与图2所示的完全二叉树形有限状态自动机相对应,图3中分别为每个父序列或子序列配置了状态值,例如,状态1标识模式序列“0”,状态3标识模式序列“00”等。
读取比特流时,每读取一位比特,可以在二叉树形有限状态自动机中统计对应模式序列出现的次数,进一步地,针对每一个由该比特构成的模式序列,计算该模式序列所对应的第一阈值,进而判断由该比特构成的模式序列的出现次数是否大于计算的第一阈值,如果判断结果为是,则可以确定由该比特构成的模式序列为频繁模式序列;如果判断结果为否,则可以确定由该比特构成的模式序列不为频繁模式序列,并可以在有限状态自动机中将由该比特构成的模式序列删除。
其中,第一阈值可根据读取的比特流包含的比特的总位数、以及由该比特构成的模式序列包含的比特的总位数的计算得到,例如一种计算公式可以为:
(n-m+1)*0.8/2m
其中,n为读取的比特流包含的比特的总位数,m为由该比特构成的模式序列包含的比特的总位数。
读取所有的比特流以后,将所有模式序列的出现次数小于第一阈值的模式序列删除后,剩下的模式序列即为频繁模式序列,所述删除模式序列的操作可以理解为对完全二叉树中的父序列或子序列进行剪枝操作。
本申请实施例中,在二叉树形有限状态自动机中统计父序列或子序列所表示的模式序列的出现次数时,也可以利用数组型有限状态自动机。下面以预设的模式序列的长度范围为L(1,3),读取比特流为“00101010”为例,对上述统计模式序列的出现次数的方法进行详细描述:
建立T、A、B、C三个数组,数组T表示记录模式序列的出现次数的数组型有限状态自动机,数组A记录由最新读入的比特组成的模式序列,数组B记录由最新读入的比特和前一位比特组成的模式序列,数组C记录由最新读入的比特和前两位比特组成的模式序列。
顺序读取比特流数据,更新数组A、B、C,以及数组T中的次数。
其中数组T中描述了完全二叉树有限有限自动机中父序列或子序列所表示的模式序列与用于标识模式序列的状态之间的对应关系。本示例中,对应关系如下表1所示:
表1
其中,如状态3在比特流中出现次数可用T[3]表示,而T[3]=5,则表示状态3所对应的模式序列“10”在所统计的比特流中出现的次数为5。
读取比特流之前,A、B、C、T数组均为空数组;
1)读入第1位0:
A:数组A记录的模式序列为“0”,T[0]为模式序列“0”所对应的出现次数,T[0]=1;
B:没有前一位比特,因此数组B记录的模式序列为空;
C:没有前两位比特,因此数组C记录的模式序列为空;
2)读入第2位0:
A:最新读入的比特为“0”,因此数组A记录的模式序列为“0”,T[0]为模式序列“0”所对应的出现次数,T[0]=2;
B:前一位比特为“0”,因此数组B记录的模式序列为“00”,T[2]为模式序列“00”所对应的出现次数,T[2]=1;
C:没有前两位比特,因此数组C记录的模式序列为空;
3)读入第3位1:
A:最新读入的比特为“1”,因此数组A记录的模式序列为“1”,T[1]为模式序列“1”所对应的出现次数,T[1]=1;
B:前一位比特为“0”,因此数组B记录的模式序列为“01”,T[4]为模式序列“01”所对应的出现次数,T[4]=1;
C:前两位比特为“01”,因此数组C记录的模式序列为“001”,T[8]为模式序列“001”所对应的出现次数,T[8]=1;
4)读入第4位0:
A:最新读入的比特为“0”,因此数组A记录的模式序列为“0”,T[0]为模式序列“0”所对应的出现次数,T[0]=3;
B:前一位比特为“1”,因此数组B记录的模式序列为“10”,T[3]为模式序列“10”所对应的出现次数,T[3]=1;
C:前两位比特为“10”,因此数组C记录的模式序列为“010”,T[10]为模式序列“010”所对应的出现次数,T[10]=1;
5)读入第5位1:
A:最新读入的比特为“1”,因此数组A记录的模式序列为“1”,T[1]为模式序列“1”所对应的出现次数,T[1]=2;
B:前一位比特为“0”,因此数组B记录的模式序列为“01”,T[4]为模式序列“01”所对应的出现次数,T[4]=2;
C:前两位比特为“01”,因此数组C记录的模式序列为“101”,T[9]为模式序列“101”所对应的出现次数,T[9]=1;
6)读入第6位0:
A:最新读入的比特为“0”,因此数组A记录的模式序列为“0”,T[0]为模式序列“0”所对应的出现次数,T[0]=4;
B:前一位比特为“1”,因此数组B记录的模式序列为“10”,T[3]为模式序列“10”所对应的出现次数,T[3]=2;
C:前两位比特为“10”,因此数组C记录的模式序列为“010”,T[10]为模式序列“010”所对应的出现次数,T[10]=2;
7)读入第7位1:
A:最新读入的比特为“1”,因此数组A记录的模式序列为“1”,T[1]为模式序列“1”所对应的出现次数,T[1]=3;
B:前一位比特为“0”,因此数组B记录的模式序列为“01”,T[4]为模式序列“01”所对应的出现次数,T[4]=3;
C:前两位比特为“01”,因此数组C记录的模式序列为“101”,T[9]为模式序列“101”所对应的出现次数,T[9]=2;
8)读入第8位0:
A:最新读入的比特为“0”,因此数组A记录的模式序列为“0”,T[0]为模式序列“0”所对应的出现次数,T[0]=5;
B:前一位比特为“1”,因此数组B记录的模式序列为“10”,T[3]为模式序列“10”所对应的出现次数,T[3]=3;
C:前两位比特为“10”,因此数组C记录的模式序列为“010”,T[10]为模式序列“010”所对应的出现次数,T[10]=3;
由此可统计出每个模式序列的出现次数。
本示例中,针对每个模式序列对应的第一阈值的计算公式例如为:(n-m+1)*0.8/2^m
其中,m为每个模式序列包含的比特的总位数,n为读取的比特流包含的比特的总位数,在本示例中,因为读取的比特流为“00101010”,所以n为8。
通过上述示例示出的统计方式,可以得到模式序列的出现次数的统计结果如表2所示:
表2
以模式序列“101”为例,出现次数为2,表示读取的比特流中包括两段“101”,计算模式序列“101”对应的第一阈值为:(8-3+1)*0.8/2^3=0.6,因为2>0.6,因此模式序列“101”是频繁模式序列。
在从有限状态自动机中删除不是频繁模式序列的模式序列时,对比要删除的模式序列的子序列,若要删除的模式序列的子序列的出现次数小于该模式序列第一阈值的一半,则要删除的模式序列的子序列也应该被删除;若要删除的模式序列的子序列的出现次数大于第一阈值,则该模式序列保留。
遍历二叉树时,本申请实施例中还提出了剪枝的反馈周期,对于一些包含比特位数比较多的比特流,若一次读取完所有比特,再进行频繁模式序列的确定,其过程所耗费时间较长,因此提出剪枝的反馈周期,将比特流分为与该周期长度大小相同的小段,按顺序对每一小段比特流进行一次频繁模式序列的确定,删除不是频繁模式序列的模式序列。若前一段已经删掉的模式序列,在下一段中可不做统计,从而加快频繁模式序列的挖掘速度。
下面以读取的比特流长度为1000为比特为例,对反馈周期做详细介绍:
例如,假设比特流长度为1000位比特,在筛选频繁模式序列时可以分为4个反馈周期,每一个反馈周期内可以分别读取100个比特并统计这100个比特中模式序列的出现次数,这样,可以将比特流分为10段,每段比特流包括100位比特。在每个反馈周期内,针对一段比特流可以统计模式序列的出现次数并确定出频繁模式序列,进而剪掉不是频繁模式序列的模式序列。进一步地,对于当前反馈周期内已经剪掉的模式序列,在下一个反馈周期中,可以不再统计已经剪掉的模式序列在下一个反馈周期对应的一段比特流中的出现次数。
例如,在当前反馈周期内,确定出模式序列“101010”不是频繁模式序列并被剪掉,那么在下一个反馈周期中,可以不再统计模式序列“101010”的出现次数。
S203、从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列。
频繁模式筛选出以后,可以计算每两个频繁模式之间的置信度,将置信度在预设的第二阈值范围内的每两个频繁模式序列确定为具有关联关系的频繁模式序列。
示例性的,假设X、Y是两个频繁模式序列,设X为在比特流中与Y相比是先出现的模式序列,用pos(X)、pos(Y)分别表示X、Y在比特流中的位置,则pos(Y)-pos(X)=C表示X、Y在同一比特流中之间的位置差。
进一步地,可以采用下述公式计算X、Y之间的置信度conf(X=>Y):
其中,X、Y之间的位置差C大于频繁模式序列X的长度,即X和Y在比特流中不相交,sup(pos(Y)-pos(X)=C)表示频繁序列X和Y在同一比特流中所处位置之间的位置差为C这一事件在整个比特流中出现的概率;sup(X)表示模式序列X在整个比特流中出现的概率;sup(Y)表示模式序列Y在整个比特流中出现的概率。
进一步地,将置信度与预设的第二阈值范围做对比,置信度处于第二阈值的最大值与第二阈值的最小值之间的两个频繁模式序列记为有关联关系的模式序列。
S204、对读取的比特流进行切分,得到至少两个数据帧。
具体实施中,可以以具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从比特流中查找与切分序列相同的匹配序列,进而将查找到的当前的匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个匹配序列的前一个比特作为一个数据帧的结束位置,对比特流进行切分,得到至少两个数据帧。
例如,假设比特流为“0010101010”,切分序列为“101”,则切分过程为:
切分后的比特流为:00 1010 1010。
S205、将至少两个数据帧之间进行对比,确定比特流的通信协议格式。
在完成数据帧切分后,对切分出的各个数据帧进行序列比对,从而对协议的结构特征进行推断,确定协议格式中固定域、可变域的长度与位置关系等,最终识别出该数据帧的大致格式。
上述实施例中,通过读取比特流,基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,有限状态自动机的最大位数与频繁模式序列包含的比特的位数的最大值保持一致;再从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;然后根据具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,数据帧为构成比特流的基本单元;最后将至少两个数据帧之间进行对比,确定比特流的通信协议格式。通过这种方式能解析纯比特流数据,实现对未知通信协议的识别,增加了提升工业控制系统通信时的安全性。
实施例二
本申请实施例提供了一种数据分析的装置,参照图4所示,为本申请实施例提供的通信协议识别装置400的架构示意图,该装置400包括:读取模块401、筛选模块402、第一确定模块403、切分模块404以及第二确定模块405。
具体的,读取模块401用于读取比特流;
筛选模块402,用于针对所述不同检测机构中每一个检测机构,通过比较从该检测机构获取的当前的检测结果、以及从该检测机构获取的前N次检测结果,确定从该检测机构获取的当前的检测结果是否符合第一预设条件;
第一确定模块403,用于从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;
切分模块404,用于根据所述具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,所述数据帧为构成所述比特流的基本单元;
第二确定模块405,用于将所述至少两个数据帧之间进行对比,确定所述比特流的通信协议格式。
在一种可能的实施方式中,筛选模块402在所述从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列时,具体用于:
每读取一个比特,在所述有限状态自动机中统计由该比特构成的模式序列的出现次数;
判断所述由该比特构成的模式序列的出现次数是否大于所述计算的第一阈值;
当判断结果为是时,确定所述由该比特构成的模式序列为所述频繁模式序列;
当判断结果为否时,确定所述由该比特构成的模式序列不为所述频繁模式序列,并在所述有限状态自动机中将所述由该比特构成的模式序列删除。
在另一种可能的实施方式中,筛选模块402用于在所述有限状态自动机中统计由该比特构成的模式序列的出现次数之后,还用于:
根据读取的所述比特流包含的比特的总位数、以及所述由该比特构成的模式序列包含的比特的总位数,计算所述第一阈值。
在一种可能的实施方式中,第一确定模块403,在所述从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列时,具体用于:
计算每两个所述频繁模式序列之间的置信度;
将所述置信度在预设的第二阈值范围内的每两个所述频繁模式序列确定为所述具有关联关系的频繁模式序列。
在一种可能的实施方式中,切分模块404在对读取的比特流进行切分,得到至少两个数据帧时,具体用于:
以所述具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从所述比特流中查找与所述切分序列相同的匹配序列,所述匹配序列包括所述比特流中连续的至少一个比特;
将查找到的当前的所述匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个所述匹配序列的前一个比特作为一个数据帧的结束位置,对所述比特流进行切分,得到所述至少两个数据帧。
实施例三
如图5所示,本申请实施例所提供的一种电子设备500的结构示意图,包括:处理器501、存储器502和总线503;
所述存储器502存储有所述处理器501可执行的机器可读指令(比如,包括图4中的读取模块401、筛选模块402、第一确定模块403、切分模块404以及第二确定模块405对应的执行指令),当电子设备500运行时,所述处理器501与所述存储器502之间通过总线503通信,所述机器可读指令被所述处理器501执行时执行如下处理:
读取比特流;
基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,所述有限状态自动机的最大位数与所述频繁模式序列包含的比特的位数的最大值保持一致;
从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;
根据所述具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,所述数据帧为构成所述比特流的基本单元;
将所述至少两个数据帧之间进行对比,确定所述比特流的通信协议格式。
进一步地,所述处理器501执行的处理中,所述从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,包括:
每读取一个比特,在所述有限状态自动机中统计由该比特构成的模式序列的出现次数;
判断所述由该比特构成的模式序列的出现次数是否大于所述计算的第一阈值;
当判断结果为是时,确定所述由该比特构成的模式序列为所述频繁模式序列;
当判断结果为否时,确定所述由该比特构成的模式序列不为所述频繁模式序列,并在所述有限状态自动机中将所述由该比特构成的模式序列删除。
进一步地,所述处理器501执行的处理中,在所述有限状态自动机中统计由该比特构成的模式序列的出现次数之后,所述方法还包括:
根据读取的所述比特流包含的比特的总位数、以及所述由该比特构成的模式序列包含的比特的总位数,计算所述第一阈值。
进一步地,处理器501执行的处理中,所述从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列,包括:
计算每两个所述频繁模式序列之间的置信度;
将所述置信度在预设的第二阈值范围内的每两个所述频繁模式序列确定为所述具有关联关系的频繁模式序列。
进一步地,处理器501执行的处理中,所述对读取的比特流进行切分,得到至少两个数据帧,包括:
以所述具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从所述比特流中查找与所述切分序列相同的匹配序列,所述匹配序列包括所述比特流中连续的至少一个比特;
将查找到的当前的所述匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个所述匹配序列的前一个比特作为一个数据帧的结束位置,对所述比特流进行切分,得到所述至少两个数据帧。
实施例四
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一实施例中所述的通信协议识别方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述通信协议识别方法的步骤,从而解决现有技术中无法识别未知通信协议、无法解析比特流数据的问题,增加了提升工业控制系统通信时的安全性。
本申请实施例所提供的进行通信协议识别方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种通信协议识别方法,其特征在于,包括:
读取比特流;
基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,所述有限状态自动机的最大位数与所述频繁模式序列包含的比特的位数的最大值保持一致;
从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;
根据所述具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,所述数据帧为构成所述比特流的基本单元;
将所述至少两个数据帧之间进行对比,确定所述比特流的通信协议格式。
2.根据权利要求1所述的方法,其特征在于,所述从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,包括:
每读取一个比特,在所述有限状态自动机中统计由该比特构成的模式序列的出现次数;
判断所述由该比特构成的模式序列的出现次数是否大于所述计算的第一阈值;
当判断结果为是时,确定所述由该比特构成的模式序列为所述频繁模式序列;
当判断结果为否时,确定所述由该比特构成的模式序列不为所述频繁模式序列,并在所述有限状态自动机中将所述由该比特构成的模式序列删除。
3.根据权利要求2所述的方法,其特征在于,在所述有限状态自动机中统计由该比特构成的模式序列的出现次数之后,所述方法还包括:
根据读取的所述比特流包含的比特的总位数、以及所述由该比特构成的模式序列包含的比特的总位数,计算所述第一阈值。
4.根据权利要求1所述的方法,其特征在于,所述从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列,包括:
计算每两个所述频繁模式序列之间的置信度;
将所述置信度在预设的第二阈值范围内的每两个所述频繁模式序列确定为所述具有关联关系的频繁模式序列。
5.根据权利要求1所述的方法,其特征在于,所述对读取的比特流进行切分,得到至少两个数据帧,包括:
以所述具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从所述比特流中查找与所述切分序列相同的匹配序列,所述匹配序列包括所述比特流中连续的至少一个比特;
将查找到的当前的所述匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个所述匹配序列的前一个比特作为一个数据帧的结束位置,对所述比特流进行切分,得到所述至少两个数据帧。
6.一种通信协议识别装置,其特征在于,包括:
读取模块,用于读取比特流;
筛选模块,用于基于预设的有限状态自动机,从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列,所述有限状态自动机的最大位数与所述频繁模式序列包含的比特的位数的最大值保持一致;
第一确定模块,用于从筛选出的频繁模式序列中确定具有关联关系的频繁模式序列;
切分模块,用于根据所述具有关联关系的频繁模式序列,对读取的比特流进行切分,得到至少两个数据帧,所述数据帧为构成所述比特流的基本单元;
第二确定模块,用于将所述至少两个数据帧之间进行对比,确定所述比特流的通信协议格式。
7.根据权利要求6所述的装置,其特征在于,所述筛选模块,在从读取的比特流中筛选出出现次数超出计算的第一阈值的频繁模式序列时,具体用于:
每读取一个比特,在所述有限状态自动机中统计由该比特构成的模式序列的出现次数;
判断所述由该比特构成的模式序列的出现次数是否大于所述计算的第一阈值;
当判断结果为是时,确定所述由该比特构成的模式序列为所述频繁模式序列;
当判断结果为否时,确定所述由该比特构成的模式序列不为所述频繁模式序列,并在所述有限状态自动机中将所述由该比特构成的模式序列删除。
8.根据权利要求6所述的装置,其特征在于,所述切分模块,在对读取的比特流进行切分,得到至少两个数据帧时,具体用于:
以所述具有关联关系的频繁模式序列中每一个频繁模式序列作为切分序列,从所述比特流中查找与所述切分序列相同的匹配序列,所述匹配序列包括所述比特流中连续的至少一个比特;
将查找到的当前的所述匹配序列包含的第一个比特作为一个数据帧的起始位置,将查找到的下一个所述匹配序列的前一个比特作为一个数据帧的结束位置,对所述比特流进行切分,得到所述至少两个数据帧。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5任一所述的通信协议识别方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5任一所述的通信协议识别方法的步骤。
CN201810827599.4A 2018-07-25 2018-07-25 一种通信协议识别方法及装置 Pending CN108924010A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810827599.4A CN108924010A (zh) 2018-07-25 2018-07-25 一种通信协议识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810827599.4A CN108924010A (zh) 2018-07-25 2018-07-25 一种通信协议识别方法及装置

Publications (1)

Publication Number Publication Date
CN108924010A true CN108924010A (zh) 2018-11-30

Family

ID=64416862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810827599.4A Pending CN108924010A (zh) 2018-07-25 2018-07-25 一种通信协议识别方法及装置

Country Status (1)

Country Link
CN (1) CN108924010A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336817A (zh) * 2019-07-08 2019-10-15 大连大学 一种基于TextRank的未知协议帧定位方法
CN110697522A (zh) * 2019-09-19 2020-01-17 广州慧特安科技有限公司 电梯通信协议的检测方法、系统和存储介质
CN111049852A (zh) * 2019-12-24 2020-04-21 国家计算机网络与信息安全管理中心 Can总线协议解析方法、装置、电子设备及存储介质
CN112104518A (zh) * 2019-08-26 2020-12-18 中国科学院国家空间科学中心 一种比特数据特征挖掘方法、系统、设备及可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949592B2 (en) * 2011-03-23 2015-02-03 Google Technology Holdings System and methods for providing live streaming content using digital rights management-based key management
CN105791278A (zh) * 2016-02-29 2016-07-20 中国工程物理研究院计算机应用研究所 一种未知二进制协议帧切分与层次划分方法
CN107689899A (zh) * 2017-09-01 2018-02-13 南京南瑞集团公司 一种基于比特流的未知协议识别方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949592B2 (en) * 2011-03-23 2015-02-03 Google Technology Holdings System and methods for providing live streaming content using digital rights management-based key management
CN105791278A (zh) * 2016-02-29 2016-07-20 中国工程物理研究院计算机应用研究所 一种未知二进制协议帧切分与层次划分方法
CN107689899A (zh) * 2017-09-01 2018-02-13 南京南瑞集团公司 一种基于比特流的未知协议识别方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王和洲等: "基于频繁统计和关联规则的未知链路协议比特流切割算法", 《中国科学技术大学学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336817A (zh) * 2019-07-08 2019-10-15 大连大学 一种基于TextRank的未知协议帧定位方法
CN110336817B (zh) * 2019-07-08 2021-08-10 大连大学 一种基于TextRank的未知协议帧定位方法
CN112104518A (zh) * 2019-08-26 2020-12-18 中国科学院国家空间科学中心 一种比特数据特征挖掘方法、系统、设备及可读介质
CN112104518B (zh) * 2019-08-26 2021-06-08 中国科学院国家空间科学中心 一种比特数据特征挖掘方法、系统、设备及可读介质
CN110697522A (zh) * 2019-09-19 2020-01-17 广州慧特安科技有限公司 电梯通信协议的检测方法、系统和存储介质
CN110697522B (zh) * 2019-09-19 2022-03-25 广州慧特安科技有限公司 电梯通信协议的检测方法、系统和存储介质
CN111049852A (zh) * 2019-12-24 2020-04-21 国家计算机网络与信息安全管理中心 Can总线协议解析方法、装置、电子设备及存储介质
CN111049852B (zh) * 2019-12-24 2020-12-08 国家计算机网络与信息安全管理中心 Can总线协议解析方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108924010A (zh) 一种通信协议识别方法及装置
CN108234524B (zh) 网络数据异常检测的方法、装置、设备及存储介质
CN110519290B (zh) 异常流量检测方法、装置及电子设备
EP3343869B1 (en) A method for modeling attack patterns in honeypots
CN108011925B (zh) 一种业务审计系统及方法
US10182011B2 (en) System and method to analyze congestion in low latency network
US20210081437A1 (en) Systems and methods for trie-based automated discovery of patterns in computer logs
CN106790170B (zh) 一种数据包过滤方法及装置
US20200021511A1 (en) Performance analysis for transport networks using frequent log sequence discovery
CN106055452B (zh) 创建交换机日志模板的方法和装置
CN106878038B (zh) 一种通信网络中故障定位方法及装置
CN112751711B (zh) 告警信息处理方法和装置、存储介质和电子设备
CN110717551B (zh) 流量识别模型的训练方法、装置及电子设备
CN111756706A (zh) 一种异常流量检测方法、装置及存储介质
CN109271793A (zh) 物联网云平台设备类别识别方法及系统
CN111371651A (zh) 一种工业通讯协议逆向分析方法
CN112468365A (zh) 用于网络镜像流量的数据质量检测方法、系统及介质
US8782092B2 (en) Method and apparatus for streaming netflow data analysis
US20140280929A1 (en) Multi-tier message correlation
CN106649344B (zh) 一种网络日志压缩方法和装置
Li et al. A lightweight intrusion detection model based on feature selection and maximum entropy model
CN113987492A (zh) 一种告警事件的确定方法及装置
CN107330031B (zh) 一种数据存储的方法、装置及电子设备
CN109272005B (zh) 一种识别规则的生成方法、装置和深度包检测设备
CN104753934A (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
TA01 Transfer of patent application right

Effective date of registration: 20191009

Address after: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Applicant after: State Grid Co., Ltd.

Applicant after: NARI Group Co. Ltd.

Applicant after: Beijing Kedong Power Control System Co., Ltd.

Applicant after: State Grid Hebei Electric Power Co., Ltd.

Applicant after: INFORMATION COMMUNICATION COMPANY, STATE GRID GANSU ELECTRIC POWER CO., LTD.

Address before: 100192 Beijing city Haidian District Qinghe small Camp Road No. 15

Applicant before: Beijing Kedong Power Control System Co., Ltd.

Applicant before: State Grid Hebei Electric Power Co., Ltd.

Applicant before: INFORMATION COMMUNICATION COMPANY, STATE GRID GANSU ELECTRIC POWER CO., LTD.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20181130

RJ01 Rejection of invention patent application after publication