CN115134130B - 一种基于DQN算法的智能电网DoS攻击检测方法 - Google Patents
一种基于DQN算法的智能电网DoS攻击检测方法 Download PDFInfo
- Publication number
- CN115134130B CN115134130B CN202210672597.9A CN202210672597A CN115134130B CN 115134130 B CN115134130 B CN 115134130B CN 202210672597 A CN202210672597 A CN 202210672597A CN 115134130 B CN115134130 B CN 115134130B
- Authority
- CN
- China
- Prior art keywords
- time
- value
- attack
- dqn
- obtaining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
- Feedback Control In General (AREA)
Abstract
本发明公开了一种基于DQN算法的智能电网DoS攻击检测方法。传统的坏数据检测法十分依赖阈值设置,本发明通过使用DQN算法减少对于阈值设置的依赖程度。在观察值构造方面,本发明使用连乘积的方式构造观察值,相较于传统的滑窗法,可以对观察值进行大幅度的降维。同时,在检测到攻击后,本发明对未收到的信号进行剔除得到一个新的状态估计,该估计可作为后续计算的参照。最后使用DQN算法对DoS攻击检测进行训练。本发明实现了DoS攻击的快速检测,增加了检测速度与成功率,其实现方法简单,检测效率能够有显著提升。
Description
技术领域
本发明属于智能电网领域,尤其涉及一种基于DQN算法的智能电网DoS攻击检测方法。
背景技术
智能电网是一种典型的信息物理系统,它将信息传输通道与电力传输通道分离,从而使电网拥有更高效的电力资源配置、更强的抗干扰能力的新型电网技术。但由于对信息技术的广泛使用,信息安全也称为电网中的重要一环。DoS攻击是信息物理系统的一种典型攻击方式,其核心思想是使用信息技术对电网信息系统进行攻击,造成系统丢包进而影响电力系统的安全稳定。传统的检测方法为坏数据检测法。但该方法仅能检测攻击额而不能检测攻击位置,同时由于其采用单阈值因此检测成功率一般,当前一些其他的检测方法可实现DoS攻击的检测,但阈值设置时期的检测成功率依然不高。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于DQN算法的智能电网DoS攻击检测方法。
本发明的目的是通过以下技术方案来实现的:一种基于DQN算法的智能电网DoS攻击检测方法,包括以下步骤:
步骤一:建立电网的一般线性模型:
xt=Axt-1+vt (1)
yt=Hxt+wt (2)
其中,xt=[x1,t,…,xn,t,…,xN,t]为t时刻系统状态,xn,t表示t时刻第n个节点上的相角,N表示系统的总状态数;t时刻测量值表示为yt=[y1,t,…,ym,t,…,yM,t],ym,t表示t时刻第m个测量仪表的检测值,M表示总测量仪表值;为状态转移矩阵,为雅克比矩阵,表示实数集;表示t时刻系统噪声,表示过程噪声的方差,IN表示N维单位矩阵;表示t时刻测量噪声,表示测量噪声的方差,IM表示M维单位矩阵;
步骤二:虚拟攻击获得样本:对于DoS攻击可以使用式(3)获得受攻击的测量值:
ym,t=dm,t×(hmxt+wm,t) (3)
式中,dm,t表示t时刻ym,t是否遭受DoS攻击,当ym,t遭受攻击时dm,t=0,当ym,t未遭受攻击时dm,t=1,hm为系统矩阵H的第m行向量,wm,t为t时刻时第m个检测值检测时所面对的噪声;
步骤三:观察值获取:使用式(4)卡尔曼滤波获得状态估计:
得到检测值估计后,进行观察值Rt的获取;
步骤四:修正观察值获取:当系统被判定在t时刻遭受攻击或在前T时段内被判定遭受过攻击时,需要对测量值进行修正,并构造了修正观察值设剔除受攻击后的测量值序列为相应的系统矩阵与测量值估计也变为He与乘数Gt对应变为
步骤五:配置DQN:将整个检测过程视作马尔科夫决策问题;将系统划分为两个状态,分别为系统未受到攻击sn与系统受到攻击sa;令t时刻的观测为ot;将检测器动作也分为两个状态,其中as表示算法认为系统存在异常发出警报,ac表示算法认为系统正常运行不发出警报;回报为rt;系统的状态转移概率设为未知;设置神经网络为两层,每层神经元个数根据电网结构大小进行设置,使用BP神经网络进行训练,设置学习率和学习率下降比;
步骤七:使用ε贪婪策略得到t时刻检测器动作at:在动作选择上采用ε贪婪策略,检测器以概率1-ε选择最优动作、以概率ε随机选择动作,使用式(14)更新ε:
ε=max(ε×dε,εmin) (14)
其中,dε为ε的衰减速率,εmin为ε最小值;选择动作后,根据动作与状态得到回报rt;
步骤八:DQN训练:在训练前确定攻击时间与次数,令攻击集合为Tau;使用步骤一至步骤四,与步骤六至步骤七,进行训练,并对DQN网络进行更新,具体更新公式如下;最后重复该步骤直到样本总数E用尽;
ζt=rt+μmaxaQ(ot+1,·;δ) (16)
ξt=(ζt-Q(ot,at;δ))2 (17)
式中,Q代表DQN网络,μ为DQN算法中的折扣因子,δ为权重,ξt为损失函数,得到ξt后使用梯度下降法对DQN网络进行更新;
步骤九:检测:在进行检测时,需要放弃使用ε贪婪策略,而采用最优动作进行动作选取,最优动作选取公式如式(18)所示:
at=max(Q(ot,·;δ)) (18)
式中,Q为已经训练好的DQN神经网络。
进一步地,步骤三中,求观察值:
式中,γ为Rt的折扣比率,Gt为乘数。
进一步地,步骤四包括:
(4.1)修正测量值,包括:
首先,可将测量值分为不同区域(1,2,...,K),其中第k区域含有lk个检测器,每个检测器只能在一个区域;其次将区域划组(1,2,...,P),其中第p组含有zp个区域,每个区域只能分在一个组中;最后当系统受到攻击时,使用式(8)至式(10),判断该组与该区域是否存在受攻击检测值:
(4.2)对于修正观察值,若系统在t时刻与之前的T时段内未发现异常,则令若在t时刻未发现异常但在之前的T时段内存在异常,则可使用式(11)与式(12),分别对修正观察值与修正乘数进行计算;若在t时刻发现异常,则首先需要根据式(6)获取观察值Rt,再使用式(8)至式(10)剔除异常测量值后,使用式(12)进行计算:
进一步地,步骤六通过以下子步骤来实现:
(6.1)获取观测的阈值分割:设置b个阈值[δ1,δ2,…,δb],则可根据下式获得阈值分割后的值:
式中,上角标(e)代表修正值与非修正值均可使用此式;φ1~φb+1为区域符号;
(6.2)获取观测的滑窗法:在获得与后,令在获得t+1时刻的值与后,使用滑窗法除去最旧的观察值并将其他观察值后移,最后加入新的观察值;具体地,在使用ot获得ot+1的过程中,需要将最旧的的与移除,加入新的观察值得到新的观测
进一步地,回报rt的设置为:当出现系统未受到攻击却发出警报与系统受到攻击却不发出警报两种情况时,会受到惩罚:
其中,r0为标准惩罚参数,其值为正数。
进一步地,步骤八包括:
(8.1)在每轮训练时,首先要获取上一轮训练的DQN网络,初始化其他参数:包括系统结构矩阵A与H、总训练幕长度E、阈值集合、折扣比率γ、标准惩罚参数r0、随机动作选择概率ε、ε的衰减速率dε、ε的最小值εmin,确定实施攻击时刻的集合Tau;
(8.2)判断当前训练幕e是否处于总训练幕长度之中,是则继续训练,否则执行(8.17);
(8.3)初始化时间t=0,观测o0=[φ1,φ1,φ1,φ1],动作a0=ac,初始状态x0,初始测量值y0及卡尔曼滤波中P0|0为与A同维度的单位矩阵;
(8.4)使用式(14)对ε进行更新;
(8.5)判断时间t是否小于第一预设值,若是则进行(8.6)至(8.8),否则跳至(8.9);
(8.6)对时刻t进行加1的更新操作;
(8.7)使用步骤一获得系统测量值yt;
(8.9)判断时间t是否小于第二预设值,若是则进行(8.10)至(8.15),否则结束该轮训练跳至(8.16);
(8.10)更新t值,并根据上一时刻的观测和动作获取回报;
(8.11)更新DQN网络;
(8.12)使用步骤一获得系统测量值yt;
(8.13)若当前时刻t属于实施攻击时刻的集合Tau,则实施步骤二,否则越过此步直接执行(8.14);
(8.15)使用ε贪婪策略选择当前时刻的动作,并返回至(8.9);
(8.16)重复(8.1)至(8.15)直到训练完所有样本,即当前训练幕e要大于等于总训练幕长度E,然后执行(8.17);
(8.17)结束DQN网络的训练。
进一步地,步骤九包括:
(9.1)导入训练好的DQN网络,初始化其他参数:包括系统结构矩阵A与H、阈值集合、折扣比率γ;
(9.2)确定攻击时间集合Tau;
(9.3)初始化时间t=0,观测o0=[φ1,φ1,φ1,φ1],动作a0=ac,初始状态x0,初始测量值y0及卡尔曼滤波中P0|0为与A同维度的单位矩阵;
(9.4)判断时间t是否小于第一预设值,若是则进行(9.5)至(9.7),否则跳至(9.8);
(9.5)对时刻t进行加1的更新操作;
(9.6)使用步骤一获得系统测量值yt;
(9.8)判断时间t是否小于第二预设值,若是则进行(9.9)至(9.14),否则执行(9.15);
(9.9)对时刻t进行加1的更新操作;
(9.10)使用步骤一获得系统测量值yt;
(9.11)若当前时刻t属于实施攻击时刻的集合Tau,则实施步骤二,否则越过此步直接执行(9.12);
(9.13)使用最优策略进行动作选择,如式(18)所示:
at=max(Q(ot,·;δ)) (18)
式中,Q表示导入的DQN网络,δ表示权重;
(9.14)根据动作选择是否发出警报,若动作为as,则警报后返回(9.8),否则直接返回(9.8);
(9.15)检测结束。
本发明的有益效果是:本发明使用DQN算法实现了DoS攻击的检测,提高了DoS攻击的检测准确率与检测速度,可以同时实现攻击的检测与攻击位置的检测。
附图说明
图1为IEEE-118节点图;
图2为训练DQN流程图。
图3为检测流程图。
图4为γ=0.9的条件下,受DoS攻击测量值数目为5个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.9。横轴代表攻击间隔方式,方式1到5分别为随机攻击(攻击次数为5至30次),间隔为3进行攻击,间隔为5进行攻击,间隔为10进行攻击,间隔为20进行攻击。纵轴代表警报覆盖率。使用了Sarsa算法与BDD算法进行对比。
图5为γ=0.9的条件下,受DoS攻击测量值数目为5个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.9。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图6为γ=0.9的条件下,受DoS攻击测量值数目为7个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.9。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图7为γ=0.9的条件下,受DoS攻击测量值数目为7个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.9。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图8为γ=0.9的条件下,受DoS攻击测量值数目为10个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.9。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图9为γ=0.9的条件下,受DoS攻击测量值数目为10个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.9。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图10为γ=0.7的条件下,受DoS攻击测量值数目为5个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.7。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图11为γ=0.7的条件下,受DoS攻击测量值数目为5个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.7。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图12为γ=0.7的条件下,受DoS攻击测量值数目为7个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.7。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图13为γ=0.7的条件下,受DoS攻击测量值数目为7个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.7。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图14为γ=0.7的条件下,受DoS攻击测量值数目为10个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.7。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图15为γ=0.7的条件下,受DoS攻击测量值数目为10个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.7。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图16为γ=0.5的条件下,受DoS攻击测量值数目为5个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.5。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图17为γ=0.5的条件下,受DoS攻击测量值数目为5个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.5。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图18为γ=0.5的条件下,受DoS攻击测量值数目为7个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.5。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图19为γ=0.5的条件下,受DoS攻击测量值数目为7个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.5。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图20为γ=0.5的条件下,受DoS攻击测量值数目为10个(均为随机选择)情况下的警报覆盖率图;此检测所用DQN网络需满足γ=0.5。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
图21为γ=0.5的条件下,受DoS攻击测量值数目为10个(均为随机选择)情况下的错误警报率图;此检测所用DQN网络需满足γ=0.5。横轴代表攻击间隔方式,纵轴代表警报覆盖率,使用了Sarsa算法与BDD算法进行对比。
具体实施方式
下面根据附图详细说明本发明。
本发明一种基于DQN算法的智能电网DoS攻击检测方法,包括以下步骤:
步骤一:建立电网的一般线性模型:
xt=Axt-1+vt (1)
yt=Hxt+wt (2)
其中,xt=[x1,t,…,xn,t,…,xN,t]为t时刻系统状态,xn,t表示t时刻第n个节点上的相角,N表示系统的总状态数,取118;yt=[y1,t,…,ym,t,…,yM,t]为t时刻测量值,ym,t表示为t时刻第m个测量仪表的检测值,M表示测量仪表的总数量,取216。为状态转移矩阵,取单位矩阵;为由电网拓扑结构决定的雅克比矩阵,可根据图1获得;表示实数集。表示t时刻系统噪声;表示过程噪声的方差,其值取10-4(由系统决定);IN表示N维单位矩阵。表示t时刻测量噪声;表示测量噪声的方差,其值取2×10-4(由测量设备决定);IM表示M维单位矩阵。
步骤二:虚拟攻击获得样本,对于DoS攻击可以使用式(3)获得受攻击的测量值;
ym,t=dm,t×(hmXt+wm,t) (3)
式中,ym,t表示t时刻第m个检测仪表的检测值,dm,t表示t时刻ym,t是否遭受DoS攻击,当ym,t遭受攻击时dm,t=0,当ym,t未遭受攻击时dm,t=1;hm为系统矩阵H的第m行向量,wm,t为t时刻第m个检测值检测时所面对的噪声。
步骤三:观察值获取。
(3.1)使用式(4)卡尔曼滤波获得状态估计:
其中,表示对系统的状态估计,为t时刻卡尔曼滤波计算下的状态估计,将其计算结果赋值至 表示根据t-1时刻的状态估计对t时刻状态估计的预测;Pt|t表示t时刻下的状态协方差矩阵的估计,Pt|t-1表示对t时刻下的状态协方差矩阵的估计的预测;Gt表示t时刻下的卡尔曼滤波增益矩阵。
(3.3)得到检测值估计后,可进行观察值Rt的获取。求观察值,需使用式(6)计算:
式中,γ为Rt的折扣比率,Gt为该算法的乘数,其具体计算方式如式(7)所示。由于Rt中含有过去时刻的观察值,因此只需要两个观察值即可得到Rt的变化规律,即在时间t时,使用[Rt,Rt-1]。
步骤四:修正观察值获取。当系统被判定遭受攻击,或在T时段(T可由操作员设置)内被判定遭受过攻击时,需要对测量值进行修正,以保证后续状态估计的准确性。除此之外,为了保证后续观察值的计算稳定性,即清除攻击对于Rt的影响,本发明构造了修正观察值该步骤是本发明的核心之一,包括以下子步骤:
(4.1)修正测量值。
最后,当系统受到攻击时,使用式(8)至式(10),判断该组与该区域是否存在受攻击检测值(当有更多上层组时公式可扩展至更多):
式中,ft表示t时刻总的受攻击的测量值的位置检测判断依据,表示t时刻第p组受攻击测量值位置检测的判断依据,表示t时刻属于第p组中第k个区域受攻击测量值的位置检测的判断依据,为t时刻属于第p组中第k个区域的第j个测量值。当系统遭受DoS攻击时,ft=0,此时可寻找使ft=0的即寻找再通过寻找最后找到
尽管此方法需要连乘计算,但是可以将不为0的测量值设为1,减小计算量;由于DoS攻击一般都为小规模攻击,因此,该方法相较于直接从测量值上找受到攻击的测量值,速度更快。
对于修正观察值,若系统在t时刻与之前的T时段内未发现异常,则可令若在t时刻未发现异常但在之前的T时段内存在异常,则可使用式(11)与式(12)分别对修正观察值与修正乘数进行计算;若在t时刻发现异常,则首先需要根据式(6)获取观察值Rt,再使用式(8)至式(10)剔除异常测量值后使用式(12)进行计算。
步骤五:配置DQN算法。
将整个检测过程视作马尔科夫决策问题。将系统划分为两个状态,分别为系统未受到攻击sn与系统受到攻击sa。但由于无法直接观察到状态,因此需要构造观测,令t时刻的观测为ot,该值可在后续步骤获取。将检测器动作也分为两个状态,其中as为算法认为系统存在异常发出警报,ac表示算法认为系统正常运行不发出警报。回报为rt,该值根据不同状态与观测下的不同动作有不同取值。系统的状态转移概率设为未知。设置神经网络为两层,每层神经元为10个,使用BP神经网络进行训练,学习率设置为0.1,学习率下降比设置为0.8,重放储存区尺寸设置为10000,采样样本数设置为200,其余设置默认。
步骤六:观测获取。获得Rt与后,考虑到Rt与的维度为[0,+∞],因此使用阈值分割法,对其进行降维;由于该方法使用的是DNQ,因此不存在Q表维度过大的问题,可以设置多个阈值。由于Rt中包含过去时刻的状态,因此只需要增加一个Rt-1来观察Rt的走向即可,即在阈值分割法后再使用滑窗法,最后整合得到观测。该步骤是本发明的核心之一,包括以下子步骤:
(6.1)获取观测的阈值分割。
为了最大可能的减小维度灾难,本发明使用DQN算法进行学习,这可以在设置多个阈值下,减小Q表维度过大的问题;具体阈值设置可根据电网规模与DQN规模,设置阈值[δ1,δ2,δ3,δ4,δ5,δ6,δ7,δ8,δ9,δ10,δ11,δ12,δ13,δ14,δ15]=[0.015,0.03,0.04,0.06,0.1,0.12,0.15,0.2,0.5,1,5,10,20,50,100]。
可根据式(13)获得阈值分割后的值:
式中,上角标(e)代表修正值与非修正值均可使用此式。表示t时刻观察值Rt所处的阈值区间,表示t时刻修正观察值所处的阈值区间;φ1~φ16表示不同阈值范围下所处的阈值区间。例如,观察值Rt满足δ10≤Rt<δ11,此时Rt所处的区间为φ11,即
(6.2)获取观测的滑窗法。
在获得与后,可令在获得t+1时刻的值,使用滑窗法除去最旧的观察值并将其他观察值后移,最后加入新的观察值,例如在使用ot获得ot+1的过程中,需要将ot中最旧的的与移除,加入新的观察值与后,得到新的观测
步骤七:使用ε贪婪策略,得到t时刻检测器动作at,并获得回报反馈。
(7.1)在动作选择上可以采用ε贪婪策略,即检测器以概率1-ε选择最优动作、以概率ε随机选择动作。由于前期需要更多探索,因此前期需要赋予ε更大的值,而后期需要赋予ε更小的值,因此可使用式(14)进行更新:
ε=max(ε×dε,εmin) (14)
其中,dε为ε的衰减速率,取值0.95。εmin为ε的最小值,为0.01。初始ε为0.2。
(7.2)选择动作后,可以根据训练结果(动作与状态),得到回报,如式(15)所示:
其中,r0表示一个标准惩罚参数,其值为1。当出现系统未受到攻击却发出警报情况,与系统受到攻击却不发出警报情况时,回报值为-r0,其余情况回报值为0。
步骤八:DQN训练。如图2所示,包括:
(8.1)在每轮训练时,首先要获取上一轮训练的DQN网络(若无上一轮则获取初始化的DQN网络)与初始化其他参数,包括系统结构矩阵A与H、总训练幕长度E、阈值集合、折扣比率γ、标准惩罚参数r0、随机动作选择概率ε、ε的衰减速率dε、ε的最小值εmin,确定实施攻击时刻的集合Tau。
(8.2)判断当前训练幕e是否处于总训练幕长度之中,是则继续训练,否则执行(8.17)。
(8.3)初始化时间t=0,观测o0=[φ1,φ1,φ1,φ1],动作a0=ac,初始状态x0,初始测量值y0及卡尔曼滤波中P0|0为与A同维度的单位矩阵。
(8.4)使用式(14)对ε进行更新。
(8.5)判断时间t是否小于20(此值可以根据需要进行其他设置),若是则进行(8.6)至(8.8),否则跳至(8.9)。
(8.6)对时刻t进行加1的更新操作。
(8.7)使用步骤一获得系统测量值yt。
(8.9)判断时间t是否小于200(此值可以根据需要进行其他设置),若是则进行(8.10)至(8.15),否则结束该轮训练跳至(8.16)。
(8.10)更新t值,并由式(15)对根据上一时刻的观测和动作获取回报。
(8.11)更新DQN网络,具体更新公式如下:
ζt=rt+μmaxa Q(ot+1,·;δ) (16)
ξt=(ζt-Q(ot,at;δ))2 (17)
式中,Q代表DQN网络;μ为DQN算法中的折扣因子,取值为0.9;δ为该算法中的权重;ξt为损失函数,得到ξt后可以使用梯度下降法对DQN网络进行更新。
(8.12)使用步骤一获得系统测量值yt。
(8.13)若当前时刻t属于实施攻击时刻的集合Tau,则实施步骤二,否则越过此步直接执行(8.14)。
(8.15)使用ε贪婪策略选择当前时刻的动作,并返回至(8.9)。
(8.16)重复(8.1)至(8.15)直到训练完所有样本,即当前训练幕e要大于等于总训练幕长度E,然后执行(8.17)。
(8.17)结束DQN网络的训练。
步骤九:检测。如图3所示,包括:
(9.1)导入已经训练好的DQN网络,初始化其他参数,包括系统结构矩阵A与H、阈值集合、折扣比率γ。
(9.2)确定攻击时间集合Tau,该时间的确定可以为随机确定,也可以间隔确定。
(9.3)初始化时间t=0,观测o0=[φ1,φ1,φ1,φ1],动作a0=ac,初始状态x0,初始测量值y0及卡尔曼滤波中P0|0为与A同维度的单位矩阵。
(9.4)判断时间t是否小于20(此值可以根据需要进行其他设置),若是则进行(9.5)至(9.7),否则跳至(9.8)。
(9.5)对时刻t进行加1的更新操作。
(9.6)使用步骤一获得系统测量值yt。
(9.8)判断时间t是否小于200(此值可以根据需要进行其他设置),若是则进行(9.9)至(9.14),否则执行(9.15)。
(9.9)对时刻t进行加1的更新操作。
(9.10)使用步骤一获得系统测量值yt。
(9.11)若当前时刻t属于实施攻击时刻的集合Tau,则实施步骤二,否则越过此步直接执行(9.12)。
(9.13)由于在检测阶段不再需要探索,因此使用最优策略进行动作选择,如式(18)所示:
at=max(Q(ot,·;δ)) (18)
式中,Q表示导入的DQN网络,δ表示该网络的权重。
(9.14)根据动作选择是否发出警报,若动作为as,则警报后返回(9.8),否则直接返回(9.8)。
(9.15)该轮检测结束。
为了突出本发明的优越性,本发明实施例采用Sarsa算法(M.N.Kurt,O.Ogundijo,C.Li and X.Wang,”Online Cyber-Attack Detection in Smart Grid:A ReinforcementLearning Approach,″in IEEE Transactions on Smart Grid,vol.10,no.5,pp.5174-5185,Sept.2019,doi:10.1109/TSG.2018.2878570.)、BDD算法与本发明进行对比。其中,警报覆盖率表示,在警报集合K中存在于攻击集合Tau的攻击个数在Tau中所占的比率。错误警报率表示,在警报集合K中,不在攻击集合Tau中的警报个数在警报集合K中所占的比率。
图4表明在γ=0.9的条件下,受DoS攻击测量值数目为5个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图5表明在γ=0.9的条件下,受DoS攻击测量值数目为5个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图6表明在γ=0.9的条件下,受DoS攻击测量值数目为7个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图7表明在γ=0.9的条件下,受DoS攻击测量值数目为7个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图8表明在γ=0.9的条件下,受DoS攻击测量值数目为10个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图9表明在γ=0.9的条件下,受DoS攻击测量值数目为10个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图10表明在γ=0.7的条件下,受DoS攻击测量值数目为5个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图11表明在γ=0.7的条件下,受DoS攻击测量值数目为5个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图12表明在γ=0.7的条件下,受DoS攻击测量值数目为7个(均为随机选择)的情况下,本发明方法在警报覆盖率总体上与Sarsa算法表现相近,略差于BDD算法。
图13表明在γ=0.7的条件下,受DoS攻击测量值数目为7个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图14表明在γ=0.7的条件下,受DoS攻击测量值数目为10个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图15表明在γ=0.5的条件下,受DoS攻击测量值数目为10个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图16表明在γ=0.5的条件下,受DoS攻击测量值数目为5个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图17表明在γ=0.5的条件下,受DoS攻击测量值数目为5个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图18表明在γ=0.5的条件下,受DoS攻击测量值数目为7个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图19表明在γ=0.5的条件下,受DoS攻击测量值数目为7个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
图20表明在γ=0.5的条件下,受DoS攻击测量值数目为10个(均为随机选择)的情况下,本发明方法在警报覆盖率总体要略好于Sarsa算法,略差于BDD算法。
图21表明在γ=0.5的条件下,受DoS攻击测量值数目为10个(均为随机选择)的情况下,本发明方法在错误警报率远远好于Sarsa算法与BDD算法。
本发明并不限于上述实施方式,采用与本发明上述实施方式相同或近似的方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均在本发明专利的保护范围之内。
Claims (7)
1.一种基于DQN算法的智能电网DoS攻击检测方法,其特征在于,包括以下步骤:
步骤一:建立电网的线性模型:
xt=Axt-1+vt (1)
yt=Hxt+wt (2)
其中,xt=[X1,t,…,Xn,t,…,XN,t]为t时刻系统状态,Xn,t表示t时刻第n个节点上的相角,N表示系统的总状态数;t时刻测量值表示为yt=[y1,t,…,ym,t,…,yM,t],ym,t表示t时刻第m个测量仪表的检测值,M表示总测量仪表值;为状态转移矩阵,为雅克比矩阵,表示实数集;表示t时刻系统噪声,表示过程噪声的方差,IN表示N维单位矩阵;表示t时刻测量噪声,表示测量噪声的方差,IM表示M维单位矩阵;
步骤二:虚拟攻击获得样本:对于DoS攻击可以使用式(3)获得受攻击的测量值:
ym,t=dm,t×(hmXt+wm,t) (3)
式中,dm,t表示t时刻ym,t是否遭受DoS攻击,当ym,t遭受攻击时dm,t=0,当ym,t未遭受攻击时dm,t=1,hm为系统矩阵H的第m行向量,wm,t为t时刻时第m个检测值检测时所面对的噪声;
步骤三:观察值获取:使用式(4)卡尔曼滤波获得状态估计:
Pt|t表示t时刻下的状态协方差矩阵的估计,Pt|t-1表示对t时刻下的状态协方差矩阵的估计的预测;Gt表示t时刻下的卡尔曼滤波增益矩阵;获得状态估计后,使用式(5)获得检测值的估计值:
得到检测值估计后,进行观察值Rt的获取;求观察值,需使用式(6)计算:
式中,γ为Rt的折扣比率,Gt为该算法的乘数,其具体计算方式如式(7)所示;由于Rt中含有过去时刻的观察值,因此只需要两个观察值即可得到Rt的变化规律,即在时间t时,使用[Rt,Rt-1];
步骤四:修正观察值获取:当系统被判定在t时刻遭受攻击或在前T时段内被判定遭受过攻击时,需要对测量值进行修正,并构造了修正观察值设剔除受攻击后的测量值序列为相应的系统矩阵与测量值估计也变为He与乘数Gt对应变为
步骤五:配置DQN:将整个检测过程视作马尔科夫决策问题;将系统划分为两个状态,分别为系统未受到攻击sn与系统受到攻击sa;令t时刻的观测为ot;将检测器动作也分为两个状态,其中as表示算法认为系统存在异常发出警报,ac表示算法认为系统正常运行不发出警报;回报为rt;系统的状态转移概率设为未知;设置神经网络为两层,每层神经元个数根据电网结构大小进行设置,使用BP神经网络进行训练,设置学习率和学习率下降比;
步骤七:使用ε贪婪策略得到t时刻检测器动作at:在动作选择上采用ε贪婪策略,检测器以概率1-ε选择最优动作、以概率ε随机选择动作,使用式(14)更新ε:
ε=max(ε×dε,εmin) (14)
其中,dε为ε的衰减速率,εmin为ε最小值;选择动作后,根据动作与状态得到回报rt,如式(15)所示:
其中,r0表示一个标准惩罚参数,其值为1;当出现系统未受到攻击却发出警报情况,与系统受到攻击却不发出警报情况时,回报值为-r0,其余情况回报值为0;
步骤八:DQN训练:在训练前确定攻击时间与次数,令攻击集合为Tau;使用步骤一至步骤四,与步骤六至步骤七,进行训练,并对DQN网络进行更新,具体更新公式如下;最后重复该步骤直到样本总数E用尽;
ζt=rt+μmaxaQ(ot+1,·;δ) (16)
ξt=(ζt-Q(ot,at;δ))2 (17)
式中,Q代表DQN网络,μ为DQN算法中的折扣因子,δ为权重,ξt为损失函数,得到ξt后使用梯度下降法对DQN网络进行更新;
步骤九:检测:在进行检测时,需要放弃使用ε贪婪策略,而采用最优动作进行动作选取,最优动作选取公式如式(18)所示:
at=max(Q(ot,·;δ)) (18)
式中,Q为已经训练好的DQN神经网络,δ表示该网络的权重。
3.根据权利要求1所述基于DQN算法的智能电网DoS攻击检测方法,其特征在于,步骤四包括:
(4.1)修正测量值,包括:
首先,可将测量值分为不同区域(1,2,...,K),其中第k区域含有lk个检测器,每个检测器只能在一个区域;其次将区域划组(1,2,...,P),其中第p组含有zp个区域,每个区域只能分在一个组中;最后当系统受到攻击时,使用式(8)至式(10),判断该组与该区域是否存在受攻击检测值:
式中,ft表示t时刻总的受攻击的测量值的位置检测判断依据,表示t时刻第p组受攻击测量值位置检测的判断依据,表示t时刻属于第p组中第k个区域受攻击测量值的位置检测的判断依据,为属于第p组中第k个区域的第j个测量值;当系统遭受DoS攻击时ft=0,此时寻找使ft=0的即寻找再通过寻找最后找到
(4.2)对于修正观察值,若系统在t时刻与之前的T时段内未发现异常,则令若在t时刻未发现异常但在之前的T时段内存在异常,则可使用式(11)与式(12),分别对修正观察值与修正乘数进行计算;若在t时刻发现异常,则首先需要根据式(6)获取观察值Rt,再使用式(8)至式(10)剔除异常测量值后,使用式(12)进行计算:
6.根据权利要求1所述基于DQN算法的智能电网DoS攻击检测方法,其特征在于,步骤八包括:
(8.1)在每轮训练时,首先要获取上一轮训练的DQN网络,初始化其他参数:包括系统结构矩阵A与H、总训练幕长度E、阈值集合、折扣比率γ、标准惩罚参数r0、随机动作选择概率ε、ε的衰减速率dε、ε的最小值εmin,确定实施攻击时刻的集合Tau;
(8.2)判断当前训练幕e是否处于总训练幕长度之中,是则继续训练,否则执行(8.17);
(8.3)初始化时间t=0,观测o0=[φ1,φ1,φ1,φ1],动作a0=ac,初始状态x0,初始测量值y0及卡尔曼滤波中P0|0为与A同维度的单位矩阵;
(8.4)使用式(14)对ε进行更新;
(8.5)判断时间t是否小于第一预设值,若是则进行(8.6)至(8.8),否则跳至(8.9);
(8.6)对时刻t进行加1的更新操作;
(8.7)使用步骤一获得系统测量值yt;
(8.9)判断时间t是否小于第二预设值,若是则进行(8.10)至(8.15),否则结束该轮训练跳至(8.16);
(8.10)更新t值,并使用步骤七根据上一时刻的观测和动作获取回报;
(8.11)更新DQN网络;
(8.12)使用步骤一获得系统测量值yt;
(8.13)若当前时刻t属于实施攻击时刻的集合Tau,则实施步骤二,否则越过此步直接执行(8.14);
(8.15)使用ε贪婪策略选择当前时刻的动作,并返回至(8.9);
(8.16)重复(8.1)至(8.15)直到训练完所有样本,即当前训练幕e要大于等于总训练幕长度E,然后执行(8.17);
(8.17)结束DQN网络的训练。
7.根据权利要求1所述基于DQN算法的智能电网DoS攻击检测方法,其特征在于,步骤九包括:
(9.1)导入训练好的DQN网络,初始化其他参数:包括系统结构矩阵A与H、阈值集合、折扣比率γ;
(9.2)确定攻击时间集合Tau;
(9.3)初始化时间t=0,观测o0=[φ1,φ1,φ1,φ1],动作a0=ac,初始状态x0,初始测量值y0及卡尔曼滤波中P0|0为与A同维度的单位矩阵;
(9.4)判断时间t是否小于第一预设值,若是则进行(9.5)至(9.7),否则跳至(9.8);
(9.5)对时刻t进行加1的更新操作;
(9.6)使用步骤一获得系统测量值yt;
(9.8)判断时间t是否小于第二预设值,若是则进行(9.9)至(9.14),否则执行(9.15);
(9.9)对时刻t进行加1的更新操作;
(9.10)使用步骤一获得系统测量值yt;
(9.11)若当前时刻t属于实施攻击时刻的集合Tau,则实施步骤二,否则越过此步直接执行(9.12);
(9.13)使用最优策略进行动作选择,如式(18)所示:
at=max(Q(ot,·;δ)) (18)
式中,Q表示导入的DQN网络,δ表示权重;
(9.14)根据动作选择是否发出警报,若动作为as,则警报后返回(9.8),否则直接返回(9.8);
(9.15)检测结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672597.9A CN115134130B (zh) | 2022-06-14 | 2022-06-14 | 一种基于DQN算法的智能电网DoS攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672597.9A CN115134130B (zh) | 2022-06-14 | 2022-06-14 | 一种基于DQN算法的智能电网DoS攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115134130A CN115134130A (zh) | 2022-09-30 |
CN115134130B true CN115134130B (zh) | 2023-04-18 |
Family
ID=83377861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210672597.9A Active CN115134130B (zh) | 2022-06-14 | 2022-06-14 | 一种基于DQN算法的智能电网DoS攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115134130B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268730A (zh) * | 2021-05-01 | 2021-08-17 | 群智未来人工智能科技研究院(无锡)有限公司 | 一种基于强化学习的智能电网虚假数据注入攻击检测方法 |
CN113589085A (zh) * | 2021-08-04 | 2021-11-02 | 南京信息工程大学 | 一种发电机调频系统虚假数据注入攻击的检测缓解方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11468164B2 (en) * | 2019-12-11 | 2022-10-11 | General Electric Company | Dynamic, resilient virtual sensing system and shadow controller for cyber-attack neutralization |
CN112491818B (zh) * | 2020-11-12 | 2023-02-03 | 南京邮电大学 | 基于多智能体深度强化学习的电网输电线路防御方法 |
CN112636357B (zh) * | 2020-12-10 | 2022-11-04 | 南京理工大学 | 基于强化学习的电网脆弱性分析方法 |
CN113947016A (zh) * | 2021-09-28 | 2022-01-18 | 浙江大学 | 针对电网紧急控制系统中深度强化学习模型的脆弱性评估方法 |
CN114330113A (zh) * | 2021-12-17 | 2022-04-12 | 北京理工大学 | 基于深度强化学习的新能源电力系统弹性优化方法 |
-
2022
- 2022-06-14 CN CN202210672597.9A patent/CN115134130B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268730A (zh) * | 2021-05-01 | 2021-08-17 | 群智未来人工智能科技研究院(无锡)有限公司 | 一种基于强化学习的智能电网虚假数据注入攻击检测方法 |
CN113589085A (zh) * | 2021-08-04 | 2021-11-02 | 南京信息工程大学 | 一种发电机调频系统虚假数据注入攻击的检测缓解方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115134130A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108802722B (zh) | 一种基于虚拟谱的弱目标检测前跟踪方法 | |
CN106093724B (zh) | 一种基于混合粒子群的局部放电小波去噪方法 | |
CN108038419B (zh) | 基于Wi-Fi的室内人员被动检测方法 | |
CN108881250B (zh) | 电力通信网络安全态势预测方法、装置、设备及存储介质 | |
CN107202989B (zh) | 一种适用于被动拖曳线列阵声呐的复杂弱目标检测和跟踪方法 | |
CN111580151B (zh) | 一种基于SSNet模型的地震事件到时识别方法 | |
CN110728177A (zh) | 基于双协方差随机子空间的类噪声数据低频振荡辨识方法 | |
CN110401978A (zh) | 基于神经网络和粒子滤波多源融合的室内定位方法 | |
Zhang et al. | Device-free wireless localization and activity recognition with deep learning | |
CN113341383A (zh) | 基于dqn算法的雷达抗干扰智能决策方法 | |
CN113268730A (zh) | 一种基于强化学习的智能电网虚假数据注入攻击检测方法 | |
CN115134130B (zh) | 一种基于DQN算法的智能电网DoS攻击检测方法 | |
CN116520281A (zh) | 一种基于ddpg的扩展目标跟踪优化方法和装置 | |
CN115359258A (zh) | 一种成分不确定度测量的弱小目标检测方法及系统 | |
CN107689015A (zh) | 一种改进的电力系统不良数据辨识方法 | |
CN112269367B (zh) | 基于eemd-组合神经网络空气处理系统的故障检测方法及系统 | |
CN111796253B (zh) | 基于稀疏信号处理的雷达目标恒虚警检测方法 | |
CN105866748A (zh) | 一种基于检测先验的固定窗长恒虚警检测方法 | |
CN117055000A (zh) | 基于信噪比加权融合的多通道雷达目标检测方法 | |
CN117451055A (zh) | 一种基于基追踪降噪的水下传感器定位方法和系统 | |
CN116437290A (zh) | 一种基于csi指纹定位的模型融合方法 | |
CN108834043B (zh) | 基于先验知识的压缩感知多目标无源定位方法 | |
CN115508790A (zh) | 基于回溯q学习的雷达抗干扰智能决策方法 | |
CN113179481B (zh) | 一种结合稠密连接网络的csi矫正定位方法 | |
CN112666528B (zh) | 一种基于卷积神经网络的多站雷达系统干扰鉴别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |