一种基于gd-dqn算法的新型电力系统apt攻击图生成方法
技术领域
1.本发明涉及电力系统信息安全技术领域,具体说是一种基于gd-dqn算法的新型电力系统apt攻击图生成方法。
背景技术:[0002]“双碳”目标下的新型电力系统(以新能源为主体的电力系统,简称新型电力系统,具备以下特征:高渗透率的可再生能源与高比例的电力电子设备,高增长的电力负荷与高比例电气化水平,新型数字、智能技术深度融合与灵活高效广泛的能源配置,开放包容安全与多系统多形态互联互动)中,高比例电力电子设备的接入使得电力系统(指现有的、非新能源为主体的电力系统)的不确定性、开放性、复杂性增加,这给电力系统的安全稳定运行带来了新的挑战。与此同时,近年来发生了多起针对电力系统的网络安全事件,例如以下文献记载的针对电力系统的网络安全事件:
[0003]
[1]giani a,bitar e,garcia m,mcqueen m,khargonekar p,poolla k,smart griddata integrity attacks,ieee transactions on smart grid,vol.4,no.3,pp1244-1253,2013.
[0004]
[2]master n,mounzer j,bambos n,distributed smart grid architecture for delay and price sensitive power management,ieee international conference on communications,sydney,nsw,australia,2014.
[0005]
[3]aydeger a,akkaya k,cintuglu m h,uluagac a s,mohammed o,software defined networking for resilient communications in smart grid active distribution networks,ieee international conference on communications,kualalumpur,malaysia,2016.
[0006]
[4]rana m m,li l,su s w,an adaptive-then-combine dynamic state estimation considering renewable generations in smart grids,ieee journal on selected areas in communications,vol.34,no.12,pp 3954-3961,2016.
[0007]
在这些网络安全事件中,攻击者大都通过发起高级可持续威胁apt(advanced persistent threat)攻击从而导致电力系统瘫痪,并造成巨大损失。因此,提高新型电力系统对apt攻击的检测和防御能力至关重要。
[0008]
由于apt攻击者的技术和方法是不断变化和扩展的,因此防御者需要定制生成攻击图来模拟和仿真未知的apt攻击者,并借此训练异常检测和防御算法以提高防御系统的灵活性和健壮性。攻击图的传统生成方式,包括:基于安全状态约简攻击图生成方法、基于知识图谱攻击图生成方法、基于进化算法攻击图生成方法、基于语义分析攻击图生成方法、基于贝叶斯攻击图生成方法、基于q-learning算法攻击图生成方法。
[0009]
上述传统生成方式虽然有效,但随着新型电力系统的网络规模不断增大形成了大规模网络,攻击路径随目标网络的主机规模与脆弱性数目的乘积呈指数增长,由此导致攻击图的传统生成方式不适用于新型电力系统,例如:在大规模网络中采用攻击图的传统生
成方式,存在攻击图中节点爆炸的现象,导致生成的攻击图规模庞大,攻击图中存在大量冗余的边和节点,极大地影响了攻击图的实用性。
[0010]
随着计算能力和分布式计算的发展,基于无状态的机器学习算法已成为网络攻击图的一个研究热点。
[0011]
现有技术一,基于q-learning机制的攻击图生成技术研究:
[0012]
参见[5]张书钦,李凯江,张露,杨峻峰.基于q-learning机制的攻击图生成技术研究[j].电子科技,2018,31(10):6-10.doi:10.16180/j.cnki.issn1007-7820.2018.10.002.
[0013]
过程1:利用增强学习中q-learning对网络扫描状态进行转换分析,并且对当前的节点状态进行决策,在进行攻击图生成算法前,因为智能体对环境一无所知,所以需要对网络环境中的q表进行初始化(初始值为0),这个q表中的信息就代表智能体在学习过程中不断获得的知识或经验;
[0014]
过程2:开始迭代,每一个迭代都是一次完整的训练;在每一次训练中,智能体都对环境进行一次探索学习,得到奖励,得到目标状态;
[0015]
过程3:随机选取一个初始状态,作为初始状态节点;
[0016]
过程4:如果智能体还没有进入目标状态,则从当前状态下所有可能的动作中选择一个给出最大q值的那对动作和状态,到达下一个攻击后果状态节点;
[0017]
过程5:更新当前的q值,把上面对应的状态变为现在的状态;
[0018]
过程6:如果现在状态不是目标状态,则继续更新;
[0019]
过程7:否则就终止当前的迭代,直到当前q网络函数积累值收敛,则认为该网络状态的攻击图生成结束。
[0020]
现有技术一存在的不足之处在于:q-learning算法存在维数灾难问题,q-learning算法中使用q表存储q值的,这不太适用于存在大规模数据的新型电力系统,而且q-learning算法中的奖励函数比较单一,智能体获得的奖励一般除了0就是一个固定的常数,有时候达不到很好的训练效果,通过大量的训练虽然才能够使智能体到达攻击目的。除此之外,当状态和动作空间是离散且维数不高时可使用q表储存每个状态动作对的q值,但是当状态和动作空间是高维连续时,使用q表存储动作空间和状态就显得十分困难。
[0021]
现有技术二,面向工控网络安全和漏洞分析的攻击图生成研究:
[0022]
参见[6]原锦明.面向工控网络安全和漏洞分析的攻击图生成研究[j].现代电子技术,2016,39(11):103-107.doi:10.16652/j.issn.1004-373x.2016.11.025.
[0023]
在每一次原子攻击成功后,工业控制网络从网络状态si变化至后一网络状态s
i+1
,s代表某一时刻工业控制网络的网络状态。具体攻击图生成过程包括:
[0024]
过程1:从网络初始状态s0开始,用特定条件判断攻击者可能达到的状态;
[0025]
过程2:判断后,发现s1,s2,s3满足状态迁移的条件;
[0026]
过程3:根据宽度优先搜索的原则,依次对s1,s2,s3进行状态迁移条件的判断,从而预测攻击者可达到的状态;其中s3状态符合攻击条件的攻击目标函数,说明s3状态是一个合适的攻击目标,这样就无需再对其进行状态迁移条件的判断;
[0027]
过程4:继续判断s1,其中s4,s5为满足状态迁移条件的节点,再对s2进行判断,s6为满足迁移条件的节点;
[0028]
过程5:然后继续对下一层节点s4,s5,s6进行状态迁移条件的判断,其中,s5状态满足状态迁移条件,是攻击者的一个目标,因此无需对其继续进行状态迁移条件的判断;
[0029]
过程6:继续对s4,s6进行状态迁移条件的判断,判断s4时发现其既无法到达任何新状态节点,又不能满足攻击目标函数,应作为最后一层;
[0030]
过程7:判断s6时,s7为满足迁移条件的节点,再对节点s7进行状态迁移条件的判断,发现该节点既无法到达任何新状态节点,又不满足攻击目标函数,则s7也为最后一层,至此完成了完整的状态迁移过程。
[0031]
具体算法的实现:
[0032]
过程1:以工业控制网络的初始状态为起点,依据状态迁移判定条件判断所有可能达到的网络状态,将判断结果加入状态队列,建立初始网络状态,加入状态队列;
[0033]
过程2:如果队列为空,则算法结束;
[0034]
过程3:如果队列不为空,则从状态队列中取出一个状态,赋值给当前状态节点;
[0035]
过程4:如果符合攻击目标函数,则建立雨攻击发起组件有来连接关系的组件队列;
[0036]
过程5:如果此时组件队列不为空,则从组件的队列中取出一个组件,同时建立该被攻击组件上的脆弱性队列;
[0037]
过程6:如果脆弱性队列不空的话,考察利用规则,如果前提条件满足,且攻击者获得权限得到提升,生成新的状态同时计算并记录该状态对应的目前为止所进行的攻击步数、成功概率、攻击造成的损失;
[0038]
过程7:将新的状态加入状态队列,同时生成攻击路径信息,并生成攻击图;
[0039]
过程8:最后对生成的攻击图进行漏洞风险评估。
[0040]
为了评估各漏洞的风险大小,实现对危害性大的漏洞及攻击路径重点防御的目的,采用漏洞的风险值大小评估漏洞的危害程度。要确定漏洞的风险值,首先要确定漏洞的全局被利用概率和漏洞的全局危害程度,具体实现步骤如下:
[0041]
(1)使用广度优先遍历算法,从起始节点开始逐层计算每个节点被利用成功的全局被利用概率,用字母p表示;
[0042]
(2)用value表示各组件的价值量,用φ表示漏洞的独立危害程度,故单个漏洞对其所在组件造成的损失则为φ
×
value。用字母y表示漏洞的全局危害程度,即单个漏洞的关联危害程度w与该工业控制网络中的所有组件的价值量之和的比值;
[0043]
(3)用r表示漏洞的风险值大小,其值为各个节点全局被利用成功的概率p乘以该节点的全局危害程度y。
[0044]
现有技术二存在的不足之处在于:该方法在计算系统损失值φ
×
value、攻击成功的概率p时还存在很大的主观性。
[0045]
公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
技术实现要素:[0046]
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,使用gd-dqn算法中的智能体,改善了攻击图生成的效率和规
模,可以动态实时地生成攻击图;引入dueling dqn算法,智能体的每次学习过程都与其他的学习场景不存在必然依赖;引入gru模型,智能体达到更好的训练效果,可得到更优的攻击路径。
[0047]
为达到以上目的,本发明采取的技术方案是:
[0048]
一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,包括如下步骤:
[0049]
步骤1,基于新型电力系统网络拓扑结构,通过网络漏洞扫描器进行扫描检测,生成新型电力系统的漏洞信息;
[0050]
步骤2,通过gd-dqn算法中的智能体对漏洞信息进行漏洞状态扫描,形成对新型电力系统环境的网络感知t,所述网络感知t包括若干条记录,记录的格式为t=(s,action,s
init
,s
target
,r^),其中:
[0051]
s代表攻击图中的节点,有漏洞节点和状态节点两种类型;
[0052]
action代表智能体可以选择的动作类型,有攻击和防御两种动作类型;
[0053]sinit
代表智能体可以作为apt攻击初始状态节点的集合;
[0054]starget
代表智能体的收敛状态节点集合;
[0055]
r^代表回报,是根据gd-dqn状态模型而来的辅助结构;
[0056]
步骤3,智能体根据网络感知t通过训练过程对攻击图进行构造。
[0057]
在上述技术方案的基础上,步骤3的具体步骤如下:
[0058]
步骤3.1,根据对新型电力系统的网络感知t,从s
init
集合中确定一个状态节点当作初始状态节点;
[0059]
步骤3.2,将初始状态节点作为当前apt节点,加入到攻击图中;
[0060]
步骤3.3,智能体从当前apt节点出发,根据当前状态节点、当前状态节点的可能的后继漏洞节点、攻击模板、q函数表和学习率α进行动作的选择;
[0061]
步骤3.4,将选择的所述动作作用于攻击图环境后,apt攻击者感知到当前的环境状态state,然后环境状态空间对所述动作进行反馈,给出相应的回报r
t
;
[0062]
步骤3.5,根据回报r
t
按照式(1)更新gd-dqn算法中q网络函数中的值;
[0063][0064]
步骤3.6,根据学习率α,判断q网络函数积累值是否收敛;
[0065]
如果未收敛,则根据攻击模板得到当前状态节点的下一个状态节点,并把它当作下一个apt节点,将当前apt节点与下一个apt节点进行依此连接形成攻击路径,并将下一个apt节点作为新的当前apt节点并重复步骤3.3到3.5;
[0066]
如果收敛,则将当前的攻击路径存储为攻击图,生成结束。
[0067]
在上述技术方案的基础上,智能体在执行步骤2前,应先完成生成攻击图前的准备工作,所述准备工作具体分为参数初始化准备工作和参数输入准备工作;
[0068]
所述参数初始化准备工作包括:对gd-dqn算法中的q函数表进行初始化;
[0069]
所述参数输入准备工作包括:输入攻击模板、输入学习率α、输入apt攻击目标、输入初始apt节点集合。
[0070]
在上述技术方案的基础上,攻击模板的格式为<c,pre,post>,其含义是指:将动
作c作用于攻击图环境后,在当前状态节点pre的情况下,进行apt攻击可到达下一个状态节点post。
[0071]
在上述技术方案的基础上,步骤3.3中所述gd-dqn算法融合了gru模型和dueling dqn算法;
[0072]
gd-dqn算法通过融合dueling dqn算法将q网络函数分成了两部分,价值函数v和优势函数a,包含输入层、隐含层、输出层三部分,其中所述输入层包含多个节点,节点的个数由智能体的状态变量个数决定;
[0073]
gd-dqn算法通过融合gru模型的网络单元作为隐含层的基本神经元,增强智能体从状态变量中的感知能力,使决策动作具有一定的连贯性。
[0074]
在上述技术方案的基础上,对gd-dqn网络结构的输入层进行如下改造,以适配融合了gru模型后所述隐含层的基本神经元:
[0075]
在dueling dqn算法的网络结构中,输入层是每一时刻的智能体状态变量,使用gru模型的网络单元作为基本神经元时,利用环境状态转移模型进行采样,此处使用连续4个时刻的状态序列作为网络的输入。
[0076]
在上述技术方案的基础上,为步骤3.3中所述gd-dqn算法设置了记忆库,即gd-dqn算法价值函数的训练样本库,其通过智能体不断与环境交互试错学习得到,解决传统强化学习过拟合的问题,改善算法收敛效果。
[0077]
在上述技术方案的基础上,所述记忆库的设置具体如下:
[0078]
记忆库中每一组数据记录的策略执行情况为《state,action,reward,state"》,其中,state为当前环境状态,action为智能体采取的动作,reward为对应的奖赏函数值,state"为执行完动作后双方进入的下一时刻环境状态;
[0079]
在学习过程中,不断有新的策略执行情况数据加入到记忆库,为保证最新的策略执行情况数据能够被用来训练网络,设置记忆库的更新规则如下:
[0080]
memn=n(mod mem
m-1);
[0081]
其中,memm为记忆库的最大容量,n为新进入的第几组数据,memn为其在记忆库的位置,新的新的策略执行情况数据可取代之前在memn对应位置的旧数据。
[0082]
在上述技术方案的基础上,为使算法的记忆功能和收敛效果得到改进,对步骤3.3中所述dueling dqn算法的奖励函数r进行如下设置:
[0083][0084]
其中:
[0085][0086]
式中,ks
max
为网络中ks最大值,j为拥有最大ks值的核心节点集,d
ij
是节点i和节点j间的最短距离,s
ks
为所有节点的集合,θ(i|ks)为节点i的重要性值。
[0087]
本发明所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,可以帮助防御者在新型电力系统中更好的针对apt攻击进行防御,具有以下有益效果:
[0088]
1、基于gd-dqn算法定制生成攻击图,不仅可以改善攻击图生成的效率和规模,而
且通过对记忆库进行设置,还可以动态实时地生成攻击图(针对新型电力系统中apt攻击的实时攻击图);
[0089]
2、通过引入dueling dqn算法,利用该算法的场景无状态性特点,实现了智能体的每次学习过程都与其他的学习场景不存在必然依赖;
[0090]
3、通过引入门控递归单元gru(gated recurrent unit)模型使智能体的记忆功能得到增强,并通过对奖励函数的设置来使智能体达到更好的训练效果,来得到更优的攻击路径。
[0091]
采用本发明所述方法生成新型电力系统apt攻击图后,可通过gd-dqn算法中的智能体对整个攻击图进行攻防的模拟,可在模拟中对攻击图进行构造。
附图说明
[0092]
本发明有如下附图:
[0093]
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0094]
图1 apt攻击图的生成流程框架图。
[0095]
图2 apt攻击图的生成流程图。
[0096]
图3 gd-dqn价值网络结构图。
具体实施方式
[0097]
以下结合附图对本发明作进一步详细说明。所述详细说明,为结合本发明的示范性实施例做出的说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0098]
如图1、图2所示,本发明给出了一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,包括如下步骤:
[0099]
步骤1,基于新型电力系统网络拓扑结构,通过网络漏洞扫描器进行扫描检测,生成新型电力系统的漏洞信息;
[0100]
例如:使用nmap网络漏洞扫描器,按网络拓扑结构,对新型电力系统中的主机、端口和漏洞进行扫描检测,生成新型电力系统的漏洞信息;
[0101]
步骤2,通过gd-dqn算法中的智能体对漏洞信息进行漏洞状态扫描,形成对新型电力系统环境的网络感知t,所述网络感知t包括若干条记录,记录的格式为t=(s,action,s
init
,s
target
,r^),其中:
[0102]
s代表攻击图中的节点,有漏洞节点和状态节点两种类型;
[0103]
action代表智能体可以选择的动作类型,有攻击和防御两种动作类型;
[0104]sinit
代表智能体可以作为apt攻击初始状态节点的集合;集合中包括若干状态节点,每一个状态节点均可当作初始状态节点;
[0105]starget
代表智能体的收敛状态节点集合;集合中包括若干状态节点,每一个状态节点均可当作apt攻击目标;
[0106]
r^代表回报,是根据gd-dqn状态模型而来的辅助结构;
[0107]
所述gd-dqn状态模型可采用现有技术实施,不做详述;
[0108]
步骤3,智能体根据网络感知t通过训练过程对攻击图进行构造。
[0109]
在上述技术方案的基础上,步骤3的具体步骤如下:
[0110]
步骤3.1,根据对新型电力系统的网络感知t,从s
init
集合中确定一个状态节点当作初始状态节点;
[0111]
步骤3.2,将初始状态节点作为当前apt节点,加入到攻击图中;
[0112]
步骤3.3,智能体从当前apt节点出发,根据当前状态节点(就是指当前apt节点)、当前状态节点的可能的后继漏洞节点(后继漏洞节点从网络感知t的记录中获取)、攻击模板(亦称为apt攻击模板)、q函数表(q值采用表格的形式存储形成q函数表)和学习率α进行动作的选择;所述选择的动作从网络感知t的记录中的action参数获取,如前所述,有攻击和防御两种动作类型可选择;
[0113]
步骤3.4,将选择的所述动作作用于攻击图环境后,apt攻击者感知到当前的环境状态state,然后环境状态空间对所述动作进行反馈,给出相应的回报r
t
;
[0114]
步骤3.5,根据回报r
t
按照式(1)更新gd-dqn算法中q网络函数中的值;
[0115][0116]
式中,state代表当前的环境状态,action代表智能体当前选择的所述动作,α代表智能体当前的学习率,r(state,action)代表智能体在状态为state时采取action动作得到的立即奖罚值;
[0117]
步骤3.6,根据学习率α,判断q网络函数积累值是否收敛;
[0118]
如果未收敛,则根据攻击模板得到当前状态节点的下一个状态节点,并把它当作下一个apt节点,将当前apt节点与下一个apt节点进行依此连接形成攻击路径,并将下一个apt节点作为新的当前apt节点并重复步骤3.3到3.5;
[0119]
需要注意的是,下一个状态节点的选择只依赖于当前状态节点,并不依赖攻击路径中的其他apt节点;
[0120]
如果收敛,则将当前的攻击路径存储为攻击图,生成结束。
[0121]
在上述技术方案的基础上,智能体在执行步骤2前,应先完成生成攻击图前的准备工作,所述准备工作具体分为参数初始化准备工作和参数输入准备工作;
[0122]
所述参数初始化准备工作包括:对gd-dqn算法中的q函数表进行初始化;
[0123]
所述参数输入准备工作包括:输入攻击模板、输入学习率α、输入apt攻击目标(攻击目标是s
target
集合中的一个状态节点)、输入初始apt节点集合(即s
init
集合)。
[0124]
其中,攻击模板的格式为<c,pre,post>,其含义是指:将动作c作用于攻击图环境后,在当前状态节点pre的情况下,进行apt攻击可到达下一个状态节点post。
[0125]
当上述生成攻击图前的准备工作完成后,才执行步骤2所述操作。
[0126]
在上述技术方案的基础上,如图3所示,步骤3.3中所述gd-dqn算法融合了gru模型和dueling dqn算法:
[0127]
所述gru模型是标准循环神经网络的改进版,是递归神经网络的门控机制;
[0128]
所述dueling dqn算法是传统dqn算法的一种改进算法;
[0129]
gd-dqn算法通过融合dueling dqn算法将q网络函数分成了两部分,价值函数v和
优势函数a,包含输入层、隐含层、输出层三部分,其中所述输入层包含多个节点,节点的个数由智能体的状态变量个数决定;
[0130]
gd-dqn算法通过融合dueling dqn算法,利用dueling dqn算法的网络结构,将q网络函数分成了两部分,价值函数v和优势函数a,gd-dqn算法输出各动作的价值函数;价值函数v和优势函数a为本领域公知概念,本技术对此无改进,不做详述;
[0131]
gd-dqn算法通过融合gru模型的网络单元作为隐含层的基本神经元,增强智能体从状态变量中的感知能力,使决策动作具有一定的连贯性。
[0132]
在上述技术方案的基础上,对gd-dqn网络结构的输入层进行如下改造,以适配融合了gru模型后所述隐含层的基本神经元:
[0133]
在dueling dqn算法的网络结构中,输入层是每一时刻的智能体状态变量,使用gru模型的网络单元作为基本神经元时,利用环境状态转移模型进行采样,此处使用连续4个时刻的状态序列作为网络的输入。
[0134]
在上述技术方案的基础上,为步骤3.3中所述gd-dqn算法设置了记忆库,即gd-dqn算法价值函数的训练样本库,其通过智能体不断与环境交互试错学习得到,解决传统强化学习过拟合的问题,改善算法收敛效果;所述记忆库的设置具体如下:
[0135]
记忆库中每一组数据记录的策略执行情况为《state,action,reward,state"》,其中,state为当前环境状态,action为智能体采取的动作,reward为对应的奖赏函数值,state"为执行完动作后双方进入的下一时刻环境状态;
[0136]
在学习过程中,不断有新的策略执行情况数据加入到记忆库,为保证最新的策略执行情况数据能够被用来训练网络,设置记忆库的更新规则如下:
[0137]
memn=n(mod mem
m-1);
[0138]
其中,memm为记忆库的最大容量,n为新进入的第几组数据,memn为其在记忆库的位置,新的新的策略执行情况数据可取代之前在memn对应位置的旧数据。
[0139]
在上述技术方案的基础上,为使算法的记忆功能和收敛效果得到改进,对步骤3.3中所述dueling dqn算法的奖励函数r进行如下设置:
[0140][0141]
其中:
[0142][0143]
式中,ks
max
为网络中ks最大值,j为拥有最大ks值的核心节点集,d
ij
是节点i和节点j间的最短距离,s
ks
为所有节点的集合,θ(i|ks)为节点i的重要性值。
[0144]
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
[0145]
以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。参考文献:
[0146]
[1]张书钦,李凯江,张露,杨峻峰.基于q-learning机制的攻击图生成技术研究[j].电子科技,2018,31(10):6-10.doi:10.16180/j.cnki.issn1007-7820.2018.10.002.
[0147]
[2]高云,郭艳艳,卫霞.移动边缘计算网络中基于dqn的能效性卸载决策及无线资源分配[j].测试技术学报,2022,36(01):54-59.
[0148]
[3]胡东愿,杨任农,左家亮,郑万泽,赵雨,张强.基于lstm-dueling dqn的无人战斗机机动智能决策[j].战术导弹技术,2021(06):97-104.doi:10.16358/j.issn.1009-1300.2021.6.005.
技术特征:1.一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,包括如下步骤:步骤1,基于新型电力系统网络拓扑结构,通过网络漏洞扫描器进行扫描检测,生成新型电力系统的漏洞信息;步骤2,通过gd-dqn算法中的智能体对漏洞信息进行漏洞状态扫描,形成对新型电力系统环境的网络感知t,所述网络感知t包括若干条记录,记录的格式为t=(s,action,s
init
,s
target
,r^),其中:s代表攻击图中的节点,有漏洞节点和状态节点两种类型;action代表智能体可以选择的动作类型,有攻击和防御两种动作类型;s
init
代表智能体可以作为apt攻击初始状态节点的集合;s
target
代表智能体的收敛状态节点集合;r^代表回报,是根据gd-dqn状态模型而来的辅助结构;步骤3,智能体根据网络感知t通过训练过程对攻击图进行构造。2.如权利要求1所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,步骤3的具体步骤如下:步骤3.1,根据对新型电力系统的网络感知t,从s
init
集合中确定一个状态节点当作初始状态节点;步骤3.2,将初始状态节点作为当前apt节点,加入到攻击图中;步骤3.3,智能体从当前apt节点出发,根据当前状态节点、当前状态节点的可能的后继漏洞节点、攻击模板、q函数表和学习率α进行动作的选择;步骤3.4,将选择的所述动作作用于攻击图环境后,apt攻击者感知到当前的环境状态state,然后环境状态空间对所述动作进行反馈,给出相应的回报r
t
;步骤3.5,根据回报r
t
按照式(1)更新gd-dqn算法中q网络函数中的值;步骤3.6,根据学习率α,判断q网络函数积累值是否收敛;如果未收敛,则根据攻击模板得到当前状态节点的下一个状态节点,并把它当作下一个apt节点,将当前apt节点与下一个apt节点进行依此连接形成攻击路径,并将下一个apt节点作为新的当前apt节点并重复步骤3.3到3.5;如果收敛,则将当前的攻击路径存储为攻击图,生成结束。3.如权利要求1所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,智能体在执行步骤2前,应先完成生成攻击图前的准备工作,所述准备工作具体分为参数初始化准备工作和参数输入准备工作;所述参数初始化准备工作包括:对gd-dqn算法中的q函数表进行初始化;所述参数输入准备工作包括:输入攻击模板、输入学习率α、输入apt攻击目标、输入初始apt节点集合。4.如权利要求3所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,攻击模板的格式为<c,pre,post>,其含义是指:将动作c作用于攻击图环境后,在当前状态节点pre的情况下,进行apt攻击可到达下一个状态节点post。
5.如权利要求2所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,步骤3.3中所述gd-dqn算法融合了gru模型和dueling dqn算法;gd-dqn算法通过融合dueling dqn算法将q网络函数分成了两部分,价值函数v和优势函数a,包含输入层、隐含层、输出层三部分,其中所述输入层包含多个节点,节点的个数由智能体的状态变量个数决定;gd-dqn算法通过融合gru模型的网络单元作为隐含层的基本神经元,增强智能体从状态变量中的感知能力,使决策动作具有一定的连贯性。6.如权利要求5所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,对gd-dqn网络结构的输入层进行如下改造,以适配融合了gru模型后所述隐含层的基本神经元:在dueling dqn算法的网络结构中,输入层是每一时刻的智能体状态变量,使用gru模型的网络单元作为基本神经元时,利用环境状态转移模型进行采样,此处使用连续4个时刻的状态序列作为网络的输入。7.如权利要求2所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,为步骤3.3中所述gd-dqn算法设置了记忆库,即gd-dqn算法价值函数的训练样本库,其通过智能体不断与环境交互试错学习得到,解决传统强化学习过拟合的问题,改善算法收敛效果。8.如权利要求7所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,所述记忆库的设置具体如下:记忆库中每一组数据记录的策略执行情况为<state,action,reward,state">,其中,state为当前环境状态,action为智能体采取的动作,reward为对应的奖赏函数值,state"为执行完动作后双方进入的下一时刻环境状态;在学习过程中,不断有新的策略执行情况数据加入到记忆库,为保证最新的策略执行情况数据能够被用来训练网络,设置记忆库的更新规则如下:mem
n
=n(mod mem
m-1);其中,mem
m
为记忆库的最大容量,n为新进入的第几组数据,mem
n
为其在记忆库的位置,新的新的策略执行情况数据可取代之前在mem
n
对应位置的旧数据。9.如权利要求2所述的一种基于gd-dqn算法的新型电力系统apt攻击图生成方法,其特征在于,为使算法的记忆功能和收敛效果得到改进,对步骤3.3中所述dueling dqn算法的奖励函数r进行如下设置:其中:式中,ks
max
为网络中ks最大值,j为拥有最大ks值的核心节点集,d
ij
是节点i和节点j间的最短距离,s
ks
为所有节点的集合,θ(i|ks)为节点i的重要性值。
技术总结本发明涉及一种基于GD-DQN算法的新型电力系统APT攻击图生成方法,首先,基于新型电力系统网络拓扑结构,通过网络漏洞扫描器进行扫描检测,生成新型电力系统的漏洞信息;其次,通过GD-DQN算法中的智能体对漏洞信息进行漏洞状态扫描,形成对新型电力系统环境的网络感知T;然后,智能体根据网络感知T通过训练过程对攻击图进行构造。本发明,使用GD-DQN算法中的智能体,改善了攻击图生成的效率和规模,可以动态实时地生成攻击图;引入Dueling DQN算法,智能体的每次学习过程都与其他的学习场景不存在必然依赖;引入GRU模型,智能体达到更好的训练效果,可得到更优的攻击路径。可得到更优的攻击路径。可得到更优的攻击路径。
技术研发人员:李元诚 王子佳 王庆乐
受保护的技术使用者:国网江西省电力有限公司 国网江西省电力有限公司吉安供电分公司
技术研发日:2022.06.10
技术公布日:2022/11/1