王 昕,孫 磊
(長春工業大學 計算機科學與工程學院,吉林 長春 130012)
隨著互聯網的不斷發展,工控系統也逐漸智能化、復雜化,成為國家基礎設施的中樞神經。繼德國最早提出“工業4.0”后,我國也提出了“中國制造2025”戰略,加速了互聯網技術與工業系統相互融合發展,方便工作人員操作及管理的同時,也使工控系統網絡環境變得更加開放,增加了被各種網絡攻擊的風險,工業控制系統安全面臨著前所未有的威脅與挑戰[1-2]。作為國家基礎設施的重要組成部分,工業控制系統(Industry Control System,ICS)一旦遭到攻擊,會對國家經濟造成巨大的損失,因此,保障工控網絡安全迫在眉睫。
態勢感知作為一種從全局視角出發實現對安全威脅的識別、理解、預測并作出響應的分析方法,已成功應用于工控網絡安全方向,并成為近年來工控網絡安全領域眾多學者重點研究的課題,而態勢要素的獲取作為態勢感知的基礎和前提,目前相關研究仍不成熟。因此,對于態勢要素獲取的研究仍具有巨大意義。文獻[3]針對BP神經網絡對海量安全態勢數據學習時過度依賴數據標簽的問題,提出一種結合深度堆棧編碼器和反向傳播算法的網絡安全態勢要素識別方法,提高了態勢感知的效能和準確度;文獻[4]針對深度信念網絡(DBN)的收斂速度慢,以及在小樣本條件下態勢要素獲取精度不高的問題,提出了一種基于批量歸一化的深度信念網絡的態勢要素獲取方法,減少網絡收斂時間,增強網絡的魯棒性能和泛化能力;文獻[5]針對數據量巨大的網絡態勢要素的獲取時間長、樣本分布不平衡導致分類精度不高的問題,提出了一種基于深度自編碼網絡的態勢要素獲取方法,通過在線選擇用于更新網絡權值的攻擊樣本,達到總樣本的去冗余和平衡各類攻擊樣本數量的目的,從而提高少數類攻擊樣本的分類精度;文獻[6]針對態勢要素獲取困難的問題,提出了一種基于增強型概率神經網絡的層次化框架態勢要素獲取方法,采用PCA算法對樣本特征進行約簡,并對特殊屬性編碼融合處理,將輸出結果用于優化概率神經網絡(PNN)結構,進而降低系統復雜度。
以上文獻中的方法盡管都可以使態勢要素獲取的精度得到很好改善,但均是從數據的特征提取或者工控網絡數據分布不均衡中的單一方面因素進行探索,沒有全方位對數據進行有效預處理,從而使態勢要素提取的精度還有待進一步提高。
基于以上分析,文中針對工控網絡數據的類別分布不均衡和特征存在冗余增加訓練負擔等問題進行了深入研究。提出一種LOF-SMOTE算法,即在基于SMOTE算法的基礎上應用LOF算法對數量偏少的少數類樣本進行分布離散的數據點篩選,減少高相似度的樣本生成。結合RBM特征降維,利用隨機森林算法實現對工控網絡態勢要素的提取。在保證了多數類樣本數量的基礎上,有效生成少數類樣本點,使數據不同各類別達到平衡,減少了過擬合現象,增加了態勢要素提取的準確率。
鑒于網絡規模的不斷提升和攻擊種類不斷增多,導致工控網絡的數據量也呈雪崩式倍增。由于攻擊種類和攻擊時長的不同,導致數據集中某一類樣本數據量要遠小于其他類別樣本數據量,數據分布極其不平衡,但是多數研究是針對整體的分類精度進行研究的,忽略了單一類別分類精度對整體結果的影響。如果提升了少數類樣本的分類精度,整體的分類結果會得到進一步提高。
針對上述問題,創新性的將LOF算法應用到對數據中少數類樣本分布較分散的數據篩選中,具體流程如圖1所示。

圖1 整體流程
工控網絡安全態勢要素提取流程主要分為兩個階段。
1)數據集中包含非數值型的數據,并且數據集中各個特征量之間通常存在較大的量級差,若直接對原數據進行仿真實驗,會導致算法最優解的求解速度下降,分類精度變低,因此先對數據進行數值化、歸一化處理。
2)把少數類數據中分布分散的數據看作局部異常點,利用LOF算法對其進行篩選。
3)利用SMOTE算法對篩選出的分散的少數類數據進行新數據點合成。
4)數據集包含41個特征列,過多的特征可能會出現特征之間具有多重共線性,也就是相互之間具有關聯性,導致模型泛化能力弱,也會妨礙模型學習,故文中利用RBM算法對數據的特征進行降維。在數據預處理的最后階段運用python的sklearn函數包把整體數據按照訓練集和測試集7∶3的比例進行切割,交叉驗證。
由于隨機森林算法可以有效降低樹與樹之間的相關性,且不容易產生過擬合[7],模型訓練速度比較快,特別是對于大數據而言,適應能力較強,因此,選用隨機森林算法進行態勢要素提取。
對于某些場景,如含有欺詐情況的醫保數據、軟件缺陷數據、煤礦監控系統產生的監測數據、醫學診斷數據[8-11]等存在某些類別的數據在數量上遠遠多于其他類別的數據,導致不同類別樣本分布不平衡的問題,如何平衡數據以達到最佳的研究效果成為近年來被廣泛關注的熱點問題。
針對此問題,Chawla等[12]提出了SMOTE(Syntheticminority Oversamplingtechnique)方法,通過在某個數據點的近鄰數據點中隨機選擇一個近鄰點,并在這兩點之間進行線性插值來合成新的少數類樣本對進行少數類數據點的擴充,以達到數據數量上的平衡,提高了分類器的泛化能力。
SMOTE的具體步驟如下:
1)對于少數類中每一個樣本xi,計算所有少數類樣本對其k近鄰。
2)根據樣本不平衡比例設置一個采樣比例,以確定采樣倍率N,對于每一個少數類樣本xi,從其k近鄰中隨機選擇若干個樣本,假設選擇的近鄰為xj。
3)對于每一個隨機選出的近鄰xj,分別與原樣本xi按照如下公式構建新的樣本
xnew=xi+λ*(xi-xj),
(1)
其中,λ的取值范圍在[0,1]之間[13]。對于同一類別的工控數據來說,數據點之間可能非常相似,距離非常小,如果直接對數據進行平衡,會導致新生成的數據點與原數據點之間的距離更加接近,導致最終態勢要素提取困難。進而應用LOF算法對SMOTE算法進行改進。
LOF算法是一種應用局部密度計算離群點的算法。對于工控網絡數據而言,存在很多相近、相似的數據點,若直接對這些數據進行態勢要素的獲取,容易造成過擬合的現象,導致要素獲取的正確率較低。所以文中針對少數類樣本,創新性的應用LOF算法篩選出距離較遠的少數類樣本點,彌補直接對數據進行SMOTE平衡的缺陷。
LOF算法的主要步驟如下:
1)k-distance。對于點p的第k距離,記做dk(p),也就是距離p第k遠的點的距離,不包括點p。
2)p點的第k距離鄰域。點p的第k距離鄰域Nk(p)就是p的第k距離以內的所有點,包括第k距離。因此p的第k鄰域點的個數|Nk(p)|≥k。
3)點x對于點p的可達距離定義
d(x,p)=max(dk(p),d(x,p))。
(2)
4)點p的局部可達密度表示為

(3)
5)xi的局部離群因子定義

(4)
局部離群因子越小,證明局部可達密度就越大,xi是離群點的可能性越小,反之局部離群因子越大,證明xi是異常點的可能性越大[14]。通過對局部離群因子檢測算法的研究,將分布較分散的少數類樣本點視為離群點進行篩選,利用分散的少數點來生成新的樣本點,避免因樣本距離緊密而使生成的新樣本點無太大差別,以及由此產生的過擬合現象。
RBM是一種分為可視層和隱藏層的隨機神經網絡模型,其層內無連接,層間相互連接。其中隱藏層表示為
h=(h1,h2,…,hm),
可視層表示為
v=(v1,v2,…,vn)T,
層與層之間的權值矩陣表示為
w=(wij)∈Rm×n。
RBM結構如圖2所示。

圖2 RBM結構
RBM是一種基于能量的概率分布函數,能量函數是
E(v,h)=aTv+bTh+hTWv,
(5)
式中:aT、bT----分別是可視層和隱藏層的偏置。
根據能量函數,可以求得v,h的聯合概率分布為

(6)
式中:Z----歸一化因子,是所有神經元的概率之和,

(7)
訓練RBM特征是為了讓可見層節點v的分布p(v)最大可能與輸入樣本所在的樣本空間分布q(v)相擬合[15]。
針對工控網絡數據特征維度龐大的特點,采用RBM算法對工控網絡數據進行了有效的特征提取。由于目前工控網絡中數據流量較大,因此可見層節點分布p(v)很難進行求解,同時大樣本的迭代運算更是費時且效果不理想,所以我們提出采用對比散度(Contrastive Divergence, CD)算法進行求解。采用基于動量的小批量特征梯度下降法去優化模型參數,以使重構誤差盡量小,直到模型重構誤差達到可以接受的范圍。
文中在Window10 PC,Inter(R) Core(TM) i5-9300H CPU @ 2.40 GHz 8 GB RAM python3.8的硬件條件下進行仿真實驗。仿真實驗數據集采用NSL-KDD數據集,KDDTrain+_20Percent.TXT做仿真實驗訓練集,KDDTest.TXT做測試集。數據集中共含有42列,其中有41個特征列(包含34個數字特征和7個字符特征)和1個標簽列。
實驗數據見表1。

表1 實驗數據簡介表 個
在仿真過程中,LOF算法參數的近鄰數和局部離群因子的大小會對分類精度有影響,所以采用控制單一變量的方法對不同參數進行研究。LOF算法需要對樣本點近鄰數和局部離群因子(lof)進行探討,如圖3所示。
研究了近鄰數對最終分類精度的影響,在固定局部離群因子(lof)暫時為1的基礎上,選取了5~20的近鄰數進行分類精確度的探討,由圖3可以看出,近鄰數的多少對分類結果的影響不大,為了減少計算復雜度,選擇近鄰數為5。

圖3 LOF算法近鄰數對最終結果的影響
由于在樣本數據中U2R類型數據極少,在保證近鄰數為5不變的情況下,若局部離群因子取較大,會將此數據全部被篩選掉,因此探討了lof的取值在1.0~2.0對分類準確率的影響,結果如圖4所示。

圖4 局部離群因子對最終結果的影響
通過實驗發現,當lof采用2時,會使精確度達到最高,因此,lof的取值確定為2。
采用RBM算法對數據進行降維處理,首先要對模型進行構造,選用對比散度算法幫助RBM進行學習獲得數據集的特征,采用梯度下降法多次迭代找到最優參數,把迭代次數調整為適當次數,數據最終所降維度對分類結果的影響如圖5所示。

圖5 數據維度對最終結果的影響
選取了把數據降到5、7、10、15、20、27和35維后分類正確率的變化,在維度為10時,分類精度最高,因此,采用把數據降到10維進行仿真。
以往對工控網絡態勢要素提取的研究多從整體的分類精度進行研究,忽略了每種類別單獨分類精度對整體精度的影響,為了驗證文中方法的有效性,將文中算法與文獻[16-17]決策樹算法,以及在數據上只將其進行降維處理的仿真結果進行對比實驗,最終結果見表2。

表2 不同算法的分類精度 %
通過實驗證實,文中提出的方法能有效提高少數類樣本的工控態勢要素的準確度,從而使整體的提取精度得到了提高。
提出的工控網絡態勢要素提取方法,以LOF-SMOTE算法為組成模塊,為工控網絡態勢要素提取中樣本分布不均衡的問題提供了新的思路。應用RBM算法對數據進行特征提取,通過控制變量的方法經過多次仿真實驗,找到了最優的參數值,從而得到更高的態勢要素提取精度。對比實驗結果表明,文中算法在每個類別的單獨分類精度和整體精度都具有優勢。