掌桥专利:专业的专利平台
掌桥专利
首页

一种基于深度学习的配水系统网络物理攻击检测方法

文献发布时间:2023-06-19 12:02:28


一种基于深度学习的配水系统网络物理攻击检测方法

技术领域

本发明涉及救援设备技术领域,更具体的是,本发明涉及一种基于深度学习的配水系统网络物理攻击检测方法。

背景技术

目前,配水系统集成了现代网络物理系统的数据采集、传输、在线监测和实时自动运行等设备。它主要依靠集成传感器网络和可编程逻辑控制器件来控制相应的设备来实现配水系统的正常运行。数据的采集和传输主要由监控与数据采集系统来完成,它可以实时监控配水系统中某个部件的状态、流量、压力等。然而,物理基础设施与智能网络技术的结合,使得物理基础设施完全暴露在虚拟网络中,容易受到网络攻击,那么系统在网络攻击下可能会出现异常。异常通常可以定义为一些不符合规定的正常行为概念的数据。网络攻击已经成为一种日益严重的威胁。联邦调查局将网络犯罪列为打击犯罪的主要活动。通过美国国土安全部的调查,在关键基础设施中最容易受到网络攻击的是配水系统,配水系统是仅次于关键制造业和能源行业的第三大目标行业。攻击者通过攻击监控与数据采集系统间接导致配水系统异常。例如,攻击者有不同的攻击方法来恶意篡改水箱的水位。因此,识别这些异常极为重要。

为了在未来减少这些威胁,最近的研究讨论了建立一个成熟的网络安全文化体系以增强情报对网络攻击的抵御能力的重要性。此外,对网络物理系统的相应组件(包括远程传感器和执行器、通信网络和监控与数据采集系统模块)采取安全措施,可以增强它们面对网络攻击时的随机反应能力。目前对供水基础设施系统中的网络物理攻击进行了检测试验,利用水力学模型研究了水渠网络中的网络攻击检测,利用遗传算法和递归贝叶斯规则检测异常水力或水质事件;对于基于数据的方法,利用了一种数据驱动的聚类技术作为检测监控与数据采集系统攻击的入侵检测方法,分析监控与数据采集系统采集到的不同传感器的数据之间的相关性可以检测到异常值,但它不适合扩展到大数据集,这些数据集通常包含大量不相关和冗余信息;对于基于模型的方法也可以检测到更多的攻击,但是基于模型的方法需要一个良好的物理水力模型;对于基于学习的方法,利用主成分分析和人工神经网络,设置相应的阈值来检测攻击,但其中阈值是人为经验给出的,所以检测的召回率很低、或者是召回率很高,误报太多,没有做到均衡。

随着配水系统受到网络物理攻击的频率不断增加,需要开发一种攻击检测方法,以保护供水系统的关键基础设施。

发明内容

本发明的目的是设计开发了一种基于深度学习的配水系统网络物理攻击检测方法,通过堆栈自编码器再现了正常情况下供水系统中设施运行过程中采集的数据,并通过对重建误差进行分析和处理,判定出配水系统网络中的攻击行为,通过学习高维数据的特征精确识别配水系统网络受到的攻击。

本发明提供的技术方案为:

一种基于深度学习的配水系统网络物理攻击检测方法,包括如下步骤:

步骤一、构建堆栈自编码器并将数据输入获得重构数据;

步骤二、将所述重构数据与训练集数据进行比较并构建成重构误差矩阵;

步骤三、将所述重构误差矩阵分解为时间步长的窗口误差,并将所述窗口误差与阈值进行比较:

若所述窗口误差不大于阈值,则配水系统网络正常;

若所述窗口误差大于阈值,则配水系统网络检测到攻击。

优选的是,所述构建堆栈自编码器包括如下步骤:

步骤1、构建自编码器;

步骤2、将多个自编码器堆栈构建堆栈自编码器;

步骤3、将训练集数据、验证集数据和测试集数据进行归一化处理,并以训练集数据对堆栈自编码器进行训练,以验证集数据对所述堆栈自编码器进行验证并生成阈值,以测试集数据对所述堆栈自编码器进行测试。

优选的是,所述训练集数据是在配水系统网络正常运行的情况下采集的数据,所述验证集数据是在配水系统网络受多种类型的攻击的情况下采集的数据,所述测试集数据是在配水系统网络受多种类型的攻击的情况下采集的数据。

优选的是,所述自编码器隐藏层h

h

式中,x表示输入数据,且x=[x

所述自编码器的输出数据满足:

y=f(W

式中,y表示输出数据,y=[y

优选的是,所述激活函数满足:

优选的是,所述激活函数满足:

优选的是,所述阈值为20%训练集上计算的重构误差的第99个百分位数。

优选的是,还包括对所述堆栈自编码器进行评估:

式中,F

所述召回率和精确度的平衡指标的取值范围为0到1之间,若所述召回率和精确度的平衡指标为0时,表示所述堆栈自编码器的输出结果最差;若所述召回率和精确度的平衡指标为1时,表示所述堆栈自编码器的输出结果最佳。

优选的是,所述召回率满足:

式中,TP表示实际攻击且判定为攻击行为的数目,FN表示实际攻击且判定为正常行为的数目。

优选的是,所述精确率满足:

式中,FP表示实际正常且判定为攻击行为的数目。

本发明所述的有益效果:

(1)、本发明设计开发的一种基于深度学习的配水系统网络物理攻击检测方法,主要依靠监控与数据采集系统在给水系统正常运行过程中采集的数据,即无攻击数据,通过逐层训练,使网络快速收敛,不存在过拟合和梯度下降的局部最优解,可以更好地拟合数据,提取数据特征。

(2)、本发明设计开发的基于深度学习的配水系统网络物理攻击检测方法,通过评价指标着重于检测召回率和准确率之间的平衡,即在减少误报的同时尽可能多地检测攻击,对算法进行优化。

(3)、本发明设计开发的基于深度学习的配水系统网络物理攻击检测方法,能够识别出数据集中模拟的大多数攻击,优于传统的算法。

附图说明

图1为本发明所述自编码器的结构示意图。

图2为本发明所述堆栈编码器的结构示意图。

图3为本发明所述堆栈编码器的分层训练过程示意图。

图4为本发明所述堆栈编码器的整体微调结构示意图。

图5为本发明所述堆栈编码器的攻击检测示意图。

图6为本发明所述堆栈自编码器检测结果示意图。

图7为本发明所述人工神经网络检测结果示意图。

图8为本发明所述自编码器检测结果示意图。

图9为本发明所述浅层堆栈自编码器检测结果示意图。

图10为本发明所述深层堆栈自编码器检测结果示意图。

具体实施方式

下面结合对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

本发明提供的一种基于深度学习的配水系统网络物理攻击检测方法,包括如下过程:

如图1所示,自动编码器是一种无监督的深层神经网络,与其他人工神经网络类似,通过突触连接神经元,实现自编码器网络权值的数学映射,它包括编码层、隐藏层和解码层三层神经网络,通过调整参数来训练每层的权重,使输出近似等于输入:

y≈x;

其中,x表示输入数据,x=[x

自编码器主要对输入数据进行编码和解码,编码时,编码层将输入数据映射到隐藏层的输出,学习并提取数据的特征:

h

其中,W

激活函数常见的是logistic回归(sigmoid)函数,双曲正切(tanh)函数:

隐藏层压缩输入数据并学习输入数据的特征,解码时,解码器将隐藏层获得的输出数据特征解码为输入,并尽可能重构为输入数据:

y=f(W

其中,W

堆栈自编码器由多个自编码器堆栈而成,通过逐层预训练无监督学习来初始化网络的参数,如图2所示为4层堆栈自编码器的结构,训练输入数据用X={x

输入数据x被第一层自编码器编码以获得第一层的输出y

如图4所示,除最后一个解码层外,其他解码层最后要丢弃,逐层训练的主要目的是训练隐藏层的整体参数,最后通过损耗函数和网络优化器对整个网络进行微调,使y尽可能接近x,通过逐层训练,堆栈自编码器可以更好地拟合数据,提取数据特征。

使用训练集来训练网络,该网络可以学习训练集的潜在表示和特征。如图5所示,网络攻击检测过程是对单个自编码器进行分层预训练后,对隐藏层进行叠加,最后对网络进行微调,形成完整的堆栈自编码器网络结构,可以很好地重构新输入的数据,将重构数据与输入数据之间的误差最小化,说明堆栈自编码器网络参数训练是成功的,但当输入异常数据时,网络无法很好地重构异常数据,因为训练后的网络参数是基于未发生异常的训练集进行训练的,这是检测异常的方法,进一步将重构误差分解为时间步长窗口误差,由于攻击只发生在一定的时间段内,利用时间步长进行窗口检测,并将窗口误差与阈值进行比较,如果误差大于阈值,则视为异常并返回一个标志,否则视为正常。

其中,窗口误差是将整体计算出的误差矩阵,用移动时间窗做滑动分解进行误差均值计算。

选择在20%训练集上计算的重构误差的第99个百分位数作为阈值。

在理想情况下,检测算法可以检测出所有攻击而不会出现误报,但实际上无法做到这一点,因此使用分类指标来评估算法的检测结果。

识别攻击的能力通常用真阳性率(TPR)来评价,也叫召回率(Recall),直观地说,它是分类器发现所有攻击的能力,即正确地检测出所有攻击时间步数占被攻击系统总时间步数的比例,定义为:

其中,TP表示真阳性的数目,FN表示假阴性的数目,而TP表示实际攻击行为被判断为攻击;FN表示实际攻击行为被判断为正常行为。

避免误报的能力通常通过真阴率(TNR)来评估,即在整个正常系统运行中正确分类的系统正常时间步长的比例,其定义为:

其中,FP表示假阳性的数目,TN表示真阴性的数目,FP表示实际上是正常行为被判断为攻击行为;TN表示它实际上是正常行为被判断为正常行为。

与召回率相对应的是精确率(Precision),即正确检测到的攻击时间步数占攻击总时间步长的比例,定义为:

因此,在优化和比较算法时,有必要在召回率和精确率之间取得平衡,如果召回率太高,说明该算法可以检测到大多数攻击,但伴随的精确率会太低,会产生大量的误报,这说明算法过于敏感;相应地,如果精确率过高,则说明算法的避免误报率很高,但召回率将非常低,许多攻击无法被检测到,这说明该算法不够敏感,因此如何平衡召回率和精确率是非常重要的。

这就需要一个新的指标来平衡召回率和精确率,这就是F

以上所有评价指标的取值范围均在0到1之间,当指标为0时,表示结果最差;当指标为1时,表示结果最佳。

实施例

基于真实世界的物理基础设施,对C镇配水系统进行了仿真,C城包括429条管道、388个节点、7个储罐、11个泵、5个阀门(实际上只有一个阀门被监测和记录)和1个水库,这些基本的物理设施由9个可编程逻辑控制器控制,可编程逻辑控制器主要用于控制水泵和阀门的状态(开或关),实现配水系统的正常运行。

在本实施例中,使用了三个数据集,即训练集、验证集(表1)和测试集(表2),这些数据通过MATLAB工具箱和EPANET2进行仿真,模拟配水系统的水力响应。

表1验证集攻击特征

表2测试集攻击特征

所有数据集包含43个监控系统变量的每小时监控与数据采集系统读数,43个系统变量,包括7个水箱水位(L_T)、11个泵流量(F_PU)和11个泵状态(S_PU)、1个阀门流量(F_V2)和状态(S_V2),以及12个节点的压力(P_J280、P_J269、P_J300、P_J256、P_J289、P_J415、P_J302、P_J306、P J307、P_J317、P_j4、P_J422)。

训练集中采集的数据总时间步长为365天,不包含任何攻击,即数据集是在供水管网系统正常运行的情况下采集的;验证集包含7种类型的攻击,总攻击时间步长为492小时(表1,攻击1-7);测试集包含7种类型的攻击,总攻击时间步长为407小时(表2,攻击8-14)。

攻击者试图隐藏或更改监控与数据采集系统采集的数据,使系统发出错误指令,控制可编程逻辑控制器进行错误操作,从而实现攻击,例如,在攻击9中,攻击者使传递给可编程逻辑控制器3的水箱T2的水位低于历史值,并实际在内工作正常范围内,系统被骗,系统打开V2阀,向水箱T2注水,导致水箱水位过高,直至溢出。

将训练集分成两部分,80%训练集1,20%验证集1,训练集1用于训练和拟合网络模型,验证集1用于验证网络并生成自适应阈值,在训练网络之前,对数据进行归一化处理,为了便于在训练网络之前对网络进行训练和拟合,同时对验证集和测试集中的数据进行规范化处理。

使用训练集(即配水系统正常运行时的数据)对验证集(表1)和测试集(表2)进行网络训练、验证和测试,在分层训练过程中,将43个传感器的变量数据输入到网络中进行特征提取,训练使用随机批训练,批量大小设置为32,迭代次数为24,当对网络进行整体微调时,迭代次数为50次,并选取双曲正切函数作为激活函数,其目的是更好更快地进行训练,减少深层网络自身随机性的影响。

在训练过程中,采用Adam优化算法进行训练,Adam算法与传统的随机梯度下降算法有很大不同,它使用单一的学习速率α来更新网络权值,并且学习速率不会改变,这也会产生梯度爆炸、梯度消失和局部最优解等一系列训练问题,Adam算法通过计算梯度的一阶矩估计和二阶矩估计,自适应学习梯度下降,优化网络,设计不同的学习参数,训练的损失函数是均方误差损失函数:

同时,在本实施例中也采取了提前停止训练,在训练中降低学习率的方法,在使用Adam优化器时,将初始学习率l

l

式中,l

人工神经网络是一种无监督的神经网络,其训练方法与堆栈自编码器相同,并在验证集和测试集上进行测试,人工神经网络曾用于预测水资源变量的动态时间序列模式。

如表3显示了堆栈自编码器、人工神经网络和自编码器检测的召回率和准确率的比较结果,以及TPR和TNR指标的比较结果,相比之下,人工神经网络和自编码器的检测结果要比堆栈自编码器差,无论是验证集还是测试集,堆栈自编码器检测召回率接近60%,准确率保持在94%左右。

表3人工神经网络,自编码器,堆栈自编码器检测指标

如图6所示为堆栈自编码器网络检测结果,从图6、图7、图8可以更直观地看出,堆栈自编码器算法优于人工神经网络和自编码器算法,从图中可以看出人工神经网络没有检测到攻击7(表1验证集)和攻击13(表2测试集),图8显示自编码器在检测验证集的攻击12方面比堆栈自编码器差。

使用4层隐藏层堆栈自编码器结构(图2),隐藏层变量的数量分别设置为32、16、16和32,从表4中可以看到浅层堆栈自编码器和深层堆栈自编码器以及堆栈自编码器之间的比较,浅层堆栈自编码器具有与堆栈自编码器相同的结构,它也是4层自编码器的堆栈,不同的是隐藏层变量的个数分别设置为18、8、8、18;深层堆栈自编码器是不同的,使用6层堆栈自编码器,隐藏层变量的数目分别设置为32、16、8、8、16和32,表4显示了堆栈自编码器、浅层堆栈自编码器和深层堆栈自编码器的检测指标的比较结果,表4显示,浅层堆栈自编码器在测试集上的检测结果的准确率最高,但召回率很低;浅层堆栈自编码器检测结果如图9所示,深层堆栈自编码器检测结果如图10所示。

表4堆栈自编码器,浅层堆栈自编码器,深层堆栈自编码器检测指标

最后对各模型的召回率和准确率的评价指标进行加权,表5显示了加权召回率和精确率后的F

表5 F

本发明设计开发的一种基于深度学习的配水系统网络物理攻击检测方法,主要依靠监控与数据采集系统在给水系统正常运行过程中采集的数据,即无攻击数据,通过逐层训练,使网络快速收敛,不存在过拟合和梯度下降的局部最优解,并且能够识别出数据集中模拟的大多数攻击,本算法着重于检测召回率和准确率之间的平衡,即在减少误报的同时尽可能多地检测攻击。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的实施例。

相关技术
  • 一种基于深度学习的配水系统网络物理攻击检测方法
  • 一种基于联邦学习框架的电力计量系统网络入侵检测方法
技术分类

06120113145059