詹 琉
(廣東工業大學 廣州 511400)
近年來,工業互聯網、智能制造、物聯網等各種創新應用發展迅速,工業控制系統(Industrial Control Systems,ICS)的網絡化控制設備和數據交換設施在增多,以及數據接入方式多樣,這些變化使得工業控制設備更容易遭受攻擊[1]。工業控制終端功能化的設計目標,使其在設計時未能考慮安全防護的需要,有限的計算存儲資源也制約了安全防護措施的接入,導致近年來以“震網”病毒為代表的工業網絡安全事件時有發生[2]。0-day 漏洞的利用以及病毒變種的多樣性使得傳統基于漏洞庫的安全防護措施暴露出更多問題[3],設計準確高效且能夠應對未知攻擊的安全防護方法成為當前研究焦點[13]。
入侵檢測系統(IDS)是網絡安全的第二道防線,對網絡數據傳輸進行監控,通過對數據的分析發現異常行為[14~15]。IDS 引入了粗糙集理論,決策樹,隨機森林,人工神經網絡和支持向量機(SVM)來防范未知攻擊。而SVM 是基于邊緣的分類器,基于具有良好泛化能力的小樣本學習,經常用于現實世界的分類應用[16]。同時SVM 沒有人工神經網絡無法解決的過度擬合問題,但是仍然受到數據集大小的影響,由于內存不足或長時間的訓練而導致系統故障。在現實生活中,數據通常具有大量不相關或過時的特征。SVM 缺乏立即擁有特征重要性的能力[4],這最終會增加顯著的計算難度并可能導致預測準確性較弱。PCA 的最小信息損失和LDA所需類別的最大可辨識,將這兩種技術結合起來并從其積極的方面獲益的最佳嘗試,從而獲得更好的分類性能。因此本文提出了一種PCA 與LDA 組合的半監督降維方法和PSO-SVM相結合的工控異常檢測方法,提高了對異常行為的查準率。應用密西西比州立大學關鍵基礎設施保護中心提供的已進行數值化處理的工控數據集進行仿真實驗,結果顯示本文提出的方法具有較高的檢測準確率。
文獻[5]提出改進K-means算法在入侵檢測中的應用,利用平均值的方法解決傳統K-means算法對初始聚類中心的選擇。文獻[6~7]均提出改進的支持向量機的算法對支持向量機的參數進行優化,在對各個攻擊類型的檢測率上得到一定的提高。文獻[8]提出一種了基于Snot的協議分析與檢測系統,該方法對特定協議與已知的非法數據包具有良好的檢測效果。文獻[9]提出一種基于網格優化SVM參數的入侵檢測方法,發現該算法具有較高的檢測準確率。文獻[10~11]均基于主成分分析法(Principal Component Analysis,PCA)對數據集進行預處理,從而加快收斂速度,提高檢測效率。
上述研究中,文獻[5~9]均采用的是傳統的入侵檢測方法,由于工業控制系統中提取的數據大都具有高維的特性,以及攻擊類型的不確定性和多樣性,導致入侵檢測方法耗時過長或準確率低。文獻[10~11]僅采用基于PCA 對數據進行特征提取以減少數據降維,但是由于PCA方法只能去除有關線性結構而非非線性結構的信息,無法解決非線性結構的信息降維。
通過分析PCA 和LDA 算法的基本思想,PCA算法可以用于所有樣本,并且在降維后最大限度地保留了數據的內在信息,但忽略了數據的類別信息,并且存在諸如矩陣尺寸過大和解決方案復雜的問題。因此,為了實現二者的互補優勢,提出了半監督LDA 算法進行特征提取:先使用PCA 算法減少樣本特征,再使用PCA 和LDA 的組合進行二維減少。
主成分分析法(PCA)的基本思想是從一組特征中計算出一組按照重要性的大小從大到小依次排列的新特征,新特征是原有特征的線性組合。具體步驟如下:
1)設原始輸入數據樣本數為n,每個樣本都有p個特征屬性,即輸入數據矩陣為

計算樣本X的均值向量μ和協方差矩陣S,即

2)對協方差矩陣S 進行特征值分解,得到特征值序列λ1≥λ2≥… ≥λp
3)計算第i個主成分的樣本貢獻率ρi,

4)通過累計貢獻率ω確定主成分分量樣本個數k,選擇前k 個特征值所對應的特征向量,構成投影矩陣A=[a1,a2, …,ak],ai為p維向量 。

線性判別分析法(LDA)的基本思想是將帶上標簽數據(點),通過投影(變換)的方法,投影更低維的空間。在這個低維空間中,同類樣本盡可能接近,異類樣本盡可能遠離。半監督LDA 的具體步驟如下:
1)設輸入數據為A=[a1,a2, …,ak],ɑi為 p 維的向量,p 是經PCA 降維后的特征數,利用LDA 再次進行降維:設第m 個樣本種類的個數為Nm,則總的訓練樣本個數為為樣本種類數,那么第m 個樣本種類的均值為所有訓練樣本的平均值為

3)定義半監督散矩陣為

其中,I 為單位矩陣。ω∈[0,1]可以調節PCA 算法和LDA 算法在半監督降維中的作用,當ω=0 時,半監督降維完全改變為LDA 算法;當ω=1 時,算法完全蛻變為PCA算法。
4)根據Fisher判別分析表達式:

σ為任一列向量,Fisher 線性判別分析就是尋找使得J(σ)達到最大值的σ,把這一向量作為投影方向,可以找到一組最優判別向量構成的投影矩陣W,投影矩陣通過如下廣義特征值求解:

支持向量機作為一種傳統的監督學習模型,其核心在于尋找一個能夠正確對二分類數據進行特征空間劃分的超平面,而支持向量則是處于距離超平面最近的樣本點。構造與求解最優超平面可轉化為在原空間求解一個二次回歸問題:

其中:ω為權重向量;b是分類閾值;ζi是松弛因子;C為懲罰因子。
利用拉格朗日乘數法求解問題(12),得到最優分類函數為

其中:N 為支持向量個數;α(ii=1,2, …,N)是拉格朗日乘數。若樣本集非線性可分,則通過非線性映射到線性可分的高維特征空間,在高維特征空間構造最優分類面。對滿足Mercer 條件的核函數K(xi,xj)存在對應關系K(xi,xj)=(Φ (xi)·φ(xj))。所以,高維特征空間的最優分類函數為

粒子群算法作為一種基于迭代的優化算法,粒子在空間中會追隨最優粒子不斷迭代搜尋。每個粒子會根據適應度函數確認適應值,適應值是衡量粒子優劣性的標準。速度和位置的更新公式為

1)隨機生成初始粒子群,并設置當前迭代次數k=1,給定迭代次數上限kmax;
2)計算適應度函數得到適應度值,慣性權重ω,更新粒子的位置信息;
4)判斷是否達到迭代終止條件,若粒子適應度值滿足要求或已達到給定迭代次數上限kmax,則算法結束,否則重復步驟3)進行迭代。
本次實驗粒子數為30,迭代上限kmax=300,加速因子c1=1.7,c2=1.5。
密西西比州立大學關鍵基礎設施保護中心公開數據集[12]。公開數據集提供了四個數據集,本文選擇其中10%的儲水罐系統的事務數據集。該數據集除了包括正常運行的過程控制和過程測量以及針對SCADA 系統的攻擊。攻擊的類別分四類:偵察,響應注入,命令注入和拒絕服務(Dos)。在數據集中,每條網絡數據包括27個標記特征,其中26個為連接特征,一個為標記,用于標記數據是哪一個類別。因為工控系統從網絡上采集的入侵特征值擁有不同的度量單位,樣本特征屬性也各不相同,本文進行歸一化預處理以消除這些不利因素的影響,具體的描述為

數據集進行歸一化處理后,采用PCA 和LDA組合方法進行特征提取,調節式(8)~(9)中的ω,即PCA 算法中累計貢獻率調整半監督降維方法的偏向程度,最終本文選擇ω=0.9 對數據集進行降維處理得到的實驗結果較好。
實驗數據集由10%儲水罐系統事務數據集中的10000 條構成,將實驗數據分成兩組,組成訓練數據集和測試數據集,其中測試數據集又分為三組。為了評估分類器性能,本文使用查準率(Precision)、誤報率(False Positive Rate)和漏報率(False Negative Rate)為評估指標。實驗過程中,為了得到最優的分類效果,需要選擇適當的核函數,因為徑向基函數對高維非線性數據的處理效果較好,所以本文選擇徑向基函數作為核函數。
為了體現PSO 參數尋優對SVM 的影響,本文使用傳統SVM 和文獻[9]作為比較模型,采用相同的數據集,檢測結果如表1所示。

表1 GA-SVM與PSO-SVM的實驗結果
從表1 的仿真結果可知采用優化參數后網絡入侵檢測的檢測率遠遠高于傳統SVM,同時誤報率和漏報率均有明顯下降。其中,經PSO尋優后平均查準率比其他方法具有優勢。
為了驗證本文算法優越性,采用BP 神經網絡(BPNN)作為比較模型,從圖2和圖3可以看出SVM克服了神經網絡局部最優和收斂速度慢的缺陷,更加適應與網絡入侵檢測實時性和高檢測正確率要求。

圖1 BPNN與PSO_SVM查準率

圖2 BPNN與PSO_SVM誤報率

表2 基于PSO-SVM模型使用不同降維方式的實驗結果
表2 的實驗結果表明本文采用的半監督LDA方法進行特征提取,可以提高PSO-SVM 模型的檢測結果。
針對工控數據數據量大和特征維度多的特點,本文提出了一種融合半監督LDA 和PSO-SVM 方法。該方法通過融合兩種特征提取方法對原始數據進行特征降維以減少特征向量并提高數據集的檢測速度;利用PSO 算法進行參數尋優,構造分類模型并對其進行入侵檢測實驗。使用密西西比州立大學關鍵基礎設施保護中心公開數據集,對數據集進行歸一化預處理,反復實驗,結果表明這種融合半監督LDA 和PSO-SVM 的入侵檢測方法提高了對異常行為的查準率,降低了漏報率。