王競才,李琰,徐天奇
(云南民族大學云南省高校電力信息物理融合系統重點實驗室,昆明市650504)
隨著智能電網的發(fā)展以及能源互聯網戰(zhàn)略的提出,傳統的電網已逐漸發(fā)展成為電力信息物理系統(cyber-physical power system,CPPS)。其中信息系統在電力系統的運行監(jiān)控、實時調度等方面發(fā)揮著重要的作用。然而,與所有的信息物理系統一樣,信息系統的網絡設施(傳感器、執(zhí)行器等)可能會成為網絡攻擊的潛在目標[1-2]。近年來真實的案例是烏克蘭電網在2015年和2016年連續(xù)遭受了2次網絡攻擊,造成了巨大的經濟損失和社會動蕩[3]。這些事件表明攻擊者實施的網絡攻擊會對CPPS產生巨大的威脅。因此,維護CPPS的網絡安全已經成為一個亟待解決的問題。
眾多的網絡攻擊中,虛假數據注入攻擊(false data injection attack,FDIA)是通過對電力系統中網絡節(jié)點進行控制,向系統注入虛假數據,從而達到破壞信息完整性的目的。文獻[4]證明了精心設計的虛假數據可以繞過基于殘差的壞數據檢測(bad data detection,BDD),因此這種攻擊能夠躲避攻擊檢測機制,隱蔽性極高。根據攻擊者的攻擊目標不同,FDIA可以分為以下4類:1)對電力系統的狀態(tài)估計進行攻擊,誘導調度員做出錯誤決策[5-6];2)對電力系統實施物理攻擊,并發(fā)動FDIA對其實施的攻擊行為進行掩蓋[7-8];3)經濟方面的攻擊,從電力市場獲取非法利潤[9-10];4)攻擊CPPS的相關應用(如相量測量單元、監(jiān)控與數據采集系統、廣域測量系統等)[11-12]。其中第一類FDIA又被稱為負荷再分配攻擊(load redistribution attack,LRA),一旦成功,會干擾系統的安全約束經濟調度(security-constrained economic dispatch,SCED),使系統進入不經濟的運行模式,甚至使一些線路出現過載現象,具有很強的破壞力,因此本文針對第一類FDIA展開研究。
文獻[13]通過分析CPPS 中信息系統與物理系統的深層次耦合關系構建了實時仿真平臺來研究攻擊對CPPS的影響。文獻[14]構建了基于FDIA的三層優(yōu)化模型,以最小的虛假數據注入量為目標,仿真結果驗證了攻擊可以誤導調度中心做出錯誤決策使某些線路過載,并且從防御者的角度提出一種遞歸最小平方估計檢測法來防御FDIA。文獻[15]采用圖論的方法建立了線路間的聯系,提出的方法可以有效地找出系統中遭受FDIA的脆弱線路集。不同于離散的單一的FDIA,文獻[16]提出了一種連續(xù)的FDIA,即將攻擊的時間跨度上升至一個時段,并識別出需要著重保護的線路序列。文獻[17]設計了一種稀疏攻擊策略,該策略也適用于拓撲信息不完整的情況。文獻[18]提出一種貪心算法來快速地找到最佳攻擊向量,并根據找到的關鍵線路來為每條線路設置一個安全閾值,用來檢測FDIA。文獻[19]建立了調度員和攻擊者之間的博弈模型,提出了一種基于博弈論的關鍵測量設備的分階段動態(tài)防御方法。文獻[20]提出一種擴大電力系統經濟損失的FDIA,結果表明,所提方法可以在繞過BDD的情況下增加電力系統的運行成本。文獻[21]利用貝葉斯圖論定量分析了攻擊對于信息網絡以及配電網系統運行安全的影響。
為了抵御FDIA,配備完整的保護系統元件是不切實際的,因此防御者們可以著重關注系統中的脆弱線路來進行保護,即防止脆弱線路上的數據被篡改,從而達到將有限的防御資源集中在小部分電網元件的目的。
基于此,本文提出一種雙層FDIA模型,上層模型以攻擊者的角度,使目標線路的潮流可以達到最大值,下層模型采用SCED模型,模擬調度員根據經狀態(tài)估計后的量測數據進行優(yōu)化調度,并利用卡羅需-庫恩-塔克 (Karush-Kuhn-Tucker,KKT)條件將雙層模型轉換為單層模型后求解;提出一種快速篩選法來找出易受到FDIA的脆弱線路;基于找出的脆弱線路,識別出在FDIA下可能具有同時跳閘風險的一組線路集,幫助防御者對電力系統的安全進行更深入的風險評估。
為了簡化問題突出重點,本文分析FDIA時基于以下假設:1)攻擊者了解系統的結構和參數;2)攻擊者可以入侵電力系統中廣泛分布的測量表計,達到修改讀數的目的。這些假設基于以下原因:
1)這些假設在以往的文獻[14-18]中得到了嚴格的證明和廣泛的應用。
2)本文旨在分析在最壞的情況下,FDIA對系統造成的影響,以充分揭示FDIA的攻擊機制以及評估現有電力系統面對此類攻擊的脆弱性。
3)近年來針對電網的網絡攻擊行為[3]也證明了此類假設的合理性。
圖1展示了攻擊者發(fā)動FDIA的完整流程。攻擊者想要發(fā)動一次成功的FDIA,首先會干擾式(1)中的狀態(tài)估計?;谥绷鞒绷鞯木€性狀態(tài)估計在計算速度上具有明顯的優(yōu)勢,誤差很小[4,14,18,20],并且文獻[22]指出,攻擊者使用直流潮流進行計算,將攻擊應用于交流系統可能也會造成損失。所以本文從攻擊者的視角,使用相對易被攻擊者獲得的線性狀態(tài)估計來代替非線性狀態(tài)估計。
圖1 FDIA流程圖Fig.1 Flow chart of FDIA
(1)
式中:z是量測量;H是量測雅可比矩陣,由系統的結構決定;x是狀態(tài)量;e是誤差。
文獻[4]證明了當注入的虛假數據滿足式(2)時,攻擊向量Δz可以繞過BDD的檢測。
Δz=Hc
(2)
式中:c是任意向量。
因此,攻擊者制定攻擊策略時,必然會加入式(2)的約束條件。成功繞過BDD后,攻擊者注入的虛假數據會掩蓋真實的系統狀態(tài),進而影響調度員的決策行為,使電網進入不安全的運行狀態(tài)。
由圖1可看出,在整個FDIA過程中,參與方有攻擊者和調度員,因此本文提出一種雙層規(guī)劃模型,其中上層代表了攻擊者的攻擊策略,下層代表了調度員針對此攻擊策略所做出的響應,如圖2所示。需要注意的是,此時調度員所做出的決策是基于攻擊者精心策劃的虛假數據,因此,在真實的電力系統里可能會存在線路過載現象,而本文旨在尋找存在過載風險的脆弱線路。
圖2 雙層攻擊模型原理圖Fig.2 Schematic diagram of the bi-level attack model
對于系統中任意一條編號i的線路Li,上層模型將該線路上流經的功率與線路容量的比值最大作為目標函數:
(3)
約束條件如式(4)—(11)所示。約束式(4)—(5)通過引入0-1變量來計算攻擊者需要入侵的節(jié)點和線路:
(4)
(5)
式中:δn和vl是0-1變量,分別表示在節(jié)點n和線路l攻擊所需修改的量測量的數量;ΔPd(n)表示攻擊者在節(jié)點n的注入向量;ΔPF(l)表示攻擊者在線路l的注入向量;D表示節(jié)點集合;L表示線路集合。約束式(6)限制了攻擊者可以修改的量測量的數量:
(6)
式中:Nn和NL分別是節(jié)點和線路量測量的總數量;K是攻擊成本,限制了單次攻擊所能修改的量測量的數量。約束式(7)限制了對量測量的修改程度:
-τPd≤ΔPd≤τPd
(7)
式中:τ是一個常數,用于限制每個節(jié)點的修改幅度;Pd是負荷的正常功率;ΔPd是攻擊者的節(jié)點注入向量。約束式(8)通過限制注入的攻擊向量之和為0來確保功率平衡:
bTΔPd=0
(8)
式中:b是元素全為1的列向量。約束式(9)表示注入的節(jié)點虛假數據和線路虛假數據之間的關系:
ΔPF=-AΔPd
(9)
式中:A是系統的轉移因子矩陣;ΔPF是攻擊者的線路注入向量。根據1.1節(jié),約束式(10)確保了注入的攻擊向量不會被BDD檢測出來:
ΔPd=Hc
(10)
約束式(11)是系統的功率方程:
PF=A(Pg-Pd)
(11)
式中:PF是線路潮流;Pg是發(fā)電機的出力。
一旦一個虛假數據成功注入到系統內,便會干擾正常的SCED,所以本文將下層設置為一個SCED模型,將發(fā)電機組的發(fā)電成本最小作為目標函數:
(12)
式中:f為目標函數,以發(fā)電成本最小為目標;cg是發(fā)電機的成本函數。
約束條件如式(13)—(16)所示。為了方便說明,本文將約束條件的拉格朗日乘子放于約束條件的后面。約束式(13)是經虛假數據注入后的系統方程:
(13)
(14)
式中:λ是式(14)的拉格朗日乘子。約束式(15)將線路潮流限制在安全范圍內:
(15)
(16)
首先對模型中的一些約束條件進行處理,式(4)—(5)可以轉化為如下形式:
-τPd(n)δn≤ΔPd(n)≤τPd(n)δn
(17)
-Mvl≤ΔPF(l)≤Mvl
(18)
式中:M是一個極大的數。
考慮到雙層模型的求解復雜度,本文將下層模型進行KKT條件轉化,從而將雙層模型轉化為單層求解,轉化之后的優(yōu)化模型目標函數為式(3),約束條件為式(17)、式(18)、式(6)—(11)、式(13)—(16),以及式(19)—(31)。式(13)—(16)是原問題可行條件;式(19)—(21)是對偶可行條件;式(22)—(31)是利用大M法線性化后的互補松弛條件。
(19)
(20)
(21)
式中:a是元素全為0的列向量。
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
經KKT條件轉化后,雙層模型轉變?yōu)閱螌拥幕旌险麛稻€性規(guī)劃(mixed integer linear programming,MILP),可以利用較成熟的MILP求解器如CPLEX求解。
在第1節(jié)中,本文提出了關于FDIA的雙層攻擊模型,并以目標線路的潮流最大為目標,目的是找出系統中存在過載風險的脆弱線路。定義脆弱線路集Ω如下:
(32)
式中:Γ是判斷是否屬于脆弱線路的閾值。
在以往的研究中尋找脆弱線路的方法以遍歷法為主,即通過測試整個系統的線路來尋找脆弱線路集[23-25],利用遍歷法尋找FDIA下的脆弱線路如算法1所示:
1)輸入i=1、空集Ω以及線路總數m;
2)判斷i是否大于m,若大于,則輸出Ω,停止計算;若不大于,則進入3);
3)將i代入式(32)中,判斷是否滿足,若不滿足,令i=i+1并返回2);若滿足,將i寫入Ω中,令i=i+1并返回2)。
由以上算法可以看出遍歷法通過對每條線路進行求解來判斷該線路是否屬于脆弱線路,最終得到集合Ω。
遍歷法需要計算m次雙層模型,計算量非常大,并且由于脆弱線路只是少數線路,會進行許多沒有必要的計算。考慮遍歷法的局限性,本文提出了一種基于迭代思想的快速篩選法。
當計算完成第i條線路上的最大潮流后,受影響的不僅僅是第i條線路,通過對其他線路的篩選,可能出現的情況有:
1)存在1條或多條其他線路滿足式(32);
2)無其他線路滿足式(32)。
如果是第一種情況,那么將過載最嚴重的線路Lj作為下一次迭代的目標;如果是第二種情況,則選擇最接近過載的線路Lj作為下一次迭代的目標。這一過程如式(33)所示:
(33)
根據上述迭代思路,在篩選初期可以將計算集中在脆弱線路上。此外,如果經u次篩選,結果總是非脆弱線路時,停止迭代。這一算法的實現流程如算法2所示:
1)輸入k=1、篩選閾值u、空集Ω,并將首條迭代線路編號賦值給i;
2)判斷k是否大于u,若大于,則輸出Ω,停止計算;若不大于,則進入3);
3)將i代入式(32)中,判斷是否滿足,若不滿足式(32),找出滿足式(33)的線路,作為新的i,并令k=k+1后返回2);若滿足式(32),則將i寫入Ω,并找出滿足式(33)的線路,作為新的i,然后將k重置為1后返回2)。
多線路攻擊是指發(fā)動一次FDIA可以造成多條線路過載。對于了解電網結構的攻擊者而言,多線路攻擊可以對電網造成更具破壞性的影響,因此,防御者有必要保護多線路攻擊下的關鍵線路。
搜尋多線路攻擊下的關鍵線路可以通過修改雙層攻擊模型來實現,如下所示:
max||ω||1
(34)
(35)
式中:ω是0-1變量,代表若線路Li過載則為1,否則為0。||ω||1是ω的1-范數,即過載線路的數量和。
約束條件為式(4)—(16)。
在第2節(jié)中,求得了在FDIA下所有可能過載的線路集Ω,所以多線路攻擊的關鍵線路集Ωm?Ω,因此可以在線路集Ω范圍內進行篩選,降低計算的復雜度。式(35)存在絕對值和一種對應關系,通過引入0-1變量的方式,對式(35)進行如下轉化:
(36)
式中:ωh(1),ωh(2),ωl(1),ωl(2)均是0-1變量,分別表示對支路Li功率上下限的約束。通過求解上述模型即可找出多線路攻擊下的脆弱線路。
為了驗證本文所提的雙層攻擊模型以及快速篩選法的正確性和有效性,以IEEE 39節(jié)點系統為例進行仿真。仿真的測試環(huán)境為MATLAB R2016b,硬件配置為Inter(R)Core(TM)i5-1135G7 @ 2.40GHz,內存容量為16 GB。本文提出的MILP問題通過使用CPLEX求解器進行求解。
IEEE 39節(jié)點系統的數據及結構取自MATPOWER[26],該系統有10臺發(fā)電機,21個負荷以及46條線路。假設線路上的正常潮流為線路容量的0.6倍,模型的其他預設參數:τ=0.2,K=20,Γ=1.2,u=10。
本文攻擊模型和文獻[20]模型對比結果如圖3所示。其中,本文設置以16號線路為攻擊目標,因線路太多,只截取各攻擊方式下潮流與線路容量之比排名前15的線路。結果表明,本文的攻擊方式可以造成多條線路過載,而文獻[20]的攻擊方式無法使線路過載。原因在于,文獻[20]的攻擊目的是使電網的發(fā)電成本最高,即通過FDIA使電網處于不經濟的運行狀態(tài),這種攻擊類型的缺陷在于系統不會長時間處于不經濟的運行模式,所以此類攻擊造成的損失是有限的。而根據本文模型,一旦攻擊者使得目標線路過載,目標線路可能會因保護動作而跳閘,進而有可能轉為級聯故障。此外,文獻[20]模型并沒有對可以入侵的節(jié)點數量加以限制,入侵CPPS中大部分節(jié)點來達到攻擊目的顯然不現實。
圖3 攻擊模型對比圖Fig.3 Comparison chart of attack models
在表1中,展示了使用快速迭代法來尋找脆弱線路的過程,并將初始線路定為14號線路,將找到的脆弱線路用陰影標記。可以看到,前期的計算集中在可能過載的線路上,在迭代到第20次便找出了所有脆弱線路。為了驗證快速篩選法的準確性,與算法1中所展示的遍歷法進行對比,遍歷法得到的脆弱線路集Ω為{2,6,7,16,17,21,24,31,32,36,40},這一結果與快速篩選法一致,但遍歷法需要計算46條線路,而本文只需計算30條線路,并在進行第20次計算時就已經找出了全部脆弱線路,顯著提高了計算速度。
為了驗證初值對快速篩選法的影響,在表2中,將初始線路更改為21號,共迭代了29次。與表1類似,脆弱線路往往出現在迭代的初期,在結果上與遍歷法無異,這說明本算法對初值的選取并不敏感。
表1 IEEE 39節(jié)點系統上初值選為14號線路的快速篩選法的迭代過程Table 1 The iterative process of rapid screening when the initial line is selected as 14 in IEEE 39-bus system
表2 IEEE 39節(jié)點系統上初值選為21號線路的快速篩選法的迭代過程Table 2 The iterative process of rapid screening when the initial line is selected as 21 in IEEE 39-bus system
結合上述對比,可以看出快速篩選法在計算速度、準確性以及對初值的敏感程度方面均有較好的表現。而使用快速篩選法計算出的脆弱線路后,可以通過使用抗篡改的測量設備[27]、采用先進的加密協議[28]等方式對脆弱線路進行保護。
在多線路攻擊下,攻擊結果如圖4所示。同樣僅列舉各攻擊方式下潮流與線路容量之比排名前15的線路,該攻擊會導致17號、16號、36號、2號、31號共5條線路過載。并且可以看出,在該攻擊下,有多條線路也是處于鄰近過載的狀態(tài),多線路攻擊會對系統造成嚴重的影響。因此,這5條線路也是脆弱線路集Ω中最容易遭受攻擊的線路。
圖4 多線路攻擊下各線路越限情況Fig.4 Overload phenomenon of lines under multi-line attacks
為了驗證快速篩選法針對大規(guī)模系統的有效性,在IEEE 118節(jié)點系統上進行仿真。IEEE 118節(jié)點系統有54臺發(fā)電機、99個負荷以及186條線路[26],針對規(guī)模較大的系統,將篩選閾值u設置為15,結果如表3所示。和IEEE 39節(jié)點系統相似,脆弱線路的尋找集中在了篩選的前期,迭代到60次時便找出了所有的脆弱線路,結果上與遍歷法無異,而遍歷法則需要計算186次,這表明本文提出的快速篩選法在計算速度上具有明顯的優(yōu)勢,具有應用于大規(guī)模系統的潛力。
需要注意的是,在大系統中,利用本算法搜尋脆弱線路時,相鄰脆弱線路間的迭代次數可能會增大,如從34次迭代至43次迭代期間均沒有發(fā)現脆弱線路,這是由于該系統中20號線路和156號線路相距較遠關聯性不強所導致,可以通過適當增大u來解決。
表3 IEEE 118節(jié)點系統上初值選為18號線路的快速篩選法的迭代過程Table 3 The iterative process of rapid screening when the initial line is selected as 18 in IEEE 118-bus system
本文在電網與信息網高度耦合的背景下,針對虛假數據注入攻擊做出了以下貢獻:
1)提出一種雙層FDIA模型,上層以攻擊者的角度,使目標線路的潮流可以達到最大值;下層采用SCED模型,模擬調度員根據經狀態(tài)估計后的量測數據進行優(yōu)化調度。并利用KKT條件將雙層模型轉換為單層模型后求解。
2)提出了一種快速篩選法來找出易受到FDIA的脆弱線路,具有應用于大規(guī)模系統的潛力。
3)基于找出的脆弱線路,識別出在FDIA下可能具有同時跳閘風險的一組線路集,幫助防御者對電力系統的安全進行更深入的風險評估。
本文對CPPS下虛假數據注入攻擊的研究尚處于初步探索階段,所提出的防御策略只是被動的防止脆弱線路上的數據被篡改,下一步將研究FDIA的檢測辦法以及更為具體的防御策略來保證電力系統的正常運行。