一种用于对工业网络传输协议进行解析的方法及系统与流程

文档序号:17247810发布日期:2019-03-30 08:54阅读:276来源:国知局
一种用于对工业网络传输协议进行解析的方法及系统与流程

本发明涉及工业网络传输协议技术领域,更具体地,涉及一种用于对工业网络传输协议进行解析的方法及系统。



背景技术:

网络协议解析是网络安全的一项重要内容。在传统网络安全领域,大多数病毒、木马等均通过网络协议进行传播和扩散。因此,通过对网络协议进行解析后,可以对病毒、木马等恶意行为进行检测和阻断。此外,网络协议解析对网络监管具有重要意义。一些恶意人群通过特殊的网络协议传播扩散不良内容和信息,通过网络协议解析可以有效还原传播的不良信息,定位传播源,从而达到精细化网络监管效果,对建设洁净的网络环境具有重要意义。

在工业控制系统、国家关键基础设施等重要领域,涉及大量工业网络传输协议(简称工业协议),且其中有相当多的协议为未知协议。这些未知工业协议已成为攻击者的目标,一旦被攻击者利用,通过此类未知协议发送有害命令给工业设备或系统,将引发重大事故,甚至威胁工业现场人员的生命安全。目前国内外对于未知工业协议的解析和还原大多是采用人工的方法,这种方法需要耗费极大的时间和人力,针对工业协议中存在大量私有协议难以解析且人工成本高,

因此,需要一种技术,以实现对工业网络传输协议进行解析。



技术实现要素:

本发明技术方案提供了一种用于对工业网络传输协议进行解析的方法及系统,以解决如何对工业网络传输协议进行解析的问题。

为了解决上述问题,本发明提供了一种用于对工业网络传输协议进行解析的方法,所述方法包括:

抽取工业网络传输协议的统计特征;

基于所述统计特征,通过机器学习方法对所述工业网络传输协议中的控制命令报文进行分类;

将所述工业网络传输协议中的不同字段进行分割,并将所述不同字段映射到所述控制命令报文,对所述不同字段进行识别;

建立工业网络协议状态机,对异常的所述控制命令报文进行检测。

优选地,所述统计特征包括:报文长度、报文字节熵、报文间距离。

优选地,还包括:基于所述统计特征,计算所述控制命令报文之间的相似度;

定义所述控制命令报文中每个字节的权重,所述每个字节的权重按距离所述控制命令报文的报文头的距离递减;

通过莱文斯坦距离的方法计算所述控制命令报文间的相似度。

优选地,采用最长公共子序列的文本比较算法needleman-wunsch将所述工业网络传输协议中的不同字段进行分割。

优选地,所述不同字段包括:常量字段、定长字段和变长字段。

基于本发明的另一方面,提供一种用于对工业网络传输协议进行解析的系统,所述系统包括:

抽取单元,用于抽取工业网络传输协议的统计特征;

分类单元,用于基于所述统计特征,通过机器学习方法对所述工业网络传输协议中的控制命令报文进行分类;

分割单元,用于将所述工业网络传输协议中的不同字段进行分割,并将所述不同字段映射到所述控制命令报文,对所述不同字段进行识别;

检测单元,用于建立工业网络协议状态机,对异常的所述控制命令报文进行检测。

优选地,所述统计特征包括:报文长度、报文字节熵、报文间距离。

优选地,还包括计算单元,用于基于所述统计特征,计算所述控制命令报文之间的相似度;

定义所述控制命令报文中每个字节的权重,所述每个字节的权重按距离所述控制命令报文的报文头的距离递减;

通过莱文斯坦距离的方法计算所述控制命令报文间的相似度。

优选地,所述分割单元还用于采用最长公共子序列的文本比较算法needleman-wunsch将所述工业网络传输协议中的不同字段进行分割。

优选地,所述不同字段包括:常量字段、定长字段和变长字段。

本发明技术方案提供一种用于对工业网络传输协议进行解析的方法及系统,其中方法包括:抽取工业网络传输协议的统计特征;基于所述统计特征,通过机器学习方法对所述工业网络传输协议中的控制命令报文进行分类;将所述工业网络传输协议中的不同字段进行分割,并将所述不同字段映射到所述控制命令报文,对所述不同字段进行识别;建立工业网络协议状态机,对异常的所述控制命令报文进行检测。本发明技术方案对未知的工业协议进行解析和还原,识别并阻止恶意指令攻击。本发明技术方案提出了工业协议解析框架,采用集成学习等技术实现工业协议的解析,还原其中的功能码、操作数等工业协议相关的属性,并建立了工业协议状态机,以检测网络异常行为。本发明技术方案对于开展工控入侵检测、协议安全性评估、工业协议漏洞挖掘等方面研究具有重要的意义,同时将为保障国家基础设施及核心工业控制系统安全提供有力支撑。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为根据本发明优选实施方式的用于对工业网络传输协议进行解析的方法流程图;

图2为根据本发明优选实施方式的工业协议解析流程示意图;以及

图3为根据本发明优选实施方式的用于对工业网络传输协议进行解析的系统结构图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

图1为根据本发明优选实施方式的用于对工业网络传输协议进行解析的方法流程图。本申请提出了一种的工业协议解析框架,图1未示出,如附图2所示。与传统协议解析方式不同,本框架首先对控制命令报文进行分类,通过抽取工业协议的统计特征,并采用集成聚类算法对未知工业协议的控制命令报文进行区分。其次,对协议格式进行抽取,采用needleman-wunsch算法区分工业协议中的不同字段,并与控制命令报文进行映射,识别功能码字段作为控制命令表示。最后,建立工业协议状态机,检测异常控制命令报文。本发明可辅助安全人员对私有工业网络协议进行分析和还原,从而为入侵检测、模糊测试提供支持。如图1所示,一种用于对工业网络传输协议进行解析的方法,方法包括:

优选地,在步骤101:抽取工业网络传输协议的统计特征。优选地,统计特征包括:报文长度、报文字节熵、报文间距离。优选地,基于统计特征,计算控制命令报文之间的相似度;定义控制命令报文中每个字节的权重,每个字节的权重按距离控制命令报文的报文头的距离递减;通过莱文斯坦距离的方法计算控制命令报文间的相似度。

本申请首先对工业协议特征进行抽取。由于无法了解工业协议细节,本申请采用机器学习方法区对控制命令报文进行分类。由于无法了解工业协议细节,因此采用报文统计特征以表征工业协议。统计特征包括:报文长度、报文字节熵、报文间距离等。

本申请对报文相似度计算。根据从工业协议报文中抽取的特征,计算报文间的相似度。本申请采用字节流相似性方法来测量两个数据包间的相似度。根据启发式规则,距离报文头部越近的字段在整个数据包的作用越重要。本发明为报文中的每个字节定义了权重,原则为:距离报文头部的权重递减。定义好权重后,本申请通过莱文斯坦距离的方法计算报文间的相似度。

优选地,在步骤102:基于统计特征,通过机器学习方法对工业网络传输协议中的控制命令报文进行分类。

本申请基于聚类方对协议报文进行分类。首先,基于以上统计特征和报文相似度计算方法,分别通过knn、kmeans、dbscan三种聚类算法进行聚类获得初始划分结果;接着采用集成聚类方法,将以上三种聚类算法组合得到邻近度矩阵,接着在这个邻近度矩阵上运用层次聚类中的单连接方法得到最终的聚类结果。

优选地,在步骤103:将工业网络传输协议中的不同字段进行分割,并将不同字段映射到控制命令报文,对不同字段进行识别;4.根据权利要求1的方法,采用最长公共子序列的文本比较算法needleman-wunsch将工业网络传输协议中的不同字段进行分割。优选地,不同字段包括:常量字段、定长字段和变长字段。

本申请,工业协议通常包含识别码、功能码、数据长度、操作地址、数据负载等字段。本申请并不对工业协议进行完整精确还原,而是识别工业协议的重要字段:功能码、操作地址和数据负载字段。

对工业协议字段分割,首先采用needleman-wunsch算法将工业协议报文分割成:常量字段、定长字段和变长字段。具体过程为:首先,输入两个报文的原始字符串,然后,算法计算出来函数矩阵。这里函数矩阵的计算分为三步。第一,确定函数惩罚值,算法对于任意矩阵(i,j)存在二种情况,一是相等,二是填补空白字符。空白字符又分为;两种情况,一种情况是填补空白字符对齐s1,另外一种情况是填补空白字符对齐s2。赋予了惩罚值之后,就开始遍历矩阵进行计算,每次取当前位置的最大函数值。在函数矩阵建立完成之后,就开始从矩阵的右下角,反向寻找最大值路径,最终确定字符串对齐之后的格式。

字段抽取,本申请根据经验观察,功能码字段为定长字段,且通常位于工业协议数据报文头部。因此,从数据报文头部开始,逐个将定长字段与聚类所得的控制命令报文进行匹配,选取整个数据集的最大匹配的定长字段作为协议的功能码字段。此外,基于数据负载位于报文靠后位置且通常具有最大字段长度这一启发式规则,选取相应的变长字段作为数据字段。

优选地,在步骤104:建立工业网络协议状态机,对异常的控制命令报文进行检测。

本申请中状态机表示具体为:选取工业网络通讯中的一条链路来建立状态机,例如从上位机到下位机通讯、hmi与plc间通讯。其中,状态机的状态(q)代表两点间通信的当前状态;状态间跳转和迁移由该链路上传输的工业命令(q)来驱动。

状态机学习为:工业协议状态机通过持续到达的工业命令来学习并生成状态空间和状态转移。首先,状态机处于q0状态,即初始状态。当收到一条工业命令q1时,状态机将从q0状态迁移到q1状态。通过此种方式进行学习直到不出现新的命令和新的状态为止。当链路中断时,则状态机转移到终止状态qt。

基于协议状态机检测异常,本申请中的状态机可检测三种异常:丢包、重传和未知转移。其中,当状态机处于q1状态时,若出现命令q2使得状态机转移到q2状态,则说明发生了丢包异常;当状态机处于q1状态,若出现q1命令使得状态重新回到q1,则说明发生了重传异常;当状态转移过程中,发现了未知命令,则状态机会回到初始状态,说明发生了未知转移异常。

本申请中的工业协议解析框架,该框架面向工业协议,通过控制命令分类、协议格式抽取和协议状态机建立实现了工业协议解析。本申请中的工业协议控制命令分类机制,通过该机制针对工业协议中不同类型的控制命令,采用集成聚类方法,融合三种聚类算法的划分结果生成更优的分类策略。本申请中的工业协议格式抽取方法。该方法采用needleman-wunsch算法抽取工业协议中的常量、定长字段和变长字段。并与工控命令分类结果相结合,来识别工业协议中的功能码、操作地址和操作数值等字段。本申请中的工业协议状态机建立机制。该机制以工业控制命令作为触发条件,在工业协议多状态间转移,可用于检测网络异常包发送。

本申请实现了将未知工业协议的报文分成不同的工业控制命令类型,同时可识别协议中固定字段、功能码等定长字段以及数据等可变字段,并可对协议报文进行功能分类,同时可根据控制命令和报文收发关系构建协议状态机,可用于对工业协议进行协议审计、恶意行为检测、模糊测试等。本申请对于开展工控入侵检测、协议安全性评估、工业协议漏洞挖掘等方面研究具有重要的意义,同时将为保障国家基础设施及核心工业控制系统安全提供有力支撑。

图3为根据本发明优选实施方式的用于对工业网络传输协议进行解析的系统结构图。如图3所示,一种用于对工业网络传输协议进行解析的系统,系统包括:

抽取单元301,用于抽取工业网络传输协议的统计特征。优选地,统计特征包括:报文长度、报文字节熵、报文间距离。

分类单元302,用于基于统计特征,通过机器学习方法对工业网络传输协议中的控制命令报文进行分类。

分割单元303,用于将工业网络传输协议中的不同字段进行分割,并将不同字段映射到控制命令报文,对不同字段进行识别。优选地,分割单元303还用于采用最长公共子序列的文本比较算法needleman-wunsch将工业网络传输协议中的不同字段进行分割。优选地,不同字段包括:常量字段、定长字段和变长字段。

检测单元304,用于建立工业网络协议状态机,对异常的控制命令报文进行检测。

优选地,还包括计算单元,用于基于统计特征,计算控制命令报文之间的相似度;定义控制命令报文中每个字节的权重,每个字节的权重按距离控制命令报文的报文头的距离递减;通过莱文斯坦距离的方法计算控制命令报文间的相似度。

本发明优选实施方式的用于对工业网络传输协议进行解析的系统300与本发明另一优选实施方式的用于对工业网络传输协议进行解析的方法100相对应,在此不再进行赘述。

已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。

通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1