一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度学习高效工业控制协议解析方法

2022-06-01 00:54:44 来源:中国专利 TAG:


1.本发明涉及一种工业控制解析方法,特别是涉及一种基于深度学习高效工业控制协议解析方法。


背景技术:

2.工业控制系统是许多关键基础设施的重要组成部分,对其安全具有重大影响。随着工业控制系统的迅速发展,计算机网络在工业控制系统中的应用越来越多,这给工业控制系统带来了许多安全问题,协议安全是最重要的安全问题之一。
3.许多工业协议都是未知的,这使得防火墙无法对网络流量进行解析和分析,从而给入侵检测、深度包检测和流量管理带来了巨大的挑战。现有的工业控制系统中的工业协议异常通信行为的检测基本都依赖于各种工控协议的深度解析特征。而工控网络协议众多,包含工控标准协议如modbus、dnp3、iec104,私有的不公开协议如s7comm、ge srtp、profibus等,这给安全产品的检测带来更高的成本。大量的私有协议为进行工业控制系统实时防御提出了巨大的挑战,当前一些工业控制防火墙、工业控制系统入侵防御只能事前设定部分私有协议后对私有协议包进行深度检测,这严重影响了入侵防御系统的通用性和扩展性。
4.同时随着网络设备的不断增多,网络接入环境的安全性显得尤为重要。漏洞挖掘、模糊测试、入侵检测等网络安全技术越来越受到人们的重视。然而,这些安全技术在面对未知协议时,其有效性将大大降低。通过协议解析技术自动提取未知协议的格式信息,可以增强上述安全技术在面对未知协议时的处理能力。
5.协议解析技术除传统的手工分析方法外,大致可分为两大类:消息序列分析和二进制指令执行分析。消息序列分析技术以wireshark、ettercap等工具获取的协议会话数据流为分析对象。最常用的算法是多序列比对算法和序列聚类算法。这些算法的核心是序列相似性的比较。序列聚类算法的比较主要基于关键词、编辑距离和概率模型。然而,这些算法普遍存在的问题是无法给出准确的相似度评价标准,而聚类算法通常需要进行高维聚类计算,这会给计算带来很大的困难。指令执行分析技术以解析或构造消息的终端程序作为解析对象。它通过动态跟踪来监控协议数据解析的指令序列和传播过程。但这种技术需要获取协议解析的终端程序,在实际应用中难以实现。
6.同时使用传统的协议解析方法来分析处理工业协议有两个主要挑战。首先,工业控制系统应用的代码很难获得,因此基于代码执行的方法并不适合于解析工业协议。其次,工业协议与网络协议有很大的不同,直接使用网络协议逆向工具难以解析工业协议。例如,大多数工业协议都有一个扁平结构,一个协议头带有一个可选负载之后的全部信息。网络协议逆向工具不具有解析这类协议结构的功能,因此不能有效推导出工业协议的结构。此外,大多数工业协议没有分隔符,基于分隔符的方法也不适用于工业协议解析。
7.因此,高效的工业协议解析方案具有极高的研究意义和广阔的应用前景。


技术实现要素:

8.本发明的目的在于提供一种基于深度学习高效工业控制协议解析方法,该方法通过分析协议字段的变化特征,采用一种无监督学习的字段序列分割方法,这种方法反应不同协议的字段序列特征,可以提高协议字段识别分类的成功率。利用该字段序列分割方法,基于加入注意力机制的双向长短期记忆(bilstm-am)神经网络实现对工业协议的字段分类模型。最后提出了这种基于深度学习的工控协议解析的方法,解决目前市面上多数网络协议逆向工具无法高效准确地解析工业协议的问题。
9.本发明的目的是通过以下技术方案实现的:一种基于深度学习高效工业控制协议解析方法,该方法包括如下步骤:s1:将获取的已知工业协议数据包输出为二进制数据的形式,并筛选出需要进行解析的协议字段;s2:通过无监督学习模型——投票专家算法(ve)推断协议字段的功能区域边界和类型;将协议信息分解为一系列字段,并选择范围内的字段作为公共字段;s3:推断协议字段的类型如协议头部、字段长度、功能代码、序列号、常量字段等;具有相同功能的消息通常具有相同的格式,因此将具有相同功能代码的消息分类到相同的集群中;s4:推断每个字段集群的格式,并将这些结果组合在一起,得到整个协议的格式特征和字段序列特征;s5:搭建加入注意力机制的双向长短期记忆神经网络模型,将s4中得到的协议字段特征编码作为输入,在bilstm-am模型中进行训练,并从中得到一个针对工业协议的分类模型;s6:使用softmax分类器对处理后的协议字段进行分类。
10.所述一种基于深度学习高效工业控制协议解析方法,所述s1中的工业协议数据包来源于石油化工行业信息安全重点实验室中的油气集输工业仿真平台的实际工况中多种不同厂家的plc,通过wireshark嗅探软件捕获到数据包,保留工业控制系统专有协议的条目并输出为二进制形式;同时从github项目、wireshark wiki途径收集用于测试的工业pcap数据包作为后续步骤的训练集和测试集,包括一些常用的工业控制系统通信协议包括s7comm、modbus tcp、profibus、iec104。
11.所述一种基于深度学习高效工业控制协议解析方法,所述s2中的投票专家算法(ve),是一种无监督学习,用于分割不带分隔符的文本;ve在一个连续的字段序列上使用一个小窗口滑动,并在每一步中投票选择一个最可能是这串字段的边界;如果一个字段序列同时出现的频率很高,并且后续字节具有很高的变动性,那么这个字段序列很可能代表协议中的某种固定格式功能。
12.所述一种基于深度学习高效工业控制协议解析方法,所述s3中消息分类旨在将具有相同格式的消息分类到相同的集群中;其输入是一组协议信息,输出是一组信息集群,每个集群代表一种协议格式;具有相同功能的协议信息通常具有相同的格式;基于这些观察结果,将协议信息按方向和功能码分类到不同的集群中;具有相同方向和功能码的消息归类到同一个集群中;格式推断阶段用于派生所有消息的格式;这个阶段的输入是协议信息集群,输出是表示所有协议格式的树。
13.所述一种基于深度学习高效工业控制协议解析方法,所述s5中的加入注意力机制的双向长短期记忆神经网络模型(bilstm-am)在标准的lstm网络中结合双向隐含层,体现在工业协议字段的识别中对前后文和语境的加强理解;同时加入注意力机制,改善神经网络提取协议字段上下文的偏好;带有单字表征的注意力机制更关注与文本感情相关的词,体现在工业协议的识别中更能把握住特定位置字段代表的功能。
14.所述一种基于深度学习高效工业控制协议解析方法,所述bilstm通过结合前向隐藏层和后向隐藏层来访问前面和后面的上下文特征;单词表征的注意机制(am)更关注与文本情感相关的词,有助于理解句子语义;bilstm-am中的两个注意机制层分别处理前后两个语境特征;am层处理的特征连接在一起,最后输入到分类器。
15.所述一种基于深度学习高效工业控制协议解析方法,所述s5中在损失函数的选择上,选用交叉熵的函数评价模型分类性能;它通常优于分类错误率或均方误差;本方法中,选择adam optimizer来优化网络的损失函数;交叉熵作为损失函数可以降低随机梯度下降过程中梯度消失的风险;其中是训练样本的数量,代表训练样本,是样本的标签,是bilstm-am模型的输出。
16.所述一种基于深度学习高效工业控制协议解析方法,所述s6中将投票专家算法(ve)协议字段推断模块和加入注意力机制的双向长短期记忆神经网络模型两部分结合,并在拼接后使用softmax曾进行处理后得到的工业协议字段分类结果的预测。
17.本发明的优点与效果是:本发明无监督学习模型用提取数据的高维特征,同时不需要对数据进行逐个的标签处理,极大的减少了工业数据包处理的时长。此外,基于无监督学习的解析方法摆脱了传统解析方法中对于序列之间相似度比较的过度依赖。构建的bilstm-am神经网络模型结构适用于处理提取基于时间序列的特征,加入注意力机制能更好的完成工业协议的字段分类任务。此外,神经网络模型具有很高的适应性和扩展性,使用s7comm、modbus tcp等已知工业协议训练得到的模型仍可用于未知工业协议的解析。
附图说明
18.图1为本发明一种基于深度学习的工业控制协议解析方法的流程图;图2为本发明工业控制解析模块的工作原理图;图3为本发明提取公共字段所需阶段的示意图;图4为本发明投票专家算法原理图;图5为本发明bilstm神经网络的结构图。
具体实施方式
19.下面结合附图所示实施例对本发明进行详细说明。
20.本发明流程如图1所示,具体步骤如下:
s1:工业协议数据报文的获取。实际工业控制系统产生的数据包来源于辽宁省石油化工行业信息安全重点实验室中的油气集输工业仿真平台,通过wireshark流量嗅探软件捕获到数据包,保留工业控制系统专有协议的条目并输出为二进制形式。同时从github项目、wireshark wiki等途径收集用于测试的工业pcap数据包,其中包括一些常用的工业控制系统通信协议包括s7comm、modbus tcp、profibus、iec104等。
21.s2:推断协议字段的功能区域边界和类型。核心思想是通过使用公共字段信息来获取消息格式,在图2中说明了提取公共字段所需的阶段。
22.首先,将消息分解为一系列字段,并选择范围内的字段作为公共字段。然后推断常见字段的类型如长度字段、功能代码、序列号、常量字段等。具有相同功能的消息通常具有相同的格式,因此本发明将具有相同功能代码的消息分类到相同的集群中。最后,推断每个簇的格式,并将这些结果组合在一起,得到整个协议的格式。这个短语是为了得到公共字段。这个短语的输入是原始包,输出是一组公共字段。公共字段有两个属性:边界位置和字段语义信息类型。为了推断边界,本发明将投票专家算法应用到原始数据包中,得到候选边界。
23.s3:公共字段的推理运用投票专家算法(ve)。ve是一种无监督算法,用于分割不带分隔符的文本。ve在一个连续序列上使用一个小窗口滑动,并在每一步中投票选择一个最可能是单词边界的边界如图4所示。其核心思想是如果一个字段出现的频率高,而后续字节的变动性高,那么这个字段很可能是一段拥有固定含义的语句。ve设置两个投票专家。第一个投票专家指定为词的内部熵,它表示如果一个词在二进制报文中总是以一个整体出现,则它应该整体被保留,定义如式(1)所示:其中,表示二进制报文中子序列的发生概率,越低表示w通常作为一个整体出现,并且出现的频率越高。另一个投票专家指定为词的边界熵,它表示如果一个词的后续内容有很多变化,那么这个词与后续内容之间应该被加上一个边界,的定义如式(2)所示:其中,c表示子序列后面所有可能出现的半字节的集合,表示半字节c在序列后面发生的概率。越大表示后面的内容变化越多,后的点越有可能是词边界。为了实现词的有效划分,设计滑动窗口大小为n生成一颗深度为n+1查找树,树中保存着数据集中所有可能发生的字符组合。候选边界中存在一些错误边界,因此采用重定位方法来提高候选边界的定位精度。本发明选择一个范围内的候选字段作为公共字段。为了推断公共字段的类型,本发明对每个类型字段应用了相应的统计方法。
24.投票专家算法分为两个阶段,投票阶段和判决阶段.在投票阶段,使用大小为n窗口在序列上滑动,根据查找树两位专家依据式(3)和式(4)在滑动窗口内进行投票。每个x点都存在一个投票分数v(x) ,如式(5)所示。最终获得协议的公共字段。
25.s4:搭建加入注意力机制的双向长短期记忆神经网络模型,将字段特征作为输入,在bilstm-am模型中进行训练,并从中得到一个针对工业协议的分类模型。消息分类:该短语旨在将具有相同格式的信息分类到相同的集群中。该短语的输入是一组工业协议信息,输出是一组协议信息集群,每个集群代表一种协议格式。具有相同功能的协议信息通常具有相同的格式。此外,不同方向的信息格式也不同。基于这些观察结果,将协议信息按方向和功能码分类到不同的集群中。具有相同方向和功能码的消息归类到同一个集群中。格式推断阶段用于派生所有消息的格式。这个阶段的输入是协议信息集群,输出是表示所有协议格式的树。为此,本发明首先推断每个子集群的格式,然后将结果组合在一起。因为在第一阶段已经得到了消息的头部结构,所以在这一阶段本发明只关注协议的最后一部分。再次将投票专家算法应用到每个聚类中来推断它们的格式。然后根据功能代码将每种聚类格式进行组合,得到最终结果。
26.长短期记忆神经网络(lstm)擅长处理可变长度序列,但不能利用未来的上下文信息,并且缺乏提取本地上下文信息的能力。此外,并非文件的所有部分都具有同等的相关性,但lstm无法识别文件各部分之间的不同相关性。这些问题影响了lstm对工业协议的分类精度。为了提高lstm在文本分类中的性能,通过集成双向lstm和注意机制设计一种新的结构来解决上述缺陷。如图4所示,bilstm通过结合前向隐藏层和后向隐藏层来访问前面和后面的上下文特征。单词表征的注意机制(am)更关注与文本情感相关的词,有助于理解句子语义。bilstm-am中的两个注意机制层分别处理前后两个语境特征。am层处理的特征连接在一起,最后输入到分类器。
27.该模型的主要分类组件是基于注意的bilstm。尽管通过ve量化了用于分类的输入特征,但对于所有输入字段,每个字段和最终分类之间的相关性并不相同。在损失函数的选择上,选用交叉熵的函数评价模型分类性能。它通常优于分类错误率或均方误差。在本发明的方法中,选择adam optimizer来优化网络的损失函数。交叉熵作为损失函数可以降低随机梯度下降过程中梯度消失的风险。损失函数可在公式(6)中表示如下其中是训练样本的数量,代表训练样本,是样本的标签,是bilstm-am模型的输出。
28.s5:最后对于工业协议所有可能的字段划分方式均使用模型进行预测,并计算出对置信度最高的字段分类。由于划分的可能性过多,求解最优划分的计算量较大。且对于局部相同的划分其置信度也相同,因此本方法中使用动态规划算法降低计算量,求解出置信
度最高的字段划分和字段分类,根据分类结果得到每一个公共字段对应的协议字段属于哪种工业协议。
29.以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献