徐佳,賀渝鑌,李潤(rùn)玲
(1.中國(guó)南方電網(wǎng)云南電網(wǎng)昆明供電局,云南 昆明 650000;2.昆明東電科技有限公司網(wǎng)絡(luò)空間安全事業(yè)部,云南 昆明 650000)
隨著計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)的快速發(fā)展與普及,數(shù)據(jù)采集系統(tǒng)(Supervisory Control and Data Acquisition,SCADA)等工業(yè)控制設(shè)備逐漸被引入到電力系統(tǒng)的日常生產(chǎn)中[1-3]。近年來(lái),在廣泛應(yīng)用IP 協(xié)議的背景下,電力SCADA 系統(tǒng)遭受大量的攻擊,造成了較多無(wú)法挽回的經(jīng)濟(jì)損失。因此如何對(duì)其網(wǎng)絡(luò)運(yùn)行狀態(tài)進(jìn)行精確的安全評(píng)估,成為了電力系統(tǒng)設(shè)計(jì)者亟需解決的重要問(wèn)題。針對(duì)這一問(wèn)題的研究,國(guó)內(nèi)外學(xué)者曾給出了一些具有借鑒意義的解決方法[4-7],即利用風(fēng)險(xiǎn)評(píng)估模型進(jìn)行必要的分析與預(yù)測(cè)。例如,文獻(xiàn)[8]提出使用折中圖或漏洞樹(shù)的方法,從概率的角度評(píng)估系統(tǒng)受攻擊的可能性。然而該方法的評(píng)估過(guò)程存在較大的主觀因素,難以得到客觀中立的評(píng)估結(jié)果;文獻(xiàn)[9]通過(guò)引入專業(yè)數(shù)據(jù)庫(kù)、風(fēng)險(xiǎn)模板與風(fēng)險(xiǎn)分析技術(shù),提供了定性與定量分析電力系統(tǒng)的自動(dòng)工具。但該種工具的評(píng)估過(guò)程復(fù)雜度較高,其應(yīng)用范圍具有一定的局限性。
針對(duì)電力系統(tǒng)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估問(wèn)題,文中詳細(xì)介紹與分析了高斯過(guò)程的主要原理。利用人工蜂群算法對(duì)高斯過(guò)程的超參數(shù)進(jìn)行最大程度的優(yōu)化與改進(jìn),從而提出網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估模型的執(zhí)行流程及實(shí)現(xiàn)方法?;贛atlab軟件,文中利用大量的測(cè)試數(shù)據(jù)對(duì)該模型進(jìn)行必要的仿真與測(cè)試。相應(yīng)結(jié)果表明,與遺傳算法相比,基于人工蜂群算法的評(píng)估模型具有更低的時(shí)間復(fù)雜度和更高的評(píng)估精度。
從廣義角度上,高斯過(guò)程(Gaussian Process)可被視為一種基于貝葉斯分析思想的機(jī)器學(xué)習(xí)方法。從數(shù)學(xué)角度上,高斯過(guò)程是一種隨機(jī)過(guò)程,由多個(gè)服從高斯分布的隨機(jī)變量組合而成。由于具有較少的參數(shù),且其超參數(shù)可由自適應(yīng)函數(shù)獲取,所以高斯過(guò)程被應(yīng)用于網(wǎng)絡(luò)安全的風(fēng)險(xiǎn)評(píng)估模型中,其詳細(xì)介紹如下[10-11]。
假設(shè)存在訓(xùn)練樣本集合R=(x,y),其中x=(x1,…,xn)是包含n項(xiàng)數(shù)據(jù)的輸入向量,且任意第i個(gè)分量xi均服從高斯分布,y是高斯過(guò)程的輸出值。此外,令g(x)表示訓(xùn)練樣本輸入數(shù)據(jù)的函數(shù),δ表示系統(tǒng)噪聲,服從高斯分布,即。則輸出y與輸入x之間存在以下的關(guān)系,如式(1)所示。
設(shè)高斯過(guò)程的均值函數(shù)是m(x),協(xié)方差函數(shù)為c(x,x'),令E表示期望函數(shù),則這兩者的基本定義,如下式所示:
利用均值與協(xié)方差函數(shù),文中即可給出高斯過(guò)程的準(zhǔn)確定義,如式(4)所示:
在具體的計(jì)算過(guò)程中,均值函數(shù)通常被設(shè)置為0,協(xié)方差函數(shù)直接影響高斯過(guò)程的預(yù)測(cè)與評(píng)估結(jié)果。因此文中選取了無(wú)限可微的高斯核函數(shù),作為高斯過(guò)程的協(xié)方差函數(shù),其具體形式如下。
其中,xp與xq分別表示兩項(xiàng)不同的輸入數(shù)據(jù),σg與σδ分別表示函數(shù)g(x)和噪聲δ的標(biāo)準(zhǔn)差,s表示高斯過(guò)程中的R維關(guān)聯(lián)超參數(shù),其數(shù)值越大,輸入與輸出之間的相關(guān)性則越小。χpq表示Kronecker 符號(hào),若p=q,則χpq=1;否則,χpq=0。通常在高斯過(guò)程中,函數(shù)g(x)的標(biāo)準(zhǔn)差σg、噪聲δ的標(biāo)準(zhǔn)差σδ以及衡量輸入和輸出之間相關(guān)性的關(guān)聯(lián)超參數(shù)s,被統(tǒng)稱為高斯過(guò)程的超參數(shù),即θ=(s,σg,σδ),其維度為R+2。
為實(shí)現(xiàn)精準(zhǔn)的預(yù)測(cè),高斯過(guò)程需要進(jìn)行一定數(shù)量的訓(xùn)練。在此過(guò)程中,由于噪聲δ與函數(shù)g是相互獨(dú)立的高斯分布變量,所以輸出y也服從高斯分布,如式(6)所示。
其中,c(xp,xq)表示輸入xp與xq的協(xié)方差函數(shù),σδ表示噪聲標(biāo)準(zhǔn)差,而χpq表示Kronecker符號(hào)。此時(shí),設(shè)測(cè)試樣本數(shù)據(jù)為Rtest=(xtest,ftest),則觀察值yo與測(cè)試輸出值ftest的聯(lián)合先驗(yàn)分布,如式(7)所示。
其中,C(x,xtest)、C(xtest,x)和C(xtest,xtest)均為n×n維的協(xié)方差矩陣,負(fù)責(zé)評(píng)估訓(xùn)練數(shù)據(jù)x與測(cè)試數(shù)據(jù)xtest之間的相關(guān)性。利用式(6)、式(7)可得到高斯過(guò)程的預(yù)測(cè)方程與目標(biāo)方程,分別如下式所示。
為了盡量?jī)?yōu)化高斯過(guò)程的目標(biāo)函數(shù),文中隨機(jī)選取超參數(shù)的初始值,再根據(jù)相應(yīng)的預(yù)測(cè)結(jié)果,利用人工蜂群算法對(duì)超參數(shù)進(jìn)行調(diào)整與優(yōu)化,從而得到具有精準(zhǔn)預(yù)測(cè)能力的目標(biāo)函數(shù)。在此過(guò)程中,對(duì)于訓(xùn)練數(shù)據(jù)R=(x,y),其似然概率分布p(y|x)的公式,如式(11)所示。
其中,函數(shù)g與輸出y的先驗(yàn)概率分布均服從高斯分布,即g|x~N(0,σ2),y|g~N(g,σ2gχ)。超參數(shù)的邊緣似然函數(shù)logp(y|x),如式(12)所示。
2005 年,針對(duì)多變量函數(shù)的優(yōu)化問(wèn)題,Karaboga 研究小組通過(guò)觀察蜜蜂的行為,提出了群體的智能優(yōu)化算法,即人工蜂群算法。其主要原理是利用多個(gè)體的局部尋優(yōu)動(dòng)作,獲取全局的最優(yōu)解。這種算法具有較少的控制參數(shù)、較快的收斂速度與較強(qiáng)的穩(wěn)定性等多種優(yōu)點(diǎn)[12-13],所以文中引入人工蜂群算法對(duì)基于高斯過(guò)程的風(fēng)險(xiǎn)評(píng)估模型進(jìn)行優(yōu)化。
在算法運(yùn)行中,不妨設(shè)初始蜜源(初始解)XD=(x0,...,xD-1)是D維向量,且D=R+2。引入S個(gè)雇傭蜂,開(kāi)采蜜源的最大次數(shù)為tL,算法最大循環(huán)次數(shù)為MAX,f表示蜜源的適應(yīng)度函數(shù),其數(shù)學(xué)表達(dá)式,如式(13)所示。
若適應(yīng)度函數(shù)的絕對(duì)值越小,則蜜源的質(zhì)量越高。利用以上這些條件,人工蜂群算法的執(zhí)行步驟如下。
1)雇傭蜂搜索與記錄蜜源信息,并將這些信息傳送至等候的觀察蜂;
2)在收到的信息中,觀察蜂以一定的概率選擇當(dāng)前解,并搜索其附近的局部解。若局部解優(yōu)于當(dāng)前解,則局部解替代當(dāng)前解。其中,令pi表示第i個(gè)蜜源的概率結(jié)果,則觀察蜂的概率計(jì)算公式,如式(14)所示。
而利用原蜜源X、原蜜源的鄰近解X'以及處于[-1,1]之間的隨機(jī)數(shù)φ,可以得到新蜜源V的生成方法,如式(15)所示。
3)若算法的開(kāi)采次數(shù)超過(guò)MAX,則放棄當(dāng)前解。然后將雇傭蜂轉(zhuǎn)化為偵查蜂,按照式(14)的方法,偵查蜂在原蜜源X附近繼續(xù)隨機(jī)搜索新蜜源。
在電力系統(tǒng)中,高斯過(guò)程通常被用于網(wǎng)絡(luò)安全的風(fēng)險(xiǎn)評(píng)估模型中,其超參數(shù)的優(yōu)化程度較大地影響了模型的評(píng)估精度。通常而言,共軛梯度法常被用來(lái)對(duì)超參數(shù)進(jìn)行優(yōu)化。然而該種算法容易陷入局部反復(fù)循環(huán),從而難以獲取全局最優(yōu)解。為了避免這一缺點(diǎn),本文引入具有全局搜索能力的人工蜂群算法對(duì)超參數(shù)進(jìn)行優(yōu)化,從而大幅提高評(píng)估模型的精準(zhǔn)度,該模型的實(shí)現(xiàn)步驟如下。
1)初始化
在模型的初始化階段,隨機(jī)生成初始蜜源Xi=(Si,σgi,σδi,)(i=0,...,S-1),開(kāi)采蜜源的最大數(shù)量為tL=S×D,令開(kāi)采次數(shù)item=0,外層循環(huán)的最大次數(shù)設(shè)置為MAX,記錄循環(huán)次數(shù)為I=1;
2)計(jì)算適應(yīng)度函數(shù)
利用初始化后的多項(xiàng)參數(shù),以及作為蜜源的超參數(shù),建立基于高斯過(guò)程的評(píng)估模型,從而輸出優(yōu)化后的目標(biāo)值。然后,再使用式(13)計(jì)算該蜜源的適應(yīng)度值,從而評(píng)估出該超參數(shù)的質(zhì)量。
3)雇傭蜂
利用當(dāng)前蜜源與式(15)隨機(jī)生成新蜜源,基于高斯過(guò)程模型的各項(xiàng)參數(shù)計(jì)算該蜜源的適應(yīng)度函數(shù)值。若新蜜源的適應(yīng)度優(yōu)于當(dāng)前蜜源,則令新蜜源代替當(dāng)前蜜源繼續(xù)執(zhí)行算法;否則,保留當(dāng)前蜜源。此外,在跳舞階段,雇傭蜂將蜜源信息轉(zhuǎn)達(dá)至觀察蜂。
4)觀察蜂
在這一階段,觀察蜂利用獲取的蜜源信息,通過(guò)概率計(jì)算式(14)對(duì)當(dāng)前蜜源的鄰近蜜源進(jìn)行充分的開(kāi)采。然后采用式(13)隨機(jī)生成新蜜源,同時(shí)對(duì)比當(dāng)前蜜源與新蜜源的適應(yīng)度函數(shù)值,從而保存質(zhì)量較優(yōu)的蜜源信息。
5)更新開(kāi)采次數(shù)
若在步驟4)中選擇新蜜源作為當(dāng)前蜜源信息,則令開(kāi)采次數(shù)item=0;否則,開(kāi)采次數(shù)item=item+1。
6)偵查蜂與條件判斷
經(jīng)過(guò)多次的開(kāi)采,當(dāng)前蜜源的鄰近蜜源信息接近耗盡,即蜜源質(zhì)量難以提高。當(dāng)蜜源開(kāi)采次數(shù)item<tL時(shí),若循環(huán)次數(shù)I≥MAX,則結(jié)束整個(gè)人工蜂群算法,并輸出最終超參數(shù)值;若I<MAX,則繼續(xù)開(kāi)采蜜源信息。當(dāng)蜜源開(kāi)采次數(shù) item≥tL,則隨機(jī)生成新蜜源,重置開(kāi)采次數(shù)item,同時(shí)拋棄當(dāng)前蜜源,跳轉(zhuǎn)至步驟(2);
7)建立模型
利用優(yōu)化后的超參數(shù)與訓(xùn)練數(shù)據(jù),在高斯過(guò)程的基礎(chǔ)上形成網(wǎng)絡(luò)安全的風(fēng)險(xiǎn)評(píng)估模型。
為了建立精準(zhǔn)的風(fēng)險(xiǎn)評(píng)估模型,上述多個(gè)步驟需要在一定的條件下重復(fù)運(yùn)行,所以需要制定相應(yīng)的流程對(duì)這些步驟進(jìn)行精準(zhǔn)的控制。該模型的具體流程,如圖1 所示。
圖1 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估模型流程
為了驗(yàn)證本文提出模型的有效性,在同樣的初始值和輸入等仿真條件下,利用Matlab r2016a 軟件,文中分別基于遺傳算法(Genetic Algorithm)與基于人工蜂群算法的風(fēng)險(xiǎn)評(píng)估模型進(jìn)行多次仿真與實(shí)驗(yàn),并統(tǒng)計(jì)這兩種模型的時(shí)間復(fù)雜度和評(píng)估準(zhǔn)確度。
為了客觀地評(píng)估模型的時(shí)間復(fù)雜度與評(píng)估準(zhǔn)確度,文中在這兩種模型的算法程序中,設(shè)置了相同的基本參數(shù)。具體情況,如表1 所示。
表1 模型仿真程序參數(shù)設(shè)計(jì)
在仿真過(guò)程中,ABC 表示基于人工蜂群算法的評(píng)估模型,GA 表示基于遺傳算法的評(píng)估模型。此外,文中分別選取了150 項(xiàng)訓(xùn)練數(shù)據(jù)與70 項(xiàng)的測(cè)試數(shù)據(jù),從時(shí)間復(fù)雜度與評(píng)估精確度角度對(duì)這兩種模型進(jìn)行反復(fù)的實(shí)驗(yàn)與對(duì)比。需要說(shuō)明的是,本文使用了適應(yīng)度函數(shù)衡量模型的評(píng)估準(zhǔn)確度,而時(shí)間復(fù)雜度由所耗費(fèi)時(shí)間進(jìn)行衡量。其具體統(tǒng)計(jì)結(jié)果,如圖2、圖3 所示。
圖2 兩種評(píng)估模型的時(shí)間復(fù)雜度統(tǒng)計(jì)結(jié)果
圖3 兩種評(píng)估模型的評(píng)估精確度統(tǒng)計(jì)結(jié)果
在圖2 中,橫軸表示評(píng)估模型的運(yùn)行次數(shù),縱軸表示模型所耗時(shí)間,單位為s。虛線與實(shí)線分別記錄了基于遺傳算法和人工蜂群算法的評(píng)估模型,在不同評(píng)估次數(shù)時(shí)所耗時(shí)間。由曲線的走勢(shì)可知,在評(píng)估次數(shù)<5000 時(shí),人工蜂群算法所耗時(shí)間略小于遺傳算法。而當(dāng)評(píng)估次數(shù)不斷增加,人工蜂群算法所耗時(shí)間明顯小于遺傳算法。這說(shuō)明,基于人工蜂群算法的評(píng)估模型的時(shí)間復(fù)雜度更低。
與圖2 類似,在圖3 中橫軸表示評(píng)估模型的運(yùn)行次數(shù),縱軸表示模型最終解的適應(yīng)度函數(shù)值,虛線表示基于遺傳算法的評(píng)估模型,實(shí)線表示本文所提出的模型。由圖3 可知,在初始解相同的情況下,當(dāng)兩種模型的運(yùn)行次數(shù)相同時(shí),文中所提模型得出的最優(yōu)超參數(shù)的適應(yīng)度函數(shù)值嚴(yán)格小于基于遺傳算法的評(píng)估模型,這表明本文評(píng)估模型的評(píng)估準(zhǔn)確度更高。
綜上所述,與經(jīng)典的遺傳算法模型相比,基于人工蜂群算法的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估模型,具有更低的時(shí)間復(fù)雜度與更高的評(píng)估準(zhǔn)確度。
本文綜合人工蜂群算法與高斯過(guò)程的相關(guān)理論,提出了適用于電力系統(tǒng)、且具有較低時(shí)間復(fù)雜度與較高評(píng)估精度的網(wǎng)絡(luò)安全評(píng)估模型,Matlab 軟件的仿真結(jié)果直接證明了該模型的有效性與優(yōu)越性。然而由于尚未在電力系統(tǒng)進(jìn)行測(cè)試驗(yàn)證,所以該模型可能仍存在一定的缺陷與不足。例如,該模型的魯棒性表現(xiàn)仍缺乏測(cè)試環(huán)境和條件限制。在未來(lái)的工作中,將致力于實(shí)際工程測(cè)試、完善與推廣該模型的算法設(shè)計(jì)。