詹 琉
(廣東工業(yè)大學(xué) 廣州 511400)
近年來,工業(yè)互聯(lián)網(wǎng)、智能制造、物聯(lián)網(wǎng)等各種創(chuàng)新應(yīng)用發(fā)展迅速,工業(yè)控制系統(tǒng)(Industrial Control Systems,ICS)的網(wǎng)絡(luò)化控制設(shè)備和數(shù)據(jù)交換設(shè)施在增多,以及數(shù)據(jù)接入方式多樣,這些變化使得工業(yè)控制設(shè)備更容易遭受攻擊[1]。工業(yè)控制終端功能化的設(shè)計(jì)目標(biāo),使其在設(shè)計(jì)時(shí)未能考慮安全防護(hù)的需要,有限的計(jì)算存儲(chǔ)資源也制約了安全防護(hù)措施的接入,導(dǎo)致近年來以“震網(wǎng)”病毒為代表的工業(yè)網(wǎng)絡(luò)安全事件時(shí)有發(fā)生[2]。0-day 漏洞的利用以及病毒變種的多樣性使得傳統(tǒng)基于漏洞庫(kù)的安全防護(hù)措施暴露出更多問題[3],設(shè)計(jì)準(zhǔn)確高效且能夠應(yīng)對(duì)未知攻擊的安全防護(hù)方法成為當(dāng)前研究焦點(diǎn)[13]。
入侵檢測(cè)系統(tǒng)(IDS)是網(wǎng)絡(luò)安全的第二道防線,對(duì)網(wǎng)絡(luò)數(shù)據(jù)傳輸進(jìn)行監(jiān)控,通過對(duì)數(shù)據(jù)的分析發(fā)現(xiàn)異常行為[14~15]。IDS 引入了粗糙集理論,決策樹,隨機(jī)森林,人工神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)(SVM)來防范未知攻擊。而SVM 是基于邊緣的分類器,基于具有良好泛化能力的小樣本學(xué)習(xí),經(jīng)常用于現(xiàn)實(shí)世界的分類應(yīng)用[16]。同時(shí)SVM 沒有人工神經(jīng)網(wǎng)絡(luò)無法解決的過度擬合問題,但是仍然受到數(shù)據(jù)集大小的影響,由于內(nèi)存不足或長(zhǎng)時(shí)間的訓(xùn)練而導(dǎo)致系統(tǒng)故障。在現(xiàn)實(shí)生活中,數(shù)據(jù)通常具有大量不相關(guān)或過時(shí)的特征。SVM 缺乏立即擁有特征重要性的能力[4],這最終會(huì)增加顯著的計(jì)算難度并可能導(dǎo)致預(yù)測(cè)準(zhǔn)確性較弱。PCA 的最小信息損失和LDA所需類別的最大可辨識(shí),將這兩種技術(shù)結(jié)合起來并從其積極的方面獲益的最佳嘗試,從而獲得更好的分類性能。因此本文提出了一種PCA 與LDA 組合的半監(jiān)督降維方法和PSO-SVM相結(jié)合的工控異常檢測(cè)方法,提高了對(duì)異常行為的查準(zhǔn)率。應(yīng)用密西西比州立大學(xué)關(guān)鍵基礎(chǔ)設(shè)施保護(hù)中心提供的已進(jìn)行數(shù)值化處理的工控?cái)?shù)據(jù)集進(jìn)行仿真實(shí)驗(yàn),結(jié)果顯示本文提出的方法具有較高的檢測(cè)準(zhǔn)確率。
文獻(xiàn)[5]提出改進(jìn)K-means算法在入侵檢測(cè)中的應(yīng)用,利用平均值的方法解決傳統(tǒng)K-means算法對(duì)初始聚類中心的選擇。文獻(xiàn)[6~7]均提出改進(jìn)的支持向量機(jī)的算法對(duì)支持向量機(jī)的參數(shù)進(jìn)行優(yōu)化,在對(duì)各個(gè)攻擊類型的檢測(cè)率上得到一定的提高。文獻(xiàn)[8]提出一種了基于Snot的協(xié)議分析與檢測(cè)系統(tǒng),該方法對(duì)特定協(xié)議與已知的非法數(shù)據(jù)包具有良好的檢測(cè)效果。文獻(xiàn)[9]提出一種基于網(wǎng)格優(yōu)化SVM參數(shù)的入侵檢測(cè)方法,發(fā)現(xiàn)該算法具有較高的檢測(cè)準(zhǔn)確率。文獻(xiàn)[10~11]均基于主成分分析法(Principal Component Analysis,PCA)對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,從而加快收斂速度,提高檢測(cè)效率。
上述研究中,文獻(xiàn)[5~9]均采用的是傳統(tǒng)的入侵檢測(cè)方法,由于工業(yè)控制系統(tǒng)中提取的數(shù)據(jù)大都具有高維的特性,以及攻擊類型的不確定性和多樣性,導(dǎo)致入侵檢測(cè)方法耗時(shí)過長(zhǎng)或準(zhǔn)確率低。文獻(xiàn)[10~11]僅采用基于PCA 對(duì)數(shù)據(jù)進(jìn)行特征提取以減少數(shù)據(jù)降維,但是由于PCA方法只能去除有關(guān)線性結(jié)構(gòu)而非非線性結(jié)構(gòu)的信息,無法解決非線性結(jié)構(gòu)的信息降維。
通過分析PCA 和LDA 算法的基本思想,PCA算法可以用于所有樣本,并且在降維后最大限度地保留了數(shù)據(jù)的內(nèi)在信息,但忽略了數(shù)據(jù)的類別信息,并且存在諸如矩陣尺寸過大和解決方案復(fù)雜的問題。因此,為了實(shí)現(xiàn)二者的互補(bǔ)優(yōu)勢(shì),提出了半監(jiān)督LDA 算法進(jìn)行特征提取:先使用PCA 算法減少樣本特征,再使用PCA 和LDA 的組合進(jìn)行二維減少。
主成分分析法(PCA)的基本思想是從一組特征中計(jì)算出一組按照重要性的大小從大到小依次排列的新特征,新特征是原有特征的線性組合。具體步驟如下:
1)設(shè)原始輸入數(shù)據(jù)樣本數(shù)為n,每個(gè)樣本都有p個(gè)特征屬性,即輸入數(shù)據(jù)矩陣為
計(jì)算樣本X的均值向量μ和協(xié)方差矩陣S,即
2)對(duì)協(xié)方差矩陣S 進(jìn)行特征值分解,得到特征值序列λ1≥λ2≥… ≥λp
3)計(jì)算第i個(gè)主成分的樣本貢獻(xiàn)率ρi,
4)通過累計(jì)貢獻(xiàn)率ω確定主成分分量樣本個(gè)數(shù)k,選擇前k 個(gè)特征值所對(duì)應(yīng)的特征向量,構(gòu)成投影矩陣A=[a1,a2, …,ak],ai為p維向量 。
線性判別分析法(LDA)的基本思想是將帶上標(biāo)簽數(shù)據(jù)(點(diǎn)),通過投影(變換)的方法,投影更低維的空間。在這個(gè)低維空間中,同類樣本盡可能接近,異類樣本盡可能遠(yuǎn)離。半監(jiān)督LDA 的具體步驟如下:
1)設(shè)輸入數(shù)據(jù)為A=[a1,a2, …,ak],ɑi為 p 維的向量,p 是經(jīng)PCA 降維后的特征數(shù),利用LDA 再次進(jìn)行降維:設(shè)第m 個(gè)樣本種類的個(gè)數(shù)為Nm,則總的訓(xùn)練樣本個(gè)數(shù)為為樣本種類數(shù),那么第m 個(gè)樣本種類的均值為所有訓(xùn)練樣本的平均值為
3)定義半監(jiān)督散矩陣為
其中,I 為單位矩陣。ω∈[0,1]可以調(diào)節(jié)PCA 算法和LDA 算法在半監(jiān)督降維中的作用,當(dāng)ω=0 時(shí),半監(jiān)督降維完全改變?yōu)長(zhǎng)DA 算法;當(dāng)ω=1 時(shí),算法完全蛻變?yōu)镻CA算法。
4)根據(jù)Fisher判別分析表達(dá)式:
σ為任一列向量,F(xiàn)isher 線性判別分析就是尋找使得J(σ)達(dá)到最大值的σ,把這一向量作為投影方向,可以找到一組最優(yōu)判別向量構(gòu)成的投影矩陣W,投影矩陣通過如下廣義特征值求解:
支持向量機(jī)作為一種傳統(tǒng)的監(jiān)督學(xué)習(xí)模型,其核心在于尋找一個(gè)能夠正確對(duì)二分類數(shù)據(jù)進(jìn)行特征空間劃分的超平面,而支持向量則是處于距離超平面最近的樣本點(diǎn)。構(gòu)造與求解最優(yōu)超平面可轉(zhuǎn)化為在原空間求解一個(gè)二次回歸問題:
其中:ω為權(quán)重向量;b是分類閾值;ζi是松弛因子;C為懲罰因子。
利用拉格朗日乘數(shù)法求解問題(12),得到最優(yōu)分類函數(shù)為
其中:N 為支持向量個(gè)數(shù);α(ii=1,2, …,N)是拉格朗日乘數(shù)。若樣本集非線性可分,則通過非線性映射到線性可分的高維特征空間,在高維特征空間構(gòu)造最優(yōu)分類面。對(duì)滿足Mercer 條件的核函數(shù)K(xi,xj)存在對(duì)應(yīng)關(guān)系K(xi,xj)=(Φ (xi)·φ(xj))。所以,高維特征空間的最優(yōu)分類函數(shù)為
粒子群算法作為一種基于迭代的優(yōu)化算法,粒子在空間中會(huì)追隨最優(yōu)粒子不斷迭代搜尋。每個(gè)粒子會(huì)根據(jù)適應(yīng)度函數(shù)確認(rèn)適應(yīng)值,適應(yīng)值是衡量粒子優(yōu)劣性的標(biāo)準(zhǔn)。速度和位置的更新公式為
1)隨機(jī)生成初始粒子群,并設(shè)置當(dāng)前迭代次數(shù)k=1,給定迭代次數(shù)上限kmax;
2)計(jì)算適應(yīng)度函數(shù)得到適應(yīng)度值,慣性權(quán)重ω,更新粒子的位置信息;
4)判斷是否達(dá)到迭代終止條件,若粒子適應(yīng)度值滿足要求或已達(dá)到給定迭代次數(shù)上限kmax,則算法結(jié)束,否則重復(fù)步驟3)進(jìn)行迭代。
本次實(shí)驗(yàn)粒子數(shù)為30,迭代上限kmax=300,加速因子c1=1.7,c2=1.5。
密西西比州立大學(xué)關(guān)鍵基礎(chǔ)設(shè)施保護(hù)中心公開數(shù)據(jù)集[12]。公開數(shù)據(jù)集提供了四個(gè)數(shù)據(jù)集,本文選擇其中10%的儲(chǔ)水罐系統(tǒng)的事務(wù)數(shù)據(jù)集。該數(shù)據(jù)集除了包括正常運(yùn)行的過程控制和過程測(cè)量以及針對(duì)SCADA 系統(tǒng)的攻擊。攻擊的類別分四類:偵察,響應(yīng)注入,命令注入和拒絕服務(wù)(Dos)。在數(shù)據(jù)集中,每條網(wǎng)絡(luò)數(shù)據(jù)包括27個(gè)標(biāo)記特征,其中26個(gè)為連接特征,一個(gè)為標(biāo)記,用于標(biāo)記數(shù)據(jù)是哪一個(gè)類別。因?yàn)楣た叵到y(tǒng)從網(wǎng)絡(luò)上采集的入侵特征值擁有不同的度量單位,樣本特征屬性也各不相同,本文進(jìn)行歸一化預(yù)處理以消除這些不利因素的影響,具體的描述為
數(shù)據(jù)集進(jìn)行歸一化處理后,采用PCA 和LDA組合方法進(jìn)行特征提取,調(diào)節(jié)式(8)~(9)中的ω,即PCA 算法中累計(jì)貢獻(xiàn)率調(diào)整半監(jiān)督降維方法的偏向程度,最終本文選擇ω=0.9 對(duì)數(shù)據(jù)集進(jìn)行降維處理得到的實(shí)驗(yàn)結(jié)果較好。
實(shí)驗(yàn)數(shù)據(jù)集由10%儲(chǔ)水罐系統(tǒng)事務(wù)數(shù)據(jù)集中的10000 條構(gòu)成,將實(shí)驗(yàn)數(shù)據(jù)分成兩組,組成訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,其中測(cè)試數(shù)據(jù)集又分為三組。為了評(píng)估分類器性能,本文使用查準(zhǔn)率(Precision)、誤報(bào)率(False Positive Rate)和漏報(bào)率(False Negative Rate)為評(píng)估指標(biāo)。實(shí)驗(yàn)過程中,為了得到最優(yōu)的分類效果,需要選擇適當(dāng)?shù)暮撕瘮?shù),因?yàn)閺较蚧瘮?shù)對(duì)高維非線性數(shù)據(jù)的處理效果較好,所以本文選擇徑向基函數(shù)作為核函數(shù)。
為了體現(xiàn)PSO 參數(shù)尋優(yōu)對(duì)SVM 的影響,本文使用傳統(tǒng)SVM 和文獻(xiàn)[9]作為比較模型,采用相同的數(shù)據(jù)集,檢測(cè)結(jié)果如表1所示。
表1 GA-SVM與PSO-SVM的實(shí)驗(yàn)結(jié)果
從表1 的仿真結(jié)果可知采用優(yōu)化參數(shù)后網(wǎng)絡(luò)入侵檢測(cè)的檢測(cè)率遠(yuǎn)遠(yuǎn)高于傳統(tǒng)SVM,同時(shí)誤報(bào)率和漏報(bào)率均有明顯下降。其中,經(jīng)PSO尋優(yōu)后平均查準(zhǔn)率比其他方法具有優(yōu)勢(shì)。
為了驗(yàn)證本文算法優(yōu)越性,采用BP 神經(jīng)網(wǎng)絡(luò)(BPNN)作為比較模型,從圖2和圖3可以看出SVM克服了神經(jīng)網(wǎng)絡(luò)局部最優(yōu)和收斂速度慢的缺陷,更加適應(yīng)與網(wǎng)絡(luò)入侵檢測(cè)實(shí)時(shí)性和高檢測(cè)正確率要求。
圖1 BPNN與PSO_SVM查準(zhǔn)率
圖2 BPNN與PSO_SVM誤報(bào)率
表2 基于PSO-SVM模型使用不同降維方式的實(shí)驗(yàn)結(jié)果
表2 的實(shí)驗(yàn)結(jié)果表明本文采用的半監(jiān)督LDA方法進(jìn)行特征提取,可以提高PSO-SVM 模型的檢測(cè)結(jié)果。
針對(duì)工控?cái)?shù)據(jù)數(shù)據(jù)量大和特征維度多的特點(diǎn),本文提出了一種融合半監(jiān)督LDA 和PSO-SVM 方法。該方法通過融合兩種特征提取方法對(duì)原始數(shù)據(jù)進(jìn)行特征降維以減少特征向量并提高數(shù)據(jù)集的檢測(cè)速度;利用PSO 算法進(jìn)行參數(shù)尋優(yōu),構(gòu)造分類模型并對(duì)其進(jìn)行入侵檢測(cè)實(shí)驗(yàn)。使用密西西比州立大學(xué)關(guān)鍵基礎(chǔ)設(shè)施保護(hù)中心公開數(shù)據(jù)集,對(duì)數(shù)據(jù)集進(jìn)行歸一化預(yù)處理,反復(fù)實(shí)驗(yàn),結(jié)果表明這種融合半監(jiān)督LDA 和PSO-SVM 的入侵檢測(cè)方法提高了對(duì)異常行為的查準(zhǔn)率,降低了漏報(bào)率。