发明内容
本发明的目的在于提供针对新型电力系统中存在的潜伏时间长、危害程度高、检测难度大的APT攻击,能够有效检测的一种基于STSA-transformer算法的APT攻击检测方法。和之前的相关技术进行比较,本发明的目的在于找到一种对长时间序列数据敏感的检测方法,能够捕获更大范围的APT攻击序列,从而提高APT攻击检测的效果。
为达到以上目的,本发明采取的技术方案是:
一种基于STSA-transformer算法的新型电力系统APT攻击检测方法,其特征在于,
基于新型电力系统高比例新能源、高增长负荷、高比例电力电子设备的基本特征,模拟电力系统遭受的网络攻击,从信息侧的数据采集设备收集网络流量数据,并进行整理,作为下一步的输入;
将所述网络流量数据进行预处理;
提出一种软阈值化自注意力机制(STSA),对时间序列数据之间的相关性进行捕捉,并消除部分冗余信息;
依据所述软阈值化自注意力机制,使用PowerNorm归一化的transformer编码层对输入进行计算,最后通过softmax层将结果进行分类输出;
初始化参数,依据所述通过softmax层将结果进行分类输出搭建模型,对模型进行训练,使用梯度下降法对权值进行更新,作为下一步的输入;
用训练好的模型对新型电力系统的APT攻击进行检测,如果检测结果为正常,则流量可以进行正常操作;如果检测结果为攻击类别,则需要对系统发出警报提醒。
在上述方案的基础上,所述预处理包括离散特征数值化和特征值归一化。
在上述方案的基础上,基于新型电力系统高比例新能源、高增长负荷、高比例电力电子设备的基本特征,模拟电力系统遭受的网络攻击,从信息侧的数据采集设备收集网络流量数据,并进行整理,作为下一步的输入具体包括:
了解新型电力系统基本结构组成,分析新型电力系统基本特征;
对新型电力系统进行模拟网络攻击,在信息侧设备收集长时间范围内的网络流量数据,并按不同阶段进行划分,整理成数据集。
在上述方案的基础上,将所述网络流量数据进行预处理,所述预处理包括离散特征数值化和特征值归一化具体包括:
对数据中的离散型数据进行二进制的独热编码,将其转换为数值型数据;
对所有特征向量进行归一化操作,公式如下所示:
其中,Xmax与Xmin分别表示原始特征值取值范围上的最大值和最小值,X表示原始特征值,Xn表示归一化之后的特征值。
在上述方案的基础上,提出一种软阈值化自注意力机制(STSA),对时间序列数据之间的相关性进行捕捉,并消除部分冗余信息具体包括:
对数据集的特征向量进行位置编码,保存数据的位置信息,公式如下所示:
PE(pos,2i)=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos(pos/100002i/dmodel)
其中pos为序列中的位置,dmodel为位置信息编码的特征向量的维度,i表示位置信息编码特征向量的第i个元素,编码向量中的奇数位用cos来编码,偶数位用sin来编码;
将原始数据的特征向量与位置编码的结果相加,将结果输入到自注意力层;
初始化三个权重矩阵,将它们分别乘以输入向量,得到Q、K、V三个矩阵,利用这三个矩阵进行多头自注意力的计算,计算公式如下:
其中Q、K、V为三个需要进行权重更新的矩阵,d为特征向量的维度;
将得到的注意力结果输入一个神经网络模块之中,该模块包含全局平均池化层以及两个全连接层,最后通过sigmoid函数将结果输出,与全局平均池化层的结果相乘,得到每一条样本数据的阈值;
根据上述阈值,利用软阈值算法计算公式,对注意力结果进行软阈值操作,保留注意力的重要部分,不重要的部分舍去,并对冗余部分进行消除:
在上述方案的基础上,依据所述软阈值化自注意力机制,使用PowerNorm归一化的transformer编码层对输入进行计算,最后通过softmax层将结果进行分类输出具体包括:
将计算得到的软阈值自注意力的结果输入到transformer编码器除多头自注意力之外的部分,主要包括残差网络、归一化以及前馈神经网络,最后通过softmax函数将结果分类输出,其中的归一化操作将传统transformer中的LN层替换为一种新的归一化操作PoweNorm,将原来的强制零均值和单位方差的操作改为强制二次均值的操作,其计算公式如下所示:
其中Xi为每一批次的特征向量,B为批次大小,其余变量分别为X与Y归一化之后的结果。
在上述方案的基础上,初始化参数,依据所述通过softmax层将结果进行分类输出搭建模型,对模型进行训练,使用梯度下降法对权值进行更新,作为下一步的输入具体包括:
根据提出一种软阈值化自注意力机制(STSA),对时间序列数据之间的相关性进行捕捉,并消除部分冗余信息;
依据所述软阈值化自注意力机制,使用PowerNorm归一化的transformer编码层对输入进行计算,最后通过softmax层将结果进行分类输出所提出的方法搭建算法模型;
初始化参数,设置多头自注意力头数、编码器层数、全连接层输入与输出维数、激活函数、训练批次以及迭代次数等参数值;
将数据分为训练集与测试集输入到搭建好的模型之中,损失函数选取分类的交叉熵损失函数,权值更新规则采用基于时序的反向传播算法进行权值更新,采用梯度下降算法加速神经网络的优化。
在上述方案的基础上,用训练好的模型对新型电力系统的APT攻击进行检测,如果检测结果为正常,则流量可以进行正常操作;如果检测结果为攻击类别,则需要对系统发出警报提醒具体包括:
将训练好的模型在测试集上进行测试,如果训练出的神经网络的准确率能够达到预期要求,则所述神经网络为训练好的神经网络;
如果对数据集的检测结果为正常,则流量可以进行正常操作;如果对数据集的检测结果为攻击,则需要发出警报提醒。
在上述方案的基础上,还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现上述任一方案的基于STSA-transformer算法的新型电力系统APT攻击检测方法。
本发明的有益效果:
本发明通过STSA-transformer算法结合一种新的归一化操作PowerNorm的步骤,记忆了网络流量的历史记录,捕获了更大范围的序列长度,降低了检测过程中的网络计算资源的开销,提升了神经网络运行的效率,对时序性数据具有较好的检测能力,增强了对新型电力系统中APT攻击检测的能力。
具体实施方式
以下结合图1-3对本发明作进一步详细说明。
本发明提供一种基于STSA-transformer算法的新型电力系统APT攻击检测方法,该方法的流程如图1:
步骤1:基于新型电力系统高比例新能源、高增长负荷、高比例电力电子设备的基本特征,模拟电力系统遭受的网络攻击,从信息侧的数据采集设备收集网络流量数据,并进行整理,作为下一步的输入;
步骤2:将收集到的流量数据进行预处理,所述预处理包括离散特征数值化和特征值归一化;
步骤3:提出了一种软阈值化自注意力机制(STSA),对时间序列数据之间的相关性进行捕捉,并消除部分冗余信息;
步骤4:依据步骤3中提到的软阈值化自注意力机制,使用PowerNorm归一化的transformer编码层对输入进行计算,最后通过softmax层将结果进行分类输出;
步骤5:初始化参数,依据步骤3和步骤4中提到的模块搭建模型,对模型进行训练,使用梯度下降法对权值进行更新;
步骤6:用训练好的模型对新型电力系统的APT攻击进行检测,如果检测结果为正常,则流量可以进行正常操作;如果检测结果为攻击类别,则需要对系统发出警报提醒;
所述步骤1具体包括:
步骤1.1:了解新型电力系统基本结构组成,分析新型电力系统基本特征;
步骤1.2:对新型电力系统进行模拟网络攻击,在信息侧设备收集长时间范围内的网络流量数据,并按不同阶段进行划分,整理成数据集;
所述步骤2具体包括:
步骤2.1:对数据中的离散型数据进行二进制的独热编码,将其转换为数值型数据;
步骤2.2:对所有特征向量进行归一化操作,公式如下所示:
其中,Xmax与Xmin分别表示原始特征值取值范围上的最大值和最小值,X表示原始特征值,Xn表示归一化之后的特征值;
所述步骤3具体包括:
步骤3.1:对数据集的特征向量进行位置编码,保存数据的位置信息,让神经网络学习到更多的时序特性,提升对APT攻击的检测效果,这里使用相对位置编码,公式如下所示:
PE(pos,2i)=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos(pos/100002i/dmodel)
其中pos为序列中的位置,dmodel为位置信息编码的特征向量的维度,i表示位置信息编码特征向量的第i个元素,编码向量中的奇数位用cos来编码,偶数位用sin来编码;
步骤3.2:将原始数据的特征向量与位置编码的结果相加,将结果输入到自注意力层;
步骤3.3:初始化三个权重矩阵,将它们分别乘以输入向量,得到Q、K、V三个矩阵,利用这三个矩阵进行多头自注意力的计算,计算公式如下:
其中Q、K、V为三个需要进行权重更新的矩阵,d为特征向量的维度;
步骤3.4:将得到的注意力结果输入一个神经网络模块之中,该模块包含全局平均池化层以及两个全连接层,最后通过sigmoid函数将结果输出,与全局平均池化层的结果相乘,得到每一条样本数据的阈值;
步骤3.5:根据步骤3.4中求出来的阈值,利用软阈值算法计算公式,对注意力结果进行软阈值操作,保留注意力的重要部分,不重要的部分舍去,并对冗余部分进行消除,方便进行下一步的计算;
所述步骤4具体包括:
步骤4.1:将计算得到的软阈值自注意力的结果输入到transformer编码器除多头自注意力之外的部分,主要包括残差网络、归一化以及前馈神经网络,最后通过softmax函数将结果分类输出,其中的归一化操作将传统transformer中的LN层替换为一种新的归一化操作PoweNorm,将原来的强制零均值和单位方差的操作改为强制二次均值的操作,该操作显示出较小数量级的波动,在数据的处理上表现出较好的效果,其计算公式如下所示:
其中Xi为每一批次的特征向量,B为批次大小,其余变量分别为X与Y归一化之后的结果。
所述步骤5具体包括:
步骤5.1:根据步骤3和步骤4提出的方法搭建算法模型;
步骤5.2:初始化参数,设置多头自注意力头数、编码器层数、全连接层输入与输出维数、激活函数、训练批次以及迭代次数等参数值;
步骤5.3:将数据分为训练集与测试集输入到搭建好的模型之中,损失函数选取分类的交叉熵损失函数,权值更新规则采用基于时序的反向传播算法进行权值更新,采用梯度下降算法加速神经网络的优化;
所述步骤6具体包括:
步骤6.1:将训练好的模型在测试集上进行测试,如果训练出的神经网络的准确率能够达到预期要求,则所述神经网络为训练好的神经网络。
步骤6.2:如果对数据集的检测结果为正常,则流量可以进行正常操作;如果对数据集的检测结果为攻击,则需要发出警报提醒。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现上述步骤的基于STSA-transformer算法的新型电力系统APT攻击检测方法。
如图2,提供了一种transformer编码器网络内部结构。
过程1:对数据集的特征向量进行位置编码,保存数据的位置信息,让神经网络学习到更多的时序特性,提升对APT攻击的检测效果,这里使用相对位置编码,公式如下所示:
PE(pos,2i)=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos(pos/100002i/dmodel)
其中pos为序列中的位置,dmodel为位置信息编码的特征向量的维度,i表示位置信息编码特征向量的第i个元素,编码向量中的奇数位用cos来编码,偶数位用sin来编码;将原始数据的特征向量与位置编码的结果相加,将结果输入到多头注意力层;
过程2:初始化三个权重矩阵,将它们分别乘以输入向量,得到Q、K、V三个矩阵,利用这三个矩阵进行多头自注意力的计算,计算公式如下:
其中Q、K、V为三个需要进行权重更新的矩阵,d为特征向量的维度;多头注意力的目的是构造多个子空间的注意力向量,最后将多个注意力的值进行拼接,这样可以学习序列之间不同方面的信息。
过程3:将计算得到的多头自注意力的结果输入到求和与归一化层,求和主要是利用了残差网络的原理,将网络的输出结果与输入相加,目的在于对深层神经网络运行过程中的损失进行优化,归一化的目的在于对数据进行预处理,方便后续过程的计算,这里的归一化操作将传统transformer中的LN层替换为一种新的归一化操作PoweNorm,将原来的强制零均值和单位方差的操作改为强制二次均值的操作,该操作显示出较小数量级的波动,在数据的处理上表现出较好的效果,其计算公式如下所示:
其中Xi为每一批次的特征向量,B为批次大小,其余变量分别为X与Y归一化之后的结果。
过程4:将上述结果输入到一个全连接的神经网络之中,输出层个数为分类任务的类别个数,最后通过softmax层输出结果为各个类别的概率值,得到最终的分类结果。
如图3,提供了一种软阈值化自注意力机制(STSA)。
过程1:将计算得到的多头注意力向量输入到软阈值神经网络之中,该模块包含全局平均池化层以及两个全连接层,中间通过Relu激活函数层进行连接,最后通过sigmoid函数将结果输出,此结果将作为后续软阈值过程的系数,与全局平均池化层的结果相乘,得到每一条样本数据的阈值;
过程2:根据过程1求出来的阈值,利用软阈值算法计算公式,对注意力结果进行软阈值操作,保留注意力的重要部分,不重要的部分舍去,并对冗余部分进行消除,方便进行下一步的计算,软阈值操作计算公式如下;
其中,T为每一条样本数据的阈值,x为计算得到的注意力向量。
以上实施方式仅用于说明本发明专利,而并非对本发明专利的限制,有关技术领域的普通技术人员,在不脱离本发明专利的实质和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明专利的范畴,本发明专利的专利保护范围应由权利要求限定。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。