基于注意力机制的工业控制系统网络流量异常检测方法与流程

文档序号:25991858发布日期:2021-07-23 21:03阅读:200来源:国知局
基于注意力机制的工业控制系统网络流量异常检测方法与流程

本发明属于网络流量检测技术领域,具体涉及一种基于注意力机制的工业控制系统网络流量异常检测方法。



背景技术:

工业控制系统(以下简称工控或工控系统)被广泛的应用于电力、交通、化工、水利、通信和航天等多行业之中。工控系统已经成为国家关键基础设施的重要组成部分。由于工控系统在国计民生中有着举足轻重的作用,尤其是作为关键基础设施的工控系统,每一次安全事件都会带来巨大的影响和危害。更严重的是,由于工控系统在设计时以功能实现为主并未充分考虑可能面临的信息安全问题,导致其存在许多潜在的信息安全漏洞。具备快速检测工控系统存在的异常行为的能力对于保障整个工控系统的正常运行而言,已事关国家安全。

虽然随着机器学习和深度学习的兴起,越来越多的研究者开始采用新的方法来检测异常行为。利用机器学习和深度学习的检测技术来进行异常检测也取得一定成果,在进行充分训练后这类模型能够获得较高的检测准确率。然而,这类检测方法需要进行充分的特征工程提取大量特征数据。却很难发现数据中隐藏的关联关系。此外,由于网络协议的异构性及其交互的多样性,使得传统异常检测算法在工业控制系统中不适用。目前大量关于工业控制网络安全的研究主要集中在恶意代码,病毒的检测方面,已取得了不错的研究成果。随着近年来机器学习和深度学习技术在异常检测领域上的应用,针对工业控制系统网络异常行为的检测方法开始发展完善。

面对针对工业控制系统的安全威胁日益增长,近年来的检测技术已经可以利用机器学习相关算法对这些异常行为和恶意攻击进行有效检测。它们通常提取网络流量的一些静态特征或者统计特征作为机器学习算法的输入。尽管这些技术有较好的检测结果,但是它们不能很好的满足工业控制网络的一些特点。首先,网络流量之间是具有序列性的,原始流量之间也存在相关性,这在如智能电网中的控制系统的流量环境中表现得尤为突出。其次,工业控制系统网络流量形成的交互场景往往是复杂的、不断演化的,因为工控系统流量包含多种周期性波动,并且其变化趋势是非线性的,其数据具有大量的影响因素。目前公开的流量检测方法没有较好解决这类问题。

公告号为cn109462521a的发明专利公开了一种适用于源网荷互动工控系统的网络流量异常检测方法,采用两层分类机制,即先通过ocsvm模型进行第一次分类,该分类器可以检测出绝大部分的正常流量,通过调整模型尽可能的检测出异常流量,然后将ocsvm判定为异常的数据(可能包括部分正常流量)通过gbdt算法进行第二次分类,第二次分类用于检测出第一次分类中误检的正常流量,并将这部分流量加入样本重新训练,提高检测的准确度。该发明提供的流量异常检测方法,不能发现数据中隐藏的关联关系,所以其检测准确度不能满足工控系统网络需求。

公开号为cn106357622a的专利申请公开了基于软件定义网络的网络异常流量检测防御系统,软件定义网络与传统网络对异常流量的检测方法大有不同,使得传统的检测方法不再适用,通过运用网络控制平面和数据平面分离的思想,软件定义网络为研发网络新应用和处理网络安全问题提供了新的解决方案。本发明利用软件定义网络架构的集中控制的特点,在攻击的源头实现流量实时监控,使用源ip防伪,接入层异常检测,链路流量异常检测形成多重防御体系,逐渐过滤异常流量,实现网络层ddos攻击在源端的检测和防御。只是站在单个网络会话的角度去度量是否异常,并没有站在设备的角度去整体度量流量是否异常。常判别的标准难以确定,并且不适合工业生产环境。



技术实现要素:

本发明的目的在于针对现有技术中存在的问题提供一种基于注意力机制的工业控制系统网络流量异常检测方法,该检测方法在工控生产各环节采用的各类控制设备采集网络流量通过设计的注意力模型结构完成,通过对控制层网络流量数据进行处理得到对向量矩阵,并提取出流量间的高维关联关系特征和序列性特征的二维向量矩阵,将处理得到的特征向量矩阵通过全连接层神经网络进行分类输出,得到样本最终的分类结果。

本发明的技术方案是:

基于注意力机制的工业控制系统网络流量异常检测方法,包括如下的处理步骤:

s1、收集流量样本数据集,从工控生产各环节采用的各类控制设备采集正常工作时不同控制层的网络控制流量,构成正常网络流量样本数据集;对工控生产各环节采用的相关控制设备进行渗透测试及网络异常攻击,收集相关的异常攻击流量,构成异常样本数据集,所述的正常网络流程样本数据集和异常流量样本数据集构成整体流量样本数据集;

s2、样本标定,首先对采集的正常网络流量样本数据集和异常流量样本数据集进行预处理,然后对正常网络流程样本数据集进行正常样本标定,将相应的渗透测试网络流量数据标定为异常攻击流量,完成标定后形成完备流量数据集,得到的完备流量数据集作为输入向量;

s3、特征提取,对输入向量进行特征提取处理,采用注意力模型函数计算得到包含流量高维关联关系特征的向量矩阵,得到特征向量;

s4、使用encoder结构对输入的特征向量进行预处理,计算得到attention值之后将其与原始网络流量数据合并与标准化;

s5、将步骤s4处理后的特征向量输入全连接层神经网络进行分类,对样本进行正常与异常判别,对结果进行整合分析,得到样本最终的分类结果。

具体的,所述步骤s2中对采集的正常网络流量样本数据集和异常流量样本数据集进行预处理的方法是将所有的数据报文截取为一致的长度为一个数据包,如一个数据包长度大于128字节,那么它将被截取为128字节,而如果小于128字节,那么0x00将被追加在末尾,直到满足长度限制为止,通过将连续的流量数据包填充至3584字节,也就是每28个数据包将生成一个28*128字节的矩阵,所有的流量将以相同的大小进行分割,并将结果转换为向量矩阵,每一个这样的向量矩阵定义为一个流量簇。

具体的,所述的网络异常攻击是对相关控制设备进行攻击行为产生的异常攻击流量,所述的攻击行为包括网络扫描行为、针对控制指令的篡改以及重放攻击行为、arp攻击以及拒绝服务攻击行为。

具体的,所述的attention值的计算输出按照公式计算得到。

具体的,所述的步骤s1中通过nmap或者是metasploit工具对相关控制设备进行渗透测试,并对相关流量进行数据标定为异常流量样本数据。

工业系统的可靠性与安全性一直受到人们的重视,许多研究所与研究人员也在关注、测试各种针对工控系统的异常检测模型以及技术。对于工控网络的异常流量控制方法,通常存在参数基线难以确定,灵活性差,误报率高的等缺陷,使得现有的异常检测技术仍然存在缺陷,降低了检测结果的准确性。

国内外现有的工业网络异常检测方法主要有基于自回归过程的异常检测,基于隐马尔可夫模型的异常检测,基于神经网络的异常检测等,但是这些方法基本上沿用了传统以太网的方案,对于工业网络流量异常检测效果并不明显。工业控制系统普遍适用于能源、电力、化工、交通运输、制造业等行业,工业控制系统中流量所呈现出的特性和传统以太网有所不同,因此直接套用传统以太网解决方案难以满足目前对于工业网络的安全需求。为了改善这方面的不足,有针对性的检测工业网络中出现的异常,本申请发明人通过对工业网络流量进行深入分析,提出一种适合工业网络环境下的异常流量检测方法。

本发明的有益效果是:本方法有效地发现和提取了工业控制系统网络原始流量之间的多维关系和特征,不需要对私有通信协议进行机械以及人工规则或特征提取,不需要花费大量时间和人力代价来提取特征,最终的分类通过全连接层来完成,实现了高性能的异常检测,具有较高的检测效率,而且与经典的机器学习和深度学习算法相比,具有更高的检测精度。

附图说明

图1是本发明方法的处理步骤示意图;

图2是为multi-headattention检测模型的原理示意图。

具体实施方式

下面结合附图及具体实施方式对本发明提供的方法进行详细的说明。

如图1所示为本发明方法的处理步骤示意图,基于注意力机制的工业控制系统网络流量异常检测方法,包括如下的处理步骤:

s1、收集流量样本数据集,从工控生产各环节采用的各类控制设备采集正常工作时不同控制层的网络控制流量,构成正常网络流量样本数据集;对工控生产各环节采用的相关控制设备进行渗透测试及网络异常攻击,收集相关的异常攻击流量,构成异常样本数据集,具体通过nmap或者是metasploit工具对相关控制设备进行渗透测试,所述的网络异常攻击是对相关控制设备进行攻击行为产生的异常攻击流量,所述的攻击行为包括网络扫描行为、针对控制指令的篡改以及重放攻击行为、arp攻击以及拒绝服务攻击行为,对相关流量进行数据标定为异常流量样本数据,所述的正常网络流程样本数据集和异常流量样本数据集构成整体流量样本数据集;

s2、样本标定,首先对采集的正常网络流量样本数据集和异常流量样本数据集进行预处理,然后对正常网络流程样本数据集进行正常样本标定,将相应的渗透测试网络流量数据标定为异常攻击流量,完成标定后形成完备流量数据集,得到的完备流量数据集作为输入向量;

s3、特征提取,对输入向量进行特征提取处理,采用注意力模型函数计算得到包含流量高维关联关系特征的向量矩阵,得到特征向量;

s4、使用encoder结构对输入的特征向量进行预处理,计算得到attention值之后将其与原始网络流量数据合并与标准化,所述的attention值的计算输出按照公式计算得到;

s5、将步骤s4处理后的特征向量输入全连接层神经网络进行分类,对样本进行正常与异常判别,对结果进行整合分析,得到样本最终的分类结果。

所述步骤s2中对采集的正常网络流量样本数据集和异常流量样本数据集进行预处理的方法是将所有的数据报文截取为一致的长度为一个数据包,如一个数据包长度大于128字节,那么它将被截取为128字节,而如果小于128字节,那么0x00将被追加在末尾,直到满足长度限制为止,通过将连续的流量数据包填充至3584字节,也就是每28个数据包将生成一个28*128字节的矩阵,所有的流量将以相同的大小进行分割,并将结果转换为向量矩阵,每一个这样的向量矩阵定义为一个流量簇。

本发明实际上采用的是multi-headattention检测模型进行分类,如图2所示,该模型不仅具有较高的训练和检测效率,而且与经典的机器学习和深度学习算法相比,具有更高的检测精度,与基于规则的检测机制相比,该模型不需要对私有通信协议进行解析以及人工规则或特征提取,在multi-headattention结构中,最终的分类是通过全连接层来完成。

attention机制就是一种根据某些规则或者某些额外信息从向量表达集合中抽取特定的向量进行加权组合的方法,将利用encoder的attention也即self-attention,对于self-attention来说,计算得到的query和key-value的过程都是使用同样的输入数据,也就是输入与自身进行attention。在实际应用中,attention函数是由queries计算得到的,将这些queries进行拼接形成矩阵q同时keys以及values也将拼接成为矩阵k,v。attention的计算输出可以按照公式计算得到。

模型中query,key,value首先经过一个线性变换后输入值缩放点积attention,重点是这里需要做h次,每做一次scaleddot-product计算也就意味着多提取了一组头。而且每次q,k,v进行线性变换的参数w是不同的,之后将h次的缩放点积attention的输出进行拼接之后,进行一次线性变换得到的即为multi-headattention的结果。进行h次不同的线性映射分别映射到dk,dv维。

所述的步骤s1中对流量的划分整理成表格形式如下所示。

本方法有效地发现和提取了工业控制系统网络原始流量之间的多维关系和特征,不需要对私有通信协议进行机械以及人工规则或特征提取,不需要花费大量时间和人力代价来提取特征,最终的分类通过全连接层来完成,实现了高性能的异常检测,具有较高的检测效率,而且与经典的机器学习和深度学习算法相比,具有更高的检测精度。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

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