System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种识别方法,具体涉及一种基于流量的应用层云协议优化识别方法,属于云服务网络安全领域。
技术介绍
1、随着互联网的推动,制造业正逐渐发展向开放和互联的趋势。工业控制系统(ics)作为信息物理系统的核心,保障工业生产的稳定性和可靠性,主要包括scada、dcs和plc三大类。这些系统不仅在日常生产中发挥关键作用,还控制着多个国家的关键基础设施,因此对其的任何干扰或攻击都可能产生深远的后果。另一方面,随着工业互联网的快速发展,ics中涌现出大量的未知私有协议,加大了安全风险。虽然公开的工控协议如modbus和ethernet/ip已相对稳定,但大量私有协议如西门子s7的规范和特性仍大部分未知,这使得传统的安全技术在面对这些私有协议时变得效率低下和不准确。因此,鉴于大部分安全问题发生在使用工业协议的通信过程中,识别这些协议在工业安全监控中至关重要。依靠人工识别协议既耗时又效率低下,需要建立一个在云服务中部署的、自动、高效和准确的工业协议识别平台,以满足现代工业安全需求。
2、在众多的协议识别方法中,基于固定端口的方法是最早也是最简单的技术,依赖于预定义的端口号来识别应用协议,但这种方法在面对动态端口时会失效。基于有效载荷的识别技术则通过分析网络流量中的数据包内容进行协议识别,具有较高的准确性,但可能受到加密和混淆的挑战。而基于机器学习的协议识别技术,使用网络流量的统计特性,如数据包长度和流持续时间等,进行模型训练。该技术分为有监督学习、无监督学习和半监督学习。svm和某些神经网络算法在有监督的协议识别中被广泛
3、综上所述,各种协议识别方法各有优缺点,而直接应用于工控协议可能会遇到挑战。尤其在工控领域,基于有效载荷的协议识别技术,相对于其他技术,可能具有更高的潜在应用价值。
技术实现思路
1、本公开提供一种提出并实现了工业互联网中基于流量的应用层协议特征提取以及识别方法,能够自动、高效、准确地提取出工业协议的特征并将其用于识别。
2、一种基于流量的应用层云协议优化识别方法,所述方法包括以下步骤:
3、步骤1、改进现有网络协议频繁项提取方法,先确定最大频繁项长度,后自顶向下挖掘工业协议中频繁项,并通过位置信息筛选,构造工业协议的频繁项特征;
4、步骤2:基于序列比对的工业协议语义识别方法,多序列比对算法对报文序列进行对齐以及字段划分,针对不同语义字段设计识别方法,在此基础上构建语义特征辅助识别,初步推断协议格式;
5、步骤3:构建协议内部依赖关系的状态转换图:考虑到协议分组有效载荷中不同字段的值存在分组内依赖,利用图论与概率论对协议内部各字段出现位置、概率以及依赖关系统计及分析之后,构建用于描述协议内部依赖关系的协议状态转换图用以识别。
6、作为本专利技术的一种改进,步骤1中,所述改进现有网络协议频繁项提取方法包括:在预处理阶段对协议数据集中的应用层载荷进行提取与处理,得到待挖掘的工业协议序列作为频繁项挖掘算法的输入,然后使用自顶向下的频繁项挖掘算法对工业协议的频繁项集进行挖掘,并按照位置信息对频繁项集进行筛选得到特征字段,然后根据特征字段构建对应工业协议频繁项特征,并将其加入特征库。
7、作为本专利技术的一种改进,所述自顶向下的频繁项挖掘算法包括:借鉴n-gram模型划分数据,将分组分解为多个长度相等的序列,设置最小支持度rmin,对于已经划分好的数据集,在其中查找长度为k,支持度大于等于rmin的频繁项集fk,需要对数据集中所有长度为k的序列统计其出现频次,若某个序列当前出现次数已经大于了阈值threshold,则将该序列加入频繁项集合fk中,并将该序列及与自身多个字节存在重叠的相邻序列删除,再对剩下的序列执行分裂操作,分为两个长度为k-1的子序列,随后继续找长度为k-1的频繁项,直到k=1时停止。
8、作为本专利技术的一种改进,所述位置信息的频繁项筛选包括:过滤频繁项集中的弱特征,若频繁项在某个位置出现次数大于阈值threshold,或位置不固定,但各个位置出现次数之和等于或者十分接近该频繁项出现总次数,或自身长度较长,都将视为有效特征,而对于其他较短的频繁字符串,计算其在数据包中出现位置的方差判定是否过滤,小于一定阈值则保留,具体过程为对于任意一个频繁字符串ik∈f,扫描z中所有的协议序列,并计算ik所有可能位置的值,后对于每一个频繁字符串ik∈f,计算其标准方差,表示为σk=val(p(ik)),所有σk可表达为进行归一化处理为σnorm,对于一个给定的阈值tσ,最终可以得到特征字段当tσ设置为0的时候,特征字段则为位置固定的字符串
9、作为本专利技术的一种改进,步骤2中,所述基于序列比对的工业协议语义识别方法包括:序列对齐,字段划分,以及语义识别三部分,序列对齐阶段采用渐进多序列比对算法对协议数据进行对齐,得到对齐的带空位的序列;字段划分阶段则是将对齐后的协议序列按照字节变化率分为静态字段以及动态字段;语义识别阶段则主要是对划分后的序列中的一些重要字段进行识别。
10、作为本专利技术的一种改进,所述序列对齐和字段划分包括:改进smith-waterman和needleman-wunsch的渐进多序列比对算法,使用局部序列比对算法计算分组数据包中两两序列之间的相似度,后根据相似度构建序列间的距离矩阵,使用非加权配对算数平均法指导系统发育树的生成,该算法将每一个序列当作一个集群,并根据每个集群之间的距离进行合并,最终得到一颗树状的分类层次结构,选取两个距离最近的节点使用全局序列比对算法needleman-wunsch进行比对,生成对齐的结果序列,并在生成的结果序列的基础上,再加入新的未对比序列进行双序列比对,以此类推,直到所有的序列全部比对完成为止,生成对齐的数据序列,对于字段划分,识别各个序列中相同位置的字节的变化率来对动态字段和静态字段进行划分,如果相同位置字节的变化率接近0,则认为该位置为静态字段,否则为动态字段,并对多个结果序列进行融合,若多个结果序列的相同位置均为静态字段且该位置取值都相同,则该位置仍然是静态字段,反之亦然。
11、作为本专利技术的一种改进,所述语义识别包括长度字段、序列号等字段、功能码字段、其他字段四个维度,长度字段阶段,据观察大部分协议的长度字段只可能为1、2、4个字节,应满足lpos-start=常量和lvalue-end=常量的条件,lpos表示长度字段的起始位置,lvalue表示长度字段的值,start表示协议有效载荷的起始位置,end表示序列结束位置,即报文的绝对长度,随后分别按照大端与小端两种模式进行识别,先选取报文中的一位置作为候选长度字段,分别计算报文载荷长度与本文档来自技高网...
【技术保护点】
1.一种基于流量的应用层云协议优化识别方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的基于流量的应用层云协议优化识别方法,其特征在于,步骤1中,所述改进现有网络协议频繁项提取方法包括:在预处理阶段对协议数据集中的应用层载荷进行提取与处理,得到待挖掘的工业协议序列作为频繁项挖掘算法的输入,然后使用自顶向下的频繁项挖掘算法对工业协议的频繁项集进行挖掘,并按照位置信息对频繁项集进行筛选得到特征字段,然后根据特征字段构建对应工业协议频繁项特征,并将其加入特征库。
3.根据权利要求2所述的基于流量的应用层云协议优化识别方法,其特征在于,所述自顶向下的频繁项挖掘算法包括:借鉴N-gram模型划分数据,将分组分解为多个长度相等的序列,设置最小支持度Rmin,对于已经划分好的数据集,在其中查找长度为k,支持度大于等于Rmin的频繁项集Fk,需要对数据集中所有长度为k的序列统计其出现频次,若某个序列当前出现次数已经大于了阈值Threshold,则将该序列加入频繁项集合Fk中,并将该序列及与自身多个字节存在重叠的相邻序列删除,再对剩下的序列执行分裂操作,分为
4.根据权利要求2所述的基于流量的应用层云协议优化识别方法,其特征在于,所述位置信息的频繁项筛选包括:过滤频繁项集中的弱特征,若频繁项在某个位置出现次数大于阈值Threshold,或位置不固定,但各个位置出现次数之和等于或者十分接近该频繁项出现总次数,或自身长度较长,都将视为有效特征,而对于其他较短的频繁字符串,计算其在数据包中出现位置的方差判定是否过滤,小于一定阈值则保留,具体过程为对于任意一个频繁字符串ik∈F,扫描Z中所有的协议序列,并计算ik所有可能位置的值,后对于每一个频繁字符串ik∈F,计算其标准方差,表示为σk=Val(P(ik)),所有σk可表达为进行归一化处理为σnorm,对于一个给定的阈值Tσ,最终可以得到特征字段当Tσ设置为0的时候,特征字段则为位置固定的字符串。
5.根据权利要求1所述的基于流量的应用层云协议优化识别方法,其特征在于,步骤2中,所述基于序列比对的工业协议语义识别方法包括:序列对齐,字段划分,以及语义识别三部分,序列对齐阶段采用渐进多序列比对算法对协议数据进行对齐,得到对齐的带空位的序列;字段划分阶段则是将对齐后的协议序列按照字节变化率分为静态字段以及动态字段;语义识别阶段则主要是对划分后的序列中的一些重要字段进行识别。
6.根据权利要求5所述的基于流量的应用层云协议优化识别方法,其特征在于,所述序列对齐和字段划分包括:改进Smith-Waterman和Needleman-Wunsch的渐进多序列比对算法,使用局部序列比对算法计算分组数据包中两两序列之间的相似度,后根据相似度构建序列间的距离矩阵,使用非加权配对算数平均法指导系统发育树的生成,该算法将每一个序列当作一个集群,并根据每个集群之间的距离进行合并,最终得到一颗树状的分类层次结构,选取两个距离最近的节点使用全局序列比对算法Needleman-Wunsch进行比对,生成对齐的结果序列,并在生成的结果序列的基础上,再加入新的未对比序列进行双序列比对,以此类推,直到所有的序列全部比对完成为止,生成对齐的数据序列,对于字段划分,识别各个序列中相同位置的字节的变化率来对动态字段和静态字段进行划分,如果相同位置字节的变化率接近0,则认为该位置为静态字段,否则为动态字段,并对多个结果序列进行融合,若多个结果序列的相同位置均为静态字段且该位置取值都相同,则该位置仍然是静态字段,反之亦然。
7.根据权利要求5所述的基于序列比对的工业协议语义识别方法,其特征在于,所述语义识别包括长度字段、序列号等字段、功能码字段、其他字段四个维度,长度字段阶段,据观察大部分协议的长度字段只可能为1、2、4个字节,应满足Lpos-START=常量和Lvalue-END=常量的条件,分别按照大端与小端两种模式进行识别,先选取报文中的一位置作为候选长度字段,分别计算报文载荷长度与选定位置字节的差值,如果超过设定比例(如95%)的差值相同,则确定该位置为长度字段起始位置,并确定其所占字节数,并选取选取长度字段所占字节最长的模式作为识别结果;序列号字段阶段,根据IP地址及端口号,将协议会话集合按上下行流量分类,再根据时间戳进行排序,从分组首部开始逐字节比较分组中的序列号位置取值,若取值随时间顺序递增,则视为候选的序列号字段,并据此提出算法输入为协议会话集合S,输出为协议序列号字段Fseq,遍历协议会话集合,只在前20个字节内查找序列号字段,判断当前位置取值是否随时间递增,并...
【技术特征摘要】
1.一种基于流量的应用层云协议优化识别方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的基于流量的应用层云协议优化识别方法,其特征在于,步骤1中,所述改进现有网络协议频繁项提取方法包括:在预处理阶段对协议数据集中的应用层载荷进行提取与处理,得到待挖掘的工业协议序列作为频繁项挖掘算法的输入,然后使用自顶向下的频繁项挖掘算法对工业协议的频繁项集进行挖掘,并按照位置信息对频繁项集进行筛选得到特征字段,然后根据特征字段构建对应工业协议频繁项特征,并将其加入特征库。
3.根据权利要求2所述的基于流量的应用层云协议优化识别方法,其特征在于,所述自顶向下的频繁项挖掘算法包括:借鉴n-gram模型划分数据,将分组分解为多个长度相等的序列,设置最小支持度rmin,对于已经划分好的数据集,在其中查找长度为k,支持度大于等于rmin的频繁项集fk,需要对数据集中所有长度为k的序列统计其出现频次,若某个序列当前出现次数已经大于了阈值threshold,则将该序列加入频繁项集合fk中,并将该序列及与自身多个字节存在重叠的相邻序列删除,再对剩下的序列执行分裂操作,分为两个长度为k-1的子序列,随后继续找长度为k-1的频繁项,直到k=1时停止。
4.根据权利要求2所述的基于流量的应用层云协议优化识别方法,其特征在于,所述位置信息的频繁项筛选包括:过滤频繁项集中的弱特征,若频繁项在某个位置出现次数大于阈值threshold,或位置不固定,但各个位置出现次数之和等于或者十分接近该频繁项出现总次数,或自身长度较长,都将视为有效特征,而对于其他较短的频繁字符串,计算其在数据包中出现位置的方差判定是否过滤,小于一定阈值则保留,具体过程为对于任意一个频繁字符串ik∈f,扫描z中所有的协议序列,并计算ik所有可能位置的值,后对于每一个频繁字符串ik∈f,计算其标准方差,表示为σk=val(p(ik)),所有σk可表达为进行归一化处理为σnorm,对于一个给定的阈值tσ,最终可以得到特征字段当tσ设置为0的时候,特征字段则为位置固定的字符串。
5.根据权利要求1所述的基于流量的应用层云协议优化识别方法,其特征在于,步骤2中,所述基于序列比对的工业协议语义识别方法包括:序列对齐,字段划分,以及语义识别三部分,序列对齐阶段采用渐进多序列比对算法对协议数据进行对齐,得到对齐的带空位的序列;字段划分阶段则是将对齐后的协议序列按照字节变化率分为静态字段以及动态字段;语义识别阶段则主要是对划分后的序列中的一些重要字段进行识别。
6.根据权利要求5所述的基于流量的应用层云协议优化识别方法,其特征在于,所述序列对齐和字段划分包括:改进smith-waterman和needleman-wunsch的渐进多序列比对算法,使用局部序列比对算法计算分组数据包中两两序列之间的相似度,后根据相似度构建序列间的距离矩阵,使用非加权配对算数平均法指导系统发育树的生成,该算法将每一个序列当作一个集群,并根据每个集群之间的距离进行合并,最终得到一颗树状的分类层次结构,选取两个距离最近的节点使用全局序列比对算法needleman-wunsch进行比对,生成对齐的结果序列,并在生成的结果序列的基础上,再加入新的未对比序列进行双序列比对,以此类推,直到所有的序列全部比对完...
【专利技术属性】
技术研发人员:李明,尹晓宇,宫帅,余东波,吴极,张敏,王海陆,董小菱,曹弯弯,陶军,刘海滨,张海涛,
申请(专利权)人:国网安徽省电力有限公司信息通信分公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。