






摘 要:為有效提高電網(wǎng)軟件惡意攻擊的檢測效率,使用自動編碼器進行異常惡意攻擊檢測的無監(jiān)督深度學習方法,同時采用低采樣和高采樣的混合采樣策略來平衡數(shù)據(jù)集,并對深度學習算法的檢測性能及數(shù)據(jù)丟包率進行分析。實驗結果表明,基于深度學習算法在檢測電網(wǎng)運營平臺惡意攻擊時,準確率高達98.84%,真正例率和耗時均比較低(2.1%、11.28 ms),且深度學習算法的召回率高達99.2%;進一步表明基于深度學習所建立的自動編碼器可以有效檢測到電網(wǎng)運營平臺惡意攻擊,且檢測綜合性能優(yōu)于支持向量機等其他機器學習算法。丟包率隨著樣本數(shù)的增加而降低,當樣本數(shù)增加到40 000個時,丟包率最小約為3%。
關鍵詞:深度學習;自動編碼器;電網(wǎng)軟件運營平臺;惡意攻擊
中圖分類號:TP274;TM769"""""""""""""""""""""" 文獻標識碼:A""""""""""""""""""""" 文章編號:1001-5922(2024)07-0140-04
Design and implementation of malicious attack detection
system based on deep learning algorithm
LI Qiang1, ZHANG Xingfu2, GUI Sheng2, HU Bo2
(1. State Grid Information Communications Industry Group Co.,Ltd.,Beijing 102200,China;
2. Beijing CLP Puhua Information Technology Co.,Ltd.,Beijing 100089,China)
Abstract: In order to effectively improve the detection efficiency of malicious attacks on power grid software, an unsupervised deep learning method for abnormal malicious attack detection using autoencoder was used, and a mixed sampling strategy of low sampling and high sampling was used to balance the data set, and the detection performance and data packet loss rate of the deep learning algorithm were analyzed. The experimental results showed that when detecting malicious attacks on power grid operation platforms based on deep learning algorithms, the accuracy rate was as high as 98.84%, the true case rate and time consumption were relatively low (2.1%, 11.28 ms), and the recall rate of deep learning algorithms was as high as 99.2%. This further indicates that the automatic encoder established based on deep learning can effectively detect malicious attacks on power grid operation platforms, and the overall detection performance is superior to other machine learning algorithms such as support vector machines. The packet loss rate decreased as the number of samples increases. When the sample size increased to 40 000, the minimum packet loss rate was about 3%.
Key words: deep learning;automatic encoder;power grid software operation platform;malicious attacks
由于電網(wǎng)軟件運營平臺使用用戶數(shù)量的快速增長和軟件業(yè)務的不斷發(fā)展,電網(wǎng)軟件運營平臺的安全問題越來越受到全社會的關注。惡意攻擊的多樣性和隱蔽性不斷增強,且惡意攻擊檢測數(shù)據(jù)具有數(shù)量大、碎片化等特點[1],使得惡意攻擊檢測變得越來越困難。近年來,許多研究人員利用機器學習的各種方法對惡意攻擊檢測進行了研究,如提出基于SwiftIDS的惡意攻擊檢測系統(tǒng),該系統(tǒng)既能及時分析高速網(wǎng)絡中的海量流量數(shù)據(jù),又具有較好的檢測性能[2]。研究了一種基于隨機森林算法的組合分類器模型,用于系統(tǒng)惡意攻擊檢測[3]。提出了邏輯回歸算法的入侵檢測方法,該方法利用邏輯回歸算法技術對惡意攻擊流量的語義進行重編碼,增加了流量的區(qū)分能力,增強了算法的泛化能力,從而有效提高了算法識別惡意攻擊的準確性和魯棒性[4]。而上述算法是有監(jiān)督的機器學習方法,需要標記數(shù)據(jù)來訓練模型。標記數(shù)據(jù)的數(shù)量和質量決定了學習算法的準確性[5]。惡意攻擊檢測是一項復雜的學習任務,采用有監(jiān)督的機器學習方法無法有效檢測到隱藏的惡意攻擊且檢測性能較差。需要采用無監(jiān)督的機器學習方法以檢測惡意攻擊。基于此,提出基于深度學習的惡意攻擊檢測系統(tǒng),并利用一維卷積的自動編碼器用于提高惡意攻擊的檢測性能,以保護軟件運營平臺正常運行。研究結果可為電網(wǎng)軟件運營平臺的惡意攻擊檢測提供參考依據(jù)。
1"" 基于深度學習算法的惡意攻擊檢測
1.1"" 惡意攻擊檢測系統(tǒng)建立
深度學習方法利用大量電網(wǎng)軟件運營平臺數(shù)據(jù)進行模型訓練。自動編碼器由2部分組成:編碼器和解碼器[8]。編碼器將輸入數(shù)據(jù)壓縮到維度小于輸入數(shù)據(jù)的潛在空間。解碼器從潛在空間中重建輸入數(shù)據(jù)的估計值。由于自動編碼器被訓練成一個身份識別系統(tǒng),因此維度較小的潛在空間必須捕捉電網(wǎng)軟件運營平臺輸入數(shù)據(jù)中最顯著的特征。由于潛在空間與訓練數(shù)據(jù)類型有關,偏離訓練數(shù)據(jù)集的輸入會導致較高的重構誤差,并被標記為異常數(shù)據(jù)。重構誤差是根據(jù)重構輸出與自動編碼器輸入數(shù)據(jù)之間的均方誤差(MSE)計算得出的。自動編碼器可使用不同類型的模型,如全連接網(wǎng)絡、遞歸神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡[9]。自動編碼器一般被認為是無監(jiān)督方法,因為雖然正常訓練數(shù)據(jù)的標簽是已知的,但在訓練過程中并沒有明確地將其納入,因此,自動編碼器的目標是建立一個正常數(shù)據(jù)模型,僅根據(jù)正常數(shù)據(jù)訓練的自動編碼器無法正確再現(xiàn)異常數(shù)據(jù)(即自動編碼)。由于自動編碼器本身并不明確預測正常或異常標簽[10],為此,自動編碼器一般被認為是無監(jiān)督的。
研究將基于一維卷積的自動編碼器用于電網(wǎng)軟件運營平臺的惡意攻擊檢測系統(tǒng)。編碼器和解碼器均使用一維卷積,包括在數(shù)據(jù)集上滑動濾波器內核和應用點積。卷積操作的輸出結果如式(1)所示。
[Y(i)=(X*F)(i)=m=0M-1FmXi+m]"""""""""""" (1)
式中:Y表示卷積操作的輸出;X表示一維數(shù)據(jù)輸入;F表示長度為M的卷積濾波器;*表示卷積算子;i表示輸入數(shù)據(jù)索引,卷積操作如圖1所示。
深度學習模型允許共享F中的參數(shù),減少了可訓練參數(shù)的總數(shù)[11],在模型訓練過程中節(jié)省了計算量,減少了內存需求,進而提高惡意攻擊檢測下的異常數(shù)據(jù)統(tǒng)計效率。
惡意攻擊檢測系統(tǒng)的編碼器將輸入數(shù)據(jù)嵌入一個低維的潛在空間,在這個空間中,相似的輸入數(shù)據(jù)相互嵌入,同時使用深度學習網(wǎng)絡的卷積操作層、非線性激活和最大池化[12]。常見非線性激活函數(shù)為整流線性單元(ReLU),定義如式(2)所示。且在所有卷積層中,使用的卷積濾波器大小為10,卷積步長為1,并使用 ReLU作為激活函數(shù)。
[σ(x)=max(x,0)]"""""""""""""""""""""""""" (2)
池化層的作用是通過降低電網(wǎng)軟件運營平臺輸入采樣來減少輸入維度。常見的方法包括平均池化層和最大池化層,在給定的步長上滑動一個小窗口,分別取窗口內的平均值和最大值,以生成縮小的數(shù)據(jù)集[13]。在自動編碼器的解碼器部分,潛空間中的數(shù)據(jù)被擴展回原始輸入維度。同時設定解碼器由卷積運算和一維上采樣層交錯組成。
1.2"" 自動編碼器架構的訓練和優(yōu)化
自動編碼器的訓練和測試共使用數(shù)據(jù)集為134 620個樣本。自動編碼器訓練的一個重要參數(shù)是輸入數(shù)據(jù)長度,即輸入自動編碼器的輸入樣本數(shù)。在本文中,設定自動編碼器的輸入為50 ms的滑動窗口,每個窗口由3個測量周期組成。因此,200 ms的模擬數(shù)據(jù)被分割成 50 ms數(shù)據(jù)的滑動窗口。當滑動窗口在整個模擬樣本上滑動時,自動編碼器可以得到訓練。而在將數(shù)據(jù)輸入自動編碼器之前,要先進行數(shù)據(jù)標準化[14]。考慮訓練數(shù)據(jù)集D包含測量點x1,x2,…,xN。在數(shù)據(jù)標準化過程中,每種測量類型的數(shù)據(jù)都被縮放為單位方差和零均值,如式 (3)~式(5) 所示,其中均值(μ)和標準偏差(σ)是在整個訓練數(shù)據(jù)集中計算得出。
[μ=i=1Nxin]"""""""""""""""""""""""""" (3)
[σ=i=1N(xi-μ)2n]"""""""""""""""""""" (4)
[xstand=x-μσ]""""""""""""""""""""""""""""" (5)
若出現(xiàn)惡意攻擊檢測系統(tǒng)無法有效識別電網(wǎng)軟件運營平臺中的異常數(shù)據(jù),則惡意攻擊檢測系統(tǒng)經(jīng)過進一步訓練,以減少損失函數(shù)來提高檢測效率,即輸入與自動編碼器重構輸出之間的均方誤差(MSE),如式(6)所示。
[MSE=L(f(x))-x22]"""""""""""""""""" (6)
式中:L為卷積步長。
2"" 結果與討論
2.1"" 實驗數(shù)據(jù)集設定
實驗硬件環(huán)境配備了英特爾酷睿i5-10300H 64位處理器、16 GB內存和 GTX1660ti顯卡。NSL-KDD數(shù)據(jù)集是惡意入侵檢測研究中常用的數(shù)據(jù)集。該數(shù)據(jù)集包含正常樣本和異常惡意攻擊樣本,并分為訓練子集和測試子集。訓練集包含112 077個樣本,測試集包含22 543個樣本。在NSL-KDD數(shù)據(jù)集的訓練集中,正常樣本和異常樣本的分布高度不平衡,只有一小部分樣本是異常的。為解決這一問題,采用了低采樣和高采樣的混合采樣策略來平衡數(shù)據(jù)集[15]。混合采樣后,數(shù)據(jù)集中正常樣本和異常樣本的比例平衡為 1∶1。混合采樣后正常樣本和異常樣本的分布如圖2所示。
2.2"" 惡意攻擊檢測性能分析
為進一步研究基于深度學習算法的惡意攻擊檢測性能,將所提出深度學習與支持向量機算法、隨機森林、邏輯回歸和樸素貝葉斯算法等多種機器學習方法進行比較[16?17],并計算運行時間、準確率、精確度、真正例率、召回率和耗時等性能,實驗結果如表1所示。
由表1可知,隨機森林算法和支持向量機算法的召回率和準確率較高;但耗時更長,最大耗時為215.6 ms。主要原因為隨機森林算法可以在確定惡意
攻擊類別時評估攻擊的重要性,從而平衡電網(wǎng)軟件運營平臺分類數(shù)據(jù)集的誤差。因此,其準確率和召回率相對較高,且由于需要對電網(wǎng)軟件運營平臺生成多棵決策樹進行評估,因此運行時間和計算資源也更多。而支持向量機算法采用二次編程求解支持向量,需要計算m階矩陣(m為樣本數(shù))[18]。當m較大時,該矩陣的存儲和計算將消耗大量內存和計算時間。當實際惡意攻擊檢測系統(tǒng)中產生多個高度復雜的信息交互數(shù)據(jù)時,這2種方法的資源消耗較大,且真正例率分別為5.5%、4.7%。邏輯回歸和樸素貝葉斯算法耗時較少,但準確率和精度低于隨機森林算法和支持向量機算法。且邏輯回歸算法的真正例率最高,較樸素貝葉斯算法增加43.9%,主要歸因于樸素貝葉斯算法是一個生成模型,可以根據(jù)先驗概率更好地擬合數(shù)據(jù),而邏輯回歸是一個決策模型,通過訓練數(shù)據(jù)直接預測輸出,不對聯(lián)合概率建模。同時可觀察到,所提出的深度學習算法,在檢測惡意攻擊時,準確率可以達到98.84%,較邏輯回歸算法等其他4種算法分別增加7.25%、41.49%、5.70%、6.11%,雖檢測精度較低(92.69%),但真正例率和耗時均比較低(2.1%、11.28 ms)。深度學習算法的召回率高達99.2%,進一步表明基于深度學習所建立的自動編碼器可以有效檢測到惡意攻擊,且檢測綜合性能優(yōu)于其他4種算法。
2.3"" 數(shù)據(jù)丟包率
為了驗證深度學習檢測惡意攻擊方法的有效性,對電網(wǎng)軟件運營平臺中的丟包率進行統(tǒng)計計算,丟包率越小,表明深度學習可檢測到惡意攻擊[19],并自動啟動電網(wǎng)軟件運營平臺防火墻進行掃描攔截。丟包率如圖3所示。
由圖3可知,丟包率隨著樣本數(shù)的增加而降低。當樣本數(shù)增加到40 000個時,丟包率約為3%。但隨著樣本數(shù)的不斷增加,丟包率也進一步增加。當樣本數(shù)為50 000個時,丟包率約為3.2%,主要由于在檢測惡意攻擊時,自動編碼器對數(shù)據(jù)集中的樣本分類錯誤,從而導致樣本數(shù)為50 000個時,丟包率進一步增加。同時可觀察到,樣本數(shù)較小時,最大丟包率為21%,主要原因為惡意攻擊會進一步破壞電網(wǎng)軟件運營平臺數(shù)據(jù)庫,造成數(shù)據(jù)丟包率增加,且由于樣本數(shù)較小,平臺防火墻無法有效識別惡意攻擊類別,導致惡意攻擊攔截失敗。當樣本數(shù)超過20 000個時,丟包率明顯下降,究其原因為惡意攻擊檢測系統(tǒng)的編碼器將輸入數(shù)據(jù)嵌入一個低維的潛在空間,在這個空間中,相似的輸入數(shù)據(jù)相互嵌入[20];當樣本數(shù)較多時,惡意攻擊檢測系統(tǒng)可以將相似輸入數(shù)據(jù)進行有效分類,從而提高檢測性能。因此,基于深度學習所建立的惡意攻擊檢測系統(tǒng)可以在一定程度上可以檢測到惡意攻擊,但需要適量的數(shù)據(jù)樣本才能降低數(shù)據(jù)丟包率。針對深度學習所建立的惡意攻擊檢測系統(tǒng),測試的樣本數(shù)量應為40 000個,才能使電網(wǎng)軟件運營平臺丟包率降到最低。
3"" 結語
(1)研究采用了低采樣和高采樣的混合采樣策略來平衡數(shù)據(jù)集。混合采樣后,數(shù)據(jù)集中正常樣本和異常樣本的比例平衡為 1∶1;
(2)所提出的深度學習算法,在檢測惡意攻擊時,準確率可以達到98.84%,較邏輯回歸算法等其他4種算法分別增加7.25%、41.49%、5.70%、6.11%。深度學習算法的召回率高達99.2%,進一步表明基于深度學習所建立的自動編碼器可以有效檢測到惡意攻擊;
(3)丟包率隨著樣本數(shù)的增加而降低。隨著樣本數(shù)的不斷增加,丟包率也進一步增加,當樣本數(shù)為50 000個時,丟包率約為3.2%。當樣本數(shù)超過20 000個時,丟包率明顯下降,測試的樣本數(shù)量應為40 000個,才能使電網(wǎng)軟件運營平臺丟包率降到最低。
【參考文獻】
[1]""" 武強,苗彥濤,余尚仁.基于智能分析的惡意軟件檢測研究進展和挑戰(zhàn)[J].通信技術,2022,55(9):1183?1195.
[2]""" 崔琳,楊黎斌,何清林,等.基于開源信息平臺的威脅情報挖掘綜述[J].信息安全學報,2022,7(1):1?26.
[3]""" 朱大立,金昊,吳荻,等.基于數(shù)據(jù)流深度學習算法的Android惡意應用檢測方法[J].信息安全學報,2019,4(2):53?68.
[4]""" 熊輝,呂智慧,張世永.基于OpenStack的自適應異常檢測模型的設計與實現(xiàn)[J].計算機應用與軟件,2015,32(9):292?298.
[5]""" 姚燁,朱怡安,錢亮,等.一種基于異質模型融合的Android終端惡意軟件檢測方法[J].計算機科學,2022,49(S1):508?515.
[6]""" 張皓.基于深度學習的惡意軟件動態(tài)檢測方法研究[J].電子技術與軟件工程,2022(3):43?46.
[7]""" 王聰,邱衛(wèi)東,唐鵬,等.基于CNN和LSTM混合的Android惡意應用檢測[J].通信技術,2018,51(9):2209?2214.
[8]""" 符士侃,夏元軼,杜鈺,等.基于概率主題模型的大數(shù)據(jù)平臺隱私泄露自動檢測方法[J].自動化與儀器儀表,2022(4):115?118.
[9]""nbsp; 李群,董佳涵,關志濤,等.一種基于聚類分類的物聯(lián)網(wǎng)惡意攻擊檢測方法[J].信息網(wǎng)絡安全,2021,21(8):82?90.
[10]""" 左曉軍,陳澤,董立勉,等.基于信息安全框架“金三角" 模型”的網(wǎng)絡安全評估方法研究[J].粘接,2020," 41(2):106?110.
[11]""" 王濤,吳曉燕,程良倫.無線Mesh網(wǎng)絡基于隱半馬爾" 可夫模型的跨層結合異常檢測方法[J].計算機科學," 2012,39(8):62?66.
[12]""" 范禹辰,劉相坤,朱建生,等.基于BERT的服務網(wǎng)站" Web攻擊檢測研究[J].計算機技術與發(fā)展,2022,"" 32(8):168?173.
[13]""" 盧純義.基于SDN架構的電網(wǎng)通信惡意攻擊防御控制" 方法[J].微型電腦應用,2021,37(12):162?165.
[14]""" 季一木,焦志鵬,劉尚東,等.基于通信特征的CAN總" 線泛洪攻擊檢測方法[J].網(wǎng)絡與信息安全學報,2020," 6(1):27?37.
[15]""" 黎明,宋廣軍.云計算環(huán)境下軟件異常區(qū)域檢測模型" 仿真[J].計算機仿真,2015,32(9):314?317.
[16]""" 白宏鵬,鄧東旭,許光全,等.基于聯(lián)邦學習的入侵檢測" 機制研究[J].信息網(wǎng)絡安全,2022,22(1):46?54.
[17]""" 武強,苗彥濤,余尚仁.基于智能分析的惡意軟件檢測" 研究進展和挑戰(zhàn)[J].通信技術,2022,55(9):1183?1195.
[18]""" 熊輝,呂智慧,張世永.基于OpenStack的自適應異常" 檢測模型的設計與實現(xiàn)[J].計算機應用與軟件,2015," 32(9):292?298.
[19]""" 陳曉軍,姚浩浩,王月領,等.基于DNS日志的惡意域名" 態(tài)勢預警研究[J].信息技術與信息化,2021(7):99?101.
[20]""" 徐超,孫金莉,楊郡,等.基于分布式支持向量機的電網(wǎng)" 錯誤數(shù)據(jù)注入檢測法[J].粘接,2023,50(2):188?192.