杜浩良,孔飄紅,金學奇,黃銀強
(1.國網浙江省電力有限公司金華供電公司,浙江 金華 321000;2.國網浙江省電力有限公司,杭州 310007)
在智能電網數字化進程中,通信技術得到廣泛應用,與此同時,電網環境中的網絡攻擊也越來越多[1]。例如烏克蘭“暗黑力量”事件曾導致整個電網控制系統癱瘓,造成重大影響,可見電力網絡安全防護措施的有效性需要得到切實保障。
在工業控制系統中,應用最廣泛的是電力行業,其接近一半的工業控制系統是變電站自動化系統。變電站自動化程度的提高,離不開網絡通信的配合,對智能變電站而言,需要遠程監視、遠程調控和實現與相鄰變電站以及電網調度中心的互動,通信網絡與外界頻繁進行數據交換,智能變電站網絡安全問題也因此受到高度重視。
智能電網的安全措施主要分為檢測和防御。檢測是指通過分析智能電網中的惡意行為并采取一系列的預警措施;防御[2]重視邊界的防護,包括控制網閘開關、防火墻、可信技術等手段保障數據安全。通過對網絡流量行為進行分析,檢測網絡的安全狀態[3],及時發現網絡攻擊,利用流量異常檢測技術提高電網安全等級[4],確保在電力系統穩定運行的基礎上提高電力系統的智能化水平。
網絡攻擊分為面向通信網絡性能的攻擊和面向數據的攻擊。關鍵信息的報文數據傳輸網絡是智能變電站乃至電網控制的基礎,通信設備異常、通信延遲等均會影響通信網絡性能,尤其是以拒絕服務攻擊為代表的網絡攻擊,通過惡化甚至失效信息流的實時性功能,對電網安全穩定構成嚴重威脅。
傳統的異常檢測方法包括簽名分析方法[5]、統計分析方法[6]和閾值分析方法[7]。通過對已有的惡意網絡流量數據的分析來設定參數,這些方法主要以專家經驗為主,難以針對大規模數據進行分析。
隨著機器學習的快速發展,神經網絡廣泛應用于異常檢測以識別和分類網絡層面的攻擊。基于機器學習的異常檢測方法分為特征的選擇和提取、分類方法2 個主要步驟。提取和選擇特征的方法主要有PCA(主成分分析)[8]、基于相關性的CFS(特征選擇)方法[9]等,傳統分類模型有SVM(支持向量機)[10]、KNN(K 最近鄰)[11]、樸素貝葉斯和決策樹[12]等。上述模型在KDD99 數據集中取得良好的效果,但KDD99 數據集包含的攻擊數據與現實復雜網絡環境相比較為簡單,難以模擬真實的網絡環境。Eesa 等人從原始流量數據中學習特征,改進流量特征以獲得較高的檢測率和較低的虛警率[13]。
深度學習在異常檢測方面展現出良好的性能,RNN(遞歸神經網絡)常用于分析序列信息,LSTM(長短期記憶)網絡是RNN 的一個分支,在自然語言處理等序列信息分析應用中表現良好。文獻[14]比較了RNN-LSTM 網絡與GRNN(廣義回歸神經網絡)、KNN、SVM、貝葉斯等算法在KDD99 數據集上的表現,在測試中表現出良好性能。
智能電網中缺少具有攻擊行為的數據集,但傳統網絡流量數據集又不具備電網特性,故選取相關性特征作為預處理數據,在CIC-IDS-2017數據集上實驗。由于不同攻擊行為存在著種類以及目標的差異,導致已有的攻擊行為數據量存在不均勻的現象。例如,DDo 攻擊由于其目標層次比較低,攻擊成本較小,在樣本中的比例較高,導致模型精度普遍表現良好。深度學習的訓練依賴大量數據樣本,在不平衡數據集上訓練模型是一項具有挑戰性的任務。為應對上述挑戰,本文針對電網系統網絡流量進行分析,提取具有電網流量特性、對應有多種網絡攻擊的數據集作為樣本集。
LSTM 網絡是一種循環神經網絡,適用于處理時序型數據。通過門控制將短期記憶和長期記憶結合,在一定程度上解決了梯度消失的問題[15]。LSTM[16]是通過3 個門來控制,分別為遺忘門ft、輸入門It和輸出門Ot,原理如圖1 所示。其中,遺忘門判斷上一時刻需要保留的記憶信息,輸入門判斷此刻需要的記憶信息,輸出門判斷輸出的記憶信息,St表示記憶細胞。

圖1 LSTM 原理

式中:xt表示t 時刻的輸入序列;ht表示上一時刻的輸出向量;tanh 表示雙曲正切激活函數;σ表示sigmoid 激活函數;Wf,Wi,Wo,Ws表示對應部分的權重系數矩陣;bf,bi,bo,bs表示對應的偏移量。
CNN 是MLP(多層感知機)的變種,通過采用局部連接和權值共享的方式減少權值的數量來優化網絡,降低了模型的復雜度。CNN 主要包括卷積層、池化層和全連接層,卷積層負責提取對應的數據特征,卷積核越多,提取的特征越抽象;池化方式分為平均池化、最大池化等方式;全連接層的作用是將經過池化后的神經元展開為一維向量形式,便于數據進行處理。
智能電網中的安全檢測是指檢測電網環境中具有惡意行為的網絡流量。通過分析流量數據,輸出攻擊行為的概率,將安全檢測問題轉化為攻擊行為的分類問題。
流量分類器采用CNN 和LSTM 相結合的方式對智能電網信息流量包進行學習和分類。分類器的整體架構如圖2 所示,分類器由CNN 系統和LSTM 系統組成,CNN 系統由輸入層、卷積層、池化層和全連接層組成,LSTM 系統由LSTM層、全連接層、Softmax 層和輸出層組成。預處理KPL 文件經CNN 系統處理,返回一個高維向量包傳送到LSTM 系統,LSTM 系統對一系列高維向量進行包處理,并輸出屬于每一類的概率,同時Softmax 層根據概率輸出分類的最終結果。

圖2 CNN-LSTM 模型結構
CNN 的前一個卷積層和池化層中使用小卷積核的卷積層來提取流量圖像中的局部特征,如IP 和端口,在池化層中可以獲得清晰的特征。后一個卷積層和池化層中使用大卷積核分析相距較遠的特征之間的關系,經預處理和編碼,網絡流量作為輸入層的輸入向量。卷積層表達式如下:

式中:f 是卷積核大小;b 為偏置;w 是權重矩陣;c 是卷積核數量;l 是層數;S 是步幅;Z(i,j)為對應特征圖的像素;x 和y 分別表示數據包中的x字節和有效負載中的y 字節。
卷積層中包含式(7)所示的激活函數,適用于復雜特征的表達。

式中:k 為特征圖中通道數;A 表示Z 向量通過激活函數的輸出向量。2 個卷積層分別使用sigmoid 函數和ReLu 函數。

卷積層經特征提取后,將輸出傳送到池化層進行特征選擇和信息過濾。池化層中包含一個預設的池函數,該函數將特征映射中單個點的值替換為其相鄰區域的特征圖統計量,池化層由式(8)計算,p 是預先指定的參數。

通過反向傳播算法來調整模型參數,在權重調整式(9)中,w 為權重矩陣,δ 是損失函數的增量誤差,α 是學習率。
經過2 次卷積和池化操作,將整個流量圖像提取成一個較小的特征塊來表示整個流量包的特征信息,并作為LSTM 層的輸入。
LSTM 系統主要功能由2 個LSTM 層來實現。LSTM 層中的第一步是將單元狀態中的部分信息選擇性丟棄,由遺忘門依據式(10)來計算丟棄程度。通過讀取ht-1和xt,在細胞狀態下向每個數字輸出0 到1 之間的值(1 表示“完全保留”,0 表示“完全丟棄”)。W 和b 分別是神經網絡中的權重和偏差,xt表示t 時刻的輸入序列,ht-1表示上一時刻的輸出向量。

激活函數依據式(11)決定部分信息需要更新,tanh 函數依據式(12)生成一個向量作為更新的替代,tanh 表示雙曲正切激活函數。將兩部分合并,以更新單元狀態,見式(13)。


輸出門確定輸出,sigmoid 函數決定細胞狀態的部分被導出,見式(14),通過tanh 函數處理單元狀態,得到-1 到1 之間的值,依據式(15)計算確定輸出。

本文模型中,流量數據的n 個數據包的特征映射作為LSTM 部分的輸入,通過2 個LSTM 層分析n 個數據包之間的特征關系。
預處理后的數據如表1 所示,數據樣本類型是不均勻的,其中類型0 的數量最多,類型2 和類型4 的數量最少。不均勻樣本將會影響最終的學習效果,當機器將所有流量判斷為0 型,模型的精度似乎相對較高,但并未準確檢測。引入類的權重來解決不均勻樣本問題,分類中不同樣本數的類被賦予不同的權重。

表1 CIC-IDS-2017 每個類別的數據量
根據樣本數設置權重,類權重計算如式(16)所示:

式中:wi表示i 類的類權重;ni表示i 類的流量。
在訓練模型時,加權損失函數使模型更加關注來自數量不足的類的樣本。損失函數J 的定義如下:

式中:K 是類別的數量;y 是標簽(如果樣本類別是i,則i=1;否則i=0);q 是神經網絡的輸出。
電力工控系統作為一個特殊的網絡,與傳統的網絡流量相比存在較大差異,具有以下獨特性:
1)電力網絡流量數據具有周期性,設備在固定時間內請求或上傳數據。
2)電力網絡流量數據的IP 地址相對固定,向指定地址的設備請求或上傳數據。
3)電力網絡中報文數據的長度范圍較窄,但傳輸數據的頻率較高。
4)對實時性要求比較高。
實驗采用變電站網絡流量數據,數據集內包括從系統上抓取的網絡流量(即pcap 文件),用于構建網絡流量模型。從電力工控網絡實際特性出發來提取合適的流量特征,有助于提升所構建模型的精確度。
從流量中解析字段,可從網絡數據包的頭部提取得到IP 地址、目的IP 地址、源端口號、目的端口號、源MAC 地址等屬性,詳情如表2 所示。同時利用電力網絡流量的特征構造帶有時間序列的特征。

表2 流量解析字段
網絡流量呈現出周期性特點,選取時間字段ts 作為流量周期性的特征信息;IP 地址是流量傳輸的關鍵信息,選取IP 地址字段的src_ip,des_ip,src_port,des_port 作為流量地址信息特征;根據報文數據的長度和類型,選取data_unit和info 作為對應特征。
在時間窗口對窗口內所含網絡流量特征向量原始數據實施統計分析,建立包括時間窗內流持續時間、兩個流之間的平均時間和數據包平均大小等在內的統計特征。從數據集的80 個特征中提取出14 個電網屬性特征,具體如表3 所示。

表3 電網屬性特征
本文采用加拿大網絡安全研究所[12]公開的IDS 數據集CIC-IDS-2017 評估系統性能。相比于KDDCUP99 數據集,該數據集收集了真實的原始網絡流量數據,由280 萬個標記流組成,包含如Port Scan,Web Attacks,Brute Force,Botnets,DoS,DDoS 等14 種不同類型的攻擊。
本文采用ACC(準確性)、TPR(真陽性率)、FPR(假陽性率)和F1-score 4 個常用參數來評估模型。ηACC代表模型的整體性能,ηTPR代表當前正樣本中真實正樣本與所有正樣本的比值,ηFPR代表錯誤分配給正樣本類型的真實負樣本與所有負樣本總數的比值,ηF1-score是分類器精度的得分,ηPrecision表示精確度,ηRecall表示召回率。


式中:ηTP是正確分類為此類型的樣本數量;ηTN是正確分類為非此類型的樣本數量;ηFP是錯誤分類為此類型的樣本數量;ηFN是錯誤分類為非此類型的樣本數量。
原始數據預處理流程如圖3 所示:先將PCAP文件轉換為模型輸入數據,再通過時間劃分、流量分割、KPL 文件生產和one-hot 編碼生成矩陣。

圖3 數據預處理流程
在數據集中,正常數據占比較大,大大影響了整個數據集準確率的有效性。加權損失函數使模型更加關注來自數量不足的樣本類重量對模型性能的影響。表4 顯示了有、無類型權重的結果比較。引入類型權重可以減小數據集中各種類型數據不平衡對模型性能的影響。

表4 應用類型權重對模型性能的影響
LSTM 模型可有效提取數據包之間的時序關系,表5 給出了本文模型添加CNN 后與單獨使用CNN 或LSTM 模型的結果對比,可以看出,添加CNN 進一步提高了大多數攻擊流量的識別準確率。為進一步分析分類結果,從圖4 所示混淆矩陣可以看出,BENIGN,Port Scan,DDoS 和DoS Hulk 4 種主要類型有較好的表現。同時類型攻擊的錯誤分類主要局限在其攻擊類型內部,例如Web Attack-XSS 的網絡攻擊,如果分類錯誤,很可能被歸類為Web Attack B.F 中。

表5 CNN,LSTM 和CNN-LSTM 結果對比

圖4 混淆矩陣
表6 顯示了使用本文方法與傳統機器學習算法的模型比較。可以看出,本文方法實現了它們之間的最佳性能,具有最大的ηACC和最低的ηFPR。同時在SVM,KNN,DT,RF 4 種算法中,以DT的運行時間最短,本文方法略高于DT,但相較于其他模型有較大提升。

表6 結果分析
電力系統的安全穩定運行與社會生活息息相關,面對越來越復雜的電力信息網絡環境,本文提出了一種基于深度學習的電力信息網絡流量異常檢測模型,利用CNN 和LSTM 的混合模型,從網絡數據流中提取特征來分析網絡流量。
結果表明,混合模型與僅CNN 模型和僅LSTM 模型相比,在所有攻擊類型的檢測準確率上都有3%以上的提高。本文取得以下成果:
1)提出了一種基于CNN 和LSTM 混合網絡的異常檢測方法,通過CNN 和LSTM 網絡分別提取單個數據包的空間特征和數據流的時間特征,提高了異常檢測系統的性能。
2)模型在訓練階段使用類別權值進行優化,減少了樣本中攻擊類型不平衡的不利影響,提高了模型的魯棒性。
本文基于數據驅動的方法提升了對不同類型電力信息網絡的異常檢測,在確保準確率的同時保證了時效性。模型能適應復雜狀況下的應用場景,如在變電站通信網絡中增加流量數據庫種類,識別不同網絡異常狀態下變電站中各層級網絡的流量數據,確保大規模工業控制網絡的安全。但該模型還存在一定的缺陷,包括Heartbleed和SSH Patator attack 的檢測精度較低,主要原因是訓練集中缺乏對應類型的負樣本量。針對樣本不平衡與缺少攻擊樣本數量的狀況,可以采用GAN 等方法生成負樣本數據集做進一步研究。