一种电网入侵检测方法及系统与流程
未命名
08-05
阅读:101
评论:0
1.本发明涉及一种电网入侵检测方法及系统,属于网络攻击检测技术领域。
背景技术:
2.随着电网的日益数字化和智能化,网络攻击对电力行业的安全运行构成了极大的威胁。例如,在2020年,美国电力公司遭到黑客组织的攻击。同年,委内瑞拉国家电网再次遭到攻击,造成全国大面积停电。在采取应对措施之前,有效地发现这种网络攻击是至关重要的。
3.然而,传统的入侵检测系统只能在掌握足够攻击样本的情况下有效地检测出已知攻击,对于只有几次攻击的网络攻击甚至未知的网络攻击,它们的检测效率很低。基于此,出现了使用深度学习技术来检测未知的攻击的现有技术。
4.例如,2019年,s.ahmed等人提出了一种基于无监督机器学习的方案(s.ahmed,y.lee,s.-h.hyun and i.koo,"unsupervised machine learning-based detection of covert data integrity assault in power grids networks utilizing isolation forest,"in ieee transactions on information forensics and security,vol.14,no.10,pp.2765-2777,2019.),使用未标记的数据来检测电网通信网络中的隐蔽数据完整性攻击。2021年,为了提高电网的安全性能,f.li等人采用基于深度置信网络的非线性迭代算法(f.li,y.wu,y.liu,y.tian and h.yang,"power grids system security protection by deep neural network,"2021international conference on machine learning and intelligent systems engineering(mlise),pp.290-295,2021.),自动选择特征,提高了已知复杂攻击和高度隐蔽攻击中隐蔽行为的模型精度。2022年,m.massaoudi等人提出基于合成少数类超采样技术的增强型极端随机树分类器来分析网络流量(m.massaoudi,s.s.refaat and h.abu-rub,"intrusion detection method based on smote transformation for power grids cybersecurity,"2022 3rd international conference on power grids and renewable energy(sgre),pp.1-6,2022.),能够对不平衡的数据进行准确分类,并识别未知的网络攻击以及恶意软件。
5.但是,在使用现有技术过程中,发明人发现现有技术中至少存在如下问题:
6.使用深度学习技术对数据量的依赖性太强,而在现实场景中,电网难以捕捉到足够多的常见攻击样本,这就无法为模型训练提供足够的先验知识,使得在小样本情况下,预测模型无法有效建立,不利于实现电网网络攻击的有效检测。
技术实现要素:
7.为了解决上述现有技术中存在的问题,本发明提出了。
8.本发明的技术方案如下:
9.一方面,本发明提供了一种电网入侵检测方法,包括以下步骤:
10.构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训
练,得到初始特征嵌入模型;
11.获取电网本地的小样本数据集,并使用所述小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型;
12.获取电网的实时运行数据,并对所述电网运行数据进行预处理,得到预处理后数据;
13.将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果。
14.作为本发明的优选实施方式,所述初始特征嵌入模型构建步骤为:
15.首先将公共数据集设为
16.其中,表示第i个公共数据样本,为第i个公共数据样本的特征向量(x
i1
,x
i2
,...,x
it
),为第i个样本的标签,i为公共数据样本的数量;
17.所述公共数据集携带有标签类型集,所述标签类型集为:l
net
={0,1,...,l
net
},标签类型0,1,...,l
net
中,0代表正面标签,1,...,l
net
代表不同类型的负面标签;
18.根据所述公共数据集中的标签类型,获取预训练任务,并使用所述公共数据集构建所述预训练任务的预训练数据集;
19.使用所述预训练任务的预训练数据集对所述初始机器学习模型进行预训练,得到所述预训练任务对应的损失函数;
20.利用所述预训练任务对应的损失函数,对所述初始机器学习模型中的模型参数进行更新,得到初始特征嵌入模型。
21.作为本发明的优选实施方式,使用所述公共数据集构建所述预训练任务的预训练数据集的具体步骤为:
22.当所述预训练任务包括的标签有负面标签时,将所述公共数据集中标签类型为0的所有公共数据样本构成的数据集合设为第一数据集合将标签类型为负面标签的所有公共数据样本构成的数据集合设为第二数据集合
23.从所述第一数据集合和所述第二数据集合中,分别选取k个公共数据样本,得到支持数据集ds
net
;其中,所述支持数据集ds
net
={(x1,y1),...,(x
2k
,y
2k
)};
24.从所述第一数据集合中除选取的k个公共数据样本外的剩余公共数据样本和所述第二数据集合中除选取的k个公共数据样本外的剩余公共数据样本中,分别选取k’个公共数据样本,得到查询数据集dq
net
;其中,所述查询数据集dq
net
={(x1′
,y1′
),
…
,(x
2k
′
,y
2k
′
)};
25.将所述支持数据集ds
net
和所述查询数据集dq
net
组合构成所述预训练任务的预训练数据集t
net
;其中,所述预训练数据集t
net
={ds
net
,dq
net
}。
26.作为本发明的优选实施方式,使用所述预训练任务的预训练数据集t
net
对所述初始机器学习模型进行预训练,得到所述预训练任务对应的损失函数,具体步骤为:
27.从所述预训练数据集t
net
的支持数据集ds
net
中的公共数据样本(xs,ys),提取得到所有标签为0的第一样本数据集将所有非0标签转换为1,然后再提取得到所有标签
为1的第二样本数据集
28.根据所述第一样本数据集得到预训练正类代表向量,根据所述第二样本数据集得到预训练负类代表向量;
29.其中,所述预训练正类代表向量为:
[0030][0031]
所述预训练负类代表向量为:
[0032][0033]
式中,为所述初始机器学习模型的预设参数;xs为特征向量;为xs对应的模型代表向量;
[0034]
根据所述预训练数据集t
net
的查询数据集dq
net
中的样本数据(xq,yq)、所述预训练正类代表向量和所述预训练负类代表向量,得到所述查询数据集dq
net
中的样本数据被正确预测的概率值:
[0035][0036]
其中:d(a,b)为数据a与数据b之间的欧式平方距离,其中:d(a,b)为数据a与数据b之间的欧式平方距离,为yq对应的代表向量;为常数c对应的代表向量,c∈{0,1},通过所述预训练正类代表向量及所述预训练负类代表向量得到;为xq对应的模型代表向量;
[0037]
根据所述查询数据集dq
net
中的样本数据被正确预测的概率值,得到所述初始机器学习模型对xq的损失值;其中,所述初始机器学习模型对xq的损失值为:
[0038][0039]
根据所述预训练数据集t
net
的查询数据集dq
net
中所有样本数据xq的损失值,得到所述预训练任务对应的损失函数;其中,所述损失函数为:
[0040][0041]
其中:yq表示真实标签;表示在给定输入x和模型参数的情况下,预测标签为yq的概率。
[0042]
作为本发明的优选实施方式,其特征在于,利用所述预训练任务对应的损失函数,对所述初始机器学习模型中的模型参数进行更新后,得到的更新后的模型参数为:
[0043][0044]
其中:γ为防止过度拟合的权重衰减率;η为学习率;为所述损失函数的梯度,
[0045]
作为本发明的优选实施方式,所述协同训练后特征嵌入模型具体构建步骤为:
[0046]
冻结所述初始特征嵌入模型的前n
frz
层参数,得到参数冻结后特征嵌入模型;
[0047]
根据所述小样本数据集的负面标签的标签类型,获取协同训练任务,并使用所述小样本数据集构建所述协同训练任务的协同训练数据集;
[0048]
使用所述协同训练任务的协同训练数据集对所述参数冻结后特征嵌入模型进行协同训练,得到所述协同训练任务对应的损失函数;
[0049]
利用所述协同训练任务对应的损失函数,对所述参数冻结后特征嵌入模型中的模型参数进行更新,得到协同训练后特征嵌入模型。
[0050]
作为本发明的优选实施方式,所述协同训练任务的协同训练数据集具体构建步骤为:
[0051]
首先对小样本数据集进行特征对齐,只保留多项特征中重合的特征,得到对其后的小样本数据集:
[0052][0053]
其中:表示第i个小样本数据样本;为第i个小样本数据样本的特征向量(x
i1
,x
i2
,...,x
it
),为第i个小样本数据样本的标签,i为小样本数据样本的数量;
[0054]
所述小样本数据集携带有标签类型集,所述标签类型集为:l
ind
={0,1,...,l
ind
},标签类型0,1,...,l
ind
中,0代表正面标签,1,...,l
ind
代表不同类型的负面标签;
[0055]
当所述协同训练任务包括的标签有负面标签时,将小样本数据集中标签类型为0的所有小样本数据样本构成的数据集合设为第三数据集合将标签类型为负面标签的所有小样本数据样本构成的数据集合设为第四数据集合
[0056]
从所述第三数据集合和所述第四数据集合中,分别选取k个小样本数据样本,得到支持数据集ds
ind
;其中,所述支持数据集ds
ind
={(x1,y1),...,(x
2k
,y
2k
)};
[0057]
从所述第三数据集合中除选取的k个小样本数据样本外的剩余小样本数据样本和所述第四数据集合中除选取的k个小样本数据样本外的剩余小样本数据样本中,分别选取k’个小样本数据样本,得到查询数据集dq
ind
;其中,所述查询数据集dq
ind
={(x1′
,y1′
),
…
,(x
2k
′
,y
2k
′
)};
[0058]
将所述支持数据集ds
ind
和所述查询数据集dq
ind
组合构成所述协同训练任务的协同训练数据集t
ind
;其中,所述协同训练数据集t
ind
={ds
ind
,dq
ind
}。
[0059]
作为本发明的优选实施方式,使用所述协同训练任务的协同训练数据集对所述参数冻结后特征嵌入模型进行协同训练,得到所述协同训练任务对应的损失函数,具体步骤为:
[0060]
从所述协同训练数据集t
ind
的支持数据集ds
ind
中的小样本数据样本(xs,ys),提取得到所有标签为0的第三样本数据集将所有非0标签转换为1,然后再提取得到所有标签为1的第四样本数据集
[0061]
根据所述第三样本数据集得到协同训练正类代表向量,根据所述第四样本
数据集得到协同训练负类代表向量;
[0062]
其中,所述协同训练正类代表向量为:
[0063][0064]
所述协同训练负类代表向量为:
[0065][0066]
式中,为所述初始机器学习模型的预设参数;xs为特征向量;为xs对应的模型代表向量;
[0067]
根据所述协同训练数据集t
ind
的查询数据集dq
ind
中的样本数据(xq,yq)、所述协同训练正类代表向量和所述协同训练负类代表向量,得到所述查询数据集dq
ind
中的样本数据被正确预测的概率值:
[0068][0069]
其中:d(a,b)为数据a与数据b之间的欧式平方距离,其中:d(a,b)为数据a与数据b之间的欧式平方距离,为yq对应的代表向量;为常数c对应的代表向量,c∈{0,1},通过所述协同训练正类代表向量及所述协同训练负类代表向量得到;为xq对应的模型代表向量;
[0070]
根据所述查询数据集dq
ind
中的样本数据被正确预测的概率值,得到所述初始机器学习模型对xq的损失值;其中,所述参数冻结后特征嵌入模型对xq的损失值为:
[0071][0072]
根据所述协同训练数据集t
ind
的查询数据集dq
ind
中所有样本数据xq的损失值,得到所述协同训练任务对应的损失函数;其中,所述损失函数为:
[0073][0074]
其中:yq表示真实标签;表示在给定输入x和模型参数的情况下,预测标签为yq的概率。
[0075]
作为本发明的优选实施方式,获取所述电网入侵预测结果的具体步骤为:
[0076]
将所述预处理后数据输入所述协同训练后特征嵌入模型,得到特征嵌入向量x
′
;
[0077]
获取所述特征嵌入向量x
′
与预设的正类代表向量的相似度以及所述特征嵌入向量x
′
与预设的负类代表向量的相似度
[0078]
根据相似度和相似度得到电网入侵预测结
果;其中,所述电网入侵预测结果为:
[0079][0080]
另一方面,本发明还提供了一种电网入侵检测系统,包括以下模块:
[0081]
预训练模块,用于构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训练,得到初始特征嵌入模型;
[0082]
协同训练模块,与所述预训练模块通信连接,用于获取预训练模型,并使用通过电网中收集的数据构建的小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型;
[0083]
结果预测模块,与所述协同训练模块通信连接,用于获取协同训练后特征嵌入模型据,并对电网中实时收集的数据,即电网运行数据进行预处理,得到预处理后数据;还用于将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果。
[0084]
本发明具有如下有益效果:
[0085]
1、本发明在基于电网本地的小样本数据集对初始特征嵌入模型进一步进行训练,得到协同训练后特征嵌入模型,使得最终得到的模型聚合了来自小样本数据集的知识,适用于只有小样本的电网场景,在模型的训练过程中,本发明需要的样本量较小,同时本发明所提出的协同训练后特征嵌入模型可以有效地检测出针对电网的网络攻击,并且具有检测未知网络攻击的能力,可同时实现对小样本攻击以及未知网络攻击的检测。
附图说明
[0086]
图1为本发明的方法流程图;
[0087]
图2为本发明协同训练后特征嵌入模型tl-ids在ics-ngp和ics-wst数据集上的检测性能的比较结果图;
[0088]
图3为本发明协同训练后特征嵌入模型tl-ids和已有技术在ics-wst数据集上的训练期间的准确性比较结果图;
[0089]
图4为本发明协同训练后特征嵌入模型tl-ids和已有技术在ics-ngp数据集上的训练期间的准确性比较结果图;
[0090]
图5为本发明的系统模块框图。
具体实施方式
[0091]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0092]
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
[0093]
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0094]
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0095]
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0096]
实施例一:
[0097]
参见图1,一种电网入侵检测方法,包括以下步骤:
[0098]
s1.构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训练,得到初始特征嵌入模型;应当理解的是,本实施例中,采用预处理后的公共数据集对所述初始机器学习模型进行预训练。需要说明的是,公共数据集为已经发布的工业电网网络的公共互联网数据集,由于工业互联网数据中常见攻击样本很少,可能不足以为模型训练提供先验知识,在此阶段,通过使用公共数据集对初始机器学习模型进行预训练,完成模型的初始训练阶段。
[0099]
具体地,将公共数据集设为任一公共数据中,为第i个样本的特征向量(x
i1
,x
i2
,
…
,x
it
),为第i个样本的标签;所述公共数据集携带有标签类型集,所述标签类型集为:l
net
={0,1,...,
net
},标签类型0,1,...,
net
中,0代表正面标签,1,...,
net
代表不同类型的负面标签;作为举例,所述标签类型集中,1为简单的恶意响应注入攻击、2为复杂的恶意响应注入攻击,3为恶意状态命令注入攻击等,此处不予限制。
[0100]
构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训练,得到初始特征嵌入模型,包括:
[0101]
s101.根据所述公共数据集中的标签类型,获取预训练任务,并使用所述公共数据集构建所述预训练任务的预训练数据集t
net
;
[0102]
当所述预训练任务包括的负面标签为atk时,将所述公共数据集中,标签类型为0的所有公共数据构成的数据集合设为第一数据集合将标签类型为atk的所有公共数据构成的数据集合设为第二数据集合具体地,本实施例中,预训练任务根据所述公共数据集中负面标签为atk的标签类型得到;使用所述公共数据集构建所述预训练任务的预训练数据集t
net
,包括:
[0103]
s101a.从所述第一数据集合和所述第二数据集合中,分别选取k个样本数据,得到支持数据集ds
net
;其中,所述支持数据集ds
net
={(x1,y1),...,(x
2k
,y
2k
)};
[0104]
s101b.从所述第一数据集合除k个样本数据外的剩余公共数据和所述第二数据集合除k个样本数据外的剩余公共数据中,分别选取k’个样本数据,得到查询数据集dq
net
;其中,所述查询数据集dq
net
={(x1,y1),...,(x
2k
′
,y
2k
′
)};
[0105]
为便于后续的初始机器学习模型的预训练,以及损失函数的计算,本实施例中,在得到所述支持数据集ds
net
和所述查询数据集dq
net
后,将所述支持数据集ds
net
和所述查询数据集dq
net
中的公共数据重塑为二维形式,此时的支持数据集和查询数据集表示如下:
[0106]
ds
net
={(x
11
,x
12
,
…
,x
1t
,y
′1),
…
,(x
i1
,x
i2
,
…
,x
it
,y
′i),
…
,(x
2k1
,x
2k2
,
…
,x
2kt
,y
′
2k
)};
[0107]
dq
net
={(x
11
,x
12
,
…
,x
1t
,y
′1),
…
,(x
i1
,x
i2
,
…
,x
it
,y
′i),
…
,(x
2k
′1,x
2k
′2,
…
,x
2k
′
t
,y
′
2k
′
)};
[0108]
根据所述支持数据集ds
net
携带的标签类型集和所述查询数据集dq
net
携带的标签类型集,将所述支持数据集ds
net
和所述查询数据集dq
net
中为负面标签的所有标签均重置为1;其中,所述支持数据集ds
net
和所述查询数据集dq
net
中,第i个公共数据对应的重置后的标签为:
[0109][0110]
s101c.将所述支持数据集ds
net
和所述查询数据集dq
net
组合构成所述预训练任务的预训练数据集t
net
;其中,所述预训练数据集t
net
={ds
net
,dq
net
}。
[0111]
应当理解的是,此时,所述预训练任务的预训练数据集t
net
携带的任务标签类型集为其中,atk为1,...,l
net
中的任一负面标签。
[0112]
s102.使用所述预训练任务的预训练数据集t
net
对所述初始机器学习模型进行预训练,得到所述预训练任务对应的损失函数;
[0113]
本实施例中,使用所述预训练任务的预训练数据集t
net
对所述初始机器学习模型进行预训练,得到所述预训练任务对应的损失函数,包括:
[0114]
s102a.从所述预训练数据集t
net
的支持数据集ds
net
中的样本数据(xs,ys),提取得到所有标签为0的第一样本数据集以及所有标签为1的第二样本数据集
[0115]
s102b.根据所述第一样本数据集得到预训练正类代表向量,根据所述第二样本数据集得到预训练负类代表向量,由此实现所述初始机器学习模型输入与输出之间的映射;其中,所述预训练正类代表向量为:所述预训练负类代表向量为:式中,为所述初始机器学习模型的预设参数,为xs对应的模型代表向量;
[0116]
此时,所述预训练正类代表向量、所述预训练负类代表向量和所述初始机器学习模型共同构成了所述预训练任务的预测模型;
[0117]
s102c.根据所述预训练数据集t
net
的查询数据集dq
net
中的样本数据(xq,yq)、所述预训练正类代表向量和所述预训练负类代表向量,得到所述查询数据集dq
net
中的样本数据被正确预测的概率值;其中,所述查询数据集dq
net
中的样本数据被正确预测的概率值为:
[0118][0119]
式中,d(a,b)为数据a与数据b之间的欧式平方距离,式中,d(a,b)为数据a与数据b之间的欧式平方距离,为yq对应的代表向量;为常数c对应的代表向量,c∈{0,1},通过所述预训练正类代表向量及所述预训练负类代表向量得到;为xq对应的模型代表向量;
[0120]
s102d.根据所述查询数据集dq
net
中的样本数据被正确预测的概率值,得到所述初
始机器学习模型对xq的损失值;其中,所述初始机器学习模型对xq的损失值为:
[0121][0122]
s102e.根据所述预训练数据集t
net
的查询数据集dq
net
中所有样本数据xq的损失值,得到所述预训练任务对应的损失函数;其中,所述损失函数为:
[0123][0124]
s103.利用所述预训练任务对应的损失函数,对所述初始机器学习模型中的模型参数进行更新,得到初始特征嵌入模型。
[0125]
具体地,本实施例中,利用所述预训练任务对应的损失函数,对所述初始机器学习模型中的模型参数进行更新后,得到的更新后的模型参数为:
[0126][0127]
式中,γ为防止过度拟合的权重衰减率;η为学习率;为所述损失函数的梯度,
[0128]
本实施例中,构建有多个预训练任务,在使用多个预训练任务对的预训练数据集t
net
分别对所述初始机器学习模型进行预训练,且得到的损失函数的值达到阈值时,即可得到收敛的初始特征嵌入模型。
[0129]
s2.获取电网本地的小样本数据集,并使用所述小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型;需要说明的是,虽然公共数据集中的公共数据提供了一定的先验知识,但由于数据分布的一些差异,进行预训练后得到的初始特征嵌入模型在特殊的工业入侵检测任务中,不能达到最佳效果。因此,本实施例对初始特征嵌入模型,进一步采用迁移学习的思想,由电网控制中心预存的电网本地的指定数目的小样本数据集来对所述初始特征嵌入模型进行协同训练,以便进一步得到协同训练后特征嵌入模型。具体地,本实施例中,对所述初始特征嵌入模型进行协同训练的步骤,在电网控制中心中进行。
[0130]
本实施例中,获取电网本地的小样本数据集,并使用所述小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型,包括:
[0131]
s201.冻结所述初始特征嵌入模型的前n
frz
层参数,得到参数冻结后特征嵌入模型,以便使前n
grz
层参数不参与梯度下降,进而保证模型的稳定性;
[0132]
s202.对所述小样本数据集中的所有数据进行特征对齐处理,得到预处理后的小样本数据集,以便根据预处理后的小样本数据集的负面标签的标签类型,获取协同训练任务;需要说明的是,对所述小样本数据集中的所有数据进行特征对齐处理,即只保留多项特征中重合的特征。
[0133]
s203.根据所述小样本数据集的负面标签的标签类型,获取协同训练任务,并使用所述小样本数据集构建所述协同训练任务的协同训练数据集t
ind
;具体地,本实施例中,根据所述小样本数据集和其携带的标签类型集l
ind
={0,...,l
ind
},可构建得到所述预训练任务的协同训练数据集t
ind
={ds
ind
,dq
ind
};其中,ds
ind
和dq
ind
分别代表建立在小样本数据集中工业数据上的支持数据集和查询数据集;
[0134]
s204.使用所述协同训练任务的协同训练数据集t
ind
对所述参数冻结后特征嵌入
模型进行协同训练,得到所述协同训练任务对应的损失函数;
[0135]
s205.利用所述协同训练任务对应的损失函数,对所述参数冻结后特征嵌入模型中的模型参数进行更新,得到协同训练后特征嵌入模型。应当理解的是,对所述参数冻结后特征嵌入模型中的模型参数进行更新时,所述参数冻结后特征嵌入模型中的模型参数即为所述初始特征嵌入模型中最新的模型参数。
[0136]
具体地,本实施例中,根据支持数据集ds
ind
和查询数据集dq
ind
可计算出协同训练正类代表向量和协同训练负类代表向量对于查询数据集dq
ind
中的每个样本数据(xq,yq),(xq,yq)∈dq
ind
,使用和计算所述参数冻结后特征嵌入模型对样本数据的嵌入损失,并可进一步得到所述协同训练任务对应的损失函数。最后,根据所述协同训练任务对应的损失函数,对所述参数冻结后特征嵌入模型中的模型参数进行更新,即可得到协同训练后特征嵌入模型。上述计算过程均与预训练步骤中的计算过程一致,此处不再予以赘述。
[0137]
s3.获取电网的实时运行数据,并对所述电网运行数据进行预处理,得到预处理后数据;
[0138]
本实施例中,当所述电网运行数据为连续型数据时,对所述电网运行数据进行预处理,得到预处理后数据,包括:
[0139]
使用归一化方法将所述电网运行数据中的所有特征转换至统一量度,得到预处理后数据;其中,所述预处理后数据中第j列特征的第h个特征值为:
[0140][0141]
式中,为所述电网运行数据中第j列特征的第h个特征值,为所述电网运行数据中第j列特征的最大特征值,为所述电网运行数据中第j列特征的最小特征值;
[0142]
当所述电网运行数据为离散型数据时,对所述电网运行数据进行预处理,得到预处理后数据,包括:
[0143]
使用独热编码对所述电网运行数据进行处理,得到预处理后数据。需要说明的是,假设所述电网运行数据的某列离散型特征中包含n种不同取值,经过独热编码处理后,所述电网运行数据的每种取值都被编码为由n-1个“0”和一个“1”组成的唯一向量。
[0144]
s4.将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果。
[0145]
具体地,本实施例中,将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果,包括:
[0146]
s401.将所述预处理后数据输入所述协同训练后特征嵌入模型,得到特征嵌入向量x
′
;
[0147]
s402.获取所述特征嵌入向量x
′
与预设的正类代表向量的相似度以及所述特征嵌入向量x
′
与预设的负类代表向量的相似度具体地,本实
施例中,预设的正类代表向量可以但不仅限于为预训练正类代表向量或协同训练正类代表向量,预设的负类代表向量可以但不仅限于为预训练负类代表向量或协同训练负类代表向量;进行相似度计算时,可以但不仅限于采用所述查询数据集dq
net
中的样本数据被正确预测的概率值的计算公式进行计算。
[0148]
s403.根据相似度和相似度得到电网入侵预测结果;其中,所述电网入侵预测结果为:
[0149][0150]
需要说明的是,电网入侵预测结果nomal即指代电网的实时运行数据为正常数据,即表明电网未遭受入侵攻击,电网入侵预测结果abnomal即指代电网的实时运行数据为非正常数据,即表明电网遭受入侵攻击。
[0151]
为了更好地模拟真实的工业电网环境对本实施例进行验证,本技术发明人使用ics-wst和ics-ngp数据集作为小样本数据集,并使用kdd 99数据集作为公共数据集。在模型训练之前,分别对小样本数据集和公共数据集进行一系列的预处理操作,预处理流程包括:
[0152]
a1.填入默认值。如果有默认值,则用维度特征的平均值来代替它。
[0153]
a2.对连续数据进行标准化处理。使用归一化方法,将每个维度特征重新标定为[0,1]。
[0154]
a3.离散数据的编码。采用独热编码,将离散特征上的每个数据编码为由"1"和"0"组成的唯一向量。
[0155]
a4.扩展数据。经过上述步骤后,为了使样本能正常转化为二维数据,用"0"来扩展不足的维度。
[0156]
基于上述步骤a1-a4,得到的预处理后的ics-wst、ics-ngp和kdd 99数据集中每个样本的维度分别为625(25*25)、144(12*12)和144(12*12)。
[0157]
为了充分验证本实施例所提出的协同训练后特征嵌入模型tl-ids在未知攻击检测中的有效性,训练集选择了任意四个攻击标签样本(标签={0,2,3,6})进行训练,其他标签样本(标签={1,4,5,7})被视为未知攻击进行测试。图2显示了不同数据集上未知攻击的检测能力的实验结果。
[0158]
总的来说,tl-ids在两个数据集上的各种评价指标(acc、pre、rec和f1)都表现良好。该模型在ics-wst数据集上的表现更好,所有数据都接近1,意味着性能接近理想模型。在ics-ngp数据集上的性能较差,数值在0.7左右,但这也意味着它对未知攻击也有一定的检测能力。
[0159]
同时,将本实施例所提出的协同训练后特征嵌入模型tl-ids与以下三种已有的技术进行了对比,以显示所提出的tl-ids的有效性:
[0160]
1)b.li等人在2021年提出了一种基于深度学习的工业cps的入侵检测方案(b.li,y.wu,j.song,r.lu,t.li and l.zhao,"deepfed:federated deep learning for intrusion detection in industrial cyber
–
physical systems,"in ieee transactions on industrial informatics,vol.17,no.8,pp.5615-5624,2021.)。该方案
设计了一个由门控循环单元、cnn模块和mlp模块组成的检测模型。
[0161]
2)p.t.duy等人在2021年提出了工业互联网sdn网络的入侵检测方案(p.t.duy,t.v.hung,n.h.ha,h.d.hoang and v.-h.pham,"federated learning-based intrusion detection in sdn-enabled iiot networks,"2021 8th nafosted conference on information and computer science(nics),pp.424-429,2021.),采用基于cnn的检测模型来检测入侵攻击。
[0162]
3)y.chen等人在2020年提出了一个基于cnn的威胁数据分类框架(y.chen,x.qin,j.wang,c.yu and w.gao,"fedhealth:afederated transfer learning framework for wearable healthcare,"in ieee intelligent systems,vol.35,no.4,pp.83-93,2020.),包括两个卷积层、两个池化层、两个全连接层和一个分类层。
[0163]
如图3所示,在ics-wst数据集上,本实施例所提出的协同训练后特征嵌入模型tl-ids的检测精度高于90%,而其他方法的精度低于80%。如图4所示,在ics-ngp数据集上,本实施例所提出的协同训练后特征嵌入模型tl-ids的检测精度高于85%,而其他方法的精度低于75%。总的来说,ics-wst数据集上的性能普遍高于ics-ngp数据集。
[0164]
更重要的是,已有技术的检测精度都低于本实施例所提出的协同训练后特征嵌入模型tl-ids,而且在不同数据集上的检测效果波动很大,说明已有技术的模型没有达到收敛状态。据推测,已有技术主要采用深度学习模型,对样本数量高度敏感。因此,在小样本情况下,预测模型无法有效建立。
[0165]
本实施例可实现小样本已知网络攻击以及未知网络攻击的检测。具体地,本实施例在实施过程中,首先,通过构建初始机器学习模型,并基于公共数据集对所述初始机器学习模型进行训练,得到初始特征嵌入模型,在对初始机器学习模型进行训练的过程中,聚合了来自常见工业数据集的知识;其次,基于电网本地的小样本数据集对初始特征嵌入模型进一步进行训练,得到协同训练后特征嵌入模型,使得最终得到的模型聚合了来自小样本数据集的知识,适用于只有小样本的电网场景。在模型的训练过程中,本实施例需要的样本量较小,同时根据实验结果,可知本实施例所提出的协同训练后特征嵌入模型tl-ids可以有效地检测出针对电网的网络攻击,并且具有检测未知网络攻击的能力,本实施例得到的模型可同时实现对小样本攻击以及未知网络攻击的检测。
[0166]
实施例二:
[0167]
参见图5,一种电网入侵检测系统,包括以下模块:
[0168]
预训练模块,用于构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训练,得到初始特征嵌入模型;
[0169]
协同训练模块,与所述预训练模块通信连接,用于获取预训练模型,并使用通过电网中收集的数据构建的小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型;
[0170]
结果预测模块,与所述协同训练模块通信连接,用于获取协同训练后特征嵌入模型据,并对电网中实时收集的数据,即电网运行数据,进行预处理,得到预处理后数据;还用于将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果。
[0171]
本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独
存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
[0172]
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0173]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0174]
在本技术所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory;以下简称:rom)、随机存取存储器(random access memory;以下简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0175]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种电网入侵检测方法,其特征在于,包括以下步骤:构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训练,得到初始特征嵌入模型;获取电网本地的小样本数据集,并使用所述小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型;获取电网的实时运行数据,并对所述电网运行数据进行预处理,得到预处理后数据;将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果。2.根据权利要求1所述的一种电网入侵检测方法,其特征在于,所述初始特征嵌入模型构建步骤为:首先将公共数据集设为其中,表示第i个公共数据样本,为第i个公共数据样本的特征向量(x
i1
,x
i2
,
…
,x
it
),为第i个样本的标签,i为公共数据样本的序号,n
net
为公共样本的数量;所述公共数据集携带有标签类型集,所述标签类型集为:l
net
={0,1,...,l
net
},标签类型0,1,...,l
net
中,0代表正面标签,1,...,l
net
代表不同类型的负面标签;根据所述公共数据集中的标签类型,获取预训练任务,并使用所述公共数据集构建所述预训练任务的预训练数据集;使用所述预训练任务的预训练数据集对所述初始机器学习模型进行预训练,得到所述预训练任务对应的损失函数;利用所述预训练任务对应的损失函数,对所述初始机器学习模型中的模型参数进行更新,得到初始特征嵌入模型。3.根据权利要求2所述的一种电网入侵检测方法,其特征在于,使用所述公共数据集构建所述预训练任务的预训练数据集的具体步骤为:当所述预训练任务包括的标签有负面标签时,将所述公共数据集中标签类型为0的所有公共数据样本构成的数据集合设为第一数据集合将标签类型为负面标签的所有公共数据样本构成的数据集合设为第二数据集合从所述第一数据集合和所述第二数据集合中,分别选取k个公共数据样本,得到支持数据集ds
net
;其中,所述支持数据集ds
net
={(x1,y1),...,(x
2k
,y
2k
)};从所述第一数据集合中除选取的k个公共数据样本外的剩余公共数据样本和所述第二数据集合中除选取的k个公共数据样本外的剩余公共数据样本中,分别选取k’个公共数据样本,得到查询数据集dq
net
;其中,所述查询数据集dq
net
={(x1′
,y1′
),...,(x
2k
′
,y
2k
′
)};将所述支持数据集ds
net
和所述查询数据集dq
net
组合构成所述预训练任务的预训练数据集t
net
;其中,所述预训练数据集t
net
={ds
net
,dq
net
}。4.根据权利要求3所述的一种电网入侵检测方法,其特征在于,使用所述预训练任务的
预训练数据集t
net
对所述初始机器学习模型进行预训练,得到所述预训练任务对应的损失函数,具体步骤为:从所述预训练数据集t
net
的支持数据集ds
net
中的公共数据样本(
s
,
s
),提取得到所有标签为0的第一样本数据集将所有非0标签转换为1,然后再提取得到所有标签为1的第二样本数据集根据所述第一样本数据集得到预训练正类代表向量,根据所述第二样本数据集得到预训练负类代表向量;其中,所述预训练正类代表向量为:所述预训练负类代表向量为:式中,为所述初始机器学习模型的预设参数;x
s
为特征向量;为x
s
对应的模型代表向量;根据所述预训练数据集t
net
的查询数据集dq
net
中的样本数据(
q
,
q
)、所述预训练正类代表向量和所述预训练负类代表向量,得到所述查询数据集dq
net
中的样本数据被正确预测的概率值:其中:d(a,b)为数据a与数据b之间的欧式平方距离,其中:d(a,b)为数据a与数据b之间的欧式平方距离,为y
q
对应的代表向量;为常数c对应的代表向量,{0,1},通过所述预训练正类代表向量及所述预训练负类代表向量得到;为x
q
对应的模型代表向量;根据所述查询数据集dq
net
中的样本数据被正确预测的概率值,得到所述初始机器学习模型对x
q
的损失值;其中,所述初始机器学习模型对x
q
的损失值为:根据所述预训练数据集t
net
的查询数据集dq
net
中所有样本数据x
q
的损失值,得到所述预训练任务对应的损失函数;其中,所述损失函数为:其中:y
q
表示真实标签;表示在给定输入x和模型参数的情况下,预测标签为y
q
的概率。5.根据权利要求4所述的一种电网入侵检测方法,其特征在于,利用所述预训练任务对
应的损失函数,对所述初始机器学习模型中的模型参数进行更新后,得到的更新后的模型参数为:其中:γ为防止过度拟合的权重衰减率;η为学习率;为所述损失函数的梯度,6.根据权利要求1所述的一种电网入侵检测方法,其特征在于,所述协同训练后特征嵌入模型具体构建步骤为:冻结所述初始特征嵌入模型的前n
frz
层参数,得到参数冻结后特征嵌入模型;根据所述小样本数据集的负面标签的标签类型,获取协同训练任务,并使用所述小样本数据集构建所述协同训练任务的协同训练数据集;使用所述协同训练任务的协同训练数据集对所述参数冻结后特征嵌入模型进行协同训练,得到所述协同训练任务对应的损失函数;利用所述协同训练任务对应的损失函数,对所述参数冻结后特征嵌入模型中的模型参数进行更新,得到协同训练后特征嵌入模型。7.根据权利要求6所述的一种电网入侵检测方法,其特征在于,所述协同训练任务的协同训练数据集具体构建步骤为:首先对小样本数据集进行特征对齐,只保留多项特征中重合的特征,得到对其后的小样本数据集:其中:表示第i个小样本数据样本;为第i个小样本数据样本的特征向量(x
i1
,x
i2
,
…
,x
it
),为第i个小样本数据样本的标签,i为小样本数据样本的数量;所述小样本数据集携带有标签类型集,所述标签类型集为:l
ind
={0,1,...,l
ind
},标签类型0,1,...,l
ind
中,0代表正面标签,1,...,l
ind
代表不同类型的负面标签;当所述协同训练任务包括的标签有负面标签时,将小样本数据集中标签类型为0的所有小样本数据样本构成的数据集合设为第三数据集合将标签类型为负面标签的所有小样本数据样本构成的数据集合设为第四数据集合从所述第三数据集合和所述第四数据集合中,分别选取k个小样本数据样本,得到支持数据集ds
ind
;其中,所述支持数据集ds
ind
={(x1,y1),...,(x
2k
,y
2k
)};从所述第三数据集合中除选取的k个小样本数据样本外的剩余小样本数据样本和所述第四数据集合中除选取的k个小样本数据样本外的剩余小样本数据样本中,分别选取k’个小样本数据样本,得到查询数据集dq
ind
;其中,所述查询数据集dq
ind
={(x1′
,y1′
),...,(x
2k
′
,y
2k
′
)};将所述支持数据集ds
ind
和所述查询数据集dq
ind
组合构成所述协同训练任务的协同训练数据集t
ind
;其中,所述协同训练数据集t
ind
={ds
ind
,dq
ind
}。
8.根据权利要求6所述的一种电网入侵检测方法,其特征在于,使用所述协同训练任务的协同训练数据集对所述参数冻结后特征嵌入模型进行协同训练,得到所述协同训练任务对应的损失函数,具体步骤为:从所述协同训练数据集t
ind
的支持数据集ds
ind
中的小样本数据样本(x
s
,y
s
),提取得到所有标签为0的第三样本数据集将所有非0标签转换为1,然后再提取得到所有标签为1的第四样本数据集根据所述第三样本数据集得到协同训练正类代表向量,根据所述第四样本数据集得到协同训练负类代表向量;其中,所述协同训练正类代表向量为:所述协同训练负类代表向量为:式中,为所述初始机器学习模型的预设参数;x
s
为特征向量;为x
s
对应的模型代表向量;根据所述协同训练数据集t
ind
的查询数据集dq
ind
中的样本数据(
q
,
q
)、所述协同训练正类代表向量和所述协同训练负类代表向量,得到所述查询数据集dq
ind
中的样本数据被正确预测的概率值:其中:d(a,b)为数据a与数据b之间的欧式平方距离,其中:d(a,b)为数据a与数据b之间的欧式平方距离,为y
q
对应的代表向量;为常数c对应的代表向量,{0,1},通过所述协同训练正类代表向量及所述协同训练负类代表向量得到;为x
q
对应的模型代表向量;根据所述查询数据集dq
ind
中的样本数据被正确预测的概率值,得到所述初始机器学习模型对x
q
的损失值;其中,所述参数冻结后特征嵌入模型对x
q
的损失值为:根据所述协同训练数据集t
ind
的查询数据集dq
ind
中所有样本数据x
q
的损失值,得到所述协同训练任务对应的损失函数;其中,所述损失函数为:
其中:y
q
表示真实标签;表示在给定输入x和模型参数的情况下,预测标签为y
q
的概率。9.根据权利要求1所述的一种电网入侵检测方法,其特征在于,获取所述电网入侵预测结果的具体步骤为:将所述预处理后数据输入所述协同训练后特征嵌入模型,得到特征嵌入向量x
′
;获取所述特征嵌入向量x
′
与预设的正类代表向量的相似度以及所述特征嵌入向量x
′
与预设的负类代表向量的相似度根据相似度和相似度得到电网入侵预测结果;其中,所述电网入侵预测结果为:10.一种电网入侵检测系统,其特征在于,包括以下模块:预训练模块,用于构建初始机器学习模型,并使用公共数据集对所述初始机器学习模型进行预训练,得到初始特征嵌入模型;协同训练模块,与所述预训练模块通信连接,用于获取预训练模型,并使用通过电网中收集的数据构建的小样本数据集对所述初始特征嵌入模型进行协同训练,得到协同训练后特征嵌入模型;结果预测模块,与所述协同训练模块通信连接,用于获取协同训练后特征嵌入模型据,并对电网中实时收集的数据,即电网运行数据进行预处理,得到预处理后数据;还用于将所述预处理后数据输入所述协同训练后特征嵌入模型,得到电网入侵预测结果。
技术总结
本发明涉及一种电网入侵检测方法及系统,包括以下步骤:先构建初始机器学习模型,并基于公共数据集对初始机器学习模型进行训练,得到初始特征嵌入模型,在对初始机器学习模型进行训练的过程中,聚合了来自常见工业数据集的知识;其次,基于电网本地的小样本数据集对初始特征嵌入模型进一步进行训练,得到协同训练后特征嵌入模型,使得最终得到的模型聚合了来自小样本数据集的知识。在模型的训练过程中,本发明可以使用少量样本,同时本发明所提出的协同训练后特征嵌入模型可以有效地检测出针对电网的网络攻击,并且具有检测未知网络攻击的能力。的能力。的能力。
技术研发人员:傅杰 纪文 郭蔡炜 王怡婷 林思辰 郑嘉明 高董英 张坤三 倪文书 刘宇轩 林晨晗 吕智垒 吉眉颖 李铮 李少杰 方志坚 陈昕昊
受保护的技术使用者:国网福建省电力有限公司信息通信分公司
技术研发日:2023.05.29
技术公布日:2023/8/4
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种路线切换系统及方法与流程 下一篇:一种树脂处理废气的系统及方法与流程
