任志航
(許繼集團有限公司,河南 許昌 461000)
當前電力通信系統中的安全威脅逐漸增多[1-2],特別是客戶側終端等信息化設備具有運營成本高、數據價值大、社會影響廣等特點,未來可能成為網絡攻擊的重要目標。
客戶側終端負責將計量設備、充電樁、光伏設備等產生的業務數據上傳到主站,以及將主站控制信息下發。未來,客戶側終端將承擔“感知數據總入口,控制指令總出口”的任務,并逐步具備“全接入、全采集、全控制”的能力。客戶側終端一旦遭到攻擊,可能會造成嚴重的經濟損失和社會不良影響。
然而,當前針對客戶側終端網絡場景的入侵檢測研究相對較少,特別是缺少針對該場景下檢測效率的研究。例如:文獻[3]采用多網絡特征統計分析的技術設計了智能電網入侵檢測模型,但僅面向特定的應用環境。文獻[4-5]提出了針對智能電網等環境下的入侵檢測,但存在計算開銷大、運行時間長等缺點。
相關研究表明,提升入侵檢測效率,可以通過數據降維和選取高效率的入侵檢測方法等來實現。例如可以通過特征選擇來過濾噪聲,避免過擬合,降低數據采集和攻擊檢測時的計算開銷。特征選擇問題可以轉換為離散空間中的優化問題,并通過BPSO(Discrete Binary Particle Swarm Optimization Algorithm)等算法有效解決[6]。但BPSO容易出現過早擬合、陷入局部最優等情況[7],針對這些問題,可以引入變異來對BPSO算法進行改進[8]。
LightGBM(Light Gradient Boosting Machine)是一種新興的機器學習方法,具有準確度高、速度快、內存占用少等優勢,在近年來得到了廣泛應用[9],但也存在參數較多、不易優化等問題[10]。
客戶側終端與主站間的網絡拓撲形式及入侵檢測設備的部署位置如圖1所示。客戶側終端設備或主站設備可能面臨來自開放網絡、其他終端設備或自身硬件接口的攻擊。隨著通信技術的發展,客戶側終端將采用更加多樣化的聯網方式和主站連接,因此來自開放網絡上的安全威脅會日益增加。

圖1 客戶側終端網絡拓撲Fig.1 Client side terminal equipment andnetwork topology
入侵檢測設施應部署在客戶側終端附近的網絡位置上,以旁路方式接入網絡,完成對網絡協議、流量等特征的獲取、處理和入侵檢測等功能。
客戶側終端設備及應用系統中的入侵檢測方法,針對特定攻擊類型,應同時具備較好的識別能力,較高的檢測效率和良好的自適應性。
首先,客戶側終端及應用系統面臨的網絡安全威脅和一般互聯網應用有相似性,但面臨的應用層威脅較少,來自操作系統或網絡的威脅相對較多。從攻擊手段上看,電力系統中可能出現的攻擊類型包括:拒絕服務、漏洞利用、信息收集等[11]。此外,攻擊者還可能利用模糊攻擊(Fuzzers)等方式對客戶側終端和主站之間的應用層加密協議進行攻擊。針對上述特點,在進行入侵檢測時,應更多地對網絡協議和流量特征等進行分析,根據端口、協議、包長等信息,對攻擊進行識別和分類。
其次,客戶側終端具有數量大、部署分散等特點。高效率的檢測方法,在保障及時性的同時,還有助于降低硬件要求,在大規模部署入侵檢測系統時,能有效地降低總成本。此外,結合國家電網當前的“用采系統2.0”規劃,高效率的入侵檢測方法更容易以容器化方式部署在公共設備之上。這也意味著某些過于復雜的深度學習方法可能不適合應用于上述場景[5]。
最后,考慮到聯網方式的多樣性和部署時的特殊情況,不同入侵檢測設備對網絡特征的采集能力和采集內容可能有所不同。因此入侵檢測方法應具有良好的自適應能力,即針對不同的網絡特征信息,均能完成高效率的入侵檢測。
提出的面向客戶側終端的網絡攻擊檢測(NIDS)模型如圖2所示。

圖2 面向客戶側終端的網絡攻擊檢測流程Fig.2 Client-side terminal-oriented networkattack detection process
在保證檢測效果的前提下,為了提升檢測效率,降低處理開銷,模型中設計了如下機制:
(1)通過引入改進的目標編碼機制,在不增加數據維度的情況下實現更有效的離散數據編碼;
(2)基于改進的BPSO算法進行特征選擇。降低監控數據的采集開銷和入侵檢測算法的處理開銷,同時降低數據噪聲;
(3)通過PSO算法對LightGBM參數進行自動尋優,實現對網絡攻擊的高效檢測,以及對常見攻擊進行分類。
特征數據包含多種數據特征,一是諸如連接時間、包長度等連續特征;二是諸如協議類型、連接狀態等類別特征。在進行異常檢測之前,需要將特征編碼成數值。常見的變量編碼方式有標簽編碼[12]、獨熱編碼[13]和目標編碼[14]等。
標簽編碼的問題在于將分類之間的無序關系變成了順序關系,使得一些算法中的距離計算產生誤差。雖然基于樹的機器學習算法不會進行距離計算,但算法的擴展和改進會受到限制。
獨熱編碼的優點在于距離計算更加合理,缺點在于顯著增加了數據維度,降低處理效率。此外,獨熱編碼會將特征信息變得稀疏,導致基于樹結構的算法性能下降。
目標編碼是一種有監督的編碼方式,該方法將離散類型列映射為該類別目標的后驗概率,這樣可以直接將該列與目標列建立聯系,且不會增加數據維度。在實際編碼時,目標編碼會引入平滑項為缺失值編碼,但并未對實現方法做具體規定。LightGBM算法中自帶了類別特征編碼方法,其主要思想和目標編碼相似,但引入了自定義的約束條件和正則化條件。
針對特征數據中的類別變量,在目標編碼的基礎上,提出一種新的平滑項計算方法,以解決特征取值數量過少時引起的編碼困難問題。同時,在編碼流程上,引入了20折交叉編碼機制,以降低過擬合風險。
2.2.1 編碼公式
編碼采用有監督的處理方式,映射方法如式(1)所示[14]:
(1)
式中的前一項為平滑項,后一項為特征取值的期望值;x(j)為特征當前取值;y為目標列;E(j)為當前特征取值對應編碼值;S為樣本總數量;Ⅱ為指示函數;S(j)為取值j的樣本總數量,如式(2)所示:

(2)
當某個特征取值數量較少時,其期望值可能存在較大噪聲,而當某個特征取值在訓練集中未出現,但在測試集中出現時,其期望值無法計算。為解決該問題,提出一種平滑系數β(j)的計算方法,如式(3)所示:
(3)
式中S_min為平滑門限值,大小設置為S的0.5%。當前特征取值S(j)的數量多于S_min時,編碼值為當前取值的目標平均值。當取值少于S_min時,編碼值由目標平均值和平滑項共同組成,平滑項的占比與S取值數量有關。當某個特征取值在訓練集中未出現,只在測試集出現時,編碼值完全由平滑項構成。
2.2.2 編碼流程
編碼流程如圖3所示。

圖3 引入平滑因子的目標編碼流程Fig.3 Introducing the target encoding process of the smoothing factor
采用20折交叉編碼策略:首先將訓練數據劃分為20折,選取1折數據為編碼數據集其余19折為統計數據集。根據式(1)、式(3)計算19折統計數據集的編碼值,并將其映射到編碼數據集;其次,選取另一折為編碼數據集,其他折為統計數據集;再次計算編碼值并進行映射,并循環20次。20次映射結果的并集,即為訓練集編碼。對于測試集,則根據20次編碼平均值進行編碼。該策略可以解決由于數據分布不均勻導致的過擬合問題。
提出了一種基于速度變異機制的BPSO算法實現特征選擇。BPSO作為PSO的一種改進算法,約定位置向量、速度向量均由0、1構成,可以更好地解決離散空間中的優化問題[15]。
算法的主要流程如下:將標注過的數據作為輸入,假設輸入數據維度為N維特征,給每維特征分配一個重要性權重系數ai,ai∈[0,1],ai大小與重要程度程正相關。特征選擇就是求解N維特征的重要性權重系數,由系數大小篩選出重要特征。為簡化計算量,將數據集中的特征值全部歸一化到(0,1) 范圍內。
二進制粒子群算法流程如下:
步驟1:初始化粒子群,粒子用一個二進制位串表示,其中粒子數取30,每次迭代的最大次數設為100;
步驟2:評估每個粒子并得到全局最優。當前個體極值記為pb,全局最優解記為gb;
步驟3:每個粒子都有一個由目標函數f(a)決定的適應值(Fitness Value)。根據目標函數計算每個粒子的適應度值;
步驟4:對每個粒子,將其適應度值和個體極值pb進行比較,若適應度值大于pb,則用當前適應度值替換pb;
步驟5:對每個粒子,將它的適應度值和全局極值gb進行比較,若適應度值大于gb,則用當前適應度替換gb;
步驟6:根據式(4)~式(6)更新粒子速度和位置[6]:
vi=w*vi+rand()*c1*(pbi-xi)+
rand()*c2*(gb-xi)
(4)
(5)
(6)


(7)

(8)
上述兩式中表示當粒子達到規定速度區間時,粒子出錯的概率為1-S(vmax)。該機制在原研究提出的設計基礎上引入粒子速度區間的變異機制,提升了粒子的可變性和變異的靈活性,避免算法過早收斂、陷入局部最優解;
步驟8:達到最大循環次數時算法執行結束。
算法執行結束后得到N維特征的權重系數向量,該矩陣由0和1組成,權重系數為1則表示該系數對應的特征為篩選出的特征。
需要注意的是,由于BPSO為啟發式搜索算法,運行結果存在一定隨機性,因此算法選取的特征可能并非最佳特征。但BPSO的優勢在于其簡單易實現特性,且具備較好的自動化程度和自適應能力。當實際客戶側終端網絡中的網絡監測內容和實驗數據集維度存在差異時,方法仍然有效,無需對特征進行人工分析。
在實際應用中,為保證特征選擇效果,可多次運行算法,并選取目標函數值最小的結果作為最終特征。
特征選擇的目標為分類模型性能最大化和篩選出特征數量的最小化,設計目標函數f(a)為:
(9)
式中,系數λ影響目標函數中準確率與特征數量的權重關系,應根據實驗結果進行調節;i∈[1,N];accuracy∈[0,1]為分類器準確度;ai∈[0,1]為重要性權重系數;a為由ai組成的重要性權重系數向量。等式左邊最后一項為懲罰因子項,ε為懲罰因子系數;Nmin為最小特征維度;ReLU函數為非線性函數:

(10)
目標函數中第一項準確度accuracy的定義如下:
(11)

目標函數中第二項、第三項是對特征子集數目進行限制,其中第二項越小表明選出的特征數量越少,目標函數值越小。考慮到去除過多特征可能導致模型泛化能力下降,公式(9)中加入第四項懲罰項對特征的最少數量進行限制。當重要性權重系數總和小于Nmin時,懲罰項取值將快速增大,并在BPSO迭代過程中被淘汰。反之選取的特征數量大于Nmin時,由于ReLU函數的作用,此項取值為0,以此保證篩選出的特征維數大于Nmin。
GBDT (Gradient Boosting Decision Tree) 是一個機器學習中經典模型,主要思想是利用弱分類器(決策樹)迭代訓練以得到最優模型,該模型具有訓練效果好、不易過擬合等優點。然而GBDT需要多次遍歷整個數據集,導致訓練速度慢、內存消耗大[17]。
LightGBM(Light Gradient Boosting Machine)是GBDT算法的一種高效實現框架。LightGBM算法具有更高的訓練效率和準確率,其主要改進包括:
(1)拋棄了傳統GBDT的決策樹按層生長策略,使用了帶有深度限制的按葉子生長策略。該策略具有提升精度、防止過擬合等優點;
(2)引入了直方圖算法,大幅提高計算效率,降低通信代價;
(3)引入了GOSS采樣算法和EFB特征合并算法,這使得LightGBM的訓練速度比GBDT提高了20倍。
LightGBM的參數較多,參數選取對算法效果具有較大影響。因此對LightGBM算法的三個重要超參數進行調節,包括決策樹數量、最大樹深度和葉子數量。此外,LightGBM的主要參數還包括學習率,合適的學習率能夠使目標函數在合適的時間內收斂到局部最小值。
為了提升效率,采用了PSO算法進行自動尋優。采用1-accuracy作為目標函數,其中accuracy的計算方法和3.2節中的式(11)相同。訓練策略為:先將學習率調大,在較大跨度上得到較佳參數,再將學習率減小到適合數值,在較小區間的內獲得最佳參數。
考慮到模型的部署成本問題,期望所提出的方法在通用硬件環境中也能具有較高的效率,因而所采用的實驗硬件條件為:主頻為3.0 GHz的CPU、16 GB RAM和主板集成顯卡,軟件環境為: Windows 10和 Python 3.6。
由于當前缺乏實際客戶側終端環境中的網絡攻擊數據,實驗基于以下三個開源數據集進行:
(1)KDD-CUP 99數據集是一個經典的入侵檢測數據集。但該數據集也存在冗余程度高、數據噪聲大等問題。數據集包含41個特征,包括7個類別特征或無序離散特征;包含22種攻擊,有14種攻擊僅出現在測試集中。所有攻擊分為4大類;
(2)NSL-KDD數據集是KDD CUP 99的改進版本,二者的數據結構相同。NSL-KDD的測試集中刪減了重復和冗余記錄,特別是大幅度刪減了正常流量數據;
(3)UNSW-NB15數據集由澳大利亞網絡安全中心制作,該數據集能夠較好地反映現代網絡流量特征和網絡攻擊特征。該數據集包含47個特征,去除一些相關性較小的維度后,使用其中43個特征維度,包括5個類別特征或無序離散特征;攻擊類型分為9大類。
上述數據集主要描述互聯網環境下的流量特征和網絡攻擊,和客戶側終端網絡環境有所區別。為了盡可能貼近客戶側終端網絡環境,對數據集采取如下處理策略:刪除數據集中標記為STMP、POP3、FTP等應用層協議的數據,以模擬客戶側終端網絡中的應用現狀。保留DNS、SSH、DHCP等通用性較強的協議數據,模擬客戶側終端網絡中的網絡層和傳輸層交互。保留SSL等應用層加密協議數據,模擬客戶側終端網絡中的應用層加密協議。
結合1.1節的安全威脅分析,在數據集中選取正常流量數據和拒絕服務、信息收集、信息利用、加密協議攻擊等具有代表性的攻擊類型。具體做法為:在KDD CUP 99、NSL-KDD數據集中選取DoS、Probe、R2L攻擊類型,在UNSW-NB15數據集選取漏洞利用(Exploits、Shellcode)、協議攻擊(Generic、Fuzzers)、信息收集(Reconnaissance)和蠕蟲攻擊(Worms)等攻擊類型進行多分類測試。對于KDD-CUP 99、NSL-KDD數據集,采用其原始的訓練集和測試集劃分,UNSW-NB15數據集則按8:2劃分訓練和測試數據。實驗數據集的訓練集數目和測試集數目如表1所示。

表1 實驗數據集數量分布Tab.1 Experimental data set
實驗的評價指標采用準確率、真正率和假正率進行評價[18]。
準確率(Accuracy):表示正確識別的樣本數與整個測試集的比率。準確率越高,訓練的模型就越好。其定義為:
(12)
該定義和公式(11)的實際含義相同。
真正率(TPR):也被稱為召回率。表示正確分類的正常樣本與實際正常樣本總數的比率,TPR數值越高,則誤報的情況越少。其定義為:
(13)
假正率(FPR):表示被預測為正常樣本的攻擊樣本數與實際攻擊總數的比率,FPR數值越低,則漏報的情況越少。其定義為:
(14)
式中TP為真陽性(True Positive):表示被模型預測為攻擊樣本而實際也是攻擊樣本的數量;FP為假陽性(False Positive):表示被模型預測為正常樣本而實際是攻擊樣本的數量;TN為真陰性(True Negative):表示被模型預測為正常樣本而實際也是正常樣本的數量;FN為假陰性(False Negative):表示被模型預測為攻擊樣本而實際是正常樣本的數量。
5.3.1 類別特征編碼效果分析
對提出的離散編碼效果進行驗證。分別對數據中的類別特征使用獨熱編碼、LightGBM自帶編碼方法和文章所提出的方法進行編碼,并通過LightGBM算法進行檢測。實驗結果如表2所示。

表2 類別特征編碼效果對比Tab.2 Comparison of category feature coding effect
從文章應用場景來看,所提出編碼方法結合LightGBM算法在三個數據集上均能保持較好的檢測效果,特別是在NSL-KDD數據集上,文章編碼方法與LightGBM編碼相比,能夠提升1%的準確率和2%的真正率。獨熱編碼結合LightGBM算法的檢測效果較差,特別是在KDD-CUP 99和NSL-KDD的測試集中含有較多未知類別取值的情況下更為明顯。
5.3.2 特征選擇效果分析
對提出的特征選擇方法進行參數調節和驗證。將式(9)中的懲罰因子ε設定為1 000,Nmin設定為16,即數據集維度的1/3左右,并對系數λ進行調節。算法運行5次,選擇目標函數最小的特征選擇結果,測試結果如表3所示。

表3 降維參數調節與效果對比Tab.3 Dimensionality reduction parameter adjustment and effect comparison
可以看出,提出的特征選擇算法在三個數據集上均能有效地降低特征維度,最高可去除60%的維度,特征選擇之后。訓練時間分別降低了22%、26%和24%,檢測時間分別降低了19%、32%和6%,訓練和檢測時間平均降低了19%。方法選擇維度的數量最低為16,證明算法中懲罰因子產生了限制效果。特征選擇算法在三個數據集上均能保持很好的檢測效果,其中在KDD-CUP 99和NSL-KDD數據集上的檢測效果提升比較明顯,最多可提升3.7%的準確率和6.4%的真正率。
從參數選擇上看,選取系數λ=0.4時,算法效率最高;系數λ=0.6時,在檢測結果和效率上的綜合效果最好。
5.3.3 異常檢測效果
對文章提出的模型進行實驗和對比。根據4.2節的調優策略,參數選取結果為:對于KDD-CUP 99和NSL-KDD數據集,選擇樹的數量為200,葉子數為4,最大樹深度為30;對于UNSW-NB15數據集,選擇樹的數量為900,葉子數為2,最大樹深度為40。對三個數據集進行攻擊檢測,效果如表4所示。

表4 異常檢測效果對比Tab.4 Anomaly detection effect comparison
可以看出,文章提出的整體模型在檢測效果和檢測時間上均具有優勢。特別是在NSL-KDD數據集上,比隨機森林等算法提升5%以上的準確率和約10%的真正率。
在效率方面,隨機森林算法和Adaboost等集成學習算法雖然也有較好的檢測效果,但文中模型的訓練和檢測時間明顯更短,訓練時間僅為兩種算法的3%左右,檢測時間最低可達兩種算法的11%。
BP神經網絡雖然也能保持較好的檢測效果,但深度神經網絡需要的訓練時間和硬件開銷顯著大于其他算法[19],因此未做具體統計。在檢測時間上,文中模型的檢測時間最低可達BP神經網絡的5%。
邏輯回歸算法和樸素貝葉斯算法雖然在檢測時間上存在優勢,但在檢測效果上存在較大不足。
5.3.4 攻擊分類效果
對5.1節選取的攻擊類型進行攻擊分類實驗。選取表4中檢測性能最好的參數組合。實驗效果如表5所示。

表5 攻擊分類效果對比Tab.5 Comparison of attack classification effects
可以看出,文中模型在大多數情況下,能保持90%以上的準確率、70%以上的真正率和5%以下的假正率。說明文中提出的模型能較好地區分正常流量和攻擊樣本,并對攻擊類型具有良好的區分效果。
但在具體指標上,特別是真正率和樣本數量的關系較大。三種數據集下,R2L、Shellcode 和Worms型攻擊的真正率均較低,普遍在30%~57%之間,說明存在誤報情況。而在NSL-KDD中,Probe型攻擊的假正率較高,說明存在較多漏報情況。上述情況和訓練集中的相關樣本的數量較少有關,上述攻擊在各自訓練集中的條目均少于5 000。此外,方法對Fuzzers攻擊的真正率較低。這可能和Fuzzers攻擊會發送隨機數據的特性有關。在實際客戶側終端網絡中,為防止攻擊者對應用層加密協議或主站服務發動類似攻擊,需要采用額外手段進行防范。
圖4為三個數據集攻擊分類預測結果的混淆矩陣。由于不同攻擊之間的數量差異較大,為方便顯示,矩陣中數值整理為當前坐標格在橫排所示真實值中的占比。

圖4 攻擊分類的結果混淆矩陣Fig.4 Confusion matrix of attack classification results
綜上所述,文中模型對采集的流量特征數據進行預處理和特征選擇,降低了19%的模型訓練與檢測時間,有效地提升了檢測效率。
在檢測性能上,文中模型具有較高的準確率和較少的誤報與漏報情況,以及較好的攻擊分類能力。有利于在設備分散的開放網絡環境下,實現高效率、高準確性的網絡入侵檢測。
此外,采用的特征選擇方法和入侵檢測方法有較好的自適應能力,可以在多個數據集上直接工作,無需進行人工分析。因此當不同入侵檢測設備采集的流量特征存在差異時,模型仍然可以工作。這比較適合客戶側終端環境下,設備分散管理、數據分散采集的現狀。
針對客戶側終端網絡可能存在的安全威脅,文章提出了一種基于LightGBM的高效率網絡入侵檢測模型。提出了改進離散特征編碼的方法;引入速度概率變異機制的BPSO算法,實現了自動化程度較高的特征選擇與降維;通過基于PSO算法優化的LightGBM實現了入侵檢測與攻擊分類。基于開源數據集的測試證明,文中模型能夠保持較好的檢測效果和較高的檢測效率,這有利于在客戶側終端設備數量大、設備分布分散的場景下,降低檢測開銷、提升反應速度。但文章方法對稀少攻擊類型或特殊攻擊類型的檢測效果不夠理想,這也使得其應對新型網絡攻擊的能力不足,今后應針對這些情況開展針對性研究。