陳萬志 徐東升 張靜 唐雨
摘 要:針對工業(yè)控制系統(tǒng)傳統(tǒng)單一檢測算法模型對不同攻擊類型檢測率和檢測速度不佳的問題,提出一種優(yōu)化支持向量機和K-means++算法結(jié)合的入侵檢測模型。首先利用主成分分析法(PCA)對原始數(shù)據(jù)集進行預(yù)處理,消除其相關(guān)性;其次在粒子群優(yōu)化(PSO)算法的基礎(chǔ)上加入自適應(yīng)變異過程避免在訓(xùn)練的過程中陷入局部最優(yōu)解;然后利用自適應(yīng)變異粒子群優(yōu)化(AMPSO)算法優(yōu)化支持向量機的核函數(shù)和懲罰參數(shù);最后利用密度中心法改進K-means算法與優(yōu)化后的支持向量機組合成入侵檢測模型,從而實現(xiàn)工業(yè)控制系統(tǒng)的異常檢測。實驗結(jié)果表明,所提方法在檢測速度和對各類攻擊的檢測率上得到明顯提升。
關(guān)鍵詞:工業(yè)控制系統(tǒng);主成分分析;粒子群優(yōu)化算法;支持向量機;密度中心法;K-means算法
中圖分類號:TP393.08
文獻標志碼:A
文章編號:1001-9081(2019)04-1089-06
Abstract: Aiming at the problem that traditional single detection algorithm models have low detection rate and slow detection speed on different types of attacks in industrial control system, an intrusion detection model combining optimized Support Vector Machine (SVM) and K-means++algorithm was proposed. Firstly, the original dataset was preprocessed by Principal Component Analysis (PCA) to eliminate its correlation. Secondly, an adaptive mutation process was added to Particle Swarm Optimization (PSO) algorithm to avoid falling into local optimal solution during the training process. Thirdly, the PSO with Adaptive Mutation (AMPSO) algorithm was used to optimize the kernel function and penalty parameters of the SVM. Finally, a K-means algorithm improved by density center method was united with the optimized support vector machine to form the intrusion detection model, achieving anomaly detection of industrial control system. The experimental results show that the proposed method can significantly improve the detection speed and the detection rate of various attacks.
Key words: industrial control system; Principal Component Analysis (PCA); Particle Swarm Optimization (PSO) algorithm; Support Vector Machine (SVM); density center method; K-means algorithm
0?引言
工控入侵檢測系統(tǒng)(Intrusion Detection System, IDS)是一套集動態(tài)預(yù)防、監(jiān)控和保護系統(tǒng)免遭入侵為一體的新型安全機制[1]。IDS是網(wǎng)絡(luò)安全的第二道防火墻,對網(wǎng)絡(luò)的數(shù)據(jù)傳輸進行實時監(jiān)控,通過對數(shù)據(jù)的分析發(fā)現(xiàn)其異常行為,并對這些異常行為及時發(fā)出異常警報。工業(yè)控制系統(tǒng)(Industrial Control System, ICS)的IDS方法主要有異常檢測、誤用檢測和混合檢測三種,其中異常檢測是將檢測到的行為與系統(tǒng)正常行為模型進行匹配,若發(fā)現(xiàn)違反正常模型的行為則判定為異常行為,它的缺點是無法實現(xiàn)精確地識別和劃分;誤用檢測一般采用特征匹配技術(shù),將檢測到的行為與已知攻擊行為的特征庫進行比對,從而發(fā)現(xiàn)入侵行為,它的不足的地方是無法識別出未知的攻擊行為;混合檢測是兩者的結(jié)合[2]。
作為研究熱點,學(xué)者們提出一系列IDS的相關(guān)算法。文獻[3]提出改進K-means算法在入侵檢測中的應(yīng)用,利用平均值的方法解決傳統(tǒng)K-means算法對初始聚類中心的選擇問題;但該方法不能明顯提高檢測的速度和檢測率。文獻[4-5]提出了改進的支持向量機算法對支持向量機的參數(shù)進行優(yōu)化,在對各個攻擊類型的檢測率上得到一定的提高;但測試時間比較長,檢測速度不佳。文獻[6]結(jié)合主成分分析(Principal Component Analysis, PCA)和反向傳播(Back Propagation, BP)神經(jīng)網(wǎng)絡(luò)的入侵檢測方法,利用PCA對數(shù)據(jù)集進行預(yù)處理,從而加快收斂和提高檢測效率;但該方法在檢測未授權(quán)的本地超級用戶特權(quán)訪問R2L(Remote to Location)、來自遠程主機的未授權(quán)訪問U2R(User to Root)這兩個攻擊類型時效果不明顯。文獻[7]結(jié)合白名單過濾和神經(jīng)網(wǎng)絡(luò)的入侵檢測方法,根據(jù)神經(jīng)網(wǎng)絡(luò)檢測結(jié)果不斷完善白名單規(guī)則庫提高異常通信的檢測率;但該方法在檢測速度上沒有進行優(yōu)化。文獻[8]提出改進的魚群算法對工業(yè)控制網(wǎng)絡(luò)通信異常進行檢測,對神經(jīng)網(wǎng)絡(luò)的初始輸入權(quán)值和閾值進行優(yōu)化,提高了異常檢測的準確率、縮短了檢測時間;但該方法對各典型攻擊類型的檢測效果不明顯。
綜上所述,傳統(tǒng)的K-means算法過度依賴初始聚類中心的選擇,初始聚類中心的選擇好壞直接影響聚類結(jié)果的穩(wěn)定性,從而導(dǎo)致入侵檢測的檢測率效果不佳;改進的支持向量機是對支持向量機參數(shù)的優(yōu)化,在入侵檢測類型的分類得到了一定的突破,但在入侵檢測的檢測速度上沒得到提升;神經(jīng)網(wǎng)絡(luò)在異常通信的檢測率上有一定的提升,但在各攻擊類型的檢測率和檢測速度上沒有得到進一步的提升。因此,本文提出一種基于PCA和自適應(yīng)變異粒子群優(yōu)化(Particle Swarm Optimization with Adaptive Mutation, AMPSO)支持向量機(Support Vector Machine,SVM)與改進的K-means結(jié)合的入侵檢測算法(PCA-AMPSO-SVM-K-means++),提高對各類攻擊的檢測精確度和檢測速度。
1?工業(yè)控制網(wǎng)絡(luò)入侵檢測原理
1.1?工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)安全要求
與Internet系統(tǒng)網(wǎng)絡(luò)相比,ICS網(wǎng)絡(luò)的安全需求包括功能安全、物理安全、信息安全三個層面,其安全目標為可用性、完整性、保密性,與Internet系統(tǒng)網(wǎng)絡(luò)存在的明顯差別。此外,二者性能需求、安全體系著重點等方面還存在著不同的需求,具體如表1所示。
1.2?工業(yè)控制入侵檢測的思想
在管理員的網(wǎng)絡(luò)客戶端和Web服務(wù)器間的網(wǎng)關(guān)上,加入主成分分析法、優(yōu)化的支持向量機、K-means++算法檢測環(huán)節(jié),利用通信網(wǎng)絡(luò)中的數(shù)據(jù)特征,檢測出管理者與服務(wù)器的異常通信數(shù)據(jù),從而提高檢測的準確率和檢測速度[8]。圖1表示為工業(yè)控制系統(tǒng)的架構(gòu)模型。
1.3?入侵檢測中的特征選擇
本文實驗中用到的KDD99數(shù)據(jù)集中,入侵攻擊的數(shù)據(jù)主要分為四大類[9]:
1)拒絕服務(wù)攻擊(Denial-of-Service, DoS):通過攻擊網(wǎng)絡(luò)協(xié)議實現(xiàn)的缺陷或耗盡被攻擊對象的資源,使計算機或網(wǎng)絡(luò)無法提供正常的服務(wù)和資源訪問。
2)端口監(jiān)視或掃描(surveillance and probe, Probe):攻擊者對目標對象發(fā)起進攻的常用手段,再通過此手段得到相關(guān)信息。
3)U2R攻擊:攻擊者通過遠程主機,以未授權(quán)的方式進行操作和資源訪問。
4)R2L攻擊:對權(quán)限較低的User進行攻擊,通過對系統(tǒng)或網(wǎng)站漏洞獲取權(quán)限,然后進行非法操作。
2?本文方法模型
2.1?AMPSO-SVM算法
2.1.1?AMPSO算法
AMPSO算法[7]是由于PSO算法結(jié)構(gòu)相對簡單,因此運算速度較快,在尋優(yōu)過程中防止陷入局部最優(yōu),故加入自適應(yīng)變異過程。其中PSO算法的速度、位置更新公式如下:
2.1.2?AMPSO優(yōu)化SVM算法
基于SVM算法的數(shù)據(jù)分類原理,核函數(shù)K及其懲罰參數(shù)C的選擇對于SVM的分類性能以及泛化能力非常重要。本文利用自適應(yīng)粒子群算法優(yōu)化SVM的核函數(shù)K和懲罰參數(shù)C,具體的實現(xiàn)步驟[10]如下:
步驟1?將原始數(shù)據(jù)集預(yù)處理后作為檢測模型輸入樣本。
步驟2?初始化粒子群算法中相對應(yīng)的初始數(shù)據(jù)。
步驟3?按照SVM算法的決策函數(shù)判斷其輸出值是否達到檢測精度或粒子群的最大迭代次數(shù)。若是則執(zhí)行步驟6,否則執(zhí)行步驟4。
步驟4?根據(jù)式(4)計算適應(yīng)度方差值。
步驟5?通過變異操作后,選擇個體極值pbest、全局最優(yōu)值gbest。
步驟6?選擇SVM最優(yōu)核函數(shù)K與懲罰參數(shù)C,得到SVM算法模型。
2.2?K-means++算法
K-means是一種典型的基于樣本間距離的算法,通過計算樣本間距離的大小評價樣本間的相似性。該算法認為每個簇都是由距離最近的對象組成,所以把得到獨立且緊湊的簇作為最終的目標。但K-means算法的初始聚類中心K值的選擇至關(guān)重要,K值選擇得合適與否直接影響算法的工作效率和準確性。本文采用密度和中心點來確定初始聚類中心K值的選擇[11]。
其中:C2n是從n個點中取兩個點的組合數(shù),這里是表示所有點之間的距離。
本文中K-means++聚類算法的實現(xiàn)步驟:
輸入?包含K個簇的數(shù)據(jù)學(xué)習樣本Dm×n。
輸出?K個初始聚類的數(shù)據(jù)集。
1)通過式(9)計算出每個數(shù)據(jù)樣本的密度,并進行密度大小的排序得到數(shù)據(jù)集D1;
2)選取當前密度最大的數(shù)據(jù)樣本點并通過式(10)選擇與其距離最近的樣本點;
3)通過定義1中的公式計算出這兩點的中點,作為初始聚類中心kv,其中v∈(1,2,…,k);
4)以kv為簇中心,用式(11)算出半徑畫出圓域(r=avgrange),則此圓域為一個劃分,并且從此D1中去除該圓域中的數(shù)據(jù)點;
5)重復(fù)2)~5),直到選取K個中心點;
6)當取到K個聚類時,D1中剩下的未劃分的點則根據(jù)式(10)劃分給最近的簇;
7)輸出K個初始聚類,算法結(jié)束。
2.3?本文入侵檢測模型
在離線條件下采用本文提出的入侵檢測方法進行模型訓(xùn)練,得到輸出的結(jié)果檢測分類器的模型,進而在線對通信數(shù)據(jù)作出實時決策。
整個檢測系統(tǒng)可分為三個階段:1)離線數(shù)據(jù)處理。面對大量的冗余用戶數(shù)據(jù),采用PCA對數(shù)據(jù)進行預(yù)處理。
2)離線構(gòu)建分類器。訓(xùn)練數(shù)據(jù)進行預(yù)處理后,得到的用戶的數(shù)據(jù)特征經(jīng)過訓(xùn)練模塊,得到檢測分類器的模型。
3)在線實時決策。將在線實時獲取用戶數(shù)據(jù)通過訓(xùn)練好的檢測系統(tǒng),分類器根據(jù)其特征作出相應(yīng)的分類決策。
本文入侵檢測方法工作流程如圖2所示。
3?實驗與結(jié)果分析
3.1?算法有效性驗證
3.1.1?實驗數(shù)據(jù)
本文仿真實驗數(shù)據(jù)為入侵檢測廣泛應(yīng)用的KDD99數(shù)據(jù)集。該數(shù)據(jù)集包括訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集記錄分別為514092和319490條,每個數(shù)據(jù)包含41維特征,其中最后1維為標簽屬性。主要包括5大類數(shù)據(jù)記錄,分別為:Normal數(shù)據(jù)、DoS攻擊、Probe攻擊、U2R攻擊、R2L攻擊[7],從中抽取部分數(shù)據(jù)作為實驗數(shù)據(jù),如表2所示。
3.1.2?實驗環(huán)境及相關(guān)數(shù)據(jù)
本文測試仿真實驗的硬件環(huán)境為操作系統(tǒng)為Windows 10,內(nèi)存為4GB,Intel i5-7200U 2.70GHz,所用的軟件環(huán)境為Matlab 2016a、Pycharm 2017。
首先,利用上文提到的主成分分析方法對數(shù)據(jù)集進行特征提取,利用python軟件對514092個數(shù)據(jù)12個特性進行主成分分析;然后利用上述的貢獻率計算即可提取相應(yīng)的主成分個數(shù);接著比較每個主成分的在原始數(shù)據(jù)中的承載量,承載量越大,對應(yīng)的數(shù)據(jù)信息量就越大;最后提取10個主成分反映的主要原始數(shù)據(jù)特性[12]。
在Matlab環(huán)境下,利用PCA-AMPSO-SVM-K-means++算法模型進行訓(xùn)練和測試,輸出分別為Normal數(shù)據(jù)、DoS攻擊、U2R攻擊、R2L攻擊、Probe攻擊。對應(yīng)的系統(tǒng)的結(jié)構(gòu)如圖3所示。
在粒子群尋優(yōu)算法中設(shè)置最大迭代次數(shù)為50,并且在每次迭代過程中記錄其適應(yīng)度方差。如圖4所示,可以看出PSO-SVM的方差在迭代35次達到最優(yōu),而AMPSO-SVM在迭代12次時得到最優(yōu)解。
根據(jù)入侵檢測的標準,本文提出的PCA-AMPSO-SVM-K-means++入侵檢測模型以檢測率和誤報率為評價指標。其中:
在此,將本文的入侵檢測方法與傳統(tǒng)的K-means聚類算法、傳統(tǒng)支持向量機(SVM)算法、基于PSO-SVM算法[13],以及K-means與反向傳播(BP)神經(jīng)網(wǎng)絡(luò)結(jié)合的算法(K-BP)[14]進行對比。
對五組入侵檢測模型的誤報率進行的比較如圖6所示,從中可發(fā)現(xiàn)PCA-AMPSO-SVM-K-means算法模型對各種類型攻擊的誤報率均有所降低。
3.2?工業(yè)控制仿真測試
為了進一步驗證本文的檢測模型在工業(yè)控制網(wǎng)絡(luò)中的適用性,本文以某風力發(fā)電廠的工業(yè)數(shù)據(jù)為基礎(chǔ),對本文方法模型進行性能分析。圖7為某發(fā)電廠數(shù)據(jù)采集與同步系統(tǒng)架構(gòu)拓撲圖。
在某風力發(fā)電廠獲取的部分采集數(shù)據(jù)共13817條,其中正常數(shù)據(jù)為13757條,異常數(shù)據(jù)為60條。部分數(shù)據(jù)如表4所示。
在工業(yè)控制系統(tǒng)實驗中,分別提取源IP地址、目標IP地址、協(xié)議和數(shù)據(jù)長度4組數(shù)據(jù)特征。將獲取的數(shù)據(jù)對這4組數(shù)據(jù)特征通過主成分分析進行降維和特征提取,將處理后的數(shù)據(jù)作為輸入節(jié)點進行輸入,檢測方法模型的輸出節(jié)點分別為正常數(shù)據(jù)(Normal)和異常數(shù)據(jù)(Abnormal)。
在工業(yè)控制實驗中共采集13817條數(shù)據(jù),將其中的9817條數(shù)據(jù)作為測試數(shù)據(jù)集,包含9770條正常數(shù)據(jù)和47條異常數(shù)據(jù);其他4000條作為測試數(shù)據(jù)集,包含3987條正常數(shù)據(jù)和13條異常數(shù)據(jù)。
將本文方法與文獻[7-8]方法利用工控系統(tǒng)采集的數(shù)據(jù)進行測試并對比。
在同一實驗條件下,本文方法在測試數(shù)據(jù)集13條異常數(shù)據(jù)中檢測出11條異常數(shù)據(jù),文獻[7]方法檢測出9條異常數(shù)據(jù),文獻[8]方法檢測出10條異常數(shù)據(jù)。本文方法與文獻[7]方法、文獻[8]方法的檢測率分別為84.62%、69.23%、76.92%。
現(xiàn)將本文方法與SVM、PSO-SVM方法進行隨著測試樣本的增加,檢測率的對比研究,結(jié)果如圖8所示。
相對于SVM、PSO-SVM方法,本文方法隨著測試樣本在總樣本的比例逐漸增加,響應(yīng)時間明顯低于其他方法,說明本文方法實時性優(yōu)于其他方法,如圖9所示。產(chǎn)生時間上的差距主要在粒子群尋優(yōu)的過程中加入自適應(yīng)變異操作,從而迭代次數(shù)少于其他方法。
4?結(jié)語
本文針對工業(yè)控制網(wǎng)絡(luò)入侵檢測問題提出優(yōu)化支持向量機與K-means++結(jié)合的算法,根據(jù)本文的具體工作流程可知該方法具有如下優(yōu)點:1)利用主成分分析(PCA)對數(shù)據(jù)集進行特征提取和降維,更好地提高檢測速度和檢測精度;2)利用自適應(yīng)粒子群算法優(yōu)化支持向量機參數(shù),提高支持向量機的分類性能;3)通過密度中心法對K-means算法進行改進,解決了初始聚類中心隨機選擇問題,減小了實驗誤差。
實驗結(jié)果表明,本文提出PCA-AMPSO-SVM-K-means++算法模型對各攻擊類型的平均檢測率和檢測速度上明顯優(yōu)于其他對比方法。此外,本文還通過對某工業(yè)控制系統(tǒng)獲得的數(shù)據(jù)進行了實驗對比,進一步驗證了本文方法的有效性。
參考文獻(References)
[1] 尚文利, 安攀峰, 萬明, 等.工業(yè)控制系統(tǒng)入侵檢測技術(shù)的研究及發(fā)展綜述[J]. 計算機應(yīng)用研究, 2017, 34(2): 328-330. (SHANG W L, AN P F, WAN M, et al. A survey of the research and development of industrial control system intrusion detection technology[J]. Application Research of Computers, 2017, 34(2): 328-330.)
[2] 楊安, 孫利民, 王小山, 等.工業(yè)控制系統(tǒng)入侵檢測技術(shù)綜述[J]. 計算機研究與發(fā)展, 2016, 53(9): 2039-2054. (YANG A, SUN L M, WANG X S, et al. Industrial control system intrusion detection technology overview[J]. Computer Research and Development, 2016, 53(9): 2039-2054.)
[3] 李洋. K-means聚類算法在入侵檢測中的應(yīng)用[J]. 計算機工程, 2007, 33(14): 154-156. (LI Y. Application of K-means clustering algorithm in intrusion detection[J]. Computer Engineering, 2007, 33(14): 154-156.)
[4] 劉萬軍, 秦濟韜, 曲海成, 等.基于改進單類支持向量機的工業(yè)控制網(wǎng)絡(luò)入侵檢測[J]. 計算機應(yīng)用, 2017, 26(12): 1-5. (LIU W J, QIN J T, QU H C, et al. Industrial control network intrusion detection method based on improved single-class support vector machin[J]. Journal of Computer Applications, 2017, 26(12): 1-5.)
[5] PARVANIA M, KOUTSANDRIA G, MUTHUKUMAR V, et al. Hybrid control network intrusion detection systems for automated power distribution systems[C]// Proceedings of the 2014 IEEE/IFIP International Conference on Dependable Systems and Networks. Washington, DC: IEEE Computer Society, 2014: 774-779.
[6] 梁辰, 李成海, 周來恩.PCA-BP神經(jīng)網(wǎng)絡(luò)入侵檢測方法[J]. 空軍工程大學(xué)學(xué)報, 2016, 32(6): 93-96. (LIANG C, LI C H, ZHOU L E. PCA-BP neural network intrusion detection method [J]. Journal of Air Force Engineering University, 2016, 32(6): 93-96.)
[7] 陳萬志, 李東哲.結(jié)合白名單過濾和神經(jīng)網(wǎng)絡(luò)的工業(yè)控制網(wǎng)絡(luò)入侵檢測方法[J]. 計算機應(yīng)用, 2018, 38(2): 363-369. (CHEN W Z, LI D Z. Industrial control network intrusion detection method combining white list filtering and neural network [J]. Journal of Computer Applications, 2018, 38(2): 363-369.)
[8] 陳萬志, 唐雨, 張靜.工業(yè)控制網(wǎng)絡(luò)異常通信檢測的改進魚群算法優(yōu)化方法[J]. 計算機應(yīng)用研究, 2018, 36(8): 323-328. (CHEN W Z, TANG Y, ZHANG J. Improved fish school algorithm optimization method for abnormal communication detection in industrial control networks[J]. Application Research of Computers, 2018, 36(8): 323-328.)
[9] LEE C B, ROEDEL C, SILENOK E. Detection and characterization of port scan attacks[J]. Key Engineering Materials, 2014, 602/603(3): 93-96.
[10] 陳冬青, 張普含, 王華忠.基于MIKPSO-SVM方法的工業(yè)控制系統(tǒng)入侵檢測[J]. 清華大學(xué)學(xué)報 (自然科學(xué)版), 2018, 58(4): 380-386. (CHEN D Q, ZHANG P H, WANG H Z. Intrusion detection of industrial control systems based on MIKPSO-SVM method [J]. Journal of Tsinghua University (Science and Technology), 2018, 58(4): 380-386.)
[11] 周煒奔, 石躍祥.基于密度的K-means聚類中心選取的優(yōu)化算法[J]. 計算機應(yīng)用研究, 2012, 29(5): 1726-1728. (ZHOU W B, SHI Y X. Density-based K-means clustering center selection algorithm[J]. Application Research of Computers, 2012, 29(5): 1726-1728.)
[12] BISHOP M, GATES C. Defining the insider threat [EB/OL]. [2018-05-10]. https://escholarship.org/uc/item/1qm187cg.
[13] 馬占飛, 陳虎年, 楊晉, 等.一種基于IPSO-SVM算法的網(wǎng)絡(luò)入侵檢測方法[J]. 計算機科學(xué), 2018, 45(2): 231-235. (MA Z F, CHEN H N, YANG J, et al. A network intrusion detection method based on IPSO-SVM algorithm[J]. Computer Science, 2018, 45(2): 231-235.)
[14] 王曉燕. K-均值算法與自組織神經(jīng)網(wǎng)絡(luò)算法的改進研究及應(yīng)用[D]. 太原: 中北大學(xué), 2017: 65-66. (WANG X Y. Research and application of K-means algorithm and self-organizing neural network algorithm [D]. Taiyuan: North University of China, 2017: 65-66.)
[15] 牛雷, 孫忠林.PCA-AKM算法及其在入侵檢測中的應(yīng)用[J]. 計算機科學(xué), 2018, 45(2): 226-229. (NIU L, SUN Z L. PCA-AKM algorithm and its application in intrusion detection[J]. Computer Science, 2018, 45(2): 226-229.)