王 瑩,于波濤,張 巖
(北京中電飛華通信有限公司,北京 100070)
變電站為電網(wǎng)更穩(wěn)定和更便捷地供電提供了強大的技術支撐,但是變電站自從與網(wǎng)絡服務系統(tǒng)連接后,會受到網(wǎng)絡風險的威脅,從而產(chǎn)生較多運行漏洞,對電網(wǎng)供電穩(wěn)定性造成了影響。相關技術人員針對變電站主機運行漏洞設計了眾多的檢測方法,文獻[1]中設計一種裝設在變電站監(jiān)控主機的硬件模塊,內(nèi)部的組成構架簡單、維護方便,具有較強的可操作性,但是對一些新型的漏洞沒有識別效果。文獻[2]中針對計算機主機運行過程中經(jīng)常出現(xiàn)的漏洞問題建立離散函數(shù),具有較高的可靠性,但是檢測漏洞不具備多面化特性,容易出現(xiàn)漏洞遺漏問題。
狀態(tài)跟蹤技術可以對某一種數(shù)據(jù)進行持續(xù)性地識別,具有一定的可靠性和廣泛性,該文設計了變電站主機運行漏洞檢測方法。
變電站主機端口是漏洞數(shù)據(jù)侵入的第一場所,所以對變電站主機端口中的漏洞數(shù)據(jù)進行采集是必要的[3]。在端口中建立可以對外訪問的TCP/UDP 連接測試服務端口,該服務端口不占用變電站主機端口的內(nèi)部資源,主要為安全管理人員查詢信息提供硬件基礎[4]。變電站主機中的數(shù)據(jù)具有分散性強、跨度廣、信息量多的特點,若對內(nèi)部的數(shù)據(jù)全部進行篩選采集則會浪費大量的資源,所以需要建立一個具有獨立運行的低損耗檢測模塊,在模塊中引用Java多線程機制,通過多線程向主機中輸入多個端口中的數(shù)據(jù),然后在這些數(shù)據(jù)中設定一個漏洞數(shù)據(jù)的目標地址,確定每個端口中漏洞數(shù)據(jù)的型號,最后實現(xiàn)漏洞數(shù)據(jù)的篩選與采集[5]。
依據(jù)主機端口監(jiān)控變電站主機各設備的運行狀態(tài),當存在異常狀態(tài)時,觸發(fā)報警機制。變電站主機設備存在故障時,需要隔離設備,依據(jù)故障類型,從專家數(shù)據(jù)庫中調(diào)取恢復策略,為變電站主機調(diào)度人員提供在線安全穩(wěn)定輔助決策。通過聚類算法聚類數(shù)據(jù)采集模塊中傳感器采集的數(shù)據(jù),通過數(shù)據(jù)分析生成故障分析與處置報告,為變電站調(diào)度人員提供數(shù)據(jù)支持,降低調(diào)度人員的工作量,實現(xiàn)在線安全穩(wěn)定輔助決策。通過狀態(tài)跟蹤進行數(shù)據(jù)漏洞標識,將數(shù)據(jù)屬性分為可信數(shù)據(jù)和不可信數(shù)據(jù),分析數(shù)據(jù)安全狀態(tài),基于狀態(tài)跟蹤的數(shù)據(jù)安全狀態(tài)判定如式(1)所示:
式(1)中,s代表數(shù)據(jù)的安全狀態(tài);p代表數(shù)據(jù)狀態(tài)轉(zhuǎn)換操作;s′代表數(shù)據(jù)特征被執(zhí)行了操作后的安全狀態(tài)。數(shù)據(jù)在漏洞狀態(tài)機模型中需要對外表現(xiàn)出安全狀態(tài),從安全狀態(tài)中進一步提取安全屬性和被執(zhí)行的操作,然后再根據(jù)安全屬性和被執(zhí)行操作判斷該數(shù)據(jù)是否達到了采集范圍[6-7]。根據(jù)狀態(tài)分析完成主機所有端口的漏洞數(shù)據(jù)采集后,進入主機運行程序內(nèi)進行漏洞數(shù)據(jù)的采集[8]。
在完成追蹤狀態(tài)分析后,建立一個漏洞狀態(tài)機模型,對安全數(shù)據(jù)設定一個專屬的標識,并對相關的標識賦予相應的安全性質(zhì),所設定的主要數(shù)據(jù)標識有STO、OPP 和OPV,其中,STO 代表程序中的安全狀態(tài)轉(zhuǎn)換操作集合,集合中包含所有安全數(shù)據(jù)屬性發(fā)生變化時的操作;OPP 代表安全數(shù)據(jù)經(jīng)過狀態(tài)轉(zhuǎn)換后的一個映射內(nèi)容,其中的各種元素均有獨立的編號;OPV 代表安全數(shù)據(jù)相關屬性被執(zhí)行了某種不信任操作[9]。在漏洞狀態(tài)機模型中,通過追蹤結果,使用STO 集中一個變量的安全狀態(tài)建立一個五元組:
式(2)中,S代表安全狀態(tài)集,與STO 集合中的數(shù)據(jù)相對應;∑代表主機運行數(shù)據(jù)狀態(tài)機控制字符集合,可以用來表示STO;f代表數(shù)據(jù)狀態(tài)轉(zhuǎn)換函數(shù);s0代表數(shù)據(jù)在漏洞狀態(tài)機模型中的初始狀態(tài),可以用來代表OPV;z代表終止狀態(tài)集。因為在漏洞狀態(tài)機模型中不具備終止狀態(tài),所以該集為空集[10]。在確定了所有變電站主機運行數(shù)據(jù)的安全狀態(tài)后,利用狀態(tài)追蹤完成狀態(tài)檢測,直接在模型中進行漏洞數(shù)據(jù)的采集,采集流程如圖1 所示。
圖1 基于狀態(tài)追蹤的漏洞數(shù)據(jù)采集流程
分析數(shù)據(jù)信息,同步采集數(shù)據(jù)運行狀態(tài),記錄不同時間段數(shù)據(jù)模式,確定待采集數(shù)據(jù)的可信性。變電站主機中的數(shù)據(jù)被惡意用戶控制后的數(shù)據(jù)是不可信的,該類數(shù)據(jù)對外表現(xiàn)的是不安全狀態(tài),通過對該類數(shù)據(jù)的采集可以進一步獲取到主機運行過程中存在的更大漏洞[11]。確定數(shù)據(jù)的可信性需要判斷數(shù)據(jù)屬性中是否存在缺陷代碼,具有缺陷代碼的數(shù)據(jù)一定是不可信的,若是不存在缺陷代碼還需要對數(shù)據(jù)進行可行性標識的跟蹤,尋找數(shù)據(jù)源,判斷數(shù)據(jù)源中是否存在不可信因素,若數(shù)據(jù)源中存在不可信因素,則該數(shù)據(jù)源中所有的數(shù)據(jù)都要被采集[12]。
設定顯示模塊,通過該模塊對信息進行分析,采用狀態(tài)劃分對不可信數(shù)據(jù)進行合法性檢查,其本質(zhì)是對不可信數(shù)據(jù)的安全狀態(tài)進行合法檢查,檢查不可信數(shù)據(jù)的識別粒度,分析不可信數(shù)據(jù)的構成,設置不可信數(shù)據(jù)在采集流程中的合法性表現(xiàn),對不可信數(shù)據(jù)的實時狀態(tài)進行監(jiān)測,最后對監(jiān)測追蹤的不可信數(shù)據(jù)進行整合歸納,在不降低精準度的同時將檢查結果上傳到變電站主機終端。
在得到狀態(tài)跟蹤結果后,對不可信數(shù)據(jù)進行實時儲存。將經(jīng)過檢查并上傳的數(shù)據(jù)進行統(tǒng)計,利用模型對所有的數(shù)據(jù)進行定位,設置指引標識,指引標識中包含數(shù)據(jù)位置、安全狀態(tài)信息等內(nèi)容,通過指引標識進行采集和儲存。
在不可信數(shù)據(jù)儲存庫中進行漏洞數(shù)據(jù)的鑒別,可以尋找漏洞存在位置和發(fā)生狀態(tài)等信息,根據(jù)狀態(tài)信息實現(xiàn)漏洞鑒別。鑒別漏洞數(shù)據(jù)的方法需要參考變電站主機運行過程中漏洞數(shù)據(jù)的狀態(tài)轉(zhuǎn)換處理方式,不同狀態(tài)的處理方式下有著不同的函數(shù),其中的變量也有所不同,不同的變量則會指引出不同類型的漏洞[13-14]。在進行漏洞數(shù)據(jù)鑒別前,對采集到的所有不可信數(shù)據(jù)內(nèi)部結構特征進行標識,利用狀態(tài)分析每種特征標識并進行定義,特征定義內(nèi)容如下:
特征定義1:不可信數(shù)據(jù)邊界是安全狀態(tài)數(shù)據(jù),需要處理邊界內(nèi)部的數(shù)據(jù)不受外部函數(shù)的影響。
特征定義2:不可信數(shù)據(jù)邊界入口是外部不可信數(shù)據(jù)進入不可信數(shù)據(jù)儲存庫中的通道。
基于狀態(tài)跟蹤的數(shù)據(jù)鑒別過程如圖2 所示。
圖2 基于狀態(tài)跟蹤的數(shù)據(jù)鑒別過程
觀察圖2 可知,利用狀態(tài)跟蹤對數(shù)據(jù)特征進行檢測,確定是否存在異常特征,如果確定有漏洞碼,則需要進行漏洞檢測,移動鑒別程序后,才能進行繼續(xù)狀態(tài)跟蹤[15]。不可信數(shù)據(jù)邊界入口可以有效控制不可信數(shù)據(jù)儲存庫中的數(shù)據(jù)量,為鑒別函數(shù)提供了穩(wěn)定空間[16]。不可信數(shù)據(jù)邊界入口也可以作為數(shù)據(jù)鑒別的基礎點位之一,在入口處設定一個漏洞數(shù)據(jù)目標集,再設定每一個不可信數(shù)據(jù)在操作集中的屬性編號,根據(jù)編號確定不可信數(shù)據(jù)類型,利用狀態(tài)分析,得到轉(zhuǎn)換目標,然后通過數(shù)據(jù)類型深入分析狀態(tài)機轉(zhuǎn)換函數(shù)f(s,ep):
式(3)中,true、false 分別代表經(jīng)過狀態(tài)機轉(zhuǎn)換函數(shù)轉(zhuǎn)換后的安全狀態(tài)和不安全狀態(tài),這種函數(shù)下的漏洞數(shù)據(jù)鑒別只能夠?qū)π逻M入不可信數(shù)據(jù)儲存庫中的數(shù)據(jù)進行鑒別。
將不可信數(shù)據(jù)某一個特征作為賦值表達式的左值,右值則體現(xiàn)出不可信數(shù)據(jù)的安全狀態(tài),設定安全狀態(tài)的左值表達式為Q,那么不同特征量的表達式為:
當Q在表達式中為單個變量時,計算公式為:
式(4)中,F(xiàn)state(x) 代表特征變量。當Q在表達式中為單個常量時,計算公式為:
特征賦值在函數(shù)的計算中,為了保證鑒別不可信數(shù)據(jù)的特殊性,還可以將不可信數(shù)據(jù)的屬性代入鑒別內(nèi)容中。
為進一步檢測該文提出的基于狀態(tài)跟蹤的變電站主機運行漏洞檢測方法的實際應用效果,同時采用該文提出的檢測方法和文獻[1]提出的安全防護裝置、文獻[2]提出的人工智能網(wǎng)絡安全漏洞檢測方法進行實驗對比。選用不同線程的多端口測試主機,同時選用三種方法對端口進行掃描,掃描過程中,端口呈現(xiàn)開放狀態(tài),設定掃描的端口號分別為0~200、200~400、400~600,不同線程所對應的數(shù)字分別為20、40、60,在不同時間段內(nèi),三種方法接收的變電站主機數(shù)據(jù)量實驗結果如圖3 所示。
圖3 接收數(shù)據(jù)包實驗結果
根據(jù)圖3 可知,安全防護裝置在進行漏洞檢測過程中,接收數(shù)據(jù)包數(shù)量和變電站主機時間呈現(xiàn)非線性關系,在檢測過程中出現(xiàn)了兩次波動,先后達到兩次波峰,當?shù)竭_第二次波峰后接收數(shù)據(jù)包開始呈現(xiàn)下降趨勢,檢測能力逐漸下降。與時間呈現(xiàn)線性關系,隨著時間的增加,接收數(shù)據(jù)包數(shù)量逐漸遞增,與人工智能檢測方法相比,該文提出的檢測方法在相同時間內(nèi)接收數(shù)據(jù)包數(shù)量更多,人工智能檢測方法接收數(shù)據(jù)包數(shù)量低于安全防護裝置和狀態(tài)跟蹤方法,當檢測時間達到360 s 時,接收數(shù)據(jù)包的大小也僅為14 GB,而該文提出的方法接收數(shù)據(jù)量已經(jīng)達到39 GB。
同時采用不同方法進行線程檢測,分析不同方法的漏洞檢測率和檢測誤差率實驗結果。漏洞檢測率實驗結果如表1 所示。
表1 漏洞檢測率實驗結果
觀察表1 可知,在檢測漏洞過程中,傳統(tǒng)的人工智能檢測方法檢測能力最弱,由于傳統(tǒng)檢測方法接收的數(shù)據(jù)包數(shù)量較小,因此難以實現(xiàn)很好地漏洞檢測,當端口號為0~200 時,人工智能的檢測能力最低,隨著檢測時間的增加,檢測能力逐漸增加,最高可以達到70.44%。安全防護裝置的檢測性能相對較好,漏洞檢測率較高,能夠較為精準地確定主機運行漏洞,但是到了后期,這種檢測方法檢測能力逐漸下降,不適合于實際檢測。該文提出的檢測方法具有較強的能力,隨著時間的增加,數(shù)據(jù)包接收量逐漸增加,漏洞檢測率最高能夠達到97.33%,適用于實際檢測工作。漏洞檢測誤差率是衡量檢測能力的重要標準,實驗結果如表2 所示。
表2 漏洞檢測誤差率實驗結果
根據(jù)表2 可知,人工智能檢測方法的檢測誤差率最低,雖然該文提出的檢測方法漏洞檢測誤差率略高于對比方法,但是檢測率更高,檢測能力更強,因此有很高的實際應用價值。在綜合分析數(shù)據(jù)包接收能力、漏洞檢測率和漏洞檢測誤差率等多種因素后,具有更高的應用價值。
我國電網(wǎng)中各層次變電站已經(jīng)逐漸達到智能化和數(shù)字化的水平,在具備電能分配功能的基礎上還實現(xiàn)了信息監(jiān)測、數(shù)據(jù)儲存和數(shù)據(jù)分析等功能,該文以狀態(tài)跟蹤法作為基礎對變電站主機運行漏洞進行檢測,通過建立狀態(tài)機模型對變電站主機運行漏洞中的不可信數(shù)據(jù)進行采集,然后再利用不可信數(shù)據(jù)的特殊性和屬性特征進行不同種類不可信數(shù)據(jù)的鑒別,根據(jù)不可信數(shù)據(jù)來確定主機運行漏洞的組成結構、漏洞屬性等信息。這種方法將主機中所有不可信數(shù)據(jù)進行采集與儲存,具有較強的廣泛性,又分別對每種類的不可信數(shù)據(jù)進行狀態(tài)追蹤,具有較強的精準性,避免了傳統(tǒng)方法中漏洞檢測覆蓋面不全、精準度差的缺陷。