基于Dueling-DDQN的电力信息网络入侵检测算法
2021-12-18吴水明吉志远王震宇景栋盛
吴水明,吉志远,王震宇,景栋盛
(国网江苏省电力有限公司苏州供电分公司,江苏 苏州 215004)
0 引 言
近年来,随着电力系统的规模逐渐扩大,电网也面临着越来越严峻的安全问题。其中,针对电力系统的网络攻击种类繁多、内容复杂。这对保障电力系统的安全提出了更高的要求。网络入侵检测技术作为防火墙的一种补充,可以识别和处理计算机及网络中的恶意行为,起到保护网络安全的目的[1]。
早期的网络入侵检测技术主要是利用审计数据来识别入侵行为[2]。之后,更多的研究重点转向网络入侵检测技术。有研究人员对入侵检测中的异常行为进行了定义,并给出一个实时的入侵检测系统模型[3];也有不少将网络流量作为审计数据的工作[4],如提出了一种可以实时监控的网络安全监视器等。
网络入侵检测技术成为一个新的研究方向和研究热点并取得了一定的发展。Wu等人[5]将聚类分析方法应用到网络入侵检测技术中,充分利用了聚类分析方法的数据分析能力;张苏宁等人[6]将Krylov子空间方法应用到网络入侵检测技术中,以检测具有破坏性的访问。随着深度学习的发展和广泛应用,很多工作将深度神经网络运用到网络入侵检测任务中,进一步提高了入侵检测的效率,改善了系统的安全性。例如,张学锋等人[7]将机器学习方法中的神经网络技术应用于网络入侵检测中,获得较好的效果;雷宇飞等人[8]提出采用基于粒子群优化的BP神经网络解决网络入侵检测问题,加快BP神经网络的收敛速度,提升了系统的稳定性。陈雪娇等人[9]提出了基于卷积神经网络的加密流量识别方法,将加密流量的识别准确率提高到98%以上。
强化学习(Reinforcement Learning, RL)是以马尔可夫决策过程(Markov Decision Process, MDP)为数学框架的一种经典的机器学习方法,并在人工智能领域中得到了广泛的应用。将深度学习与强化学习中的Q-Learning方法相结合,组成的深度强化学习方法,可以解决传统强化学习方法难以处理的问题,如大规模空间问题等[10]。深度强化学习方法的智能体通过与环境不断地进行交互,以试错学习方式进行训练,从而寻求解决问题的最优策略。深度强化学习方法处理问题时,无需提前采用人工标记的方法给样本添加标签,减少了处理问题的人工成本。深度强化学习在各领域均有应用,在网络安全领域也有不少积累,如王竹晓等人[11]将深度Q网络算法应用于电力工控网络中,解决网络入侵问题,提高了电力网络的安全性。
近年来网络入侵检测技术得到了快速的发展。然而,随着网络规模的扩展,数据量急剧增加,数据处理难度越来越高,处理成本日益上升;另一方面,人们对网络安全的要求也不断提高。这2个方面的因素导致检测效果难以尽如人意。尽管深度强化学习可以用于处理大规模数据,降低数据处理的人工费用等成本,但是如何选择和应用深度强化学习算法,根据实际问题进行有效的建模,进而设计一种合适的网络入侵检测算法,仍然需要大量的研究和实验。本文针对电力信息网络的特点,设计一种基于Dueling-DDQN的网络入侵检测算法,智能体通过交互学习得到合适的奖赏值,以主动学习入侵行为与正常的网络访问行为的方式识别新的网络入侵行为,以较低的成本提高检测的效率,提升网络的安全性。
1 相关工作
1.1 人工神经网络
人工神经网络(Artificial Neural Networks, ANNs)作为机器学习的一种重要方法可以通过学习大量的输入数据来近似某种函数以完成特定任务。人工神经网络由多个人工神经元组成,各神经元接收来自其他神经元的输入,进行运算后将结果传递给其他神经元。某些神经元可能在将输出传递给下一个变量之前,将特定的激活函数(如Softmax)应用于输出。人工神经网络的运算流程如图1所示。
图1 人工神经网络的运算流程示意图
人工神经网络被提出来后经过一系列的研究,其数学模型逐渐形成。陈有根等人[12]提出了由人工神经元组成的人工神经网络,用以解决谐波多路同步快速检测装置问题。感知机和感知机具体的学习算法的提出,掀起了人工神经网络的研究热潮。马春燕等人[13]利用感知机,结合敏感变量,提出了测试预言生成方法。随着计算机硬件和人工神经网络的研究路线等困难被克服,更多的研究人员将研究方向转向了人工神经网络这一领域。
在人工神经网络的基础上,研究人员提出了深度学习这一概念,深度学习方法求解的基础是反向传播(Back Propagation, BP)算法。LeCun等人[14]提出的深度信念网络开辟了深度学习的研究。目前,深度学习应用广泛的方法主要有卷积神经网络(Convolutional Neural Networks, CNN)、循环神经网络(Recurrent Neural Network, RNN)和深度置信网络(Deep Belief Networks, DBN)等。深度学习已经被广泛应用于推荐系统、语音识别、数据挖掘、图像处理和语义分析等领域[15-19]。
1.2 深度强化学习
深度学习和强化学习作为解决人工智能问题的2种机器学习方法通过相互结合组成了深度强化学习方法。深度强化学习方法能够处理大规模甚至是连续空间下的序贯决策问题。Mnih等人[10]提出了深度强化学习的第一个算法深度Q网络(Deep Q-Network, DQN)。自此,深度强化学习这一机器学习方法成为人工智能领域的研究热点且发展迅速。深度Q网络的结构示意图如图2所示。
图2 深度Q网络结构示意图
深度Q网络采用2个Q网络对智能体进行训练学习。其中,当前值网络的输出由Q(s,a|θ)进行表示,参数θ的更新方式是实时的;而目标值网络的输出由Q(s,a|θ′)进行表示,参数θ′是在L步后复制θ得到的。深度Q学习算法通过不断缩小损失函数进行更新,损失函数由目标值网络的值函数减去当前值网络的值函数进行表示,损失函数的具体表示形式为:
L(θ)=E[(Y-Q(s,a|θ))2]
(1)
公式(1)中,s表示智能体所处的当前状态,a表示智能体在当前状态s时执行的动作,Y被用来表示值函数的近似优化目标,求解公式如公式(2)所示。
…Y=r+γmaxa′Q(s′,a′|θ′)
(2)
公式(2)中,r是奖赏,s′指智能体进入的下一状态,a′指智能体在状态s′时执行的动作,参数γ是衰减因子。为求解深度Q网络,可以通过将公式(1)对参数θ求导后用随机梯度下降法更新参数θ的方式最小化损失函数。求导公式如公式(3)所示。
∇θL(θ)=(r+γmaxa′Q(s′,a′|θ′)-Q(s,a|θ))∇θQ(s,a|θ)
(3)
深度Q网络算法可以解决很多传统强化学习算法无法解决的大规模任务,使得更多的研究人员将研究方向转向深度强化学习领域。Van Hasselt等人[20]在深度Q网络的基础上进一步提出了深度双Q网络算法(Double Deep Q-Network, DDQN);Wang等人[21]通过将价值函数分为2个部分之和,从而提出了竞争深度Q网络算法(Dueling Deep Q-Network, DuDQN);Yang等人[22]在DDQN和DuDQN的基础上提出了竞争深度双Q网络算法(Dueling-DDQN,3-DQN)。
1.3 入侵检测技术
网络入侵检测是对防火墙和病毒查杀技术的补充。网络入侵检测技术通过分析网络数据和检测计算机系统来识别入侵行为,并采取一定的措施来遏制入侵行为,保证系统的安全[23-24]。目前,入侵行为主要包括恶意取得系统控制权和利用系统漏洞对网络产生危害等行为。
根据分类方法的不同,可以对入侵检测技术有不同的分类。根据不同的检测方法可以将检测技术分为误用检测技术和异常检测技术2种方法。误用检测技术是指当识别到来自网络的访问行为与以往的异常行为具有较高的相似性时将此访问行为识别为异常行为,而异常检测是指当识别到来自网络的访问行为与以往的正常访问行为有较大的差别时网络行为会被认为是入侵行为。根据审计数据来自的网络不同,可以把入侵检测技术分为基于主机的检测技术和基于网络的检测技术。基于主机的入侵检测技术审计的网络访问数据来源于正在运行的主机,检测的目的也是保护正在运行的主机;而基于网络的入侵检测技术审计的数据来源于网络传输,其目标也是保护网络运行的环境。网络入侵检测技术的另一种分类方法是根据检测时间将检测技术分为实时检测和事后检测2种类型。
随着人工智能技术和神经网络的快速发展,深度学习、强化学习以及深度强化学习等机器学习方法被应用于网络入侵检测技术中并取得了更好的实验效果。然而,深度强化学习方法繁多,如何对网络入侵检测问题进行建模,设计适用的方法,以能够更好地处理入侵检测问题,还需要开展更多的研究与探索。
2 检测算法
随着电网规模的不断扩大,对网络的攻击种类越来越多,形式更加复杂,数据量剧增,这对入侵数据的处理提出了更高的要求,也增加了入侵数据处理的成本。针对此问题,本文提出一种基于Dueling-DDQN算法的网络入侵检测技术,该方法中智能体通过主动学习入侵行为与正常的网络访问行为的区别来识别新的网络入侵行为。本文提出的网络入侵检测技术可以降低数据处理的成本,提高入侵检测的效率,提高系统的安全性。
2.1 算法设计
Yang等人[22]提出的Dueling-DDQN算法是一种无模型的深度强化学习算法,其采用双网络结构进行训练,用评估网络Q1选择智能体要执行的最优动作,求解方式如公式(4)所示;目标网络Q2用来评估网络Q1选择的动作,避免高估问题,评估过程如公式(5)所示。
(4)
y=r+γQ2(s′,amax|θ′)
(5)
Dueling-DDQN算法的状态动作值函数由只与状态有关的状态值函数和同时与状态、动作有关的优势函数组成,具体组成方式如公式(6)所示。
Qπ(s,a|θ,α,β)=Vπ(s|θ,α)+Aπ(s,a|θ,β)
(6)
公式(6)中,Vπ(s|θ,α)是只与状态有关的状态值函数,与状态和动作都有关的优势函数表示为Aπ(s,a|θ,β),其中,参数θ是二者的共同参数,而参数α是状态值函数独有的参数,参数β是优势函数独有的参数。
2.2 算法描述
基于Dueling-DDQN的网络入侵检测算法如算法1所示。
算法1 基于Dueling-DDQN的网络入侵检测算法(Network Intrusion Detection Algorithm Based on Dueling-DDQN)
输入:状态特征维度n,动作集A,步长α,衰减因子γ,探索率ε,网络结构,批量梯度下降的样本数m和目标网络参数的更新频率C
输出:训练完毕之后所有的网络参数
1:初始化网络的所有参数以及所有基于参数的状态动作值
2:清空经验回放集合D
3:Repeat:
4:初始化s为当前状态序列的第一个状态
5:Repeat(非终止状态):
7:在状态s执行当前动作a,得到新状态s′,及其对应的奖励r和是否是终止状态is_end
8:将五元组{s,a,r,s′,is_end}存入经验回放集合D
9:s=s′
10:If到达了终止状态:
11:s=s′
12:yj=rj
13:Else
17:C步后更新目标网络参数θ′=θ
18:IfQ1收敛:
19:Q2=Q1
20:Qoptimal=Q2
21:结束循环
22:Return所有网络参数
3 实验及分析
3.1 数据描述与处理
本文实验部分使用的数据来自NLS-KDD数据集。NLS-KDD数据集与KDD99数据集有所不同的是NLS-KDD数据集通过改进解决了KDD99数据集中存在的一些问题。NLS-KDD数据集中不存在冗余的数据记录,使检测技术训练时不会偏向于出现频率较高的冗余数据。相较于KDD99数据集,NLS-KDD数据集中没有相同的记录,这就提高了检测率的准确性。同时,NLS-KDD数据集中合理设置了每个级别的数据集中数据的数量,这使不同的入侵检测技术的评估是有效的,也是能够比较的。
NLS-KDD数据集中的数据类型可以分为5类:正常、r2l(远程黑客对本地的攻击)、u2r(黑客以普通用户的身份对管理员的攻击)、DoS(拒绝服务攻击)和probe(黑客通过扫描漏洞进行探测攻击)。每个连接数据都由41个属性特征和1个类标志符组成。选取数据集中的一条样本,按如下方式所示:
0,tcp,http,sf,232,8153,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,5,5,0.20,0.20,0.00,0.00,1.00,0.00,0.00,30,255,1.00,0.00,0.03,0.04,0.03,0.01,0.00,0.01,normal
NLS-KDD数据集中的每条连接数据同时包含离散型和连续型的特征,本文对NLS-KDD数据的预处理方式是采用独热编码方法将离散型特征属性拓展到欧氏空间上。将数据集中的字符型特征属性转化为数值型。为了使Dueling-DDQN算法能够更好地应用于网络入侵检测中,需要将数据集中的每一条记录转化为图像的形式。在处理时,每条记录中值为“0”的属性或者通过去掉,或者通过填充在数据中都为“0”的某一维将数据转化为图像。处理后,NLS-KDD数据集中每条记录会被转化为11×11的图像矩阵。
3.2 实验设定
本文提出了基于深度强化学习方法Dueling-DDQN的网络入侵检测算法,并采用NSL-KDD数据集进行实验。在基于Dueling-DDQN的网络入侵检测算法中,状态是指在数据集中的一条数据记录。智能体可以执行的动作一共有2个,即正确分类和错误分类,各个动作的意义以及智能体获得的奖赏值如表1所示。
表1 各个动作及奖赏值
3.3 实验结果与分析
对比实验采用基于Q-Learning的检测算法[25]和基于DQN的检测算法[10]与基于Dueling-DDQN的检测算法做对比,3种实验算法的具体构造和优势与不足的对比情况如表2所示。
表2 实验算法优势与不足对比
不同的强化学习算法和深度强化学习算法对问题的处理能力不同,应用深度强化学习算法解决网络入侵检测问题需要更多的实验对比与研究。
对比实验一共运行了500轮。训练过程中,智能体通过自主学习,不断试错,根据反馈的奖赏值逐渐提高自己识别入侵行为的能力。对比实验效果如图3所示。
图3 各算法在训练集上的学习效果
从图3可以看出,基于Q-Learning的检测算法的实验效果最不好,学习效率低且收敛速度慢。这是因为Q-Learning算法作为一种传统的强化学习算法没有结合神经网络,主要依赖状态动作值表存储智能体训练后的结果。基于DQN的检测算法相较于基于Q-Learning的检测算法的实验效果有明显的提升,且收敛速度快。但是,实验效果仍然不如基于Dueling-DDQN的检测算法。基于Dueling-DDQN的检测算法相较于其他的入侵检测算法实验效果提升较大,训练过程收敛速度较快,能够更准确地避免入侵行为的攻击,更好地提升系统的安全性。综上,本文提出的基于Dueling-DDQN的网络入侵检测算法的实验效果最好,具有良好的性能。
4 结束语
目前,电力信息网络构造复杂,规模不断扩大,各种网络攻击也层出不穷,这对保障电力信息网络的安全提出了更高的要求。本文提出了一种训练速度快、使用成本低、训练效率高的基于Dueling-DDQN的网络入侵检测算法,该算法通过智能体试错的自主学习获得奖赏值来训练网络,进而使智能体学会对访问行为的正确分类。该算法可以降低对入侵检测数据的处理成本。本文的对比实验使用了NSL-KDD数据集,实验结果表明该入侵检测算法具有良好的性能。