李曉明 王文暉 任琳琳 晏 涌 陳兆玉 沙 蕓 劉學(xué)君
1(中國航空油料集團有限公司信息技術(shù)和網(wǎng)絡(luò)安全研發(fā)中心 北京 100089)
2(北京石油化工學(xué)院信息工程學(xué)院 北京 102600)
(lixm@cnaf.com)
伴隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)安全所面臨的挑戰(zhàn)愈發(fā)嚴(yán)峻,網(wǎng)絡(luò)攻擊逐漸呈現(xiàn)多階段、分布式和智能化的特性[1-3].雖然異常檢測系統(tǒng)(anomaaly detection system, ADS)能有效地對工控中的異常進行檢測,但隨著攻擊技術(shù)的不斷發(fā)展,一些組合的逃逸技術(shù)仍可以逃脫檢測,從而對網(wǎng)絡(luò)發(fā)起攻擊[4].
神經(jīng)網(wǎng)絡(luò)( neural network, NN)具有檢測準(zhǔn)確度高且有良好的非線性映射和學(xué)習(xí)能力、建模簡單、容錯性強等優(yōu)點[5].支持向量機(support vector machines, SVM)是在統(tǒng)計學(xué)習(xí)理論基礎(chǔ)上提出的一種學(xué)習(xí)方法,其將輸入向量映射到一個高維空間,在這個高維空間中構(gòu)造最優(yōu)分類平面[6].神經(jīng)網(wǎng)絡(luò)和SVM在攻擊識別領(lǐng)域都有廣泛的應(yīng)用.但隨著工控數(shù)據(jù)愈發(fā)龐大,使用神經(jīng)網(wǎng)絡(luò)和SVM來進行訓(xùn)練時所需要的時間越來越長,準(zhǔn)確率也受到影響.Hotelling[7]提出了一種使用在維度間找到近似線性關(guān)系對高維特征進行降維的方法,稱為主成分分析(principal component analysis, PCA).PCA通過析取主成分顯出最大的個別差異,用來減少樣本集中特征的數(shù)量.但噪聲對PCA的分析結(jié)果影響很大.
因此,在特征相對獨立的數(shù)據(jù)集上為了解決噪聲對特征提取的干擾,本文提出了一種使用強化學(xué)習(xí)進行特征提取的方法.
強化學(xué)習(xí)是機器學(xué)習(xí)的范式和方法論之一,用于描述和解決智能體在與環(huán)境的交互過程中通過學(xué)習(xí)策略以達成回報最大化或?qū)崿F(xiàn)特定目標(biāo)的問題[8].本算法中的強化學(xué)習(xí)過程如圖1所示.
圖1 強化學(xué)習(xí)流程圖
首先創(chuàng)建一個智能體模塊,其能夠讀取信息并作出動作.之后將樣本輸入到智能體中,智能體首先計算出樣本維度(特征個數(shù)),再根據(jù)每一個特征,計算相應(yīng)的閾值.閾值為所有樣本該特征的均值.
計算完閾值后,智能體讀取第1個樣本的第1個特征,與前面計算出的該特征的閾值相比較,并按初始決策矩陣采取動作.初始決策矩陣內(nèi)有2種動作,分別是發(fā)出報警和不發(fā)出報警.2種動作采取的概率均為50%.
采取動作之后,即可依照獎勵矩陣對動作進行獎勵.獎勵矩陣的設(shè)定需視情形而定[9].在某些特定問題下,假陰性要比假陽性的危害大得多(例如疾病),此時假陰性所得到的懲罰就要比假陽性大得多.在本算法中,為簡化計算過程,設(shè)定獎勵矩陣如表1所示:
表1 獎勵矩陣
智能體每次得到獎勵,都會累積到一個過程矩陣Q中.矩陣Q為n行4列(列標(biāo)為0~3),其中n為特征數(shù).Q[0],Q[1]列為當(dāng)讀取特征大于閾值時智能體不發(fā)出和發(fā)出警報所累積的獎勵矩陣數(shù)值;Q[2],Q[3]列為當(dāng)讀取特征大于閾值時,智能體不發(fā)出或發(fā)出警報所累積的獎勵矩陣數(shù)值.
對動作進行獎勵并存儲之后,智能體讀取該樣本的下一個特征,并按照初始決策矩陣采取動作,獲得獎勵.對每一個樣本的每一個特征執(zhí)行上述操作,最終得到了過程矩陣Q.
依照矩陣Q,可計算決策矩陣D.D為n行2列的矩陣,計算公式如下:
(1)
(2)
其中,D[0],D[1]為決策矩陣的第1,2列.
按照決策矩陣對原數(shù)據(jù)集進行特征提取,提取過程如圖2所示:
圖2 特征提取流程圖
決策矩陣共有n行,n為特征數(shù)量.其按行求和后,得到每一個特征所對應(yīng)的概率和.通過經(jīng)驗設(shè)定一個概率閾值,概率和小于該閾值的特征被視為冗余特征.去除所有冗余特征后,得到新的數(shù)據(jù)集,即為原數(shù)據(jù)集經(jīng)過強化學(xué)習(xí)預(yù)處理后的數(shù)據(jù)集.
將經(jīng)過強化學(xué)習(xí)修正后的數(shù)據(jù)集放入神經(jīng)網(wǎng)絡(luò)和SVM中進行訓(xùn)練并分類.
1.2.1 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程
將經(jīng)過強化學(xué)習(xí)修正后的樣本放入神經(jīng)網(wǎng)絡(luò),訓(xùn)練網(wǎng)絡(luò)內(nèi)的參數(shù),最終建立可以識別工控攻擊的神經(jīng)網(wǎng)絡(luò).本文采用了梯度下降法對神經(jīng)網(wǎng)絡(luò)的參數(shù)進行訓(xùn)練.
神經(jīng)網(wǎng)絡(luò)隱藏層和輸出層的公式如下:
y=WTx+b,
(3)
(4)
其中,x是經(jīng)過智能體優(yōu)化后,輸入到神經(jīng)網(wǎng)絡(luò)輸入層的值,y是輸出層的值,a是輸出值.
使用如下方法定義損失函數(shù)和每次迭代后權(quán)重矩陣的更新值:
(5)
(6)
其中,η為學(xué)習(xí)率.為保證算法能夠快速收斂,多次實驗后取0.001.
1.2.2 SVM訓(xùn)練過程
利用SVM進行分類時,決策函數(shù)為1對多,并且使用RBF函數(shù)作為核函數(shù),公式如下:
(7)
其中,σ為徑向基寬度,經(jīng)過多次實驗取0.2.
神經(jīng)網(wǎng)絡(luò)訓(xùn)練之后的分類評估可有以下幾個指標(biāo),包括準(zhǔn)確率(accuracy)、精確率(precision)、召回率(recall)、F1值等[10].TP是原本為正判定為正的樣本數(shù),F(xiàn)P代表原本為負(fù)判定為正的樣本數(shù),F(xiàn)N代表原本為正判定為負(fù)的樣本數(shù),TN代表原本為負(fù)被判定為負(fù)的樣本數(shù),相應(yīng)的計算公式如下:
(8)
(9)
(10)
(11)
本算法的實驗環(huán)境為Windows10,調(diào)試環(huán)境為python3.8.3,tensorflow2.3.0.
分別對NSL-KDD數(shù)據(jù)集、自建數(shù)據(jù)集、密西西比數(shù)據(jù)集的原始數(shù)據(jù)集、PCA以及強化學(xué)習(xí)處理后的數(shù)據(jù)集用神經(jīng)網(wǎng)絡(luò)和SVM進行訓(xùn)練,比較訓(xùn)練結(jié)果及運行時間.
NSL-KDD數(shù)據(jù)集是從模擬的美國空軍局域網(wǎng)上采集的9個星期的網(wǎng)絡(luò)連接數(shù)據(jù),分為訓(xùn)練集和測試集,訓(xùn)練集具有125 973條數(shù)據(jù),其中有46.54%的正常樣本,其余為不同類型的攻擊樣本(標(biāo)簽均為“1”).訓(xùn)練集中有22 544條數(shù)據(jù).
對NSL-KDD數(shù)據(jù)集采用原始數(shù)據(jù)集和PCA、強化學(xué)習(xí)2種預(yù)處理方式處理后的數(shù)據(jù)集,用神經(jīng)網(wǎng)絡(luò)和SVM訓(xùn)練后的分類結(jié)果如表2、表3所示:
表2 NSL-KDD數(shù)據(jù)集3種預(yù)處理方式神經(jīng)網(wǎng)絡(luò)分類結(jié)果
表3 NSL-KDD數(shù)據(jù)集3種預(yù)處理方式SVM分類結(jié)果
由表2可以看出,在NSL-KDD數(shù)據(jù)集上,使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,強化學(xué)習(xí)預(yù)處理后的數(shù)據(jù)集準(zhǔn)確率相較于處理前提升了1.6%,運行時間降低了0.3 s;相較于PCA方法,準(zhǔn)確率提升了0.6%,運行時間大致不變.
由表3可以看出,在NSL-KDD數(shù)據(jù)集上,使用SVM訓(xùn)練時,強化學(xué)習(xí)預(yù)處理后的數(shù)據(jù)集準(zhǔn)確率相較于處理前略微降低,和PCA方法基本持平,但花費時間更長.
該數(shù)據(jù)集是根據(jù)某油庫正常行為時的工控數(shù)據(jù),采用偏差攻擊得到的自建數(shù)據(jù)集.
該數(shù)據(jù)集為8 281行,132列,其中最后一列為標(biāo)簽(1為攻擊,0為正常),其余列為特征(包括溫度、液位、壓力等數(shù)據(jù)).該數(shù)據(jù)集包括4 141個正常樣本和4 140個攻擊樣本.
對自建數(shù)據(jù)集也分別采用3種數(shù)據(jù)樣本以及2種處理方式,得到的分類結(jié)果如表4、表5所示:
表4 自建數(shù)據(jù)集3種預(yù)處理方式神經(jīng)網(wǎng)絡(luò)分類結(jié)果
表5 自建數(shù)據(jù)集3種預(yù)處理方式SVM分類結(jié)果
由表4可以看出,使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,在自建數(shù)據(jù)集上,準(zhǔn)確率相較于處理前提高了0.12%,這意味著判斷錯誤的樣本個數(shù)從3個減少到了1個,同時訓(xùn)練時間幾乎不變;準(zhǔn)確率和運行時間都優(yōu)于PCA方法.
由表5可以看出,在自建數(shù)據(jù)集上,使用SVM訓(xùn)練時,3種方法在準(zhǔn)確率上并無差別,0.03%的錯誤率意味著每種方法都只有1個誤判.但在運行時間上,PCA和強化學(xué)習(xí)預(yù)處理方法比處理前都提升了0.3 s.
密西西比數(shù)據(jù)集,是密西西比州立大學(xué)提出的用于工控系統(tǒng)入侵檢測評估的數(shù)據(jù)集,收集的信息是天然氣管道中遠(yuǎn)程終端單元與主控制單元之間的網(wǎng)絡(luò)事務(wù),用于模擬天然氣管道上的實際攻擊和操作員活動,包括了61 156個正常樣本和35 863個異常樣本[11].
對密西西比數(shù)據(jù)集也分別采用3種數(shù)據(jù)樣本以及2種處理方式得到的分類結(jié)果如表6、表7所示:
表6 密西西比數(shù)據(jù)集3種預(yù)處理方式神經(jīng)網(wǎng)絡(luò)分類結(jié)果
表7 密西西比數(shù)據(jù)集3種預(yù)處理方式SVM分類結(jié)果
由表6可以看出,在密西西比數(shù)據(jù)集上,使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,盡管運行時間提高了0.1 s,但準(zhǔn)確率下降了10%,在運行時間上也并無太大差別.這表明強化學(xué)習(xí)預(yù)處理方法依舊有其不足之處.
由表7可以看出,在密西西比數(shù)據(jù)集上,使用SVM訓(xùn)練時,從準(zhǔn)確率上看,強化學(xué)習(xí)預(yù)處理方法和處理前幾乎無差別,但PCA的準(zhǔn)確率大幅下降.從運行時間上看,相較于處理前,PCA方法縮短了325 s,強化學(xué)習(xí)預(yù)處理方法縮短了258 s,效率提升了41%.
綜上所述,從神經(jīng)網(wǎng)絡(luò)的分類結(jié)果看,在NSL-KDD和自建數(shù)據(jù)集上,強化學(xué)習(xí)預(yù)處理后的數(shù)據(jù)集比其余2種方法的效果都有所提高,并且訓(xùn)練時間要快于處理前,但在密西西比數(shù)據(jù)集上強化學(xué)習(xí)預(yù)處理后的數(shù)據(jù)集準(zhǔn)確率遠(yuǎn)小于另外2種方式,并且運行時間差別不大.從SVM的分類結(jié)果看,強化學(xué)習(xí)預(yù)處理的方法在NSL-KDD上的準(zhǔn)確率略微下降,其余2個數(shù)據(jù)集上的準(zhǔn)確率基本持平.從運行時間上看,強化學(xué)習(xí)預(yù)處理的方法在密西西比數(shù)據(jù)集上較處理前有大幅提升,在其余2個數(shù)據(jù)集上差別不大.
從上述結(jié)果可以看出,強化學(xué)習(xí)的數(shù)據(jù)預(yù)處理方法對神經(jīng)網(wǎng)絡(luò)進行分類時,效果有所提升,但采用SVM進行分類時,效果不明顯.這是因為神經(jīng)網(wǎng)絡(luò)的神經(jīng)元結(jié)構(gòu)意味著每一個輸入維度都對結(jié)果有影響,而SVM中少數(shù)支持向量決定了最終的分類結(jié)果,因此維度的增加對其準(zhǔn)確率影響很小,但由于其需要計算高維空間的歐氏距離,因此運行時間大大增加.
為了探尋強化學(xué)習(xí)預(yù)處理方法的適用性,本文使用克魯斯卡爾[12]方法處理了3個數(shù)據(jù)集.克魯斯卡爾方法可以尋找數(shù)據(jù)集的最小生成樹,從而找出特征間的關(guān)聯(lián).在NSL-KDD和偏差攻擊數(shù)據(jù)集上,特征都被分為了多組;而在密西西比數(shù)據(jù)集上,特征僅被分為了1組.這代表著前兩者都具有多棵決策樹,而密西西比數(shù)據(jù)集只有1棵決策樹.對于只有1棵決策樹的數(shù)據(jù)集,可以認(rèn)為其沒有冗余特征,所有的特征都影響著最終的決策,此時去除特征就會降低準(zhǔn)確率.
除了上述結(jié)果外,決策矩陣中概率閾值的選取也對結(jié)果有一定的影響.在丟棄特征時,需要設(shè)定一個概率閾值,丟棄概率和小于概率閾值的特征.概率閾值的設(shè)定可通過實驗確定,概率閾值和準(zhǔn)確率間的關(guān)系如圖3所示:
圖3 不同概率閾值時樣本的準(zhǔn)確率
可以看出,隨著概率閾值的不斷提高,準(zhǔn)確率也在不斷提高.這是因為丟棄了更多把握不大的特征之后,保留了有助于判斷結(jié)果的特征,從而減少了無效特征的干擾.
綜上研究表明,強化學(xué)習(xí)預(yù)處理方法在特征間關(guān)聯(lián)性較弱的數(shù)據(jù)集上表現(xiàn)很好,可以有效篩選出關(guān)鍵特征,減少無效特征的分類干擾.但在特征間關(guān)聯(lián)性很強的數(shù)據(jù)集上表現(xiàn)欠佳.因此,可以結(jié)合克魯斯卡爾方法,先找到最小生成樹,再判斷是否進行提取.此外,下一步的工作中可以將多個特征視為一個特征,在強化學(xué)習(xí)時將多個特征視為一個整體進行判斷,從而減少特征間關(guān)聯(lián)性強對強化學(xué)習(xí)預(yù)處理方法的影響.