李 偉 霍雪松 張 明 朱紅勤
(1 東南大學計算機科學與工程學院,南京211189)(2 國網(wǎng)江蘇省電力有限公司,南京210000)
近年來,隨著各類網(wǎng)絡化應用的不斷拓展和深化,蠕蟲病毒、木馬、黑客攻擊等惡意網(wǎng)絡行為日益猖獗,網(wǎng)絡安全事件進入高發(fā)期.作為電力系統(tǒng)的關(guān)鍵信息基礎設施,電力監(jiān)控系統(tǒng)是確保電網(wǎng)安全穩(wěn)定運行的核心,已被不少國家視為網(wǎng)絡戰(zhàn)的首選攻擊目標.2017年烏克蘭、2019年委內(nèi)瑞拉等均已相繼發(fā)生了嚴重的電力工控網(wǎng)絡安全事件,給當?shù)厣鐣?jīng)濟造成極大損失[1].隨著能源互聯(lián)網(wǎng)的全面推進,我國電力監(jiān)控系統(tǒng)的智能化、網(wǎng)絡化程度不斷提升,同時網(wǎng)絡攻擊行為新變種也層出不窮,亟需實現(xiàn)快速、準確的電力監(jiān)控系統(tǒng)異常行為檢測,提升電力監(jiān)控系統(tǒng)的安全防護能力.
早期通常采用人工分析的方式獲取異常行為特征,隨著網(wǎng)絡攻擊行為的不斷變化,依靠人工方式獲取異常行為特征的代價越來越高甚至不可行[2].機器學習技術(shù)能夠從網(wǎng)絡數(shù)據(jù)中自動提取異常行為特征,產(chǎn)生檢測規(guī)則,識別未知行為,已成為近些年網(wǎng)絡異常行為檢測的研究重點[3].依據(jù)是否需要對樣本數(shù)據(jù)進行標記,相關(guān)工作主要分為無監(jiān)督學習、有監(jiān)督學習和半監(jiān)督學習.無監(jiān)督學習利用無標記樣本數(shù)據(jù)通過聚類[4-5]等方法實現(xiàn)異常行為識別,算法簡單且無需標記樣本數(shù)據(jù),但識別準確率低.有監(jiān)督學習基于標記樣本數(shù)據(jù),采用隱馬爾可夫[6]、決策樹[7]、支持向量機[8]等模型進行訓練獲取行為特征,識別準確率優(yōu)于無監(jiān)督學習,但要求對所有訓練樣本數(shù)據(jù)進行標記,開銷巨大.半監(jiān)督學習只需部分標記樣本數(shù)據(jù),通過生成若干成員分類器進行集成學習,降低訓練樣本數(shù)據(jù)標記開銷的同時,提升了異常行為識別準確率.文獻[9]提出了一種自適應集成學習模型,通過調(diào)整訓練數(shù)據(jù)比例,構(gòu)造一個多決策樹算法實現(xiàn)網(wǎng)絡入侵行為檢測;文獻[10]提出了一種基于集成的半監(jiān)督學習方法,采用隨機森林、支持向量機、決策樹等多種分類器實現(xiàn)網(wǎng)絡異常行為的分布式檢測.該類方法多采用支持向量機、決策樹等傳統(tǒng)機器學習模型構(gòu)建成員分類器,其識別準確率受人工經(jīng)驗選取的特征指標影響較大.
深度學習通過深層次神經(jīng)網(wǎng)絡逐層學習樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,完成復雜的分類學習任務,解決了傳統(tǒng)機器學習模型中需要人工設計特征的問題,已廣泛應用于圖像識別、目標檢測、個性化推薦等領域[11].文獻[12]對多種基于深度學習的網(wǎng)絡異常檢測方法進行了分析比較,指出深度學習模型層次越深,對各類型特征的抽象提取越細致,異常行為的識別準確率就越高.但是,模型深度的增大會導致梯度爆炸或梯度消失問題,使有效信息被過分夸大或隱瞞,嚴重影響了深度神經(jīng)網(wǎng)絡模型的識別精度與收斂速度.為解決該問題,文獻[13]率先在圖像識別領域提出了將底層信息越過中間層直接送至高層的殘差思想,通過構(gòu)建殘差卷積神經(jīng)網(wǎng)絡,使得網(wǎng)絡高層可以對其鄰接層的輸出和底層的輸出進行綜合分析,從而提升圖像識別的精準度.
本文將深度學習模型與半監(jiān)督學習方法相結(jié)合,提出了一種基于殘差全連接神經(jīng)網(wǎng)絡的電力監(jiān)控系統(tǒng)異常行為檢測方法.該方法選取能夠反映電力監(jiān)控系統(tǒng)異常行為的流量特征、系統(tǒng)日志、系統(tǒng)告警等歷史數(shù)據(jù)來構(gòu)建訓練樣本并進行部分標記,基于殘差思想構(gòu)建兩級殘差全連接神經(jīng)網(wǎng)絡模型,并將其作為構(gòu)建成員分類器的核心分類模型;然后,采用混合擾動方法生成具有差異性的成員分類器,利用有標記樣本數(shù)據(jù)進行離線訓練;最后,基于有標記訓練樣本,計算各成員分類器的識別誤差率,通過加權(quán)多數(shù)表決法對無標記訓練樣本進行增量學習,進一步強化成員分類器的識別能力,形成集成分類器,實現(xiàn)電力監(jiān)控系統(tǒng)異常行為的快速、準確識別,同時降低了對訓練樣本數(shù)據(jù)進行人工標記的開銷.
為了能夠快速準確地檢測出電力監(jiān)控系統(tǒng)的異常行為,首先需要選擇能夠反映電力監(jiān)控系統(tǒng)行為的歷史數(shù)據(jù)進行訓練和學習,獲取電力監(jiān)控系統(tǒng)的行為特征.當電力監(jiān)控系統(tǒng)受到網(wǎng)絡攻擊時,系統(tǒng)中的流量特征往往會伴隨著某種異常行為的出現(xiàn)而發(fā)生變化;當電力監(jiān)控系統(tǒng)存在非法操作或誤操作時,這些異常操作均會記錄在設備或系統(tǒng)的日志中,嚴重時還會產(chǎn)生告警信息.因此,本文選取能夠反映電力監(jiān)控系統(tǒng)異常行為的流量特征、系統(tǒng)日志、系統(tǒng)告警等已采集的歷史行為數(shù)據(jù),通過清洗、歸一化等預處理操作,生成電力監(jiān)控系統(tǒng)行為樣本數(shù)據(jù).在此基礎上,根據(jù)監(jiān)管經(jīng)驗和是否已造成危害等事實,選取部分樣本數(shù)據(jù)進行標記.異常行為對應的樣本數(shù)據(jù)標記為0,正常行為對應的樣本數(shù)據(jù)標記為1.最終構(gòu)成的訓練樣本T為
(1)
式中,ti(i∈[1,m])為經(jīng)過預處理和標注的反映電力監(jiān)控系統(tǒng)歷史行為的第i條訓練樣本數(shù)據(jù);tij為第i條訓練樣本數(shù)據(jù)中第j(j∈[1,n])個特征值,即電力監(jiān)控系統(tǒng)的流量特征、系統(tǒng)日志、系統(tǒng)告警等行為特征樣本數(shù)據(jù);yi為第i條訓練樣本數(shù)據(jù)對應的電力監(jiān)控系統(tǒng)行為類別標記,異常行為取值為0,正常行為取值為1.
在對訓練樣本進行半監(jiān)督學習過程中,成員分類器所采用的核心分類模型的性能和學習效果直接影響著電力監(jiān)控系統(tǒng)異常行為檢測的準確性.為了提升核心分類模型的識別準確率,解決深度全連接神經(jīng)網(wǎng)絡梯度消失、梯度爆炸導致的算法收斂慢等問題,本文將殘差思想引入全連接神經(jīng)網(wǎng)絡模型,將底層信息越過中間層直接送至高層,借助中間層對信息進行有效提煉分析的同時,加入原始信息避免有效信息在中間層被隱瞞篡改,構(gòu)建兩級殘差全連接神經(jīng)網(wǎng)絡模型,并將其作為構(gòu)建成員分類器的核心分類模型.該模型由輸入層、殘差全連接層、輸出層和Softmax層4部分組成(見圖1).
圖1 兩級殘差全連接神經(jīng)網(wǎng)絡模型
輸入層負責將有標記的訓練樣本數(shù)據(jù)中反映電力監(jiān)控系統(tǒng)行為的流量特征、系統(tǒng)日志、系統(tǒng)告警等特征樣本數(shù)據(jù)組織成輸入向量x={x1,x2,…,xn},以便后續(xù)殘差全連接層進行訓練學習,其中xj(j∈[1,n])為電力監(jiān)控系統(tǒng)行為特征數(shù)據(jù)的第j個特征值.
殘差全連接層是整個核心分類模型識別精度的根本保證,可根據(jù)需要設置多個殘差全連接層.層數(shù)越多,分類模型對電力監(jiān)控系統(tǒng)行為特征的抽取越細致,分類模型的識別精準度越高.為了解決殘差全連接層層數(shù)增加帶來的梯度消失、梯度爆炸等問題,本文采用兩級殘差結(jié)構(gòu)對輸入數(shù)據(jù)進行訓練學習.每個殘差全連接層由3個殘差全連接塊組成,第3個殘差全連接塊的輸入由第1個殘差全連接塊的輸入與第2個殘差全連接塊的輸出共同構(gòu)成;每個殘差全連接塊由3個隱含層和1個批標準化(batch normalization,BN)層構(gòu)成,第3隱含層的輸入由第1隱含層的輸入與第2隱含層的輸出共同構(gòu)成(見圖2).兩級殘差結(jié)構(gòu)的使用可以使訓練樣本數(shù)據(jù)蘊含的信息在全連接神經(jīng)網(wǎng)絡隱含層之間更加充分地進行交互,從而避免有效信息在隱含層之間傳遞過程中被夸大或隱瞞.
圖2 殘差全連接塊結(jié)構(gòu)圖
殘差全連接塊中第1隱含層的計算公式為
(5)
式中,向量x為第1隱含層的輸入向量,可以來自整個殘差全連接神經(jīng)網(wǎng)絡模型的輸入層,也可以來自鄰居殘差全連接塊的輸出;w[i]、b[i]、a[i]分別為第i隱含層的權(quán)重矩陣、偏置向量和輸出向量;z[i]為第i隱含層對其輸入向量進行線性連接操作的輸出向量;BN(·)為對輸入?yún)?shù)進行歸一化處理的函數(shù);O為經(jīng)過BN層進行歸一化處理后的輸出向量,并作為該殘差全連接塊的輸出向量提供給下一層做進一步的特征抽象處理;leaky_ReLU(f)為激活函數(shù),實現(xiàn)對輸入?yún)?shù)f的非線性轉(zhuǎn)換,即
(6)
與其他激活函數(shù)相比,該激活函數(shù)既具有非線性函數(shù)的處理效果,又具有線性函數(shù)收斂速度較快的優(yōu)勢,還能夠避免出現(xiàn)反向傳播梯度消失問題.
訓練樣本數(shù)據(jù)具有一定的波動性,如果不加處理,層與層之間的訓練存在級聯(lián)關(guān)系,相互影響較大,從而導致訓練過程出現(xiàn)震蕩現(xiàn)象,模型無法快速收斂.通過在每個殘差全連接塊內(nèi)增加1個BN層[14],對輸出數(shù)據(jù)做歸一化處理,可以使每個殘差全連接塊的輸出數(shù)據(jù)在[-1,1]區(qū)間內(nèi)波動,削弱了殘差全連接塊之間的級聯(lián)影響,使得各殘差全連接塊能夠相對獨立地進行訓練,從而加快整個分類模型的收斂速度.
輸出層根據(jù)殘差全連接層的輸出結(jié)果,分別計算訓練樣本數(shù)據(jù)與電力監(jiān)控系統(tǒng)異常行為和正常行為的對應值并輸出,計算公式為
P=woutα[h]+bout
(7)
式中,α[h]為第h個殘差全連接層的輸出向量;wout為輸出層的權(quán)重矩陣;bout為輸出層的偏置向量;P={P0,P1},其中P0、P1分別為電力監(jiān)控系統(tǒng)異常行為和正常行為的對應值.
Softmax層根據(jù)輸出層的計算結(jié)果,計算訓練樣本數(shù)據(jù)中的每一條記錄分別對應電力監(jiān)控系統(tǒng)異常行為和正常行為的概率值并輸出.由于輸出層得到的訓練樣本數(shù)據(jù)與電力監(jiān)控系統(tǒng)異常或正常行為對應值Pk(k∈{0,1})的取值范圍均為(-∞,+∞),為了得到對應每個行為類別的概率值,先通過ePk將對應值映射到(0,+∞),然后再歸一化到(0,1),其計算公式為
(8)
式中,S0表示輸入的訓練樣本數(shù)據(jù)中每一條電力監(jiān)控系統(tǒng)行為數(shù)據(jù)對應異常行為的概率值;S1表示其對應正常行為的概率值.
為了衡量分類模型的分類準確性,需要綜合評價模型各層在各自權(quán)重矩陣w和偏置向量b作用下訓練T中m條樣本數(shù)據(jù)時產(chǎn)生的平均損失值.平均損失值越小,模型的分類準確性就越高.本文選取交叉熵函數(shù)作為損失函數(shù),即
(9)
整個模型的訓練過程為,采用反向傳播的梯度下降法進行優(yōu)化調(diào)整,找到每層最佳的(w,b)組合,使得整個分類模型的平均損失值L(w,b)最小.
對于半監(jiān)督學習方法而言,用于訓練的有標記樣本數(shù)據(jù)規(guī)模較小,雖然能夠降低標記訓練樣本數(shù)據(jù)所產(chǎn)生的開銷,但是往往會導致分類器的識別準確率較低.集成分類則可以將一定數(shù)量具有差異性的弱分類器通過集成學習訓練成一個強分類器.因此,本文以兩級殘差全連接神經(jīng)網(wǎng)絡模型為核心分類模型,選取不同的訓練樣本特征子空間、訓練樣本子集、殘差全連接層層數(shù)進行多種組合,采用混合擾動的方法對核心分類模型進行離線訓練,生成多個具有差異性的成員分類器G(x).在構(gòu)建成員分類器時,要確保生成的成員分類器對相同電力監(jiān)控系統(tǒng)行為數(shù)據(jù)的類型識別結(jié)果具有一定差異性,從而提升在對成員分類器進行集成學習時進行集體決策的準確性.基于混合擾動的成員分類器構(gòu)造算法見算法1.
算法1 基于混合擾動的成員分類器構(gòu)造算法
輸入:表征電力監(jiān)控系統(tǒng)行為的特征指標集D={d1,d2,…,dn},訓練樣本T.
輸出:成員分類器集合Gall(x).
Gall(x) =?;
foru=1 toN
{從特征指標集D中隨機選取q項特征指標,生成特征指標子集Du;
forv=1 toM
{從訓練樣本T中隨機選取60%的訓練樣本數(shù)據(jù),生成訓練樣本子集Tv;
根據(jù)特征指標子集Du,對訓練樣本子集Tv進行投影,得到與特征指標子集Di對應的樣本子集Tuv;
構(gòu)建W個殘差全連接層數(shù)兩兩不同的兩級殘差全連接神經(jīng)網(wǎng)絡模型F1,F(xiàn)2,…,F(xiàn)W;
forl=1 toW
}
}
}
在成員分類器生成后,采用加權(quán)多數(shù)表決法將多個識別能力較弱的成員分類器線性組合成一個識別能力較強的集成分類器.
首先,基于相同的測試樣本數(shù)據(jù)集,分別計算訓練后每一個成員分類器的分類誤差率.第k個成員分類器Gk(x)的分類誤差率rk為分類錯誤的測試樣本數(shù)據(jù)條數(shù)與測試樣本數(shù)據(jù)總條數(shù)的比值,則第k個成員分類器Gk(x)的投票表決權(quán)重ck為
(10)
成員分類器的分類誤差率越小,說明識別結(jié)果越可靠,則相應的投票權(quán)重就越大;反之,投票權(quán)重越小.
然后,基于投票表決權(quán)重將多個成員分類器線性組合成一個強分類器G(x),即
(11)
式中,K為組成強分類器的成員分類器個數(shù).式(11)的意義是將所有成員分類器對電力監(jiān)控系統(tǒng)行為樣本數(shù)據(jù)x的識別結(jié)果(即將其判斷為電力監(jiān)控系統(tǒng)正常行為和異常行為的概率值)分別乘以該成員分類器的投票表決權(quán)重,再將所有成員分類器判斷其屬于某一種行為的概率值分別進行線性累加,取累加結(jié)果最大值對應的電力監(jiān)控系統(tǒng)行為類型作為識別結(jié)果輸出.
為了進一步挖掘無標記的電力監(jiān)控系統(tǒng)行為樣本數(shù)據(jù)中蘊含的行為特征,可利用生成的集成分類器對無標記樣本數(shù)據(jù)進行分類識別,根據(jù)設定的概率閾值和識別結(jié)果對相應的無標記樣本數(shù)據(jù)進行自動標記,形成新增訓練樣本集,再將其作為有標記的訓練樣本對集成分類器進行增量學習,強化各成員分類器的識別能力,從而進一步提升集成分類器的識別準確率.在進行增量學習過程中,若每次只對單個訓練樣本進行學習,則會導致分類模型更新頻繁,不易收斂.因此,本文在對無標記樣本數(shù)據(jù)進行增量學習時,采用Minibatch優(yōu)化方法[15],每次新增訓練樣本數(shù)量達到一定規(guī)模時才對成員分類器進行增量學習訓練,從而避免單個訓練樣本的隨機性對增量學習造成影響,具體學習過程見圖3.
圖3 基于無標記樣本數(shù)據(jù)的增量學習
基于殘差全連接神經(jīng)網(wǎng)絡的電力監(jiān)控系統(tǒng)異常行為檢測過程主要分為數(shù)據(jù)采集、模型訓練、行為識別3個環(huán)節(jié)(見圖4).
圖4 電力監(jiān)控系統(tǒng)異常行為檢測過程
在數(shù)據(jù)采集階段,主要采集能夠反映電力監(jiān)控系統(tǒng)異常行為的流量特征、系統(tǒng)日志、系統(tǒng)告警等系統(tǒng)行為原始數(shù)據(jù),一方面用于構(gòu)建分類模型學習所用的訓練樣本數(shù)據(jù),另一方面用于生成系統(tǒng)行為識別樣本數(shù)據(jù).
在模型訓練階段,對已積累的歷史行為原始數(shù)據(jù)進行清洗,刪除含有缺失值和異常值的記錄,并進行歸一化等數(shù)據(jù)預處理操作,選取部分預處理后的數(shù)據(jù)進行人工標記,構(gòu)建訓練分類模型所需的訓練樣本數(shù)據(jù).然后,對基于混合擾動方法構(gòu)建的若干成員分類器進行訓練和學習,采用加權(quán)多數(shù)表決的方式,根據(jù)設定的概率閾值和識別結(jié)果,對無標記的樣本數(shù)據(jù)進行增量學習,最終生成分類識別能力較強的集成分類器.
在行為識別階段,對實時采集的反映電力監(jiān)控系統(tǒng)行為的流量特征、系統(tǒng)日志、系統(tǒng)告警等原始數(shù)據(jù)進行清洗,刪除含有缺失值和異常值的記錄,進行歸一化等數(shù)據(jù)預處理操作,生成電力監(jiān)控系統(tǒng)行為識別樣本數(shù)據(jù),通過預先離線訓練構(gòu)建的集成分類器對電力監(jiān)控系統(tǒng)異常行為進行在線識別.若識別結(jié)果判斷為異常行為,則向系統(tǒng)管理員發(fā)出告警.
為了驗證本文方法的性能,通過實驗從模型檢測準確率和模型收斂速度2個方面,分別與決策樹模型、多SVM協(xié)同學習模型、淺層人工神經(jīng)網(wǎng)絡模型、基于Adam優(yōu)化的全連接神經(jīng)網(wǎng)絡模型進行對比分析.其中,實驗數(shù)據(jù)采用國網(wǎng)江蘇省電力有限公司南京供電分公司電力調(diào)度控制中心提供的經(jīng)脫密處理的包含流量特征、系統(tǒng)日志、系統(tǒng)告警等信息的電力監(jiān)控系統(tǒng)行為原始數(shù)據(jù)集,具體采用的特征指標集見表1.經(jīng)過預處理后選擇1×105條數(shù)據(jù),分別按照5%、10%、15%、20%、25%、30%的比例進行樣本數(shù)據(jù)標記,構(gòu)成5個不同的訓練樣本集,選擇5 000條數(shù)據(jù)并全部進行樣本數(shù)據(jù)標記構(gòu)成測試樣本集.采用TensorFlow、SKlean、Numpy等機器學習開源框架構(gòu)建上述各種機器學習模型.本文方法的核心分類模型采用3層殘差全連接層.實驗硬件環(huán)境為英特爾Core i7-3770(四核)、16 GB內(nèi)存、Windows 7平臺.
表1 實驗采用的特征指標集
圖5給出了不同標記數(shù)據(jù)規(guī)模下模型檢測準確率的對比結(jié)果.由圖可知,在不同樣本標記規(guī)模情況下,本文方法的異常行為檢測準確率最高.究其原因在于,該方法將基于殘差思想的深度學習模型與半監(jiān)督學習方法相結(jié)合,前者具有較深的網(wǎng)絡層次保證,可以學習到更加細致的系統(tǒng)行為特征信息,后者則增加了基于無標記樣本數(shù)據(jù)的增量學習功能,降低了對標記樣本數(shù)據(jù)的需求,同時強化了各成員分類器的識別能力.
圖5 不同標記數(shù)據(jù)規(guī)模下模型檢測準確率對比
圖6給出了標記數(shù)據(jù)比例為20%時模型訓練收斂速度的對比結(jié)果.由圖可知,基于Adam優(yōu)化的全連接神經(jīng)網(wǎng)絡模型的收斂速度較慢,在訓練開始20 min內(nèi),模型的檢測準確率始終在85%左右波動;訓練28 min后,模型檢測準確率才達到90%以上,且訓練過程中模型準確率出現(xiàn)較大波動.而本文方法在訓練開始6 min后,模型檢測準確率便超過90%;訓練過程中,檢測準確率未出現(xiàn)較大波動,且始終高于基于Adam優(yōu)化的全連接神經(jīng)網(wǎng)絡模型.這說明本文方法引入的殘差思想和BN層能夠有效解決梯度消失、梯度爆炸、數(shù)據(jù)波動等問題,使模型訓練收斂速度更迅速.
圖6 標記數(shù)據(jù)比例為20%時模型訓練收斂速度對比
1) 為了提升電力監(jiān)控系統(tǒng)的安全防護能力,本文將深度學習模型與半監(jiān)督學習方法相結(jié)合,引入殘差思想,提出了一種基于殘差全連接神經(jīng)網(wǎng)絡的電力監(jiān)控系統(tǒng)異常行為檢測方法,實現(xiàn)電力監(jiān)控系統(tǒng)異常行為的快速、準確識別,同時降低了對訓練樣本數(shù)據(jù)進行人工標記的開銷.
2) 采用混合擾動方法,基于兩級殘差全連接神經(jīng)網(wǎng)絡模型構(gòu)建具有差異性的成員分類器集群.在利用有標記樣本數(shù)據(jù)進行離線集成學習的基礎上,通過加權(quán)多數(shù)表決法,根據(jù)無標記訓練樣本數(shù)據(jù)對集成分類器進行增量學習,強化各成員分類器的識別能力,從而進一步提升集成分類器的識別準確率.
3) 實驗結(jié)果表明,本文方法在無需對所有訓練樣本數(shù)據(jù)進行人工標記的情況下,其檢測準確率和模型訓練收斂速度明顯優(yōu)于其他已有方法.