武 婕,鄧 彬,郝 蛟,柳樂怡,李博威
(1.深圳供電局有限公司系統運行部,廣東深圳 518000;2.興唐通信科技有限公司智能業務中心,北京 100191)
電力調度系統承擔著控制、監測、調節電力生產過程的任務。電力調度系統數據的完整性破壞和精準篡改,會嚴重影響系統的正常運行和現場人員的最終決策[1-3]。隨著APT(Advanced Persistent Threat)的興起,針對電力調度系統的網絡攻擊呈現出時間和空間跨度大的特點,傳統靜態的、基于規則匹配的入侵防護機制已經無法適應現階段的防護要求[4-6]。
該文針對電力調度系統入侵檢測手段靜態、單一的問題,提出基于行為分析的電力調度系統入侵檢測方法。通過Filebeat 工具收集終端行為序列;結合電力調度系統任務相對固定、行為相互關聯的特點,創新性地將非結構化日志轉化為結構化日志,構建調度系統行為序列預測模型,對入侵行為進行檢測。
電力調度系統被入侵行為破壞的原因主要包括:
1)調度系統機密性被破壞[7-9]。電力系統信息流、控制流的頻繁交互,以及終端設備的廣泛部署,導致機密數據泄露。
2)調度系統的可用性被破壞。電力終端處于外部暴露環境中,容易被針對性地捕獲和攻破[10-12]。攻擊者能夠利用終端設備作為跳板,向電力調度系統內聯網滲透,或通過與C&C(Command&Control)主機互聯,進行木馬感染或分布式拒絕服務攻擊。
電力調度系統入侵行為特點如下:
1)攻擊手段多樣
病毒、惡意代碼等威脅手段可以通過“多態”技術,生成不同的病毒樣本,有效規避檢測手段。
2)攻擊速度快
在大數據的掩護和遮蔽下,攻擊者持續、精準地發起網絡攻擊。從系統漏洞被發現到利用其進行有針對性地攻擊,留給攻擊分析與安全防御的反應時間極短[15]。當前智能電網數據量級呈指數級增長,很容易導致攻擊行為漏檢。
現階段,電力調度系統的日志分布具有時間跨度較大的特征,靜態的、單一的、基于規則匹配的檢測方式無法將行為在時間維度上關聯起來,因此,該文使用長短期記憶(Long Short-Term Memory,LSTM)時序模型實現異常檢測。
LSTM 模型能夠根據當前狀態對后續狀態進行預測和判斷,在處理時序問題時有較好的表現。LSTM 解決了RNN 中的梯度爆炸和梯度消失問題。LSTM 的結構如圖1 所示。

圖1 LSTM記憶單元的結構
如圖1 所示,在t時刻模型的輸入數據為xt,ht表示隱藏層的輸出數據,則前序輸出表述為ht-1。當前模型整體信息的輸入和輸出狀態分別是和ct。計算ct和ht需要先計算模型三個門的信息狀態:
輸入門it的信息輸出狀態計算公式如下:
遺忘門ft的信息輸出狀態計算公式如下:
輸出門ot的信息輸出狀態計算公式如下:
模型的整體信息輸入狀態計算公式為:
LSTM 模型經過三個門的入侵檢測處理提高了處理效率,同時增強了檢測處理在時間維度上的關聯,提高了檢測結果準確率。
對電力調度系統異常行為進行檢測,本質是將異常行為與正常行為進行區分,映射到人工智能領域,屬于分類問題。該文通過對電力調度系統進行日志采集、分析、特征化和模型訓練,達到最終異常行為檢測的目的,其主要流程如圖2 所示。

圖2 電力調度系統入侵檢測流程
如圖2 所示,基于行為分析的電力調度系統入侵檢測方案主要分為以下步驟:
1)日志采集。由于電力調度系統通常部署在UNIX 系統中,承擔大量的任務,其運算和存儲的資源有限[16],為了通過系統日志文件達到獲取主機系統行為的目的,該方案中,利用日志采集工具,對電力主機系統中,感興趣的系統日志進行采集,并以此為依據進行后續的研究實驗。
2)模板解析。電力調度系統中的系統日志、操作日志等為非結構化日志,此類日志由不同規則定義,長度不統一,難以通過特定模板提取內容信息,為了將系統中非結構化日志轉換為結構化日志,該文采用模板解析的方法對日志文件進行處理,為后續特征提取提供基礎。
3)行為向量生成。使用機器學習的相關方法解決網絡安全問題,首先,需要將安全相關數據轉換成機器學習算法能夠理解的編碼格式,并盡可能地保留原始數據本身以及上下文的特征。根據模板解析的結果,對提取出的日志鍵進行one-hot 編碼,將結構化數據轉換生成行為向量。
4)模型訓練。采用機器學習算法進行異常行為檢測,首先,構造標記數據的訓練集和測試集;其次,結合數據特征和安全場景需求,采用適當的機器學習模型,在該文中,擬采用決策樹、隨機森林、SVM、OCSVM 和LSTM 五種方法進行實驗。
5)模型反饋。一方面,對模型的效果進行評估,并結合參數進行討論;另一方面,定時對模型進行更新。
2.2.1 入侵數據采集
對電力調度系統進行入侵行為檢測,首先要獲取電力調度系統的相關日志信息。該文采用部署日志采集工具的方式,對感興趣日志進行采集,如圖3所示。

圖3 電力調度系統日志采集示意圖
該文采用Filebeat 工具用于對感興趣日志進行查找和采集,在配置文件中配置感興趣日志的type、path 字段,設置索引名稱。最后將輸出地址設置為Logstash 的地址以及端口,對數據進行轉發。
部署Logstash 組件,用于接收Filebeat 所提供的日志信息,由于Filebeat 監控多個日志文件,因此需要對Logstash 進行配置,用以對多種日志內容進行解析,并存儲在本地進行后續分析。
如圖3 所示,為電力調度系統日志采集的示意圖。在采集過程中,該文采用離線采集的方式,獲取深圳供電局某站某電力調度系統在一段時間內的日志內容,并將其存儲在PC 端待后續分析。
2.2.2 特征提取
在對電力終端設備異常行為進行檢測的過程,可以看作是一個機器學習二分類問題。在機器學習模型訓練過程中,特征提取起著至關重要的作用,其本質上承擔著安全問題映射二分類問題的任務,提取準確的特征能夠有效地區分電力調度系統正常行為和異常行為,同時,準確的特征向量能夠提高模型的分類效果。
通常情況下,電力調度系統異常主要包括以下兩個方面。
1)內容錯誤,即日志數據本身記錄的異常信息。如在日志信息中出現“error”信息,則可直接判定為異常。
2)序列錯誤,即違背電力調度系統長期工作形成的行為基線的情況。日志中所記錄的動作順序異常。
2.2.3 實現入侵檢測
針對上述異常情況,結合日志采集得到的非結構日志數據,提取相關行為向量。首先將非結構化日志轉化為結構化日志,該文采用SPELL 算法,該算法通過尋找日志之間長的公共子序列,對日志進行結構化解析,該算法將日志分解為事件模板和參數序列,該文使用該算法解析的事件模板的集合,即日志鍵序列進行下一步處理。
在提取到相關日志鍵序列后,對于機器學習算法來說仍然不能訓練,日志鍵序列仍是文本形式,對于機器學習算法來說,輸入應為數值型,因此對日志鍵序列進行one-hot 編碼,將日志鍵序列中每一個元素生成為行為向量。利用LSTM 對SPELL 算法獲得的入侵檢測模型進行檢測,本質上是通過構建分類模型解決行為向量的二分類問題,完成檢測,獲得精確度最優解。
該文以某電力調度系統采集的實際數據為基礎數據,假設其全部為正常數據,參考實際電網運行過程中異常行為較少的情況,將其按照9∶1 的比例進行分配,其中90%作為正樣本,其余的10%通過置換、替換等操作,構造異常報文和序列,以此作為訓練數據集,并以同樣的方式構造測試集。最終的數據如表1 所示。

表1 數據樣本
同時,針對二分類問題,該文采用多種二分類算法來進行模型訓練,主要包括決策樹、隨機森林、SVM、OCSVM 和LSTM 五種方法,驗證該文使用的LSTM 模型的性能。
三個評價指標精確率(Precision)、召回率(Recall)、F1-Score 的計算公式分別如下:
式中,TP 為真正例數量,FP 為假正例數量,FN為假負例數量。
實驗中統計樣本分類正確率,采用10 次實驗結果的平均值作為各個算法分類性能的評價指標。各類算法實驗結果對比如圖4 所示。

圖4 五種算法性能比較
在實際模型訓練的過程中,訓練數據的不平衡,導致依賴標記數據比例的決策樹、隨機森林、SVM 三種算法的召回率較低,主要是因為負樣本數量過少,機器學習模型學習到的特征也較少,而該文使用的LSTM模型在設計的過程中,充分考慮了序列之間的關聯關系,其分類效果較好,LSTM 的F1-Score 為96%。實驗結果表明,使用LSTM 方法提高了在樣本不均衡情況下電力終端設備異常行為檢測的能力。
該文針對電力調度系統檢測手段靜態、單一的問題,提出基于行為分析的電力調度系統入侵檢測方法。解析調度系統的日志信息,提取異常行為特征,并構建行為向量,采用LSTM 方法訓練機器學習模型,進行調度系統異常行為檢測。實驗表明,該文采用的LSTM 模型的效果最優,有效解決了電力調度系統入侵檢測的時間維度關聯問題,提高了檢測結果準確率。