陳萬志,李東哲
(遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)(*通信作者電子郵箱775693539@qq.com)
工業(yè)控制系統(tǒng)(Industrial Control System, ICS)在設計之初普遍采用專有的通信設備、操作系統(tǒng)和硬件設備,獨立于其他網(wǎng)絡,且大多數(shù)ICS采用專有的通信協(xié)議[1],但隨著ICS不斷引入TCP/IP協(xié)議、工業(yè)以太網(wǎng)、現(xiàn)場總線等網(wǎng)絡化技術,工控設備與管理信息網(wǎng)絡、互聯(lián)網(wǎng)深度融合互連的同時,也帶來了系統(tǒng)的安全威脅。傳統(tǒng)的入侵檢測技術等安全技術雖然比較成熟,卻不能直接應用于ICS,因此,若要提高ICS的通信異常檢出率,則需要依據(jù)不同的協(xié)議特點建立不同的入侵檢測系統(tǒng)。
入侵檢測主要分為誤用檢測和異常檢測兩大類,其中:誤用檢測是通過與已知的異常行為間的匹配程度來實現(xiàn)入侵檢測,也稱為基于先驗知識的入侵檢測,包括基于統(tǒng)計的方法、基于知識的方法和基于機器學習的方法;而異常檢測是通過建立正常行為模型來尋找偏離的異常行為,故也被稱為基于行為的入侵檢測,包括基于專家系統(tǒng)的誤用檢測、基于模型的誤用檢測等[2]。
目前,研究者們提出了不少針對ICS的入侵檢測方法。尚文利等[2]提出了一種基于PSO-SVM的Modbus TCP通信異常檢測方法,該方法在數(shù)據(jù)預處理的過程中將樣本分為“異常”“無標識”兩類,方法的準確率受到了工業(yè)控制系統(tǒng)“異?!睌?shù)據(jù)難以獲得的限制。張云貴等[3]提出了一種基于非參數(shù)CUSUM(CUmulative SUM)算法的入侵檢測模型,利用控制模型中預測輸出與實際傳感器信號輸出的差值進行檢測。該方法是在對工業(yè)控制系統(tǒng)生產(chǎn)工藝熟悉的基礎上構建的,若改變生產(chǎn)環(huán)境,方法就可能產(chǎn)生較大誤差。Mutha等[4]對SCADA(Supervisory Control And Data Acquisition)協(xié)議分析建立了白名單規(guī)則,分析過程使用關聯(lián)規(guī)則,利用通信數(shù)據(jù)與最近系統(tǒng)日志中異常通信數(shù)據(jù)匹配相似度來判斷異常行為。此方法需針對不同應用網(wǎng)絡環(huán)境的系統(tǒng)日志進行分析,當網(wǎng)絡環(huán)境變化較大時,難以有較高的檢測率。Kwon等[5]針對智能電網(wǎng)的通信協(xié)議IEC61850建立白名單規(guī)則庫,從而檢測不符合通信規(guī)則的通信數(shù)據(jù);但該方法僅針對IEC61850協(xié)議建立規(guī)則,不適用于其他網(wǎng)絡,即規(guī)則庫外的特征行為無法檢測,當網(wǎng)絡中出現(xiàn)未知類型攻擊時可能難以識別。
根據(jù)上述文獻可知,采用白名單技術的異常檢測能夠有效地檢測出規(guī)則庫中的通信異常行為,規(guī)則庫內(nèi)的規(guī)則具有簡明直觀的優(yōu)點,可以是離散特征,也可以是連續(xù)特征;但白名單方法只能檢測規(guī)則庫中規(guī)定的異常行為,當攻擊特征發(fā)生變化時,系統(tǒng)則無法辨識[5]。ICS對實時性的要求,導致ICS網(wǎng)絡通信數(shù)據(jù)海量且以正常數(shù)據(jù)為主體,單一的無監(jiān)督深度算法檢測可以解決樣本不完備情況下的檢測,但是在出現(xiàn)非訓練樣本中的異常數(shù)據(jù)時,則需要將數(shù)據(jù)放入樣本中重新訓練,且訓練過程對樣本數(shù)據(jù)的要求很高,通常需要將連續(xù)特征離散化,難以適應ICS對穩(wěn)定性、實時性的要求。因此本文在白名單檢測基礎上將自適應變異粒子群優(yōu)化(Particle Swarm Optimization with Adaptive Mutation, AMPSO)算法與BP(Back Propagation)神經(jīng)網(wǎng)絡相結合,提出一種新的入侵檢測算法AMPSO-BP,白名單可以設置連續(xù)特征的特征范圍和常見特征,神經(jīng)網(wǎng)絡則用于檢測特征不完備或多特征異常情況。本文方法簡化了BP算法的訓練過程,提升了BP算法效率,同時解決了PSO算法容易過早陷入局部最優(yōu)的問題,通過對樣本數(shù)據(jù)庫進行無監(jiān)督學習,持續(xù)主動地更新白名單規(guī)則庫,實現(xiàn)通信異常的識別,降低系統(tǒng)學習頻率。
BP神經(jīng)網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)絡,用于學習輸入與輸出之間的映射關系,是神經(jīng)網(wǎng)絡算法中的經(jīng)典算法,在參數(shù)調(diào)整的部分,BP算法基于梯度下降的策略確定最佳的權值和閾值。為了提高BP神經(jīng)網(wǎng)絡的收斂速度,減小初值不同對訓練結果的影響,利用粒子群優(yōu)化(Particle Swarm Optimization, PSO)算法對BP算法的參數(shù)調(diào)整過程進行優(yōu)化,改進了梯度下降算法中求微積分和求導的過程[6-9],避免BP算法陷入過擬合狀態(tài)。其中PSO算法的速度、位置更新公式如下:
(1)
xl(n+1)=xl(n)+vl(n+1);l=1,2,…,m
(2)
慣性權重w一般取值在0.1~0.9,如果w隨著算法迭代的進行而線性減小,將顯著改善算法收斂性能。設wmax為最大權重,wmin為最小權重,run為當前迭代次數(shù),runmax為算法迭代總次數(shù),則有w的計算公式[10-11]如下:
(3)
PSO算法一般采用實數(shù)編碼,由于沒有選擇、交叉、變異等操作,算法結構相對簡單,因此運算速度很快,但在尋優(yōu)過程中很容易陷入局部最優(yōu)值,即當粒子群適應度方差趨近于零時,粒子群中的粒子會聚集在一個或幾個特定位置[10]。其中,粒子群適應度方差根據(jù)式(4)計算,因此,適應度不能作為尋優(yōu)的唯一參數(shù),本文參考文獻[10],在PSO尋優(yōu)的過程中加入自適應變異過程[11-15]。
設粒子群的粒子數(shù)為N,fi為第i個粒子的適應度,favg為粒子群目前的平均適應度,δ2為粒子群的群體適應度方差。δ2計算公式如下:
(4)
其中:f是歸一化定標因子,作用是限制δ2的大小。f隨算法的變化而變化,本文利用式(5)進行計算:
(5)
在算法運行過程中,如果δ2=0,此時得到的并非全局最優(yōu)解,則說明粒子陷入了局部最優(yōu),算法過早收斂,此時找到的全局最優(yōu)解gbest是目前找到的最優(yōu)解,因此,此時的gbest需要通過變異操作跳出此刻局部區(qū)域,尋找新的個體極值pbest,進而確定全局最優(yōu)解gbest。本文的自適應變異粒子群優(yōu)化(AMPSO)算法將gbest按照一定概率pm變異。pm的計算公式如下:
(6)
(7)
在實際工業(yè)生產(chǎn)中,ICS的通信數(shù)據(jù)特征往往與生產(chǎn)環(huán)境和實際生產(chǎn)中的操作相關聯(lián),因此要依據(jù)具體的生產(chǎn)環(huán)境進行特征提取,并將其作為BP神經(jīng)網(wǎng)絡的輸入神經(jīng)元。AMPSO-BP算法[10]的具體流步驟如下。
1)針對特定的網(wǎng)絡樣本數(shù)據(jù)提取特征值,作為BP神經(jīng)網(wǎng)絡的輸入值。
2)初始化BP網(wǎng)絡,確定網(wǎng)絡各層的神經(jīng)元個數(shù)。
3)初始化粒子群規(guī)模、每個粒子的速度v、位置x、個體極值pbest、全局最優(yōu)值gbest、慣性因子w、學習因子c1和c2,設置PSO算法最大迭代次數(shù)。
設置位置和速度的限定范圍[xmin,xmax]和[vmin,vmax],且限定在[0,1],不允許迭代所得數(shù)據(jù)超出限定范圍。
粒子的位置、速度向量的維數(shù)D為輸入層到隱含層連接權值、隱含層到輸出層的鏈接權值、隱含層的閾值及輸出層的閾值個數(shù)的總和。
4)先向BP神經(jīng)網(wǎng)絡輸入一個粒子,按照BP神經(jīng)網(wǎng)絡中前向計算方法計算其輸出值,依據(jù)式(8)計算誤差,依據(jù)式(9)計算適應度,然后依次輸入其他粒子,直至算出所有粒子的適應度。計算粒子適應度函數(shù)應用BP神經(jīng)網(wǎng)絡的均方誤差函數(shù)[7]:
(8)
(9)
其中:f(p,i)為第i個粒子的適應度值;N為訓練集樣本數(shù);oi, j第i個粒子第j個樣本輸出實際值;yi, j為第i個粒子第j個樣本輸出的理想值。
5)通過比較粒子的適應度,確定粒子個體的個體極值點和全局最優(yōu)極值點,Ppresent為當前粒子適應度,Pbest為pbest粒子適應度,Gbest為gbest粒子適應度:
若Ppresent 若Ppresent 6)根據(jù)式(1)~(3)更新個粒子的速度、位置,對于超過限定范圍的值定義為最大值。 7)根據(jù)式(4)~(5)得到適應度方差參量δ2。 8)根據(jù)式(6)得到一個變異因子pm。 9)選擇一個隨機數(shù)r∈[0,1],判斷r 10)若已經(jīng)達到設置的最大迭代次數(shù),或當前精度值以達到預設精度,則視當前點為最佳位置,將最佳位置中每一維向量作為BP神經(jīng)網(wǎng)絡權值和閾值,否則執(zhí)行步驟4)。 工業(yè)控制系統(tǒng)通信數(shù)據(jù)大多是實時傳輸?shù)?,在海量的通信?shù)據(jù)中異常通信數(shù)據(jù)情況較為單一、樣本數(shù)較少且種類也并不豐富,工業(yè)控制系統(tǒng)數(shù)據(jù)常常受到生產(chǎn)具體項目的限制,具有周期性、季節(jié)性等特點,但其獨特的行業(yè)特征對系統(tǒng)的穩(wěn)定性要求極高[16-19]。 近年來,工業(yè)控制系統(tǒng)為了便于企業(yè)管理,將上層管理系統(tǒng)與底層工業(yè)控制網(wǎng)絡互連互通,用戶通過企業(yè)管理信息網(wǎng)中的相關應用程序監(jiān)控工業(yè)控制網(wǎng)中的工業(yè)設備的運行參數(shù)、獲取服務器上的生產(chǎn)數(shù)據(jù)。 因此,依據(jù)其特點采用如圖1所示的體系結構構建異常檢測模型,在管理信息網(wǎng)絡中用戶客戶端與Web服務器間加入白名單過濾和AMPSO-BP神經(jīng)網(wǎng)絡的深度學習檢測環(huán)節(jié),提升跨網(wǎng)異常通信的檢測率。 圖1系統(tǒng)模型架構 Fig. 1Architecture of system model 2.2.1白名單過濾 白名單過濾是管理信息網(wǎng)與工業(yè)控制網(wǎng)絡通信鏈路上的第一次檢測,其規(guī)則根據(jù)工業(yè)控制網(wǎng)絡通信數(shù)據(jù)特征以及實際生產(chǎn)過程中所產(chǎn)生的數(shù)據(jù)特征來建立,包括通信協(xié)議中規(guī)定的接口標識符、源IP地址、目的IP地址、登錄客戶端的用戶名、域名、主機名等特征信息。依據(jù)每個特征建立一條R={R1,R2,…,Rn}形式的規(guī)則集合。 檢測過程中預設兩種動作:Pass和Alert,Action[0]為Pass,Action[1]為Alert。Pass意為數(shù)據(jù)安全,可以繼續(xù)通信;Alert意為數(shù)據(jù)不符合白名單規(guī)則,通信需終止,停止傳送數(shù)據(jù)。通信過程中,首先對通信數(shù)據(jù)包進行解析,找到數(shù)據(jù)傳輸?shù)奶卣餍畔ⅲ⑴c白名單中規(guī)則進行匹配,如有其中一條不匹配則發(fā)出警報,動作為Action[1]。 利用網(wǎng)絡通信基本特征構造的白名單規(guī)則庫,由系統(tǒng)管理員在工業(yè)控制網(wǎng)絡服務器入口進行編輯實現(xiàn)控制,當動作狀態(tài)是Action[1]時,則系統(tǒng)為警告狀態(tài),中止數(shù)據(jù)通信,需具有增加或刪除白名單規(guī)則權限的管理員人工解除入侵檢測警告,因此,跨網(wǎng)訪問首先要經(jīng)過白名單規(guī)則判定,用戶的通信數(shù)據(jù)只能通過白名單后才能進入神經(jīng)網(wǎng)絡檢測系統(tǒng),進而訪問工業(yè)控制網(wǎng)絡。 2.2.2白名單-AMPSO-BP檢測流程 在離線條件下采用本文提出的AMPSO-BP方法進行神經(jīng)網(wǎng)絡訓練,對神經(jīng)網(wǎng)絡進行無監(jiān)督訓練學習,得到輸出層結果作為在線工作的第二次檢測過濾器,進而預測通信數(shù)據(jù)是否行為異常。 神經(jīng)網(wǎng)絡訓練利用日志等歷史數(shù)據(jù),提取樣本數(shù)據(jù)特征值,并將特征值規(guī)范化,作為神經(jīng)網(wǎng)絡的輸入,其中:連續(xù)訓練數(shù)據(jù)需根據(jù)式(10)離散化,離散數(shù)據(jù)需編碼,范圍為[0,1]。Xi是一個特征實例,X代表特征類型集。 X′=[Xi-min(X)]/[max(X)-min(X)] (10) 在建立通信過程中,用戶通過客戶端登錄系統(tǒng)并向Web服務器發(fā)送通信請求,異常檢測系統(tǒng)根據(jù)白名單規(guī)則中特征信息解析數(shù)據(jù)包,不符合白名單規(guī)則的通信視為危險信息,并向管理員發(fā)出警報;否則通過AMPSO-BP過濾器第二次檢測。管理員可根據(jù)檢測出的異常通信特征完善白名單規(guī)則,或者解除突發(fā)事件產(chǎn)生的警報;也可以根據(jù)具體生產(chǎn)環(huán)境和季節(jié)差異制定白名單規(guī)則。經(jīng)過異常檢測系統(tǒng)后判定為正常信息,則完成數(shù)據(jù)通信,其工作流程如圖2所示。 根據(jù)本文系統(tǒng)的工作流程可知本文結合白名單和神經(jīng)網(wǎng)絡的異常檢測方法有以下優(yōu)勢:管理員可以在白名單中設置連續(xù)性特征的安全域,無需先將特征離散化,例如數(shù)據(jù)包長度;管理員可以根據(jù)IP等數(shù)據(jù)特征以及辦公系統(tǒng)數(shù)據(jù)庫中該員工是否出差等其他信息,判斷跨網(wǎng)通信是否為公司職員操作,提升遠程到本地的非授權訪問攻擊(Remote-to-Login, R2L)攻擊類型檢測率;系統(tǒng)可以根據(jù)AMPSO-BP判定結果更新白名單規(guī)則庫。 3.1.1實驗數(shù)據(jù) 企業(yè)管理網(wǎng)與工業(yè)生產(chǎn)網(wǎng)絡互聯(lián)是建立在TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、ICMP(Internet Control Message Protocol)等協(xié)議之上的接口標準,其數(shù)據(jù)特征包含網(wǎng)絡數(shù)據(jù)特征,因此,算法有效性驗證部分的測試集選用入侵檢測領域廣泛采用的KDD CUP99實驗數(shù)據(jù)集作為訓練和測試樣本,其中包含拒絕服務攻擊(Denial of Service, DoS)、R2L、非授權獲取超級用戶權限攻擊(User-to-Root, U2R)、探測攻擊(Probe)四大類入侵行為,訓練數(shù)據(jù)集包含22種入侵類型,測試數(shù)據(jù)集包含37種入侵類型。在保證所含的入侵行為種類不變的前提下,從中抽取部分數(shù)據(jù)作為實驗數(shù)據(jù),如表1所示。 圖2 入侵檢測流程Fig. 2 Flow chart of intrusion detection 表1 實驗數(shù)據(jù)信息Tab. 1 Experimental dataset information 3.1.2實驗環(huán)境和參數(shù)設置 測試實驗硬件環(huán)境為Intel core i5 2.60 GHz,內(nèi)存8 GB,操作系統(tǒng)為Windows 7旗艦版,軟件環(huán)境為Matlab a2014。 首先,在數(shù)據(jù)集中依據(jù)ICS網(wǎng)絡通信的特點提取目的IP、源IP、MAC、客戶端用戶登錄名、數(shù)據(jù)包大小、域名、主機名等7個特征構造白名單規(guī)則庫。其次,構造5層BP神經(jīng)網(wǎng)絡,隱層設置為3層;從數(shù)據(jù)的41個屬性參數(shù)中選取10個屬性參數(shù),并將這10個屬性參數(shù)歸一化,將歸一化的數(shù)據(jù)作為輸入(Input)層節(jié)點,具體的參數(shù)選取在圖3的Input層給出;輸出(Output)層6個節(jié)點分別為Normal正常數(shù)據(jù)、DoS攻擊、U2R攻擊、R2U攻擊、Probe攻擊和Unknow未知類型異常攻擊;隱層(Hidden)節(jié)點數(shù)設置為30個。神經(jīng)網(wǎng)絡拓撲結構如圖3所示。 圖3 神經(jīng)網(wǎng)絡拓撲Fig. 3 Neural network topology 3.1.3實驗結果與分析 實驗采用的評價指標為檢測率和誤報率。其中:檢測率為正確檢測異常通信樣本的數(shù)量與測試集中異常樣本總數(shù)量的比值;誤報率為錯判為異常的正常樣本數(shù)量與測試集中正常樣本數(shù)量的比值。 實驗中PSO算法加速部分迭代最大次數(shù)設置為100,每次迭代過程中記錄其粒子適應度方差δ2,結果如圖4所示。從圖4中可以看出,PSO-BP算法的方差在迭代20次陷入最小值,而AMPSO-BP算法迭代82次尋到最優(yōu)解,跳出了局部最優(yōu)陷阱。這兩種神經(jīng)網(wǎng)絡的訓練誤差如圖5所示,可以看出:AMPSO-BP算法訓練21次誤差達到最小值,為0.089 13;而PSO-BP算法訓練37次達到最小值,為0.037 59。因此本文提出的AMPSO-BP算法減小了PSO算法陷入局部最優(yōu)的幾率,提升了神經(jīng)網(wǎng)絡訓練的速度和精度。 圖4 適應度方差曲線比較Fig. 4 Comparison of fitness variance curves 利用不同類型的異常數(shù)據(jù)對白名單系統(tǒng)、白名單-PSO-BP系統(tǒng)和本文的白名單-AMPSO-BP系統(tǒng)進行測試,準確率結果如圖6所示。可以看出,白名單可以有效地檢測連續(xù)型特征和特征值固定的離散特征,但是通信數(shù)據(jù)中包含的特征包括連續(xù)型和離散型兩種特征,因此準確率不高;而加入神經(jīng)網(wǎng)絡后針對已知類型檢測準確率都達到了80%,在白名單的基礎上加入AMPSO-BP算法,對不同類別異常通信檢測率均有提高,尤其是對未知類型異常的檢測。 圖5 訓練誤差比較Fig. 5 Comparison of training error 圖6 三種系統(tǒng)檢測率比較Fig. 6 Comparison of detection rates for three methods 由于本文的本文的白名單-AMPSO-BP方法與文獻[20]方法都是針對ICS網(wǎng)絡設計的,因此將白名單-AMPSO-BP方法與文獻[20]的改進K-means算法在相同的訓練和測試樣本集上進行比對實驗,結果如表2所示。其中:本文的白名單-AMPSO-BP方法對異常通信的檢測率略高于文獻[20]方法,誤報率基本相同。 表2 兩種方法的檢測率和誤報率比較 %Tab. 2 Comparison of detection rate and false positive rate of two methods % 由于ICS實際網(wǎng)絡通信具有實時數(shù)據(jù)量大且異常樣本所占比重相對較小的特點,為進一步驗證訓練樣本數(shù)對本文白名單-AMPSO-BP方法的影響,依據(jù)上述各類訓練樣本按一定比例減少樣本數(shù)進行了測試實驗,檢測率和誤報率結果如圖7所示。在圖7的訓練過程中,控制每組訓練樣本個數(shù)占總樣本的百分比在60%~100%。訓練在樣本數(shù)逐漸增加情況下,本文的白名單-AMPSO-BP方法、文獻[20]的方法、白名單-PSO-BP方法的檢測率都有所提升。在訓練樣本數(shù)占總樣本數(shù)的60%、70%時,文獻[20]提出的改進的K-means算法準確率略高于本文方法,訓練樣本數(shù)占總樣本數(shù)的比率增加至90%、100%時,本文方法略高于文獻[20]方法;訓練樣本占樣本總數(shù)的60%、70%、80%時,本文方法所產(chǎn)生的誤報率均高于文獻[20]方法,而當訓練樣本占總數(shù)的90%,甚至增加至100%時,文獻[20]方法的誤報率高于本文方法。說明隨著樣本數(shù)量的增長,本文方法的準確率上升更明顯,且當樣本數(shù)量高于80%后,本文方法的準確率高于文獻[20]方法,當樣本數(shù)量高于90%后,誤報率低于文獻[20]方法,因此,在樣本充足的條件下,本文方法是具有優(yōu)勢的。 圖7 訓練樣本數(shù)對異常通信檢測的影響Fig. 7 Influence of number of training samples on detection for abnormal communication 此外在實驗過程中發(fā)現(xiàn),算法訓練的次數(shù)對算法的檢測準確率也存在影響。由于本文方法與文獻[20]的方法都是無監(jiān)督學習的方式,因此將二者在不同的訓練學習次數(shù)情況下的檢測率進行比對,結果如圖8所示。與白名單-PSO-BP方法和文獻[20]的方法相比,本文方法在訓練次數(shù)和精確程度上均有比較明顯的優(yōu)勢,本文方法在訓練22次時檢測率開始穩(wěn)定,檢測率為87.31%;另外兩種方法的檢測率分別在訓練次數(shù)為36和37時達到穩(wěn)定狀態(tài),其中文獻[20]方法準確率達84.24%,略低于本文方法。 圖8 三種算法檢測率比較Fig. 8 Comparison of detection rate for three algorithms 3.2.1實驗數(shù)據(jù)獲取 OPC(Object Linking and Embedding (OLE) for Process Control)協(xié)議是工業(yè)網(wǎng)絡中一種常用協(xié)議,為了驗證本文方法在工業(yè)控制領域的適用性,搭建了OPC協(xié)議實驗仿真環(huán)境,網(wǎng)絡拓撲結構如圖9所示。仿真環(huán)境中OPC客戶端和模擬攻擊源計算機均采用Intel core i5 2.60 GHz處理器,內(nèi)存8 GB,Windows 7操作系統(tǒng);參照文獻[21]的方法,利用在WinCC上啟用WinCC OPC DA作為OPC服務器,WinCC OPC服務器IP設置為192.168.0.12,在Visual Studio編程環(huán)境中編寫WinCC OPC服務器與OPC客戶端之間通信數(shù)據(jù)監(jiān)控程序,服務器所用PC處理器采用Intel Core i5 2.60 GHz,內(nèi)存8 GB,Windows 7操作系統(tǒng)。現(xiàn)場控制器PLC(Programmable Logic Controller)模擬液體容器中的液位控制,其中,液位的數(shù)值和開關狀態(tài)均在PLC中模擬實現(xiàn),PLC產(chǎn)生的模擬數(shù)據(jù)存儲于WinCC自帶的SQL數(shù)據(jù)庫。 模擬攻擊源利用Matlab a2014模擬對PLC發(fā)送惡意流量。建立通信過程中,WinCC實時監(jiān)控通信數(shù)據(jù),并保留通信過程中的網(wǎng)絡基本參量:協(xié)議類型、目的地址、SQL嘗試登錄失敗的次數(shù)、讀取的變量名稱、通信數(shù)據(jù)大小、連接持續(xù)時間、通信狀態(tài)標志。 在所搭建的工業(yè)控制仿真系統(tǒng)實驗環(huán)境下獲取數(shù)據(jù)152條,其中正常數(shù)據(jù)為89條,異常數(shù)據(jù)為63條,部分數(shù)據(jù)如表3所示。 3.2.2實驗參數(shù)設置及數(shù)據(jù)分析 在工業(yè)控制仿真系統(tǒng)實驗環(huán)境提取的7組特征中,選取協(xié)議類型、SQL嘗試登錄失敗的次數(shù)、連接持續(xù)時間和通信數(shù)據(jù)大小4組特征參數(shù)構造白名單規(guī)則庫。構造5層BP神經(jīng)網(wǎng)絡,隱層設置為3層:將7組特征屬性參數(shù)歸一化,而后作為輸入層節(jié)點的輸入,輸出層2個節(jié)點分別輸出Normal正常數(shù)據(jù)、通信異常數(shù)據(jù),隱層節(jié)點數(shù)設置為21個。PSO算法與AMPSO算法的初始化學習因子c1、c2的取值均為0.5,其他參數(shù)均則3.1節(jié)實驗設置相同。 圖9 工業(yè)控制系統(tǒng)仿真環(huán)境Fig. 9 Simulation environment of industrial control system 將在仿真系統(tǒng)實驗環(huán)境中采集的152條數(shù)據(jù)中的102條作為訓練集,包含58條正常通信數(shù)據(jù)和44條異常通信數(shù)據(jù);另外50條作為測試集,包含31條正常通信數(shù)據(jù)和19條異常通信數(shù)據(jù)。 實驗過程中,為描述系統(tǒng)穩(wěn)定性,建立訓練誤差曲線,如圖10所示:本文方法在訓練16次時達到穩(wěn)定狀態(tài),白名單-PSO-BP訓練18次時進入穩(wěn)定狀態(tài),文獻[20]方法在迭代16次時達到了系統(tǒng)穩(wěn)定。由于訓練樣本數(shù)據(jù)較少,系統(tǒng)穩(wěn)定時三種方法的訓練誤差都達到了0%。 系統(tǒng)達到穩(wěn)態(tài)后測試對比了三種方法檢測率。在同一實驗條件下比較:本文方法檢測出異常通信15條,誤報異常通信2條;文獻[20]方法檢測出異常通信14條,誤報異常通信1條;白名單-PSO-BP方法檢測出異常通信14條,誤報異常通信3條。三種方法的檢測率和誤報率如表4所示??梢钥闯?,在工業(yè)控制系統(tǒng)仿真環(huán)境下,本文方法檢測率高于白名單-PSO-BP方法,誤報率低于白名單-PSO-BP方法,具有明顯優(yōu)勢;訓練樣本較少的情況下,本文方法的檢測率高于文獻[20]方法,但也由于樣本集中數(shù)據(jù)偏少,造成誤報率會高于文獻[20]方法。 表3 部分采集數(shù)據(jù)Tab. 3 Partial collection data 圖10 訓練誤差比較Fig. 10 Comparison of training error 表4 三種方法的檢測率、誤報率比較 %Tab. 4 Comparison of detection rate and false positive rate of three methods % 針對ICS網(wǎng)絡環(huán)境下的入侵檢測問題,本文提出了一種將白名單和AMPSO-BP神經(jīng)網(wǎng)絡過濾有機融合的通信異常檢測方法——白名單-AMPSO-BP,利用神經(jīng)網(wǎng)絡有效地識別異常數(shù)據(jù),完善白名單規(guī)則庫。利用KDD CUP99數(shù)據(jù)驗證了白名單-AMPSO-BP方法的有效性,并分別與白名單-PSO-BP方法和文獻[20]的方法進行了對比,結果顯示:本文方法的檢測率和誤報率均優(yōu)于白名單-PSO-BP方法;當訓練樣本充足時,本文方法相比文獻[20]的方法也更具優(yōu)勢。此外,本文還利用一組在工業(yè)控制系統(tǒng)仿真環(huán)境下獲得的數(shù)據(jù)進行了實驗對照,驗證了本文方法在工業(yè)控制網(wǎng)絡中的有效性,其檢測率高于白名單-PSO-BP方法和文獻[20]的方法,誤報率低于白名單-PSO-BP方法,但由于樣本集中數(shù)據(jù)較少,其誤報率高于文獻[20]的方法。下一步研究將在實際ICS網(wǎng)絡場景中對所提方法進行測試,重點完善其在缺少樣本條件下的穩(wěn)定性和檢測的時效性。 參考文獻(References) [1]尚文利,李琳,萬明,等.基于優(yōu)化單類支持向量機的工業(yè)控制系統(tǒng)入侵檢測算法[J].信息與控制,2015,44(6):678-684. (SHANG W L, LI L, WAN M, et al. Intrusion detection algorithm based on optimized one-class support vector machine for industrial control system [J]. Information and Control, 2015, 44(6): 678-684.) [2]尚文利,張盛山,萬明,等.基于PSO-SVM的Modbus TCP通訊的異常檢測方法[J].電子學報,2014,42(11):2314-2320. (SHANG W L, ZHANG S S, WAN M, et al. Modbus TCP communication anomaly detection algorithm based on PSO-SVM [J]. Acta Electronic Sinica, 2014, 42(11): 2314-2320.) [3]張云貴,趙華,王麗娜.基于工業(yè)控制模型的非參數(shù)CUSUM入侵檢測方法[J].東南大學學報(自然科學版),2012,42(S1):55-59. (ZHANG Y G, ZHAO H, WANG L N. A non-parametric CUSUM intrusion detection method based on industrial control model [J]. Journal of Southeast University (Natural Science Edition), 2012, 42(S1): 55-59.) [4]MUTHA M A A, TUTEJA M R R. Secure and efficient approach for multilayer cyber security based on intrusion detection system [J]. International Journal of Advent Research in Computer and Electronics, 2015, 2(2): 33-37. [5]KWON Y J, KIM H K, LIM Y H, et al. A behavior-based intrusion detection technique for smart grid infrastructure [C]// Proceedings of the 2015 IEEE Eindhoven PowerTech. Piscataway, NJ: IEEE, 2015: 1-6. [6]周世波,徐維祥.船舶軌跡異常檢測方法研究進展[J].電子測量與儀器學報,2017,30(3):329-337. (ZHOU S B, XU W X. Research progress on anomaly detection in vessel tracking [J]. Journal of Electronic Measurement and Instrument, 2017, 30(3): 329-337.) [7]劉珊珊,謝曉堯,景鳳宣,等.基于PCA的PSO-BP入侵檢測研究[J].計算機應用研究,2016,33(9):2795-2798. (LIU S S, XIE X Y, JING F X, et al. Research on network intrusion detection based on PCA PSO-BP [J]. Application Research of Computers, 2016, 33(9): 2795-2798.) [8]潘昊,侯清蘭.基于粒子群優(yōu)化算法的BP網(wǎng)絡學習研究[J].計算機工程與應用,2006,42(16):41-43. (PAN H, HOU Q L. A BP neural networks learning algorithm research based on particle swarm optimizer [J]. Computer Engineering and Application, 2006, 42(16): 41-43.) [9]馬吉明,徐忠仁,王秉政.基于粒子群優(yōu)化的灰色神經(jīng)網(wǎng)絡組合預測模型研究[J].計算機工程與科學,2012,34(2):146-149. (MA J M, XU Z R, WANG B Z. A PSO-based combined forecasting grey neural network model [J].Computer Engineering & Science, 2012, 34(2): 146-149.) [10]呂振肅,侯志榮.自適應變異的粒子群優(yōu)化算法[J].電子學報,2004,32(3):416-420. (LYU Z S, HOU Z R. Particle swarm optimization algorithm based on adaptive mutation [J]. Acta Electronic Sinica, 2004, 32(3): 416-420.) [11]BABAZADEH A, POORZAHEDY H, NIKOOSOKHAN S. Application of particle swarm optimization to transportation network design problem [J]. Journal of King Saud University — Science, 2011, 23(3): 293-300. [12]MAGNANTI T L, WONG R T. Network design and transportation planning: models and algorithms [J]. Transportation Science, 1984, 18(1):1-55. [13]郭通,蘭巨龍,李玉峰,等.基于量子自適應粒子群優(yōu)化徑向基函數(shù)神經(jīng)網(wǎng)絡的網(wǎng)絡流量預測[J].電子與信息學報,2013,35(9):2220-2226. (GUO T, LAN J L, LI Y F, et al. Prediction of network traffic based on quantum adaptive particle swarm optimization and radial basis function neural network [J]. Journal of Electronics Information Technology, 2013, 35(9): 2220-2226.) [14]CHEN W N, ZHANG J, CHUNG H S H, et al. A novel set-based particle swarm optimization method for discrete optimization problems [J]. IEEE Transactions on Evolutionary Computation, 2010, 14(2):278-300. [15]艾永冠,朱衛(wèi)東,閆冬.基于PSO-BP神經(jīng)網(wǎng)絡的股市預測模型[J].計算機應用,2008,28(S2):105-108. (AI Y G, ZHU W D, YAN D. Stock marker forecast model based on PSO-BP neural network [J]. Journal of Computer Applications, 2008, 28(S2): 105-108.) [16]YANG Y, MCLAUGHLIN K, LITTLER T, et al. Rule-based intrusion detection system for SCADA networks [C]// RPG 2013: Proceedings of the 2nd IET on Renewable Power Generation Conference. Stevenage, UK: IET, 2013: 1-4. [17]MCPARLAND C, PEISERT S, SCAGLIONE A. Monitoring security of networked control systems: it’s the physics [J]. IEEE Security & Privacy, 2014, 12(6): 32-39. [18]BAIG Z A. Rapid anomaly detection for smart grid infrastructures through hierarchical pattern matching [J]. International Journal of Security & Networks, 2012, 7(2): 83-94. [19]尚文利,安攀峰,萬明,等.工業(yè)控制系統(tǒng)入侵檢測技術的研究及發(fā)展綜述[J].計算機應用研究,2017,34(2):328-333. (SHANG W L, AN P F, WAN M, et al. Research and development overview of intrusion detection technology in industrial control system [J]. Application Research of Computers, 2017, 34(2): 328-333.) [20]王海鳳.工業(yè)控制網(wǎng)絡的異常檢測與防御資源分配研究[D].杭州:浙江大學,2014:36-57. (WANG H F. On anomaly detection and defense resource allocation of industrial control networks [D]. Hangzhou: Zhejiang University, 2014: 36-57.) [21]肖國榮.改進蟻群算法和支持向量機的網(wǎng)絡入侵檢測[J].計算機工程與應用,2014,50(3):75-78. (XIAO G R. Network intrusion detection by combination of improved ACO and SVM [J]. Computer Engineering and Applications, 2014, 50(3): 75-78.) [22]周亞建,徐晨,李繼國.基于改進CURE聚類算法的無監(jiān)督異常檢測方法[J].通信學報,2010,31(7):18-23. (ZHOU Y J, XU C, LI J G. Unsupervised anomaly detection method based on improved CURE clustering algorithm [J]. Journal on Communications, 2010, 31(7): 18-23.)2 工業(yè)控制網(wǎng)絡的入侵檢測
2.1 入侵檢測系統(tǒng)架構
2.2 結合白名單與AMPSO-BP的入侵檢測方法
3 測試與結果分析
3.1 算法有效性驗證
3.2 工業(yè)控制仿真測試
4 結語