王 昕,孫 磊
(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,吉林 長春 130012)
隨著互聯(lián)網(wǎng)的不斷發(fā)展,工控系統(tǒng)也逐漸智能化、復(fù)雜化,成為國家基礎(chǔ)設(shè)施的中樞神經(jīng)。繼德國最早提出“工業(yè)4.0”后,我國也提出了“中國制造2025”戰(zhàn)略,加速了互聯(lián)網(wǎng)技術(shù)與工業(yè)系統(tǒng)相互融合發(fā)展,方便工作人員操作及管理的同時(shí),也使工控系統(tǒng)網(wǎng)絡(luò)環(huán)境變得更加開放,增加了被各種網(wǎng)絡(luò)攻擊的風(fēng)險(xiǎn),工業(yè)控制系統(tǒng)安全面臨著前所未有的威脅與挑戰(zhàn)[1-2]。作為國家基礎(chǔ)設(shè)施的重要組成部分,工業(yè)控制系統(tǒng)(Industry Control System,ICS)一旦遭到攻擊,會(huì)對國家經(jīng)濟(jì)造成巨大的損失,因此,保障工控網(wǎng)絡(luò)安全迫在眉睫。
態(tài)勢感知作為一種從全局視角出發(fā)實(shí)現(xiàn)對安全威脅的識別、理解、預(yù)測并作出響應(yīng)的分析方法,已成功應(yīng)用于工控網(wǎng)絡(luò)安全方向,并成為近年來工控網(wǎng)絡(luò)安全領(lǐng)域眾多學(xué)者重點(diǎn)研究的課題,而態(tài)勢要素的獲取作為態(tài)勢感知的基礎(chǔ)和前提,目前相關(guān)研究仍不成熟。因此,對于態(tài)勢要素獲取的研究仍具有巨大意義。文獻(xiàn)[3]針對BP神經(jīng)網(wǎng)絡(luò)對海量安全態(tài)勢數(shù)據(jù)學(xué)習(xí)時(shí)過度依賴數(shù)據(jù)標(biāo)簽的問題,提出一種結(jié)合深度堆棧編碼器和反向傳播算法的網(wǎng)絡(luò)安全態(tài)勢要素識別方法,提高了態(tài)勢感知的效能和準(zhǔn)確度;文獻(xiàn)[4]針對深度信念網(wǎng)絡(luò)(DBN)的收斂速度慢,以及在小樣本條件下態(tài)勢要素獲取精度不高的問題,提出了一種基于批量歸一化的深度信念網(wǎng)絡(luò)的態(tài)勢要素獲取方法,減少網(wǎng)絡(luò)收斂時(shí)間,增強(qiáng)網(wǎng)絡(luò)的魯棒性能和泛化能力;文獻(xiàn)[5]針對數(shù)據(jù)量巨大的網(wǎng)絡(luò)態(tài)勢要素的獲取時(shí)間長、樣本分布不平衡導(dǎo)致分類精度不高的問題,提出了一種基于深度自編碼網(wǎng)絡(luò)的態(tài)勢要素獲取方法,通過在線選擇用于更新網(wǎng)絡(luò)權(quán)值的攻擊樣本,達(dá)到總樣本的去冗余和平衡各類攻擊樣本數(shù)量的目的,從而提高少數(shù)類攻擊樣本的分類精度;文獻(xiàn)[6]針對態(tài)勢要素獲取困難的問題,提出了一種基于增強(qiáng)型概率神經(jīng)網(wǎng)絡(luò)的層次化框架態(tài)勢要素獲取方法,采用PCA算法對樣本特征進(jìn)行約簡,并對特殊屬性編碼融合處理,將輸出結(jié)果用于優(yōu)化概率神經(jīng)網(wǎng)絡(luò)(PNN)結(jié)構(gòu),進(jìn)而降低系統(tǒng)復(fù)雜度。
以上文獻(xiàn)中的方法盡管都可以使態(tài)勢要素獲取的精度得到很好改善,但均是從數(shù)據(jù)的特征提取或者工控網(wǎng)絡(luò)數(shù)據(jù)分布不均衡中的單一方面因素進(jìn)行探索,沒有全方位對數(shù)據(jù)進(jìn)行有效預(yù)處理,從而使態(tài)勢要素提取的精度還有待進(jìn)一步提高。
基于以上分析,文中針對工控網(wǎng)絡(luò)數(shù)據(jù)的類別分布不均衡和特征存在冗余增加訓(xùn)練負(fù)擔(dān)等問題進(jìn)行了深入研究。提出一種LOF-SMOTE算法,即在基于SMOTE算法的基礎(chǔ)上應(yīng)用LOF算法對數(shù)量偏少的少數(shù)類樣本進(jìn)行分布離散的數(shù)據(jù)點(diǎn)篩選,減少高相似度的樣本生成。結(jié)合RBM特征降維,利用隨機(jī)森林算法實(shí)現(xiàn)對工控網(wǎng)絡(luò)態(tài)勢要素的提取。在保證了多數(shù)類樣本數(shù)量的基礎(chǔ)上,有效生成少數(shù)類樣本點(diǎn),使數(shù)據(jù)不同各類別達(dá)到平衡,減少了過擬合現(xiàn)象,增加了態(tài)勢要素提取的準(zhǔn)確率。
鑒于網(wǎng)絡(luò)規(guī)模的不斷提升和攻擊種類不斷增多,導(dǎo)致工控網(wǎng)絡(luò)的數(shù)據(jù)量也呈雪崩式倍增。由于攻擊種類和攻擊時(shí)長的不同,導(dǎo)致數(shù)據(jù)集中某一類樣本數(shù)據(jù)量要遠(yuǎn)小于其他類別樣本數(shù)據(jù)量,數(shù)據(jù)分布極其不平衡,但是多數(shù)研究是針對整體的分類精度進(jìn)行研究的,忽略了單一類別分類精度對整體結(jié)果的影響。如果提升了少數(shù)類樣本的分類精度,整體的分類結(jié)果會(huì)得到進(jìn)一步提高。
針對上述問題,創(chuàng)新性的將LOF算法應(yīng)用到對數(shù)據(jù)中少數(shù)類樣本分布較分散的數(shù)據(jù)篩選中,具體流程如圖1所示。
圖1 整體流程
工控網(wǎng)絡(luò)安全態(tài)勢要素提取流程主要分為兩個(gè)階段。
1)數(shù)據(jù)集中包含非數(shù)值型的數(shù)據(jù),并且數(shù)據(jù)集中各個(gè)特征量之間通常存在較大的量級差,若直接對原數(shù)據(jù)進(jìn)行仿真實(shí)驗(yàn),會(huì)導(dǎo)致算法最優(yōu)解的求解速度下降,分類精度變低,因此先對數(shù)據(jù)進(jìn)行數(shù)值化、歸一化處理。
2)把少數(shù)類數(shù)據(jù)中分布分散的數(shù)據(jù)看作局部異常點(diǎn),利用LOF算法對其進(jìn)行篩選。
3)利用SMOTE算法對篩選出的分散的少數(shù)類數(shù)據(jù)進(jìn)行新數(shù)據(jù)點(diǎn)合成。
4)數(shù)據(jù)集包含41個(gè)特征列,過多的特征可能會(huì)出現(xiàn)特征之間具有多重共線性,也就是相互之間具有關(guān)聯(lián)性,導(dǎo)致模型泛化能力弱,也會(huì)妨礙模型學(xué)習(xí),故文中利用RBM算法對數(shù)據(jù)的特征進(jìn)行降維。在數(shù)據(jù)預(yù)處理的最后階段運(yùn)用python的sklearn函數(shù)包把整體數(shù)據(jù)按照訓(xùn)練集和測試集7∶3的比例進(jìn)行切割,交叉驗(yàn)證。
由于隨機(jī)森林算法可以有效降低樹與樹之間的相關(guān)性,且不容易產(chǎn)生過擬合[7],模型訓(xùn)練速度比較快,特別是對于大數(shù)據(jù)而言,適應(yīng)能力較強(qiáng),因此,選用隨機(jī)森林算法進(jìn)行態(tài)勢要素提取。
對于某些場景,如含有欺詐情況的醫(yī)保數(shù)據(jù)、軟件缺陷數(shù)據(jù)、煤礦監(jiān)控系統(tǒng)產(chǎn)生的監(jiān)測數(shù)據(jù)、醫(yī)學(xué)診斷數(shù)據(jù)[8-11]等存在某些類別的數(shù)據(jù)在數(shù)量上遠(yuǎn)遠(yuǎn)多于其他類別的數(shù)據(jù),導(dǎo)致不同類別樣本分布不平衡的問題,如何平衡數(shù)據(jù)以達(dá)到最佳的研究效果成為近年來被廣泛關(guān)注的熱點(diǎn)問題。
針對此問題,Chawla等[12]提出了SMOTE(Syntheticminority Oversamplingtechnique)方法,通過在某個(gè)數(shù)據(jù)點(diǎn)的近鄰數(shù)據(jù)點(diǎn)中隨機(jī)選擇一個(gè)近鄰點(diǎn),并在這兩點(diǎn)之間進(jìn)行線性插值來合成新的少數(shù)類樣本對進(jìn)行少數(shù)類數(shù)據(jù)點(diǎn)的擴(kuò)充,以達(dá)到數(shù)據(jù)數(shù)量上的平衡,提高了分類器的泛化能力。
SMOTE的具體步驟如下:
1)對于少數(shù)類中每一個(gè)樣本xi,計(jì)算所有少數(shù)類樣本對其k近鄰。
2)根據(jù)樣本不平衡比例設(shè)置一個(gè)采樣比例,以確定采樣倍率N,對于每一個(gè)少數(shù)類樣本xi,從其k近鄰中隨機(jī)選擇若干個(gè)樣本,假設(shè)選擇的近鄰為xj。
3)對于每一個(gè)隨機(jī)選出的近鄰xj,分別與原樣本xi按照如下公式構(gòu)建新的樣本
xnew=xi+λ*(xi-xj),
(1)
其中,λ的取值范圍在[0,1]之間[13]。對于同一類別的工控?cái)?shù)據(jù)來說,數(shù)據(jù)點(diǎn)之間可能非常相似,距離非常小,如果直接對數(shù)據(jù)進(jìn)行平衡,會(huì)導(dǎo)致新生成的數(shù)據(jù)點(diǎn)與原數(shù)據(jù)點(diǎn)之間的距離更加接近,導(dǎo)致最終態(tài)勢要素提取困難。進(jìn)而應(yīng)用LOF算法對SMOTE算法進(jìn)行改進(jìn)。
LOF算法是一種應(yīng)用局部密度計(jì)算離群點(diǎn)的算法。對于工控網(wǎng)絡(luò)數(shù)據(jù)而言,存在很多相近、相似的數(shù)據(jù)點(diǎn),若直接對這些數(shù)據(jù)進(jìn)行態(tài)勢要素的獲取,容易造成過擬合的現(xiàn)象,導(dǎo)致要素獲取的正確率較低。所以文中針對少數(shù)類樣本,創(chuàng)新性的應(yīng)用LOF算法篩選出距離較遠(yuǎn)的少數(shù)類樣本點(diǎn),彌補(bǔ)直接對數(shù)據(jù)進(jìn)行SMOTE平衡的缺陷。
LOF算法的主要步驟如下:
1)k-distance。對于點(diǎn)p的第k距離,記做dk(p),也就是距離p第k遠(yuǎn)的點(diǎn)的距離,不包括點(diǎn)p。
2)p點(diǎn)的第k距離鄰域。點(diǎn)p的第k距離鄰域Nk(p)就是p的第k距離以內(nèi)的所有點(diǎn),包括第k距離。因此p的第k鄰域點(diǎn)的個(gè)數(shù)|Nk(p)|≥k。
3)點(diǎn)x對于點(diǎn)p的可達(dá)距離定義
d(x,p)=max(dk(p),d(x,p))。
(2)
4)點(diǎn)p的局部可達(dá)密度表示為
(3)
5)xi的局部離群因子定義
(4)
局部離群因子越小,證明局部可達(dá)密度就越大,xi是離群點(diǎn)的可能性越小,反之局部離群因子越大,證明xi是異常點(diǎn)的可能性越大[14]。通過對局部離群因子檢測算法的研究,將分布較分散的少數(shù)類樣本點(diǎn)視為離群點(diǎn)進(jìn)行篩選,利用分散的少數(shù)點(diǎn)來生成新的樣本點(diǎn),避免因樣本距離緊密而使生成的新樣本點(diǎn)無太大差別,以及由此產(chǎn)生的過擬合現(xiàn)象。
RBM是一種分為可視層和隱藏層的隨機(jī)神經(jīng)網(wǎng)絡(luò)模型,其層內(nèi)無連接,層間相互連接。其中隱藏層表示為
h=(h1,h2,…,hm),
可視層表示為
v=(v1,v2,…,vn)T,
層與層之間的權(quán)值矩陣表示為
w=(wij)∈Rm×n。
RBM結(jié)構(gòu)如圖2所示。
圖2 RBM結(jié)構(gòu)
RBM是一種基于能量的概率分布函數(shù),能量函數(shù)是
E(v,h)=aTv+bTh+hTWv,
(5)
式中:aT、bT----分別是可視層和隱藏層的偏置。
根據(jù)能量函數(shù),可以求得v,h的聯(lián)合概率分布為
(6)
式中:Z----歸一化因子,是所有神經(jīng)元的概率之和,
(7)
訓(xùn)練RBM特征是為了讓可見層節(jié)點(diǎn)v的分布p(v)最大可能與輸入樣本所在的樣本空間分布q(v)相擬合[15]。
針對工控網(wǎng)絡(luò)數(shù)據(jù)特征維度龐大的特點(diǎn),采用RBM算法對工控網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行了有效的特征提取。由于目前工控網(wǎng)絡(luò)中數(shù)據(jù)流量較大,因此可見層節(jié)點(diǎn)分布p(v)很難進(jìn)行求解,同時(shí)大樣本的迭代運(yùn)算更是費(fèi)時(shí)且效果不理想,所以我們提出采用對比散度(Contrastive Divergence, CD)算法進(jìn)行求解。采用基于動(dòng)量的小批量特征梯度下降法去優(yōu)化模型參數(shù),以使重構(gòu)誤差盡量小,直到模型重構(gòu)誤差達(dá)到可以接受的范圍。
文中在Window10 PC,Inter(R) Core(TM) i5-9300H CPU @ 2.40 GHz 8 GB RAM python3.8的硬件條件下進(jìn)行仿真實(shí)驗(yàn)。仿真實(shí)驗(yàn)數(shù)據(jù)集采用NSL-KDD數(shù)據(jù)集,KDDTrain+_20Percent.TXT做仿真實(shí)驗(yàn)訓(xùn)練集,KDDTest.TXT做測試集。數(shù)據(jù)集中共含有42列,其中有41個(gè)特征列(包含34個(gè)數(shù)字特征和7個(gè)字符特征)和1個(gè)標(biāo)簽列。
實(shí)驗(yàn)數(shù)據(jù)見表1。
表1 實(shí)驗(yàn)數(shù)據(jù)簡介表 個(gè)
在仿真過程中,LOF算法參數(shù)的近鄰數(shù)和局部離群因子的大小會(huì)對分類精度有影響,所以采用控制單一變量的方法對不同參數(shù)進(jìn)行研究。LOF算法需要對樣本點(diǎn)近鄰數(shù)和局部離群因子(lof)進(jìn)行探討,如圖3所示。
研究了近鄰數(shù)對最終分類精度的影響,在固定局部離群因子(lof)暫時(shí)為1的基礎(chǔ)上,選取了5~20的近鄰數(shù)進(jìn)行分類精確度的探討,由圖3可以看出,近鄰數(shù)的多少對分類結(jié)果的影響不大,為了減少計(jì)算復(fù)雜度,選擇近鄰數(shù)為5。
圖3 LOF算法近鄰數(shù)對最終結(jié)果的影響
由于在樣本數(shù)據(jù)中U2R類型數(shù)據(jù)極少,在保證近鄰數(shù)為5不變的情況下,若局部離群因子取較大,會(huì)將此數(shù)據(jù)全部被篩選掉,因此探討了lof的取值在1.0~2.0對分類準(zhǔn)確率的影響,結(jié)果如圖4所示。
圖4 局部離群因子對最終結(jié)果的影響
通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)lof采用2時(shí),會(huì)使精確度達(dá)到最高,因此,lof的取值確定為2。
采用RBM算法對數(shù)據(jù)進(jìn)行降維處理,首先要對模型進(jìn)行構(gòu)造,選用對比散度算法幫助RBM進(jìn)行學(xué)習(xí)獲得數(shù)據(jù)集的特征,采用梯度下降法多次迭代找到最優(yōu)參數(shù),把迭代次數(shù)調(diào)整為適當(dāng)次數(shù),數(shù)據(jù)最終所降維度對分類結(jié)果的影響如圖5所示。
圖5 數(shù)據(jù)維度對最終結(jié)果的影響
選取了把數(shù)據(jù)降到5、7、10、15、20、27和35維后分類正確率的變化,在維度為10時(shí),分類精度最高,因此,采用把數(shù)據(jù)降到10維進(jìn)行仿真。
以往對工控網(wǎng)絡(luò)態(tài)勢要素提取的研究多從整體的分類精度進(jìn)行研究,忽略了每種類別單獨(dú)分類精度對整體精度的影響,為了驗(yàn)證文中方法的有效性,將文中算法與文獻(xiàn)[16-17]決策樹算法,以及在數(shù)據(jù)上只將其進(jìn)行降維處理的仿真結(jié)果進(jìn)行對比實(shí)驗(yàn),最終結(jié)果見表2。
表2 不同算法的分類精度 %
通過實(shí)驗(yàn)證實(shí),文中提出的方法能有效提高少數(shù)類樣本的工控態(tài)勢要素的準(zhǔn)確度,從而使整體的提取精度得到了提高。
提出的工控網(wǎng)絡(luò)態(tài)勢要素提取方法,以LOF-SMOTE算法為組成模塊,為工控網(wǎng)絡(luò)態(tài)勢要素提取中樣本分布不均衡的問題提供了新的思路。應(yīng)用RBM算法對數(shù)據(jù)進(jìn)行特征提取,通過控制變量的方法經(jīng)過多次仿真實(shí)驗(yàn),找到了最優(yōu)的參數(shù)值,從而得到更高的態(tài)勢要素提取精度。對比實(shí)驗(yàn)結(jié)果表明,文中算法在每個(gè)類別的單獨(dú)分類精度和整體精度都具有優(yōu)勢。