胡向東,李之涵
(重慶郵電大學(xué)自動(dòng)化學(xué)院/工業(yè)互聯(lián)網(wǎng)學(xué)院,重慶 400065)
近年來(lái),工業(yè)互聯(lián)網(wǎng)在智能制造、燃?xì)夤┙o、電力水利等眾多工業(yè)領(lǐng)域興起[1],成為推動(dòng)經(jīng)濟(jì)發(fā)展和新一代基礎(chǔ)設(shè)施建設(shè)不可或缺的新興產(chǎn)業(yè)支撐性技術(shù). 工業(yè)控制網(wǎng)絡(luò)原本相對(duì)封閉,與外界物理隔離,網(wǎng)絡(luò)建設(shè)本身更多關(guān)注運(yùn)行穩(wěn)定性和功能安全,缺乏對(duì)網(wǎng)絡(luò)開(kāi)放條件下信息安全問(wèn)題的全面設(shè)計(jì). 隨著工業(yè)信息化深度發(fā)展,針對(duì)工業(yè)互聯(lián)網(wǎng)的攻擊日益頻繁,破壞性逐漸增大[2]. 典型地,“震網(wǎng)”病毒通過(guò)西門(mén)子設(shè)備漏洞對(duì)伊朗核電站的攻擊為工業(yè)互聯(lián)網(wǎng)信息安全敲響了警鐘. 盡管傳統(tǒng)互聯(lián)網(wǎng)中安全產(chǎn)品基于歷史積累和迭代達(dá)到了一定成熟度,但限于工業(yè)互聯(lián)網(wǎng)自身的資源特點(diǎn)、運(yùn)行模式和網(wǎng)絡(luò)屬性等,并不能將現(xiàn)有方法直接移植入工業(yè)互聯(lián)網(wǎng),往往需量身定制針對(duì)性解決方案[3].如通過(guò)對(duì)工業(yè)系統(tǒng)通信模式和加密模式的研究可知,工業(yè)網(wǎng)絡(luò)與家庭和辦公室網(wǎng)絡(luò)并不兼容,因此普通入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)無(wú)法直接適應(yīng)工業(yè)應(yīng)用[4]. 同時(shí),因?yàn)橄鄬?duì)獨(dú)立,工業(yè)互聯(lián)網(wǎng)中攻擊行為的數(shù)量遠(yuǎn)低于傳統(tǒng)互聯(lián)網(wǎng),這種情況也會(huì)給入侵檢測(cè)帶來(lái)困難.
與此同時(shí),構(gòu)建IDS 的方法呈現(xiàn)出多樣化發(fā)展趨勢(shì),新思路、新方法不斷涌現(xiàn). 文獻(xiàn)[5]使用熵離散化算法和決策樹(shù)構(gòu)建分類(lèi)器對(duì)多個(gè)應(yīng)用進(jìn)行分類(lèi),而后對(duì)其進(jìn)行了稀疏化處理. 文獻(xiàn)[6]使用OpenPLC平臺(tái)以及AES-256 加密模擬數(shù)據(jù)采集與監(jiān)視控制(Supervisory Control and Data Acquisition,SCADA)系統(tǒng),在此基礎(chǔ)上使用無(wú)監(jiān)督的k-means 算法對(duì)代碼注入攻擊、拒絕服務(wù)攻擊和攔截進(jìn)行了檢測(cè). 文獻(xiàn)[7]利用感知哈希矩陣量化屬性,而后使用K近鄰?fù)镀痹瓌t完成入侵檢測(cè)任務(wù).文獻(xiàn)[5~7]通過(guò)人工選取和組合特征的手段完成分類(lèi)器的構(gòu)建,普遍存在檢測(cè)準(zhǔn)確率偏低、系統(tǒng)魯棒性差等問(wèn)題,特征選取的優(yōu)劣也極大影響了實(shí)驗(yàn)效果.
在淺層學(xué)習(xí)方法發(fā)展的同時(shí),基于深度學(xué)習(xí)技術(shù)的IDS 也取得了巨大進(jìn)步. 文獻(xiàn)[8]設(shè)計(jì)了使用支持向量機(jī)和深度信念網(wǎng)絡(luò)的混合IDS用于工業(yè)控制系統(tǒng),但該文獻(xiàn)使用了NSL-KDD 數(shù)據(jù)集進(jìn)行仿真,NSL-KDD 較為老舊,且并不適用于工業(yè)控制系統(tǒng)環(huán)境. 文獻(xiàn)[9]利用基于離差標(biāo)準(zhǔn)化(Min-Max Normalization,MMN)的卷積神經(jīng)網(wǎng)絡(luò)對(duì)校園網(wǎng)流量進(jìn)行分析,該模型開(kāi)銷(xiāo)較小且易于訓(xùn)練,很好地解決了參數(shù)選取問(wèn)題. 但該分類(lèi)方法結(jié)構(gòu)與LeNet-5 差異較小,結(jié)構(gòu)簡(jiǎn)單,難以應(yīng)對(duì)海量復(fù)雜數(shù)據(jù)的特征學(xué)習(xí). 文獻(xiàn)[10]針對(duì)入侵樣本分布不均衡問(wèn)題,使用基于窗口的實(shí)例選擇算法清洗訓(xùn)練集并基于循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)建了入侵分類(lèi)模型. 雖然取得了較高的準(zhǔn)確率,但實(shí)驗(yàn)使用了復(fù)雜的預(yù)處理過(guò)程,難以體現(xiàn)深度學(xué)習(xí)隱性提取特征的優(yōu)勢(shì). 文獻(xiàn)[11]使用條件深度信念網(wǎng)絡(luò)檢測(cè)智能電網(wǎng)中的攻擊,該文獻(xiàn)使用總線測(cè)試系統(tǒng)進(jìn)行仿真,并提供了與人工神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)等方法的對(duì)比. 這些方法從多角度探討了IDS 的不同方案,但部分方法使用復(fù)雜手段處理數(shù)據(jù),難以解決不同分類(lèi)算法對(duì)特征選取的差異性要求.多數(shù)模型結(jié)構(gòu)單一,存在模型收斂慢、樣本分布不均勻時(shí)魯棒性差等問(wèn)題.
2017 年,文獻(xiàn)[12]提出基于向量的膠囊網(wǎng)絡(luò)(Cap?sule Network,CapsNet). 該網(wǎng)絡(luò)引入了向量膠囊層和動(dòng)態(tài)路由算法,用膠囊表示神經(jīng)元的集合,使用動(dòng)態(tài)路由的方法連接不同隱藏層之間的膠囊以映射不同特征間的相對(duì)關(guān)系. 膠囊網(wǎng)絡(luò)改善了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)對(duì)目標(biāo)位置不敏感的問(wèn)題. 例如,文獻(xiàn)[13]關(guān)于高光譜圖片的分類(lèi)研究中,即使測(cè)試樣本數(shù)量遠(yuǎn)大于訓(xùn)練樣本數(shù)量,膠囊網(wǎng)絡(luò)依然取得了較好的分類(lèi)成績(jī). 但因動(dòng)態(tài)路由算法無(wú)法分享各神經(jīng)元的權(quán)重,膠囊網(wǎng)絡(luò)的參數(shù)量遠(yuǎn)大于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò).
通過(guò)對(duì)上述文獻(xiàn)的分析可知,深度學(xué)習(xí)有可能從工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)中提取優(yōu)質(zhì)特征,從而創(chuàng)建更好的模型. 本文受膠囊網(wǎng)絡(luò)啟發(fā),在此基礎(chǔ)上引入殘差結(jié)構(gòu)對(duì)其進(jìn)行改進(jìn),構(gòu)建融合殘差塊的膠囊網(wǎng)絡(luò)(Residual Capsule Network,RCN)對(duì)工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)關(guān)聯(lián)特征進(jìn)行學(xué)習(xí),構(gòu)建入侵檢測(cè)模型實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的有效處理. 該方法避免了人工特征提取的復(fù)雜流程,很好地提高了入侵樣本分布不均衡背景下的檢測(cè)精度,縮短了模型訓(xùn)練時(shí)間.
文獻(xiàn)[12]提出的膠囊網(wǎng)絡(luò)是一個(gè)淺層神經(jīng)網(wǎng)絡(luò).其結(jié)構(gòu)如圖1所示.
圖1 膠囊網(wǎng)絡(luò)基本結(jié)構(gòu)
膠囊網(wǎng)絡(luò)引入動(dòng)態(tài)路由算法對(duì)向量膠囊之間的關(guān)系進(jìn)行迭代. 因參數(shù)量多于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò),在多數(shù)節(jié)點(diǎn)算力有限的場(chǎng)景下,膠囊網(wǎng)絡(luò)難以在工業(yè)互聯(lián)網(wǎng)中分布實(shí)施. 同時(shí),工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)特性又使得傳統(tǒng)模型性能欠佳. 為了降低膠囊網(wǎng)絡(luò)的計(jì)算開(kāi)銷(xiāo),提高識(shí)別精度,本文通過(guò)引入殘差結(jié)構(gòu)的方式改進(jìn)膠囊網(wǎng)絡(luò),其結(jié)構(gòu)如圖2所示.
圖2 融合殘差塊的膠囊網(wǎng)絡(luò)結(jié)構(gòu)
RCN 使用殘差結(jié)構(gòu)對(duì)流量特征進(jìn)行降維以提高膠囊輸入質(zhì)量,令膠囊的預(yù)測(cè)更加快速精準(zhǔn). 融合殘差塊的膠囊網(wǎng)絡(luò)包括由殘差塊、卷積層和池化層構(gòu)成的殘差網(wǎng)絡(luò)模塊以及由主膠囊層和數(shù)字膠囊層構(gòu)成的膠囊網(wǎng)絡(luò)模塊.
微軟研究院的He[14]等人于2016 年提出了深度殘差神經(jīng)網(wǎng)絡(luò)(Deep Residual Network,DRN). DRN 又名ResNet,通過(guò)引入殘差塊的方式完成了多達(dá)152 層網(wǎng)絡(luò)的構(gòu)建,極大地改善了因網(wǎng)絡(luò)深度增加導(dǎo)致的性能退化問(wèn)題. 同時(shí),DRN在分類(lèi)步驟前引入一個(gè)全局平均池化層提取每個(gè)特征圖的均值,可以對(duì)數(shù)據(jù)進(jìn)行降維的同時(shí)避免出現(xiàn)過(guò)擬合. 本文在DRN 結(jié)構(gòu)的基礎(chǔ)上構(gòu)建特征提取的殘差網(wǎng)絡(luò)模塊,從而提高膠囊網(wǎng)絡(luò)的輸入特征質(zhì)量.
2.1.1 卷積層
卷積層是對(duì)圖像進(jìn)行抽象的主要結(jié)構(gòu). 卷積層由數(shù)個(gè)各異的特征圖組成,卷積層對(duì)上層的一小塊區(qū)域進(jìn)行卷積操作,形成下一層的節(jié)點(diǎn)[15],這塊區(qū)域被稱(chēng)為卷積核或?yàn)V波器. 卷積的具體形式為
因?yàn)榫矸e運(yùn)算不包含非線性成分,所以經(jīng)過(guò)式(1)計(jì)算之后得到的輸出數(shù)據(jù)還需要使用激活函數(shù)進(jìn)行非線性處理,使網(wǎng)絡(luò)具有擬合復(fù)雜特征的能力. 在卷積神經(jīng)網(wǎng)絡(luò)中,ReLU 函數(shù)可以大幅提高網(wǎng)絡(luò)稀疏性,提高模型效率[16]. 本文采用ReLU作為各層的激活函數(shù).
2.1.2 殘差塊
殘差塊是殘差網(wǎng)絡(luò)的主要構(gòu)成部分,有不同的表示形式,共同特點(diǎn)為引入了捷徑,把輸入傳到輸出作為結(jié)果的一部分. 一種典型的殘差塊結(jié)構(gòu)如圖3所示.
圖3 殘差塊結(jié)構(gòu)
若x的維度與殘差函數(shù)的維度不同,為了實(shí)現(xiàn)輸入與輸出的融合,利用線性投影矩陣Ws改變維度. 具體公式為
為實(shí)現(xiàn)維度轉(zhuǎn)換,本文在捷徑中使用一組尺寸為1×1×16的卷積核將輸入轉(zhuǎn)化為合適的形式.
2.1.3 池化層
池化層又稱(chēng)采樣層,一般應(yīng)用在卷積層之后,主要作用是對(duì)數(shù)據(jù)進(jìn)行降維,同時(shí)對(duì)上層特征圖進(jìn)行壓縮形成新的特征圖. 這種處理方式既降低了網(wǎng)絡(luò)的復(fù)雜度,又有效保留了原圖像的主要特征信息. 池化層可以表達(dá)為
式(4)中,down(?)為次抽樣函數(shù),通常對(duì)輸入特征圖局部進(jìn)行加權(quán)求和;β為按需設(shè)置的乘性參數(shù);b為偏置.
本文使用最大池化和全局平均池化2種方法,其主要區(qū)別在于使用的次抽樣函數(shù)不同. 在殘差網(wǎng)絡(luò)模塊的S1層使用步長(zhǎng)為2,采樣核尺寸為2×2 的最大池化層進(jìn)行數(shù)據(jù)降維,而后對(duì)C3層輸出進(jìn)行全局平均池化處理,得到一組32維的張量作為膠囊網(wǎng)絡(luò)模塊的輸入.
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)通過(guò)卷積核抽象圖像特征,使用全連接層輸出分類(lèi)結(jié)果. 其標(biāo)量化的計(jì)算方式對(duì)物體空間關(guān)系辨識(shí)度差. 膠囊網(wǎng)絡(luò)使用向量化的神經(jīng)元(即膠囊)來(lái)代替標(biāo)量神經(jīng)元節(jié)點(diǎn),改變了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)標(biāo)量與標(biāo)量相鏈接的架構(gòu). 每個(gè)膠囊攜帶的信息從一維增加到多維,向量的方向代表了圖像中出現(xiàn)的特定實(shí)體的多種屬性,例如大小、相對(duì)位置、紋路等,向量的長(zhǎng)度則表示不同屬性的存在概率. 為了匹配膠囊間反向傳播需求,文獻(xiàn)[12]針對(duì)膠囊間迭代關(guān)系提出動(dòng)態(tài)路由算法,其核心思想是膠囊的權(quán)重由低層次膠囊輸入與高層次膠囊輸出的相似度決定. 如果低層膠囊的輸入與高層膠囊的輸出具有較高相似度,則這些低級(jí)別膠囊的路由即為較高級(jí)別的膠囊.
首先,高層膠囊由低層膠囊計(jì)算得出. 動(dòng)態(tài)路由初始階段,L層的第i個(gè)膠囊連接到L+1 層的膠囊j的概率公式為
式(5)中,bij是膠囊i連接到膠囊j的先驗(yàn)概率. 在路由更新時(shí),首先計(jì)算L層膠囊i對(duì)L+1 層膠囊j的輸出的預(yù)測(cè)膠囊uj|i,即
式(6)中,Wi|j為轉(zhuǎn)換矩陣,ui為L(zhǎng)層膠囊i. 在計(jì)算預(yù)測(cè)膠囊之后,通過(guò)式(7)和式(8)計(jì)算高層膠囊,計(jì)算vj的過(guò)程可以用擠壓函數(shù)表示,即
式(8)中,sj為L(zhǎng)層膠囊的總輸入,vj為L(zhǎng)+1 層膠囊j的輸出. 將vj和預(yù)測(cè)膠囊uj|i用于更新bij,從式(5)開(kāi)始新一輪的循環(huán). 動(dòng)態(tài)路由算法迭代過(guò)程如算法1所示.
① 不留退路,不給未來(lái)留下遺憾。② 面對(duì)愈來(lái)愈近的高考,有些考生卻不急不躁,照玩照鬧,因?yàn)樗麄冊(cè)缫颜液猛寺?,若是高考失利,就出?guó)或隨便讀個(gè)院校唄。③ 可是,他們沒(méi)有想過(guò),那樣的未來(lái)有什么意義!④ 胡亂打發(fā)日子,荒廢奮斗的大好青春,當(dāng)以后回想起高三時(shí)光,只有空白。⑤ 不要給自己的人生找退路,那樣只會(huì)得到一個(gè)蒼白空虛的空殼。⑥ 沒(méi)有激情和夢(mèng)想的灌注,這樣的人生道路又有誰(shuí)稀罕?⑦ 整理好浮躁情緒,將自己驅(qū)向毫無(wú)退路的前方,不要給未來(lái)留下遺憾,充實(shí)人生才是真諦。
算法1 動(dòng)態(tài)路由算法輸入:迭代次數(shù)n,膠囊層數(shù)l過(guò)程:1.初始化bij=0 2.FOR n DO 3. cij=bij exp( )∑jexp( )bij 4.sj=∑jcij×uj|i 5.vj=squash(sj)6.bij ←bij+uj|i ?vj 7.END FOR輸出:vj
膠囊用向量長(zhǎng)度來(lái)表示其表征內(nèi)容出現(xiàn)的概率,輸出的概率總和并不等于1. 所以不同于傳統(tǒng)分類(lèi)任務(wù)常用的交叉熵?fù)p失,本文采用間隔損失構(gòu)建網(wǎng)絡(luò)的損失函數(shù). 間隔損失函數(shù)可表示為
式(9)中,c表示類(lèi)別;Tc表示第c類(lèi)入侵是否存在;vc表示在輸出層膠囊的長(zhǎng)度,即樣本屬于第c類(lèi)的概率;m+為懲罰假陽(yáng)性的上界,m-為懲罰假陰性的下界;λ為比例相關(guān)系數(shù),用于調(diào)整兩者比重. 本文分別設(shè)置λ,m+和m-的值為0.25,0.9和0.1.
動(dòng)態(tài)路由算法解決了膠囊層之間的權(quán)重更新問(wèn)題. 但動(dòng)態(tài)路由僅存在于膠囊之間,為了提高網(wǎng)絡(luò)的收斂能力,還需引入反向傳播過(guò)程. 本文使用Adam 方法作為損失函數(shù)優(yōu)化算法,通過(guò)迭代最小化損失值以更新神經(jīng)元權(quán)重,令RCN平穩(wěn)收斂.
在RCN 的基礎(chǔ)上,本文以工業(yè)互聯(lián)網(wǎng)為對(duì)象,提出如圖4所示的入侵檢測(cè)模型.
圖4 基于RCN網(wǎng)絡(luò)的入侵檢測(cè)模型架構(gòu)
該模型通過(guò)預(yù)處理強(qiáng)化網(wǎng)絡(luò)數(shù)據(jù)映射圖像的相對(duì)關(guān)系,充分挖掘數(shù)據(jù)信息特征,以RCN 為核心執(zhí)行入侵檢測(cè)任務(wù),主要包括以下幾個(gè)模塊.
(1)數(shù)據(jù)預(yù)處理模塊:將工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化、歸一化處理并映射為灰度矩陣. 而后,將其轉(zhuǎn)換為灰度圖像以便于觀察和處理.
(2)RCN 模塊:將灰度圖像作為模塊輸入,通過(guò)殘差網(wǎng)絡(luò)結(jié)構(gòu)提取數(shù)據(jù)特征,經(jīng)過(guò)擠壓函數(shù)處理后送入膠囊模塊對(duì)特征進(jìn)行聚合,使用動(dòng)態(tài)路由算法更新膠囊間權(quán)重.
(3)檢測(cè)分類(lèi)模塊:依據(jù)數(shù)據(jù)類(lèi)別訓(xùn)練分類(lèi)器,使用分類(lèi)器對(duì)預(yù)處理后的攻擊樣本進(jìn)行檢測(cè),輸出多維混淆矩陣,通過(guò)混淆矩陣可觀察檢測(cè)結(jié)果.
現(xiàn)階段,工業(yè)互聯(lián)網(wǎng)主要由工廠內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)2 部分組成. 外部網(wǎng)絡(luò)用于連接工廠和客戶(hù)、工廠和供應(yīng)鏈等,主要由公共互聯(lián)網(wǎng)承擔(dān). 內(nèi)部網(wǎng)絡(luò)主要用于工業(yè)控制,由工控網(wǎng)絡(luò)發(fā)展而來(lái),主要包括工業(yè)生產(chǎn)數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)、分布式控制系統(tǒng)、可編程邏輯控制器以及內(nèi)部生產(chǎn)運(yùn)營(yíng)決策支持系統(tǒng)等.
在現(xiàn)代智能工廠等較為復(fù)雜的工業(yè)系統(tǒng)中,其控制器通常分布式部署,網(wǎng)絡(luò)包括多個(gè)實(shí)體和大量傳感器連接. 工控網(wǎng)絡(luò)中的各種設(shè)備通常由不同的制造商供應(yīng),使用區(qū)別于傳統(tǒng)互聯(lián)網(wǎng)的特定協(xié)議. 其網(wǎng)絡(luò)節(jié)點(diǎn)計(jì)算能力差異大,實(shí)時(shí)性要求高,這些因素使工業(yè)互聯(lián)網(wǎng)與民用網(wǎng)絡(luò)存在較大不同[17,18].
此外,工業(yè)互聯(lián)網(wǎng)流量特征在于流量的規(guī)則性和協(xié)議特殊性,具有穩(wěn)定的吞吐量和周期模式,有清晰的數(shù)據(jù)包和可預(yù)測(cè)的數(shù)據(jù)流向[19]. 這種特點(diǎn)可以進(jìn)行監(jiān)督學(xué)習(xí),適合基于異常的入侵檢測(cè)技術(shù)的開(kāi)發(fā)和實(shí)施.同時(shí),由于工業(yè)系統(tǒng)的穩(wěn)定性和相對(duì)隔離性,每天產(chǎn)生的數(shù)據(jù)是海量的,但網(wǎng)絡(luò)攻擊占比較低,在統(tǒng)計(jì)上表現(xiàn)為數(shù)據(jù)的嚴(yán)重不平衡.
3.1.2 實(shí)驗(yàn)數(shù)據(jù)分析
基于對(duì)實(shí)驗(yàn)數(shù)據(jù)的典型性、廣泛接受性、系統(tǒng)性和研究對(duì)象適宜性等要求,本文采用美國(guó)密西西比州立大學(xué)SCADA 實(shí)驗(yàn)室采集的氣體管道數(shù)據(jù)集(gas pipe?line)[20]對(duì)檢測(cè)模型進(jìn)行驗(yàn)證. 該工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)集來(lái)源于實(shí)驗(yàn)室規(guī)模應(yīng)用Modbus/TCP 協(xié)議的氣體管道平臺(tái). 該平臺(tái)包括壓縮機(jī)、壓力表等傳感器和使用電磁閥控制小型氣密管道,使用比例積分微分控制方案維持管道氣壓. 通過(guò)基于RS-232 的網(wǎng)絡(luò)數(shù)據(jù)記錄器監(jiān)視和存儲(chǔ)Modbus流量.
該平臺(tái)使用線路插件捕獲數(shù)據(jù)日志并進(jìn)行攻擊注入,通過(guò)在VMware 虛擬機(jī)上運(yùn)行的C 程序監(jiān)視串行端口的通信,為流量標(biāo)記時(shí)間戳并記錄在日志文件中. 以命令注入攻擊為例,向平臺(tái)發(fā)送惡意命令會(huì)嘗試開(kāi)關(guān)壓縮機(jī)或調(diào)整安全閥的狀態(tài),通過(guò)記錄網(wǎng)絡(luò)流量特征、過(guò)程控制和傳感器狀態(tài)可形成該類(lèi)攻擊的具體數(shù)據(jù).氣體管道數(shù)據(jù)集將數(shù)據(jù)分為注入攻擊、拒絕服務(wù)攻擊、偵查攻擊和正常數(shù)據(jù)4 個(gè)大類(lèi),其中,注入攻擊又可以分為5 個(gè)子類(lèi). 數(shù)據(jù)的具體類(lèi)別及分布情況如表1所示.
表1 氣體管道數(shù)據(jù)集樣本類(lèi)別分布
由于多種原因,例如不同的晝夜模式、數(shù)據(jù)缺少相關(guān)性以及分布的不同,用于描述公共互聯(lián)網(wǎng)流量的現(xiàn)有模型不能直接應(yīng)用于工業(yè)互聯(lián)網(wǎng). 與有20 多年歷史的KDD99[21]以及其他數(shù)據(jù)集相比,gas pipeline 更符合工業(yè)互聯(lián)網(wǎng)現(xiàn)狀,其數(shù)據(jù)構(gòu)建方式更符合真實(shí)網(wǎng)絡(luò)環(huán)境要求.
為了充分驗(yàn)證RCN 在工業(yè)互聯(lián)網(wǎng)入侵檢測(cè)領(lǐng)域的有效性,采用隨機(jī)的方式抽取氣體管道數(shù)據(jù)集50%的數(shù)據(jù)用于模型訓(xùn)練和測(cè)試,并按4∶1的比例隨機(jī)劃分訓(xùn)練集與測(cè)試集,二者分布如表2所示.
由表2可知,訓(xùn)練集和測(cè)試集均具有明顯的數(shù)據(jù)不平衡性. 數(shù)據(jù)不平衡引起的分類(lèi)問(wèn)題始于二分類(lèi)中的數(shù)據(jù)偏態(tài),會(huì)使檢測(cè)器對(duì)多數(shù)類(lèi)樣本產(chǎn)生偏倚[22],當(dāng)少數(shù)類(lèi)樣本在一些情況下至關(guān)重要時(shí),不能區(qū)分少數(shù)類(lèi)樣本會(huì)使檢測(cè)失去實(shí)際意義.
表2 氣體管道數(shù)據(jù)集樣本類(lèi)別分布
以訓(xùn)練集為例,正常數(shù)據(jù)占數(shù)據(jù)總量比例高達(dá)63%,而數(shù)據(jù)量最少的惡意功能命令注入攻擊MFCI 僅占數(shù)據(jù)總量的0.57%,相較于多數(shù)類(lèi)樣本所占的比重極小,造成少數(shù)類(lèi)樣本的相對(duì)稀缺.
3.2.1 數(shù)據(jù)的標(biāo)準(zhǔn)化和歸一化
氣體管道數(shù)據(jù)樣本中數(shù)值差別大,異常值、離群值數(shù)量多,會(huì)對(duì)入侵檢測(cè)模型的收斂速度和精度造成負(fù)面影響,因此需要對(duì)數(shù)據(jù)依次進(jìn)行標(biāo)準(zhǔn)化和歸一化處理. 氣體管道數(shù)據(jù)共有27 類(lèi)屬性實(shí)例,包括26 類(lèi)數(shù)據(jù)特征和一類(lèi)標(biāo)簽屬性. 將標(biāo)簽分離,首先假設(shè)數(shù)據(jù)集可以用n行m列的矩陣T構(gòu)成,即
令A(yù)i為一類(lèi)特征,可將Ai表示為
那么矩陣T可以表示為
計(jì)算每類(lèi)特征數(shù)據(jù)的標(biāo)準(zhǔn)差(Standard Deviation,SD). 若SD≥8,則需要對(duì)這類(lèi)特征數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,令A(yù)′i為處理后的數(shù)據(jù),Ai為需處理的原始數(shù)據(jù),標(biāo)準(zhǔn)化過(guò)程可以表示為
完成標(biāo)準(zhǔn)化處理后的數(shù)據(jù)需進(jìn)一步歸一化. 若SD<8,則跳過(guò)標(biāo)準(zhǔn)化過(guò)程直接進(jìn)行歸一化處理,方法如式(14)所示:
3.2.2 矩陣映射和可視化處理
完成標(biāo)準(zhǔn)化和歸一化處理后得到范圍在[0,1]之間的數(shù)據(jù)集. 為構(gòu)建合適的輸入形式,使用一個(gè)數(shù)值代表一個(gè)矩陣中的一個(gè)灰度像素點(diǎn),將數(shù)值乘以255 后,將26 位數(shù)據(jù)特征填充到6×6 大小的灰度矩陣中. 因矩陣維數(shù)大于數(shù)據(jù)特征位數(shù),需要在矩陣末尾進(jìn)行補(bǔ)零操作.
從各類(lèi)數(shù)據(jù)中各隨機(jī)選取一組,將其映射的灰度矩陣轉(zhuǎn)化為圖像,得到如圖5 所示的圖片集. 其中,數(shù)據(jù)值越小,對(duì)應(yīng)矩陣位置越接近黑色,反之亦然. 可以看出,不同種類(lèi)數(shù)據(jù)所映射的圖片之間有較為明顯的區(qū)別,而同種類(lèi)的數(shù)據(jù)映射的圖片有一定的相似性. 從可視化處理的結(jié)果看,預(yù)期使用RCN 學(xué)習(xí)特征可以取得較好的效果.
圖5 不同數(shù)據(jù)種類(lèi)的可視化表示
為模擬工業(yè)互聯(lián)網(wǎng)環(huán)境,使用一臺(tái)工控計(jì)算機(jī)訓(xùn)練網(wǎng)絡(luò)模型,訓(xùn)練過(guò)程不使用圖形加速卡. 實(shí)驗(yàn)的軟硬件環(huán)境配置如表3所示.
進(jìn)行參數(shù)組合訓(xùn)練,依據(jù)測(cè)試結(jié)果確定模型訓(xùn)練的超參數(shù)設(shè)置如下:每次迭代訓(xùn)練從訓(xùn)練集數(shù)據(jù)中選取的數(shù)據(jù)量為256,動(dòng)態(tài)路由迭代次數(shù)為3.
入侵檢測(cè)算法典型的評(píng)價(jià)指標(biāo)包括準(zhǔn)確率(Acc)、誤報(bào)率(False Negative Rate,F(xiàn)NR)和漏報(bào)率(False Posi?tive Rate,F(xiàn)PR),但因工業(yè)互聯(lián)網(wǎng)入侵?jǐn)?shù)據(jù)不平衡性嚴(yán)重,占總數(shù)量絕大多數(shù)的正常數(shù)據(jù)會(huì)使傳統(tǒng)指標(biāo)發(fā)生偏移.為保證評(píng)估的全面性,本文綜合采用準(zhǔn)確率、漏報(bào)率、誤報(bào)率和F1值作為評(píng)價(jià)指標(biāo),其中,F(xiàn)1值由查全率(Recall)和查準(zhǔn)率(Precision)定義. 指標(biāo)可由式(15)~式(20)定義:
式(15)~式(20)中,TP 代表真正類(lèi),表示本屬于攻擊的樣本被正確預(yù)測(cè)為攻擊的樣本數(shù);FN 代表假負(fù)類(lèi),表示將攻擊誤報(bào)為正常樣本的數(shù)目;FP代表假正類(lèi),表示本屬于正常的樣本被錯(cuò)誤預(yù)測(cè)為攻擊的樣本數(shù);TN 代表真負(fù)類(lèi),表示本屬于正常的樣本被準(zhǔn)確預(yù)測(cè)為正常的樣本數(shù).
為了評(píng)估RCN 在工業(yè)互聯(lián)網(wǎng)入侵檢測(cè)中的指標(biāo),除CapsNet 外,本文選取深度學(xué)習(xí)領(lǐng)域的BiLSTM,GRU,MMN-CNN[9]和傳統(tǒng)機(jī)器學(xué)習(xí)方法PSO-SVM 進(jìn)行對(duì)比實(shí)驗(yàn).
為評(píng)估模型訓(xùn)練情況,BiLSTM,GRU,MMN-CNN使用交叉熵作為損失函數(shù),CapsNet 和RCN 使用間隔損失函數(shù). 為公平起見(jiàn),所有模型使用預(yù)處理后的數(shù)據(jù),并針對(duì)輸入形式做相應(yīng)變換.
4.3.1 數(shù)據(jù)預(yù)處理分析
氣體管道數(shù)據(jù)集離群值多,以氣壓值屬性為例,其最小值為-6.81×1037,最大值為6.15×1036. 如果直接進(jìn)行歸一化處理,那么這些極值很大的離群值會(huì)使其余數(shù)據(jù)過(guò)于集中,無(wú)法反映數(shù)值的相對(duì)大小. 本文在預(yù)處理過(guò)程中使用反正切函數(shù)對(duì)部分?jǐn)?shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,減小了數(shù)據(jù)的整體離散性.
圖6為一個(gè)NMRI類(lèi)攻擊數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理前后對(duì)比圖. 可以看出,標(biāo)準(zhǔn)化處理后的可視化圖像灰度特征變化顯著,有利于進(jìn)行深度特征提取. 為進(jìn)一步驗(yàn)證標(biāo)準(zhǔn)化處理的效果,保持其他步驟不變,使用RCN 和GRU對(duì)預(yù)處理前后的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),結(jié)果如圖7所示. 可以直觀地看出,預(yù)處理能有效提升對(duì)入侵?jǐn)?shù)據(jù)的檢測(cè)效果.
圖6 預(yù)處理前后對(duì)比圖
圖7 預(yù)處理前后指標(biāo)值變化
4.3.2 模型收斂性分析
上一節(jié)對(duì)數(shù)據(jù)預(yù)處理效果進(jìn)行了分析,圖8為不同模型的損失值隨迭代次數(shù)的變化情況. 因?yàn)镽CN 和CapsNet 采取了間隔損失作為評(píng)估函數(shù),所以對(duì)其損失值進(jìn)行單獨(dú)比較.
從圖8 中可以觀察出RCN 的訓(xùn)練損失曲線平穩(wěn)較快收斂. 結(jié)合圖9,可以直觀地看出所有檢測(cè)模型都有一定程度的檢測(cè)能力,但本文方法在收斂速度與精度上均體現(xiàn)出顯著的優(yōu)勢(shì).BiLSTM 和GRU容易陷入局部最優(yōu),曲線波動(dòng)較大.MMN-CNN 無(wú)法對(duì)圖像相對(duì)位置關(guān)系進(jìn)行處理,訓(xùn)練精度整體較低. 在引入殘差網(wǎng)絡(luò)進(jìn)行改進(jìn)后,可以看到RCN 的精度曲線比CapNet 更加平穩(wěn),這說(shuō)明殘差結(jié)構(gòu)的引入顯著提高了膠囊層分類(lèi)質(zhì)量.
圖8 損失值隨迭代次數(shù)變化的曲線
圖9 訓(xùn)練精度隨迭代次數(shù)變化曲線
4.3.3 檢測(cè)指標(biāo)比較
為從整體上比較各模型的預(yù)測(cè)能力,訓(xùn)練各個(gè)模型并進(jìn)行分類(lèi)測(cè)試. 因?yàn)樯疃葘W(xué)習(xí)權(quán)重初始化具有隨機(jī)性,為保證數(shù)據(jù)的可靠性,對(duì)所有模型進(jìn)行多次訓(xùn)練并取平均值,實(shí)驗(yàn)結(jié)果如表4 所示. 和其他檢測(cè)模型相比,RCN 的4 項(xiàng)指標(biāo)均為最高,F(xiàn)1 值達(dá)到99.03%,相較于GRU 和CapsNet 分別高出1.03%和1.48%,這說(shuō)明殘差網(wǎng)絡(luò)模塊顯著提高了膠囊層分類(lèi)質(zhì)量,充分提取了入侵?jǐn)?shù)據(jù)特征.BiLSTM 和GRU 可提取時(shí)序特征,但漏報(bào)率和誤報(bào)率相對(duì)較高,說(shuō)明在訓(xùn)練過(guò)程中丟失數(shù)據(jù)特征信息較多. MMN-CNN 和RCN 同屬于卷積神經(jīng)網(wǎng)絡(luò),但準(zhǔn)確率低于RCN,主要原因?yàn)槟z囊網(wǎng)絡(luò)使用向量膠囊作為神經(jīng)元,保留了豐富的圖像信息.PSO-SVM 各項(xiàng)指標(biāo)最差,主要原因是支持向量機(jī)適用于解決小批量樣本的線性回歸問(wèn)題,不能滿(mǎn)足IDS對(duì)海量數(shù)據(jù)處理的指標(biāo)要求.
表4 不同算法下的檢測(cè)結(jié)果
使用充分訓(xùn)練的模型進(jìn)行分類(lèi)測(cè)試,最終輸出如圖10所示的8維混淆矩陣.
圖10 混淆矩陣
混淆矩陣顯示了各類(lèi)測(cè)試樣本分類(lèi)后的結(jié)果,其中,用下劃線標(biāo)識(shí)的數(shù)字表示各類(lèi)數(shù)據(jù)被正確預(yù)測(cè)的數(shù)量. 將各類(lèi)數(shù)據(jù)進(jìn)行整理,得到RCN 對(duì)不同攻擊類(lèi)別的檢測(cè)準(zhǔn)確率,如表5所示.
表5 不同攻擊類(lèi)別的檢測(cè)準(zhǔn)確率
結(jié)合F1分?jǐn)?shù),可以看出,RCN在沒(méi)有進(jìn)行數(shù)據(jù)增強(qiáng)的情況下,對(duì)樣本數(shù)據(jù)量較小的各類(lèi)攻擊取得了優(yōu)秀的檢測(cè)效果,這說(shuō)明RCN 對(duì)圖像特征進(jìn)行了合理聚合,有效地降低了數(shù)據(jù)不平衡帶來(lái)的不利影響,泛化性很強(qiáng).
RCN 雖然能達(dá)到預(yù)期檢測(cè)效果,但因動(dòng)態(tài)路由算法較為復(fù)雜,仍存在改進(jìn)空間. 經(jīng)測(cè)試,在本文算法中,動(dòng)態(tài)路由算法耗費(fèi)了總訓(xùn)練時(shí)間的41%,限制了RCN模型的識(shí)別效率.
4.3.4 運(yùn)行時(shí)間分析
本文所指運(yùn)行時(shí)間包括2部分:模型訓(xùn)練時(shí)間和模型預(yù)測(cè)時(shí)間. 模型的運(yùn)行時(shí)間與模型的復(fù)雜度和訓(xùn)練迭代次數(shù)相關(guān). 通過(guò)實(shí)驗(yàn)記錄了各網(wǎng)絡(luò)模型的運(yùn)行時(shí)間,結(jié)果如表6所示.
表6 不同模型的運(yùn)行時(shí)間對(duì)比
RCN 與CapsNet 產(chǎn)生的訓(xùn)練時(shí)間差主要來(lái)源于動(dòng)態(tài)路由算法的參數(shù)量.CapsNet 直接將大維度數(shù)據(jù)輸入主膠囊層,極大地增加了訓(xùn)練時(shí)間.GRU 具有2 個(gè)門(mén)結(jié)構(gòu),相對(duì)于BiLSTM 減少了參數(shù)量.MMN-CNN 檢測(cè)速度在所列深度學(xué)習(xí)方法中最快. 這3 種網(wǎng)絡(luò)運(yùn)行時(shí)間較短,但結(jié)合表4綜合考慮,總體檢測(cè)效果差于RCN.PSOSVM由于結(jié)構(gòu)簡(jiǎn)單,執(zhí)行時(shí)間代價(jià)較低. 但其檢測(cè)指標(biāo)最差,預(yù)處理過(guò)程需要人工進(jìn)行特征篩選,且未計(jì)入運(yùn)行時(shí)間,難以滿(mǎn)足入侵檢測(cè)系統(tǒng)智能化的發(fā)展趨勢(shì).
工業(yè)互聯(lián)網(wǎng)具有區(qū)別于傳統(tǒng)互聯(lián)網(wǎng)的多重特點(diǎn),針對(duì)傳統(tǒng)入侵檢測(cè)方法準(zhǔn)確性低、難以適應(yīng)工業(yè)互聯(lián)網(wǎng)組網(wǎng)模式和海量不平衡數(shù)據(jù)等問(wèn)題,本文提出一種基于膠囊網(wǎng)絡(luò)的工業(yè)互聯(lián)網(wǎng)入侵檢測(cè)方法. 該方法首先參考DRN 結(jié)構(gòu),引入殘差塊為主膠囊層提取高質(zhì)量的特征圖,然后使用動(dòng)態(tài)路由算法對(duì)特征進(jìn)行聚類(lèi),在反向傳播中使用Adam 算法優(yōu)化學(xué)習(xí)率,使檢測(cè)模型平穩(wěn)快速收斂,并在氣體管道數(shù)據(jù)集仿真測(cè)試中取得99.28%的檢測(cè)準(zhǔn)確率. 即使在數(shù)據(jù)分布嚴(yán)重不平衡的情況下,實(shí)驗(yàn)測(cè)試數(shù)據(jù)結(jié)果表明該模型的漏報(bào)率、誤報(bào)率和F1 值仍然可以達(dá)到1.08%,0.51%和99.03%,較其他對(duì)比算法有較大優(yōu)勢(shì),能較好適應(yīng)工業(yè)互聯(lián)網(wǎng)應(yīng)用環(huán)境.
本文提出的入侵檢測(cè)方法是針對(duì)工業(yè)互聯(lián)網(wǎng)特點(diǎn)構(gòu)建的,模型基于監(jiān)督學(xué)習(xí)模式,需要清晰的數(shù)據(jù)包信息和流量模式. 雖然可取得較好效果,但傳統(tǒng)互聯(lián)網(wǎng)并不能完全滿(mǎn)足這些條件. 同時(shí),動(dòng)態(tài)路由算法復(fù)雜度較高,相對(duì)于傳統(tǒng)方法計(jì)算開(kāi)銷(xiāo)較大. 下一步擬對(duì)動(dòng)態(tài)路由算法策略進(jìn)行改進(jìn),以減少動(dòng)態(tài)路由消耗時(shí)間.