吳水明,吉志遠,王震宇,景棟盛
(國網江蘇省電力有限公司蘇州供電分公司,江蘇 蘇州 215004)
近年來,隨著電力系統(tǒng)的規(guī)模逐漸擴大,電網也面臨著越來越嚴峻的安全問題。其中,針對電力系統(tǒng)的網絡攻擊種類繁多、內容復雜。這對保障電力系統(tǒng)的安全提出了更高的要求。網絡入侵檢測技術作為防火墻的一種補充,可以識別和處理計算機及網絡中的惡意行為,起到保護網絡安全的目的[1]。
早期的網絡入侵檢測技術主要是利用審計數據來識別入侵行為[2]。之后,更多的研究重點轉向網絡入侵檢測技術。有研究人員對入侵檢測中的異常行為進行了定義,并給出一個實時的入侵檢測系統(tǒng)模型[3];也有不少將網絡流量作為審計數據的工作[4],如提出了一種可以實時監(jiān)控的網絡安全監(jiān)視器等。
網絡入侵檢測技術成為一個新的研究方向和研究熱點并取得了一定的發(fā)展。Wu等人[5]將聚類分析方法應用到網絡入侵檢測技術中,充分利用了聚類分析方法的數據分析能力;張?zhí)K寧等人[6]將Krylov子空間方法應用到網絡入侵檢測技術中,以檢測具有破壞性的訪問。隨著深度學習的發(fā)展和廣泛應用,很多工作將深度神經網絡運用到網絡入侵檢測任務中,進一步提高了入侵檢測的效率,改善了系統(tǒng)的安全性。例如,張學鋒等人[7]將機器學習方法中的神經網絡技術應用于網絡入侵檢測中,獲得較好的效果;雷宇飛等人[8]提出采用基于粒子群優(yōu)化的BP神經網絡解決網絡入侵檢測問題,加快BP神經網絡的收斂速度,提升了系統(tǒng)的穩(wěn)定性。陳雪嬌等人[9]提出了基于卷積神經網絡的加密流量識別方法,將加密流量的識別準確率提高到98%以上。
強化學習(Reinforcement Learning, RL)是以馬爾可夫決策過程(Markov Decision Process, MDP)為數學框架的一種經典的機器學習方法,并在人工智能領域中得到了廣泛的應用。將深度學習與強化學習中的Q-Learning方法相結合,組成的深度強化學習方法,可以解決傳統(tǒng)強化學習方法難以處理的問題,如大規(guī)??臻g問題等[10]。深度強化學習方法的智能體通過與環(huán)境不斷地進行交互,以試錯學習方式進行訓練,從而尋求解決問題的最優(yōu)策略。深度強化學習方法處理問題時,無需提前采用人工標記的方法給樣本添加標簽,減少了處理問題的人工成本。深度強化學習在各領域均有應用,在網絡安全領域也有不少積累,如王竹曉等人[11]將深度Q網絡算法應用于電力工控網絡中,解決網絡入侵問題,提高了電力網絡的安全性。
近年來網絡入侵檢測技術得到了快速的發(fā)展。然而,隨著網絡規(guī)模的擴展,數據量急劇增加,數據處理難度越來越高,處理成本日益上升;另一方面,人們對網絡安全的要求也不斷提高。這2個方面的因素導致檢測效果難以盡如人意。盡管深度強化學習可以用于處理大規(guī)模數據,降低數據處理的人工費用等成本,但是如何選擇和應用深度強化學習算法,根據實際問題進行有效的建模,進而設計一種合適的網絡入侵檢測算法,仍然需要大量的研究和實驗。本文針對電力信息網絡的特點,設計一種基于Dueling-DDQN的網絡入侵檢測算法,智能體通過交互學習得到合適的獎賞值,以主動學習入侵行為與正常的網絡訪問行為的方式識別新的網絡入侵行為,以較低的成本提高檢測的效率,提升網絡的安全性。
人工神經網絡(Artificial Neural Networks, ANNs)作為機器學習的一種重要方法可以通過學習大量的輸入數據來近似某種函數以完成特定任務。人工神經網絡由多個人工神經元組成,各神經元接收來自其他神經元的輸入,進行運算后將結果傳遞給其他神經元。某些神經元可能在將輸出傳遞給下一個變量之前,將特定的激活函數(如Softmax)應用于輸出。人工神經網絡的運算流程如圖1所示。
圖1 人工神經網絡的運算流程示意圖
人工神經網絡被提出來后經過一系列的研究,其數學模型逐漸形成。陳有根等人[12]提出了由人工神經元組成的人工神經網絡,用以解決諧波多路同步快速檢測裝置問題。感知機和感知機具體的學習算法的提出,掀起了人工神經網絡的研究熱潮。馬春燕等人[13]利用感知機,結合敏感變量,提出了測試預言生成方法。隨著計算機硬件和人工神經網絡的研究路線等困難被克服,更多的研究人員將研究方向轉向了人工神經網絡這一領域。
在人工神經網絡的基礎上,研究人員提出了深度學習這一概念,深度學習方法求解的基礎是反向傳播(Back Propagation, BP)算法。LeCun等人[14]提出的深度信念網絡開辟了深度學習的研究。目前,深度學習應用廣泛的方法主要有卷積神經網絡(Convolutional Neural Networks, CNN)、循環(huán)神經網絡(Recurrent Neural Network, RNN)和深度置信網絡(Deep Belief Networks, DBN)等。深度學習已經被廣泛應用于推薦系統(tǒng)、語音識別、數據挖掘、圖像處理和語義分析等領域[15-19]。
深度學習和強化學習作為解決人工智能問題的2種機器學習方法通過相互結合組成了深度強化學習方法。深度強化學習方法能夠處理大規(guī)模甚至是連續(xù)空間下的序貫決策問題。Mnih等人[10]提出了深度強化學習的第一個算法深度Q網絡(Deep Q-Network, DQN)。自此,深度強化學習這一機器學習方法成為人工智能領域的研究熱點且發(fā)展迅速。深度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表示智能體所處的當前狀態(tài),a表示智能體在當前狀態(tài)s時執(zhí)行的動作,Y被用來表示值函數的近似優(yōu)化目標,求解公式如公式(2)所示。
…Y=r+γmaxa′Q(s′,a′|θ′)
(2)
公式(2)中,r是獎賞,s′指智能體進入的下一狀態(tài),a′指智能體在狀態(tài)s′時執(zhí)行的動作,參數γ是衰減因子。為求解深度Q網絡,可以通過將公式(1)對參數θ求導后用隨機梯度下降法更新參數θ的方式最小化損失函數。求導公式如公式(3)所示。
?θL(θ)=(r+γmaxa′Q(s′,a′|θ′)-Q(s,a|θ))?θQ(s,a|θ)
(3)
深度Q網絡算法可以解決很多傳統(tǒng)強化學習算法無法解決的大規(guī)模任務,使得更多的研究人員將研究方向轉向深度強化學習領域。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)。
網絡入侵檢測是對防火墻和病毒查殺技術的補充。網絡入侵檢測技術通過分析網絡數據和檢測計算機系統(tǒng)來識別入侵行為,并采取一定的措施來遏制入侵行為,保證系統(tǒng)的安全[23-24]。目前,入侵行為主要包括惡意取得系統(tǒng)控制權和利用系統(tǒng)漏洞對網絡產生危害等行為。
根據分類方法的不同,可以對入侵檢測技術有不同的分類。根據不同的檢測方法可以將檢測技術分為誤用檢測技術和異常檢測技術2種方法。誤用檢測技術是指當識別到來自網絡的訪問行為與以往的異常行為具有較高的相似性時將此訪問行為識別為異常行為,而異常檢測是指當識別到來自網絡的訪問行為與以往的正常訪問行為有較大的差別時網絡行為會被認為是入侵行為。根據審計數據來自的網絡不同,可以把入侵檢測技術分為基于主機的檢測技術和基于網絡的檢測技術。基于主機的入侵檢測技術審計的網絡訪問數據來源于正在運行的主機,檢測的目的也是保護正在運行的主機;而基于網絡的入侵檢測技術審計的數據來源于網絡傳輸,其目標也是保護網絡運行的環(huán)境。網絡入侵檢測技術的另一種分類方法是根據檢測時間將檢測技術分為實時檢測和事后檢測2種類型。
隨著人工智能技術和神經網絡的快速發(fā)展,深度學習、強化學習以及深度強化學習等機器學習方法被應用于網絡入侵檢測技術中并取得了更好的實驗效果。然而,深度強化學習方法繁多,如何對網絡入侵檢測問題進行建模,設計適用的方法,以能夠更好地處理入侵檢測問題,還需要開展更多的研究與探索。
隨著電網規(guī)模的不斷擴大,對網絡的攻擊種類越來越多,形式更加復雜,數據量劇增,這對入侵數據的處理提出了更高的要求,也增加了入侵數據處理的成本。針對此問題,本文提出一種基于Dueling-DDQN算法的網絡入侵檢測技術,該方法中智能體通過主動學習入侵行為與正常的網絡訪問行為的區(qū)別來識別新的網絡入侵行為。本文提出的網絡入侵檢測技術可以降低數據處理的成本,提高入侵檢測的效率,提高系統(tǒng)的安全性。
Yang等人[22]提出的Dueling-DDQN算法是一種無模型的深度強化學習算法,其采用雙網絡結構進行訓練,用評估網絡Q1選擇智能體要執(zhí)行的最優(yōu)動作,求解方式如公式(4)所示;目標網絡Q2用來評估網絡Q1選擇的動作,避免高估問題,評估過程如公式(5)所示。
(4)
y=r+γQ2(s′,amax|θ′)
(5)
Dueling-DDQN算法的狀態(tài)動作值函數由只與狀態(tài)有關的狀態(tài)值函數和同時與狀態(tài)、動作有關的優(yōu)勢函數組成,具體組成方式如公式(6)所示。
Qπ(s,a|θ,α,β)=Vπ(s|θ,α)+Aπ(s,a|θ,β)
(6)
公式(6)中,Vπ(s|θ,α)是只與狀態(tài)有關的狀態(tài)值函數,與狀態(tài)和動作都有關的優(yōu)勢函數表示為Aπ(s,a|θ,β),其中,參數θ是二者的共同參數,而參數α是狀態(tài)值函數獨有的參數,參數β是優(yōu)勢函數獨有的參數。
基于Dueling-DDQN的網絡入侵檢測算法如算法1所示。
算法1 基于Dueling-DDQN的網絡入侵檢測算法(Network Intrusion Detection Algorithm Based on Dueling-DDQN)
輸入:狀態(tài)特征維度n,動作集A,步長α,衰減因子γ,探索率ε,網絡結構,批量梯度下降的樣本數m和目標網絡參數的更新頻率C
輸出:訓練完畢之后所有的網絡參數
1:初始化網絡的所有參數以及所有基于參數的狀態(tài)動作值
2:清空經驗回放集合D
3:Repeat:
4:初始化s為當前狀態(tài)序列的第一個狀態(tài)
5:Repeat(非終止狀態(tài)):
7:在狀態(tài)s執(zhí)行當前動作a,得到新狀態(tài)s′,及其對應的獎勵r和是否是終止狀態(tài)is_end
8:將五元組{s,a,r,s′,is_end}存入經驗回放集合D
9:s=s′
10:If到達了終止狀態(tài):
11:s=s′
12:yj=rj
13:Else
17:C步后更新目標網絡參數θ′=θ
18:IfQ1收斂:
19:Q2=Q1
20:Qoptimal=Q2
21:結束循環(huán)
22:Return所有網絡參數
本文實驗部分使用的數據來自NLS-KDD數據集。NLS-KDD數據集與KDD99數據集有所不同的是NLS-KDD數據集通過改進解決了KDD99數據集中存在的一些問題。NLS-KDD數據集中不存在冗余的數據記錄,使檢測技術訓練時不會偏向于出現(xiàn)頻率較高的冗余數據。相較于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數據集中的每條連接數據同時包含離散型和連續(xù)型的特征,本文對NLS-KDD數據的預處理方式是采用獨熱編碼方法將離散型特征屬性拓展到歐氏空間上。將數據集中的字符型特征屬性轉化為數值型。為了使Dueling-DDQN算法能夠更好地應用于網絡入侵檢測中,需要將數據集中的每一條記錄轉化為圖像的形式。在處理時,每條記錄中值為“0”的屬性或者通過去掉,或者通過填充在數據中都為“0”的某一維將數據轉化為圖像。處理后,NLS-KDD數據集中每條記錄會被轉化為11×11的圖像矩陣。
本文提出了基于深度強化學習方法Dueling-DDQN的網絡入侵檢測算法,并采用NSL-KDD數據集進行實驗。在基于Dueling-DDQN的網絡入侵檢測算法中,狀態(tài)是指在數據集中的一條數據記錄。智能體可以執(zhí)行的動作一共有2個,即正確分類和錯誤分類,各個動作的意義以及智能體獲得的獎賞值如表1所示。
表1 各個動作及獎賞值
對比實驗采用基于Q-Learning的檢測算法[25]和基于DQN的檢測算法[10]與基于Dueling-DDQN的檢測算法做對比,3種實驗算法的具體構造和優(yōu)勢與不足的對比情況如表2所示。
表2 實驗算法優(yōu)勢與不足對比
不同的強化學習算法和深度強化學習算法對問題的處理能力不同,應用深度強化學習算法解決網絡入侵檢測問題需要更多的實驗對比與研究。
對比實驗一共運行了500輪。訓練過程中,智能體通過自主學習,不斷試錯,根據反饋的獎賞值逐漸提高自己識別入侵行為的能力。對比實驗效果如圖3所示。
圖3 各算法在訓練集上的學習效果
從圖3可以看出,基于Q-Learning的檢測算法的實驗效果最不好,學習效率低且收斂速度慢。這是因為Q-Learning算法作為一種傳統(tǒng)的強化學習算法沒有結合神經網絡,主要依賴狀態(tài)動作值表存儲智能體訓練后的結果?;贒QN的檢測算法相較于基于Q-Learning的檢測算法的實驗效果有明顯的提升,且收斂速度快。但是,實驗效果仍然不如基于Dueling-DDQN的檢測算法?;贒ueling-DDQN的檢測算法相較于其他的入侵檢測算法實驗效果提升較大,訓練過程收斂速度較快,能夠更準確地避免入侵行為的攻擊,更好地提升系統(tǒng)的安全性。綜上,本文提出的基于Dueling-DDQN的網絡入侵檢測算法的實驗效果最好,具有良好的性能。
目前,電力信息網絡構造復雜,規(guī)模不斷擴大,各種網絡攻擊也層出不窮,這對保障電力信息網絡的安全提出了更高的要求。本文提出了一種訓練速度快、使用成本低、訓練效率高的基于Dueling-DDQN的網絡入侵檢測算法,該算法通過智能體試錯的自主學習獲得獎賞值來訓練網絡,進而使智能體學會對訪問行為的正確分類。該算法可以降低對入侵檢測數據的處理成本。本文的對比實驗使用了NSL-KDD數據集,實驗結果表明該入侵檢測算法具有良好的性能。