劉菲菲,伍忠東,丁龍斌,張 凱
(蘭州交通大學 電子與信息工程學院,蘭州 730070)
隨著電力工業(yè)和信息化技術的發(fā)展,智能電網(wǎng)成為未來電網(wǎng)的發(fā)展方向。智能電網(wǎng)是以電力和信息雙向流動為特征的網(wǎng)絡。高級量測體系(Advanced Metering Infrastructure,AMI)作為智能電網(wǎng)的核心組件通過與計算機網(wǎng)絡互連,實現(xiàn)電力數(shù)據(jù)的雙向通信。因為AMI系統(tǒng)存儲資源有限,而傳統(tǒng)入侵檢測方法部署成本高,所以網(wǎng)絡安全防護能力低,容易受到攻擊。一旦AMI被攻擊利用,用戶用電、控制數(shù)據(jù)、電價等信息就會被竊取,干擾電網(wǎng)正常運行,因此AMI網(wǎng)絡的安全研究具有重要的現(xiàn)實意義。
為保證AMI系統(tǒng)安全,NIST提出關于信息安全的研究報告[1]。目前,針對AMI的入侵檢測方法多數(shù)基于協(xié)議規(guī)范、安全需求和安全策略。文獻[2]針對AMI提出一種基于規(guī)則的入侵檢測系統(tǒng),但此系統(tǒng)需要部署傳感器網(wǎng)絡,成本較高。文獻[3]提出基于數(shù)據(jù)挖掘的AMI入侵檢測系統(tǒng),但需要在智能電表和收集器等系統(tǒng)中進行安裝。隨著機器學習技術的發(fā)展,基于機器學習的入侵檢測研究不斷被提出。文獻[4]利用支持向量機(Support Vector Machine,SVM)與人工免疫系統(tǒng)(Artificial Immune System,AIS)對惡意數(shù)據(jù)和可能的網(wǎng)絡攻擊進行檢測與分類,解決了分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊AMI網(wǎng)絡的問題。文獻[5]在AMI網(wǎng)絡中引入蜜罐作為誘餌系統(tǒng)來檢測和收集攻擊信息。文獻[6]針對AMI提出一種基于數(shù)據(jù)流挖掘的入侵檢測系統(tǒng),并對其性能進行分析。文獻[7]基于1/4超球體的單類支持向量機對AMI節(jié)點信任值的序列異常進行檢測。文獻[8]針對AMI異常用電檢測,提出K-means算法與PSO-SVM相結合的無監(jiān)督分類算法。但SVM僅針對小樣本分類具有較好的分類效果,當面對AMI系統(tǒng)中存儲資源有限、采集數(shù)據(jù)量大和數(shù)據(jù)實時更新的情況時,SVM的分類效果并不理想。文獻[9]使用在線序列極限學習機(Online Sequential Extreme Learning Machine,OS-ELM)對AMI系統(tǒng)進行入侵檢測,通過數(shù)據(jù)樣本分批學習的方法,當新數(shù)據(jù)到達時刪除舊數(shù)據(jù),從而降低訓練時間,減少AMI存儲資源占用。OS-ELM為AMI入侵檢測提供了一種新的解決方法。
可見,在OS-ELM算法中的學習參數(shù)需隨機設定,且OS-ELM算法容易出現(xiàn)過擬合問題,影響檢測準確率。另外,當OS-ELM算法面對海量數(shù)據(jù)時,由于數(shù)據(jù)特征過多,既無法保證重要特征的提取,又會增加訓練時間,因此本文提出一種基于改進在線序列簡化極核極限學習機(DBN-OS-RKELM)的AMI入侵檢測算法。
本文提出的基于DBN-OS-RKELM的入侵檢測算法整體框架如圖1所示,主要包括3個步驟:
1)數(shù)據(jù)預處理。將NSL-KDD數(shù)據(jù)集中的符號特征數(shù)據(jù)轉換為二進制數(shù)據(jù),再歸一化至[0,1]。
2)深度信念網(wǎng)絡(Deep Belief Network,DBN)特征提取。無監(jiān)督受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)對標準化數(shù)據(jù)集進行預訓練,應用反向傳播(Back Propagation,BP)算法進行全局微調,得到降維后的特征向量。
3)OS-RKELM分類器。建立訓練網(wǎng)絡,在添加數(shù)據(jù)的過程中實時更新輸出權重并對攻擊進行分類。
圖1 DBN-OS-RKELM算法整體框架Fig.1 Overall framework of DBN-OS-RKELM algorithm
原始數(shù)據(jù)集NSL-KDD中存在多種類型的數(shù)據(jù),因此在網(wǎng)絡訓練前需對數(shù)據(jù)進行預處理,將數(shù)據(jù)類型統(tǒng)一為網(wǎng)絡可識別類型,從而降低網(wǎng)絡訓練復雜度并提高訓練效果。
DBN是由多層無監(jiān)督RBM網(wǎng)絡和一層有監(jiān)督BP網(wǎng)絡組成的深層神經網(wǎng)絡[10]。DBN相較于傳統(tǒng)神經網(wǎng)絡,既提高了提取重要特征的能力,又解決了訓練速度慢的問題,同時避免因隨機初始化權值參數(shù)而陷入局部最優(yōu)的問題。因此,本文采用DBN進行數(shù)據(jù)特征提取。整個DBN訓練過程分為預訓練和權值微調。DBN結構如圖2所示,首先RBM逐層堆疊,將原始數(shù)據(jù)輸入最底層RBM進行訓練,將抽取的特征作為下一層RBM的輸入進行訓練,重復訓練直至迭代到最大迭代次數(shù),將底層特征向高層特征轉化。在學習過程中,RBM降低至原始數(shù)據(jù)的維數(shù),既保留了數(shù)據(jù)的主要特征,又降低了冗余特征。然后利用BP算法將錯誤信息自頂向下傳播至每一層RBM,并對RBM進行微調降低誤差。
圖2 DBN結構Fig.2 DBN structure
1.2.1 RBM網(wǎng)絡預訓練
RBM是一個兩層神經網(wǎng)絡,分別包括可視單元(v)和隱藏單元(h),可視單元表示輸入數(shù)據(jù)特征。RBM每層之間為全連接,同層單元之間互不相連,RBM結構如圖3所示。其中,vi代表第i個可視單元的狀態(tài),hj表示第j個隱藏層單元的狀態(tài),wij是可視單元i和隱藏層單元j之間的權重,ai為可視層單元i的偏置,bj為隱藏層單元j的偏置。在預訓練過程中,使用貪婪無監(jiān)督方法對RBM進行逐層訓練,使用激活函數(shù)sigmoid計算可視層與隱藏層間的概率取值。RBM預訓練過程的目標是求解出RBM模型中的參數(shù)θ,通常采用梯度下降法求解所有樣本的梯度和,但由于本文采用數(shù)據(jù)集的特征向量過多且計算量大,因此使用基于Gibbs采樣的對比散度方法求解更新后的參數(shù)θ。
圖3 RBM結構Fig.3 RBM structure
RBM采用對比散度方法進行網(wǎng)絡預訓練的過程[11]具體如下:
輸入可視層變量(v1,v2,…,vm)、學習率ε
輸出RBM參數(shù)θ={W,a,b}
步驟1將輸入的可視層變量(v1,v2,…,vm)賦值給v0。
1.2.2 BP權值微調過程
在RBM預訓練過程中,每一層RBM網(wǎng)絡只能保證權值對本層特征向量映射達到最優(yōu),并不能保證對整個DBN特征向量提取達到最優(yōu),因此本文基于BP算法利用少量帶標簽數(shù)據(jù)自頂向下有監(jiān)督訓練DBN模型[12]。BP算法在權值微調過程中,將錯誤信息自頂向下傳遞至每一層RBM,計算樣本實際輸出值與期望標簽的誤差值,并將最大似然函數(shù)作為目標函數(shù),調整各層權重,避免DBN陷入局部最優(yōu),改善神經網(wǎng)絡收斂時間長的問題,使DBN模型達到最優(yōu)解,得到微調后的參數(shù)θ。BP權值微調過程具體如下:
輸入訓練樣本(v1,v2,…,vm),預訓練得到θ={W,a,b},學習率ε
輸出微調后參數(shù)θ={W,a,b}
步驟1對于vi的所有輸出單元οi,根據(jù)ξi=oi(1-oi)(ei-oi)求解其誤差梯度ξi(ei為期望輸出)。
1.2.3 網(wǎng)絡深度確定
(1)
根據(jù)文獻[13]可知,隨著網(wǎng)絡深度的增加,不相關部分被弱化,不同類樣本間的相關系數(shù)不斷減小,直至相關系數(shù)為-1.00時達到DBN最佳分類狀態(tài),既保證了檢測效果,又減少了訓練時間,如圖4所示。本文從訓練集隨機抽取10 000條正常數(shù)據(jù)與攻擊數(shù)據(jù)確定DBN網(wǎng)絡深度,可以看出當隱含層層數(shù)為4時,互相關系數(shù)接近-1.00,之后一直趨于穩(wěn)定,表明4層隱含層為最優(yōu)深度,因此本文DBN的隱含層層數(shù)設置為4。
圖4 互相關系數(shù)與隱含層層數(shù)的關系Fig.4 The relationship between the correlation coefficientand the number of hidden layers
1.3.1 基于OS-ELM的在線學習
神經網(wǎng)絡學習模型包括批量學習和在線學習兩種模式,極限學習機(Extreme Learning Machine,ELM)作為批量學習模型[14],將所有訓練數(shù)據(jù)一次性投入到模型中,這種模式需要的時間較多且效果不理想。因此,OS-ELM算法將訓練數(shù)據(jù)以數(shù)據(jù)塊的形式按時序分批次投入到網(wǎng)絡中進行學習。在新數(shù)據(jù)到達時,刪除已經學習過的數(shù)據(jù),既減少了訓練時間,又避免了重復訓練。因此,OS-ELM算法符合AMI入侵檢測的需求[15]。
(2)
(3)
(4)
由文獻[14]可知:
(5)
按照這一規(guī)律不斷更新,加入新數(shù)據(jù)并刪除舊數(shù)據(jù)。當?shù)贙+1批數(shù)據(jù)到來時,得到此時的輸出權重為:
(6)
1.3.2 基于OS-RKELM的在線學習
在訓練過程中,OS-ELM算法只有當HHT為非奇異矩陣時,才可以求解隱含層權值矩陣,而在線學習過程中,添加的樣本總會出現(xiàn)新舊樣本過于相似的問題,導致HHT出現(xiàn)奇異現(xiàn)象,使訓練結果過擬合,影響最終檢測準確率。另外,OS-ELM算法的輸入權值和偏置都為隨機設定,泛化能力轉弱,對入侵檢測結果影響顯著。OS-RKELM是一種基于核函數(shù)的快速在線分類算法,其能夠以塊-塊的形式分批分類,通過正則化克服OS-ELM算法過擬合問題。與OS-ELM算法不同,OS-RKELM不限制初始訓練數(shù)據(jù)集大小[17],在任何初始訓練數(shù)據(jù)集下均可保持穩(wěn)定的學習性能,同時加入核函數(shù)能夠減少隨機參數(shù)設定對檢測準確率的影響。可見,OS-RKELM算法具有更快的學習速率和更少的參數(shù),不僅能夠解決OS-ELM算法存在的上述問題[18],而且滿足AMI入侵檢測的需求。
在OS-ELM算法的基礎上加入正則化,正則化是對最小經驗誤差函數(shù)加上約束條件,對誤差函數(shù)起到引導作用,減小解空間,使得參數(shù)達到最優(yōu)解,具體計算公式如下:
其中,ε為實際輸出與理想輸出間的誤差,C為懲罰系數(shù)。根據(jù)KKT條件,將約束優(yōu)化式(7)轉化為雙重優(yōu)化問題,即:
(8)
由于網(wǎng)絡模型對學習參數(shù)進行隨機賦值,使得分類結果的泛化能力不理想,因此本文利用核函數(shù)將學習樣本映射到高維空間,提高分類準確性。定義核矩陣和輸出函數(shù)如式(9)和式(10)所示:
ΩELM=HHT=h(xi)h(xi)=κ(xi,xi)
(9)
(10)
根據(jù)KKT條件對上述約束條件進行求解,得到:
(12)
與OS-ELM相同,OS-RKELM包括初始化與在線學習兩個階段。
1)初始化階段
從原始輸入數(shù)據(jù)Ω=(xi,ti),i=1,2,…,n中選定新訓練數(shù)據(jù)Ω0=(xi,ti),i=1,2,…,M后進行訓練。計算初始階段的輸出層權值β0:
(13)
2)在線學習階段
在更新學習樣本后得到新的權值為:
(14)
其中:
(15)
K1=κ(X1,XM)
(16)
求得:
(17)
當?shù)趉+1批數(shù)據(jù)Ω=(xi,ti),i=k+1,k+2,…,n到達時,可以得到:
(18)
(19)
Kk+1=κ(xk+1,xn)
(20)
(21)
OS-RKELM分類器訓練流程如圖5所示。
圖5 OS-RKELM分類器訓練流程Fig.5 Training procedure of OS-RKELM classifier
本文針對AMI受到的攻擊類型,采用NSL-KDD數(shù)據(jù)集進行實驗。NSL-KDD數(shù)據(jù)集是目前得到廣泛應用的入侵檢測數(shù)據(jù)集。剔除KDD99數(shù)據(jù)集中的冗余部分得到新數(shù)據(jù)集,包含KDDtrain+訓練集(125 793條)和KDDtest+測試集(18 794條)兩部分[19]。數(shù)據(jù)集將攻擊類型分為Normal、DOS、U2R、R2L和Probe 5類,攻擊類型共有21種,各類攻擊樣本分布如表1所示。
表1 各類攻擊樣本分布Table 1 Distribution of various attack samples
數(shù)據(jù)集預處理過程具體如下:
1)數(shù)據(jù)集中包含41維特征,其中包括38個數(shù)字型特征與3個字符型特征。在數(shù)據(jù)訓練前,將字符數(shù)據(jù)轉換成二進制形式,例如將屬性特征protocol_type的3種類型分別用二進制表示為tcp[1,0,0]、udp[0,1,0]、icmp[0,0,1],將其余字符型特征都以二進制形式表示。
2)在數(shù)據(jù)分析前,利用歸一化方式將不同維度、性質的數(shù)據(jù)轉換為0~1,轉換公式如下:
(22)
其中,y為數(shù)據(jù)中某維度中的任意值,MAX為該維度中的最大值,MIN為該維度中的最小值。
3)將5種攻擊類型分別以對應的編碼映射表示為Normal[1,0,0,0,0]、DOS[0,1,0,0,0]、U2R[0,0,1,0,0]、R2L[0,0,0,1,0]和Probe[0,0,0,0,1]。
實驗采用準確率(AACC)、誤報率(FFPR)和訓練時間作為評價指標,具體計算公式如下:
(23)
其中,FFP為正常類預測樣本數(shù)量,TTP為攻擊類樣本數(shù)量,TTN為正確預測正常類樣本數(shù)量,FFN為攻擊類預測為正常類樣本數(shù)量。
DBN-OS-RKELM算法的參數(shù)設置如表2所示,本文采用RBF作為OS-RKELM的核函數(shù)。
表2 實驗參數(shù)設置Table 2 Setting of experimental parameters
本文實驗過程中正則化系數(shù)(γ)、懲罰因子(C)、隱含層個數(shù)(L)和新樣本數(shù)量(Batch)為隨機設定,對入侵檢測準確率結果有較大影響,如表3所示。通過多次實驗,將γ、C、L、Batch 4個參數(shù)分別進行循環(huán)測試,得到檢測準確率最高的參數(shù)作為本文最佳參數(shù)值。
表3 實驗參數(shù)隨機設置Table 3 Random setting of experimental parameters
實驗從檢測準確率與訓練時間兩方面對DBN-OS-RKELM算法進行評價。為證明DBN-OS-RKELM算法的泛化能力和訓練速率,與ELM、OS-ELM和基于DBN的在線序列極限學習機(DBN-based Online Sequential Extreme Learning Machine,DBN-OS-ELM)算法進行比較。
實驗采用KDDtrain+訓練集和KDDtest+測試集對算法性能進行評估。首先在相同實驗平臺和特征數(shù)目的條件下,優(yōu)化ELM、OS-ELM、DBN-OS-ELM和DBN-OS-RKELM算法參數(shù),使其達到最佳值。為保證實驗準確性,每種算法運行20次,取平均值為最終結果。
實驗1分別比較OS-ELM、DBN-OS-ELM和DBN-OS-RKELM這3種算法的隱含層對檢測準確率的影響,如圖6所示。DBN-OS-RKELM算法在隱含層節(jié)點為100時準確率最高。隱含層節(jié)點個數(shù)對OS-ELM算法準確率影響較明顯,這是因為作為單隱層網(wǎng)絡結構,隱含層個數(shù)對分類結果的影響很大。若隱含層節(jié)點個數(shù)過少,則網(wǎng)絡達不到預期的學習能力與檢測效果;若隱含層節(jié)點個數(shù)與特征維度過多,增加了訓練時間和網(wǎng)絡復雜度,導致泛化能力降低,則會造成過擬合現(xiàn)象。DBN-OS-ELM算法在隱含層節(jié)點個數(shù)達到70之后,準確率下降,并保持趨于穩(wěn)定的狀態(tài),因此實驗中選取的DBN-OS-RKELM和OS-ELM算法的隱含層個數(shù)為100,DBN-OS-ELM算法的隱含層個數(shù)為70。
圖6 網(wǎng)絡隱含層節(jié)點個數(shù)與檢測準確率的關系Fig.6 Relationship between the number of hidden layernodes in the network and detection accuracy
實驗2分別將ELM、OS-ELM、DBN-OS-ELM和DBN-OS-RKELM這4種算法在相同測試集與訓練集上進行實驗。如表4所示,OS-ELM算法與ELM算法相比,在減少訓練時間的同時檢測準確率有所降低;DBN-OS-RKELM與ELM算法相比,在檢測準確率上提高了3.36%,而且其訓練時間與OS-ELM算法相比變化不大,這是因為DBN特征提取降低了數(shù)據(jù)維度,并且在OS-RKELM中進行了數(shù)據(jù)分塊和實時學習,進一步減少了訓練時間。與OS-ELM、DBN-OS-ELM兩種算法相比,DBN-OS-RKELM算法增加了數(shù)據(jù)特征提取和最優(yōu)參數(shù)搜索過程,其檢測準確率的提升表明算法整體性能優(yōu)于傳統(tǒng)極限學習機方法。
表4 4種算法的入侵檢測性能對比Table 4 Comparison of intrusion detection performanceof four algorithms
實驗3將攻擊類型分為Normal、DOS、U2R、R2L和Probe 5類,對ELM、DBN-OS-RKELM、EDF和CNN算法在KDDtest+測試集下的性能進行對比,其中EDF和CNN實驗數(shù)據(jù)來自文獻[20]。由表5可以看出,DBN-OS-RKELM算法的檢測準確率得到提升,同時大幅降低了訓練時間。這是因為在通過特征提取和隨機參數(shù)尋優(yōu)后,數(shù)據(jù)維度降低,計算復雜度也隨之降低。DBN-OS-RKELM算法與EDF和CNN算法對于Normal、DOS和Probe攻擊類型的檢測準確率十分接近,而對U2R和R2L攻擊類型的檢測效果更好,且訓練時間也不會因為識別種類的增加而增加,依舊保持在線學習訓練耗時短的優(yōu)勢。對于U2R和R2L攻擊類型的檢測準確率相對較低的原因為:U2R和R2L攻擊類型訓練集中的數(shù)據(jù)量過少,以及分類器在學習過程中得到特征向量的信息過少,因此在識別過程中容易被識別為其他攻擊類型。
表5 5種攻擊類型的入侵檢測性能對比Table 5 Comparison of intrusion detection performance offive types of attacks
本文提出DBN-OS-RKELM算法,將AMI中采集到的日志信息利用DBN提取重要數(shù)據(jù)特征,應用OS-ELM對實時入侵數(shù)據(jù)以塊的方式進行在線更新分類以縮短檢測時間,并通過加入核函數(shù)與正則化提高極限學習機的泛化能力。實驗結果表明,DBN-OS-RKELM算法解決了OS-ELM算法在檢測過程中通過犧牲檢測準確率降低訓練時間的問題,相比ELM算法在保持準確率的同時大幅降低了訓練時間,相比EDF和CNN算法入侵檢測準確率更高,體現(xiàn)出其在海量樣本情況下實時學習的性能優(yōu)勢,且更適用于智能電網(wǎng)AMI的實際應用。后續(xù)可將DBN-OS-RKELM算法應用于智能電網(wǎng)AMI入侵檢測實驗平臺,以驗證其正確性與高效性。