呂磅,韓嘉佳,孫歆,戴樺,李沁園,孫昌華
(國網(wǎng)浙江省電力有限公司電力科學(xué)研究院,杭州 310014)
近年來,針對電力能源行業(yè)中國家級、集團式網(wǎng)絡(luò)的安全攻擊事件頻發(fā),電網(wǎng)網(wǎng)絡(luò)安全形勢異常嚴峻,已成為網(wǎng)絡(luò)安全的主戰(zhàn)場。據(jù)國家互聯(lián)網(wǎng)應(yīng)急中心統(tǒng)計,工控系統(tǒng)漏洞呈現(xiàn)連年高發(fā)態(tài)勢,網(wǎng)絡(luò)安全攻擊形式日漸多元,攻擊技術(shù)手段更加先進,對網(wǎng)絡(luò)安全和能源行業(yè)造成了嚴重影響。2010年的伊朗布什爾核電站的離心機損毀事件,2019年的烏克蘭電網(wǎng)大規(guī)模停電事件,2019年的美國可再生能源電力公司通信中斷事件,2019年的委內(nèi)瑞拉電力系統(tǒng)大范圍停電事件,2020年的葡萄牙能源公司用戶數(shù)據(jù)加密勒索事件以及2022年俄烏戰(zhàn)爭期間烏克蘭電網(wǎng)大規(guī)模癱瘓事件,表明了針對能源網(wǎng)絡(luò)基礎(chǔ)設(shè)施的攻擊事件日益增加。
從上述攻擊事件可以看出,由于接入終端所處環(huán)境的開放性,利用各類接入的外部無線終端設(shè)備、軟件、第三方交互接口作為滲透內(nèi)網(wǎng)的攻擊跳板成為關(guān)注重點。以聚合負荷云平臺為代表用戶側(cè)負荷控制的新型電力系統(tǒng)通過互聯(lián)網(wǎng)遠程控制接入終端,由于終端側(cè)缺乏必要安全防護,存在容易被攻擊者入侵控制的安全風險。因此,如何將傳統(tǒng)的多級內(nèi)部防御機制擴展到網(wǎng)絡(luò)末梢的接入終端處,是目前亟待解決的問題。
新型電力系統(tǒng)網(wǎng)絡(luò)安全防護面臨來自終端設(shè)備、通信網(wǎng)絡(luò)、應(yīng)用系統(tǒng)等環(huán)節(jié)的安全風險。在終端設(shè)備環(huán)節(jié),海量物聯(lián)終端、分布式電源、電動汽車、智能電表等源荷終端設(shè)備接入電力內(nèi)網(wǎng)雙向互動,不完善的終端安全準入,可能導(dǎo)致黑客偽造接入,惡意滲透或監(jiān)聽,甚至對業(yè)務(wù)發(fā)起攻擊與控制。攻擊者一旦獲得信息內(nèi)網(wǎng)、公網(wǎng)或無線網(wǎng)通道接入權(quán),將導(dǎo)致信息被非法截獲與業(yè)務(wù)控制指令被惡意篡改,特別是無線通信,更容易面臨通信內(nèi)容被竊聽、內(nèi)容篡改和通信雙方身份被仿冒等問題。針對無線接入終端的安全性測試可以及時發(fā)現(xiàn)存在的安全問題。
一般來說,無線局域網(wǎng)設(shè)備安全測試一般包括基于誤用和基于異常的安全測試[1]?;谡`用的測試系統(tǒng)通過匹配預(yù)定義的測試用例來實現(xiàn)安全性測試,通過觀察偏離預(yù)定義特征的流量,發(fā)現(xiàn)測試異常,在檢測已知攻擊方面很有效,并且具有較高的檢測精度和較低的誤報率,但在檢測未知或新的攻擊時,由于預(yù)先安裝在安全測試系統(tǒng)中的規(guī)則的限制,其性能會受到影響;基于異常的安全測試可能識別未知的入侵行為,非常適合檢測未知的和新的攻擊。盡管容易產(chǎn)生較高的假陽率,但其在識別新的攻擊方面的理論潛力已經(jīng)得到了廣泛認可。本質(zhì)而言,基于異常的安全測試可以看作是一個分類問題,它通過將網(wǎng)絡(luò)流量分為正常和異常來確定網(wǎng)絡(luò)攻擊。因此,基于機器學(xué)習算法的人工智能可以有效促進安全測試系統(tǒng)的發(fā)展。另一方面,由于安全測試數(shù)據(jù)集特征多維,且特征大多冗余,因此,目前提出了許多基于冗余特征提取的安全測試方法。
Shone等[2]提出一種網(wǎng)絡(luò)安全測試模型,構(gòu)建深度非對稱自編碼網(wǎng)絡(luò),提取到具有較強學(xué)習能力的網(wǎng)絡(luò)流量數(shù)據(jù)特征屬性,再與支持向量機方法結(jié)合,對網(wǎng)絡(luò)攻擊行為進行分類。Thing[3]構(gòu)建了稀疏自編碼器模型,并結(jié)合softmax分類器實現(xiàn)對網(wǎng)絡(luò)攻擊行為的分類檢測。Aminanto等[4]采用稀疏自編碼器模型提取網(wǎng)絡(luò)流量數(shù)據(jù)原始特征的新特征表達,并通過對所有的原始特征和新特征進行重要級排序,篩選出與網(wǎng)絡(luò)安全測試最相關(guān)的重要特征,然后結(jié)合SVM(支持向量機)方法對網(wǎng)絡(luò)攻擊行為進行識別與分類。Shon等[5]采用遺傳算法,對流量數(shù)據(jù)進行特征選擇,并使用SVM進行安全測試。Srinoy[6]提出了一種安全測試模型,該模型使用SVM粒子群優(yōu)化算法提取特征,再采用SVM進行分類。Fei等[7]提出了一種基于密度的增量聚類方法。Horng等[8]使用分層聚類算法為SVM提供更少、更高質(zhì)量的訓(xùn)練實例。為了克服安全測試系統(tǒng)中的不確定性問題,Kavitha等[9]采用了一種被稱為中性邏輯的新技術(shù)。Wu和Banzhaf[10]提出了入侵中的計算智能的審查檢測和應(yīng)用數(shù)值評估措施來量化安全測試系統(tǒng)的性能。Kolias和Kambourakis[11]給出了安全測試中群智能的調(diào)查。Kuang等[12]提出了一種基于主成分分析和遺傳算法的模型,采用主成分分析提取入侵特征,利用遺傳算法優(yōu)化參數(shù)。Li等[13]在安全測試系統(tǒng)中提出了數(shù)據(jù)預(yù)處理和數(shù)據(jù)挖掘流水線,并逐步采用特征去除法進行特征約簡分類。以上研究為高維數(shù)據(jù)的特征提取及入侵分類提供了思路,但它們多數(shù)采用數(shù)據(jù)集KDD CUP99、NSL-KDD進行實驗。本文提出改進的堆疊稀疏自編碼器和深度神經(jīng)網(wǎng)絡(luò)無線局域網(wǎng)的安全測試模型,并采用無線網(wǎng)絡(luò)攻擊行為數(shù)據(jù)集-愛琴無線數(shù)據(jù)集[14]AWID進行實驗驗證,和未改進的模型相比,提高了異常安全測試系統(tǒng)的準確率。
本文提出了一種基于深度神經(jīng)網(wǎng)絡(luò)的無線接入安全測試系統(tǒng),該系統(tǒng)采用堆疊稀疏自編碼器實現(xiàn)測試數(shù)據(jù)集的特征降維,并選取合適的特征維數(shù)進行訓(xùn)練,即將選取的特征作為深度神經(jīng)網(wǎng)絡(luò)的輸入層,構(gòu)建高效測試用例并監(jiān)測發(fā)現(xiàn)異常狀態(tài)。該系統(tǒng)可對電力移動設(shè)備安全接入環(huán)境的安全異常進行有效發(fā)現(xiàn),提高了安全性能。
本文所述安全測試框架包括數(shù)據(jù)預(yù)處理、訓(xùn)練模型及測試模型3個部分。數(shù)據(jù)預(yù)處理模塊首先完成原始數(shù)據(jù)的數(shù)值化及歸一化處理;訓(xùn)練模型模塊使用預(yù)先準備的訓(xùn)練集數(shù)據(jù)進行模型訓(xùn)練,得到訓(xùn)練完的模型并保存,然后利用模型對測試數(shù)據(jù)進行檢測。訓(xùn)練模型采用堆疊稀疏自編碼器進行特征選擇,然后將其作為深度神經(jīng)網(wǎng)絡(luò)的輸入,進行分類。為了得到較好的檢測效果,深度神經(jīng)網(wǎng)絡(luò)包含3層隱藏層和防止過擬合的dropout層,同時采用網(wǎng)格搜索法對神經(jīng)網(wǎng)絡(luò)各項參數(shù)、方法進行優(yōu)化,如圖1所示。
圖1 電力無線接入設(shè)備安全測試框架Fig.1 Security testing framework of wireless power terminal
測試數(shù)據(jù)一般正常流量數(shù)量遠遠高于攻擊流量,訓(xùn)練集和測試集都為不平衡數(shù)據(jù)集,這樣會影響訓(xùn)練效果,所以需要對數(shù)據(jù)集進行平衡采樣。
數(shù)據(jù)集中不同特征的值域相差過大,為了消除這種差別對于模型的影響,對數(shù)值型數(shù)據(jù)進行歸一化。本文采用最值歸一化,將屬性值映射到[0,1]之間,如式(1)所示。
式中:yi為第i個特征值歸一化后的值;xi為第i個特征值;max(x)為某個特征列中最大值;min(x)為某個特征列中最小值。
原有測試數(shù)據(jù)存在特征維度過高問題,嚴重影響訓(xùn)練模型的時長以及測試模型的準確率。本文采用了堆疊稀疏自編碼器進行特征選擇。因此,首先分析單個稀疏自編碼器的結(jié)構(gòu),通過對比實驗來確定稀疏自編碼器的激活函數(shù)和損失函數(shù),從而完成堆疊稀疏自編碼器的設(shè)計。
稀疏自編碼器是一種輸入維度等于輸出維度的神經(jīng)網(wǎng)絡(luò)。如圖2所示,其由編碼器和解碼器兩部分構(gòu)成,將原始特征作為輸入層,經(jīng)過編碼器編碼,將原始高維特征經(jīng)過非線性轉(zhuǎn)換映射到低維特征集合上,再經(jīng)過解碼器重構(gòu)為原始維度。
圖2 單個稀疏自編碼器結(jié)構(gòu)Fig.2 Structure of a sparse autoencoder (SAE)
從輸入層到隱藏層的編碼過程按式(2)進行。
從隱藏層到輸出層的解碼過程按式(3)進行,解碼完成了對特征的重建。
式中:wa、ba、wh、bh分別為輸入層的權(quán)重向量和偏置值以及隱藏層的權(quán)重向量和偏置值;X=(x1,x2,x3,…,xn),Y=(y1,y2,y3,…,ym),Z=(z1,z2,z3,…,zn),X,Z∈Rn,Y∈Rm,其中,n為輸入層和輸出層的維度,m為隱藏層的維度;ga和gh為激活函數(shù)。
本文通過比對各種激活函數(shù)的效果,發(fā)現(xiàn)tanh激活函數(shù)實現(xiàn)的效果較好,因此,ga和gh的計算如式(4)所示。
式中:xt為激活函數(shù)的輸入數(shù)據(jù)。
為了防止自編碼器模型過擬合,對模型添加正則化項,限制模型的復(fù)雜度,從而使模型在復(fù)雜度和性能之間達到平衡。采用L1正則化,表達如式(5)所示。
式中:α||w||1為L1正則項,L1正則化是指權(quán)值向量w中各元素的絕對值之和。L1正則化對解空間添加的約束為:∑||w||1≤C,L1正則化可以產(chǎn)生稀疏權(quán)值矩陣,即產(chǎn)生一個稀疏模型,可以用于特征選擇,也可以防止過擬合。
L2正則化的表達如式(6)所示。
式中:為L2正則項,L2正則化是指權(quán)值向量w中各元素的平方和。L2對解空間添加的約束為:≤C,L2可以防止模型過擬合。
通過實驗數(shù)據(jù),選擇合適的激活函數(shù)與正則項。通過實驗數(shù)據(jù)對比,采用tanh作為激活函數(shù)以及L2正則項效果較好。
為了更好地實現(xiàn)數(shù)據(jù)降維,本文采用3個稀疏自編碼器進行堆疊,3個自編碼器提取的維數(shù)逐層降低,從而實現(xiàn)特征降維的效果。如圖3所示,首先用第一個編碼器進行數(shù)據(jù)壓縮,將其隱藏層特征輸出作為第二個編碼器的輸入,再經(jīng)過第二個編碼器將特征進行壓縮,將其隱藏層特征輸出作為第三個編碼器的輸入,最后輸出第三個編碼器提取到的低維特征。本文采用的堆疊編碼的結(jié)構(gòu)為第一層提取70維特征,第二維提取50層特征,第三層為最終特征20維,將提取到的20維特征輸出。
圖3 堆疊稀疏自編碼器結(jié)構(gòu)Fig.3 Structure of stacked sparse autoencoders (SSAE)
深度神經(jīng)網(wǎng)絡(luò)輸入為堆疊稀疏自編碼器模型降維后的20維特征。隱藏層包含3層,第1層為128個神經(jīng)單元,第2層為64個神經(jīng)單元,第3層為32個神經(jīng)單元,層與層之間全連接,即第i層的任意一個神經(jīng)元與第i+1層的任意一個神經(jīng)元都有連接。同時,為了防止模型過擬合,添加了dropout層,可以有效緩解過擬合,在一定程度上還可以達到正則化的效果。最后在深度神經(jīng)網(wǎng)絡(luò)后面連接一個softmax分類器,用于解決多分類問題。其架構(gòu)如圖4所示。
圖4 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Structure of deep neural networks (DNN)
本文采用網(wǎng)格搜索法對深度神經(jīng)網(wǎng)絡(luò)的各種參數(shù)進行自動尋優(yōu),從而達到優(yōu)化模型的效果。網(wǎng)格搜索法采用窮舉的方法列出各種參數(shù)組合可能,基于性能最優(yōu)判斷,進一步通過交叉驗證獲取學(xué)習算法的函數(shù)參數(shù)。例如,對超參數(shù)epochs和batch_size進行優(yōu)化,會將多組參數(shù)組合取得的實驗效果進行比較,從而選擇效果較好的參數(shù)賦給模型來提高測試分數(shù)。在本模型中進行優(yōu)化的參數(shù)有activation(激活)、epochs(迭代次數(shù))、batch_size(批量大?。nit_mode(初始化模式)和optimizer(優(yōu)化器),通過調(diào)節(jié)這些參數(shù)來提高模型的性能。
本文的訓(xùn)練模型自編碼器部分采用多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其中輸入層含有92個神經(jīng)元,輸出層與輸入層神經(jīng)元個數(shù)相同,自編碼器又由3個編碼器和3個解碼器構(gòu)成,因為自編碼器為對稱結(jié)構(gòu),編碼器和解碼器分別為70:50:20和20:50:70。其中20為隱藏層的向量,可以看作是編碼器的最終壓縮向量,即為最后提取的特征,作為下一步訓(xùn)練神經(jīng)網(wǎng)絡(luò)的輸入特征。圖5(a)和圖5(b)顯示了提取到不同特征對模型的影響,因此,壓縮維度對于模型測試有著重要的影響,其中維度壓縮在20維效果較好。
圖5 壓縮維度對測試模型性能的影響Fig.5 Effect of compressed dimension on test model performance
DNN(深度神經(jīng)網(wǎng)絡(luò))的輸入為自編碼器隱藏層壓縮后的20維特征,且含有3層隱藏層,隱藏層神經(jīng)元結(jié)構(gòu)為128:64:32,以及防止過擬合的dropout層,輸出層為一個softmax分類器,將輸出4種類別。在此模型中,添加了GridSearchCV,用來查找每個參數(shù)的最優(yōu)狀態(tài),從而提高模型的準確率。從圖6和圖7可以看出,epochs和batch_size的改變對模型準確率提高有影響,其中當batch_size為40、epochs為50時效果較好;當權(quán)重初始化方法為uniform時,模型的效果較好。
圖6 不同epochs和batch_size對模型的影響Fig.6 Effect of different epochs and batch_sizes on the model
圖7 不同的權(quán)值初始化方法對模型的影響Fig.7 Effect of different weight initialization methods on the model
從圖8和圖9可以看出,不同的激活函數(shù)activation和optimizer的改變對模型準確率提高有影響。其中,當activation為softmax、optimizer為RMSprop時效果較好。
圖8 輸出層激活函數(shù)activation對模型的影響Fig.8 Effect of activation functions in output layer on the model
圖9 optimizer對模型的影響Fig.9 Effect of optimizers on the model
分類模型最常用TP(真陽性)、FP(假陽性)、TN(真陰性)、FN(假陰性)來衡量模型的有效性。本文對安全性能的分析衡量指標選取ROC(接收者操作特征)曲線,ROC曲線為以假正率為x軸,以真正率為y軸做出的曲線。AUC即ROC特征曲線下面的面積,AUC越大分類器性能越好。圖10顯示了本文模型的ROC曲線。
本文設(shè)計并實現(xiàn)了一個面向電力移動設(shè)備無線接入環(huán)境的安全測試系統(tǒng),重點研究了基于流量特征的安全異常發(fā)現(xiàn)。通過堆疊稀疏自編碼器和深度神經(jīng)網(wǎng)絡(luò)構(gòu)造,首先對測試數(shù)據(jù)集進行數(shù)據(jù)特征降維,并選取合適的特征維數(shù)進行訓(xùn)練,即將選取的特征作為深度神經(jīng)網(wǎng)絡(luò)的輸入層,構(gòu)建高效測試用例并監(jiān)測發(fā)現(xiàn)異常狀態(tài)。該系統(tǒng)可用于挖掘接入設(shè)備的安全問題,具有一定的實用價值。