System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及协议逆向工程领域,尤其涉及一种未知工控协议逆向分析方法及装置。
技术介绍
1、随着“工业4.0”战略的推进,工业控制系统(icss)在国家关键基础设施和国民经济中的地位愈发重要,保障其安全运行具有重大意义。icss由各种控制组件组成,并使用特定的工控协议(icps)进行传输(如modbus、s7、dnp3)。由于国际通用标准的缺乏和设备厂商出于自身利益的考量,导致icss中存在着大量协议规约未知且忽略了安全机制(如认证和加密)的私有icps,以致于安全运维人员无法对这类协议进行分析,从而使得icss安全问题更加突出。
2、为了获得未公开icps的规约,协议逆向工程(pre)受到了广泛关注,pre能够利用网络报文或解析程序来推断出协议规约,从而获得有关其语法和行为的知识。然而,与文本协议不同,工控协议属于二进制协议,其内容杂乱、无分隔符且具有不可读等属性,使得面向文本协议的逆向分析方法难以有效应用于工控协议领域。面对这些内容抽象、无公开协议规约的工控协议,如何构建一个准确有效的协议分析模型成为一个非常棘手的问题。
3、论文“y.wang,x.yun,m.z.shafiq,l.wang,a.x.liu,z.zhang,d.yao,y.zhang,andl.guo.a semantics aware approach to automated reverse engineering unknownprotocols.in 2012 20th ieee international conferenc
4、论文“y.ye,z.zhang,f.wang,x.zhang,d.xu,netplier:probabilistic networkprotocol reverse engineering from message traces,in:28th annual network anddistributed system security symposium,ndss2021,virtually,february 21-25,2021.”基于一个假设:关键字段决定了网络报文的类型,提出了一个基于概率推理的未知协议分析方法netplier。该方法首先采用多序列对齐算法,得到对齐的字段集。然后,将报文关键字的识别问题转化为从已对齐的字段集里寻找概率值最大的字段。随后根据所识别的关键字,将网络报文划分为不同的类型,并在同一类型的报文集下推断协议格式及状态机。由于其专注于对关键字段的识别,认为关键字段能决定当前网络报文的类型,并以此进行报文聚类。然而,关键字段并不能全面反映报文的类型特征,并且鉴于icps报文内容重复、抽象、不可读的属性,要得到准确的关键字是耗时且易错的。
5、综上所述,现有的协议逆向分析方法存在报文分段不合理、报文类型特征单一、分析流程有缺陷等问题,导致最后所推断出的协议格式及协议状态机准确率低,难以在工控协议分析中进行应用,实用性和参考性不高。
技术实现思路
1、本专利技术的目的是提出一种准确率高且适用于工业控制系统网络的未知工控协议逆向分析方法及装置。所提出的启发式报文分段算法能将原始报文序列分割为任意长度的字段,提供更细粒度的分析单元,提升下游任务的准确率。所提出的报文图特征提取模型mess-gcn具有更强的鲁棒性,充分利用了子任务间的相互作用信息,能捕获到更加丰富的报文结构特征,取得更好的聚类效果。充分考虑到实际应用情况,不需要对网络报文进行人工干预,所提出的方法为自动化逆向分析方式。
2、本专利技术的技术方案如下:一种未知工控协议逆向分析方法,包括步骤如下:
3、网络报文基于启发式报文分段算法形成报文片段集合;报文和报文片段集合构成数据集,根据所述数据集构建异构报文图g(v,e);异构报文图g(v,e)输入至构建报文图特征提取神经网络模型mess-gcn进行报文聚类并训练报文图特征提取神经网络模型mess-gcn;待聚类的数据集输入至训练完成的报文图特征提取神经网络模型mess-gcn,进行类簇划分,在同一报文类簇下采用needleman-wunsch算法推断语法格式,并标注字段边界。
4、所述基于启发式报文分段算法形成报文片段集合具体为:
5、步骤1.1、提取网络报文的应用层数据,得到十六进制格式的报文序列,报文序列共有k种类型;
6、步骤1.2、基于启发式规则对所有报文序列进行字段推断,得到公共字段;所述公共字段包括协议标识符、长度字段;
7、步骤1.3、对报文序列除去公共字段的剩余部分进行位置编码并采用n-gram,得到多个报文片段;
8、步骤1.4、将公共字段、报文片段进行去重操作,形成报文片段集合。
9、所述启发式规则如下:
10、rule.a)识别协议标识符字段:多条报文序列的前n个字节的字符内容相同,所述前n个字节的字符内容则为协议标识字段;
11、rule.b)识别长度字段:根据长度将报文序列分为不同的组,在同一组报文下判断相同位置上连续m个字节的值q是否相同;同一组报文内相同位置上具有相同的值q,而不同组报文间相同位置上具有不同的值q,且q为该组对应的报文长度时,将此连续m个字节识别为长度字段。
12、所述步骤1.3的具体操作过程如下:将原始报文序列中每个字节所处位置的编号与对应字节的字符内容进行拼接,采用大小为n的滑动窗口从左到右对原始报文序列进行滑动取值。
13、所述构建异构报文图g(v,e)具体为,
14、步骤2.1、将每条报文和每个报文片段看作图节点,节点数量|v|=n,为报文数量加上报文片段数量之和;在各节点之间,当报文片段出现在报文中时,建立边;使用词频-逆文本频率指数tf-idf作为报文-片段边的权重值,使用点互信息pmi作为片段-片段边的权重,具体过程如下:
15、
16、
17、
18、其中,#w(s)是包含报文片段s的滑动窗口数量,#w(s,t)是同时包含报文片段s和报文片段t的滑动窗口数量,#w是指整个报文片本文档来自技高网...
【技术保护点】
1.一种未知工控协议逆向分析方法,其特征在于,包括步骤如下:
2.根据权利要求1所述的未知工控协议逆向分析方法,其特征在于,所述网络报文基于启发式报文分段算法形成报文片段集合具体为:
3.根据权利要求2所述的未知工控协议逆向分析方法,其特征在于,所述启发式规则如下:
4.根据权利要求2所述的未知工控协议逆向分析方法,其特征在于,所述步骤1.3的具体操作过程如下:将原始报文序列中每个字节所处位置的编号与对应字节的字符内容进行拼接,采用大小为n的滑动窗口从左到右对原始报文序列进行滑动取值。
5.根据权利要求2-4任一项所述的未知工控协议逆向分析方法,其特征在于,所述构建异构报文图G(V,E)具体为,
6.根据权利要求5所述的未知工控协议逆向分析方法,其特征在于,所述报文图特征提取神经网络模型Mess-GCN由两层图卷积神经网络GCN组成,第二层图卷积神经网络节点嵌入的大小与报文类型数量K相同,并通过softmax函数做归一化处理,从而生成每个报文节点的类别特征:
7.根据权利要求6所述的未知工控协议逆向分析方法,
8.根据权利要求6所述的未知工控协议逆向分析方法,其特征在于,所述类簇划分具体为,输出每条报文对应的类别标签,从而根据标签将所有报文划分为不同的类簇;类别分配方式如下:
9.根据权利要求8所述的未知工控协议逆向分析方法,其特征在于,所述Needleman-Wunsch算法具体步骤为:
10.一种未知工控协议逆向分析装置,其特征在于,包括:
...【技术特征摘要】
1.一种未知工控协议逆向分析方法,其特征在于,包括步骤如下:
2.根据权利要求1所述的未知工控协议逆向分析方法,其特征在于,所述网络报文基于启发式报文分段算法形成报文片段集合具体为:
3.根据权利要求2所述的未知工控协议逆向分析方法,其特征在于,所述启发式规则如下:
4.根据权利要求2所述的未知工控协议逆向分析方法,其特征在于,所述步骤1.3的具体操作过程如下:将原始报文序列中每个字节所处位置的编号与对应字节的字符内容进行拼接,采用大小为n的滑动窗口从左到右对原始报文序列进行滑动取值。
5.根据权利要求2-4任一项所述的未知工控协议逆向分析方法,其特征在于,所述构建异构报文图g(v,e)具体为,
6.根据权利要求5所述的未知工控协议逆向分析方法,其特征在...
【专利技术属性】
技术研发人员:姚羽,杨道青,张尼,杨巍,杨利成,胡耀,吴云峰,林小李,单垚,冉子用,韩庆敏,王乾亦,刘福意,
申请(专利权)人:东北大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。