孫揚(yáng)威,戚湧
(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,南京 210094)
隨著物聯(lián)網(wǎng)和通信技術(shù)的發(fā)展,以海量車(chē)輛節(jié)點(diǎn)為核心的車(chē)聯(lián)網(wǎng)(Internet of Vehicles,IoV)應(yīng)運(yùn)而生[1]。車(chē)聯(lián)網(wǎng)是現(xiàn)代化智能汽車(chē)重要的通信方式,通過(guò)車(chē)聯(lián)網(wǎng)可實(shí)現(xiàn)人-車(chē)-路-云之間的信息共享[2]。
車(chē)聯(lián)網(wǎng)大體上可分為車(chē)內(nèi)網(wǎng)和車(chē)外網(wǎng),其中,車(chē)內(nèi)網(wǎng)中最重要的部分是車(chē)載控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)[3]。由于車(chē)載CAN中存在兼容性問(wèn)題,因此傳統(tǒng)的信息安全技術(shù)在當(dāng)今智能網(wǎng)聯(lián)汽車(chē)的車(chē)內(nèi)網(wǎng)中并不適用,很容易受到模擬攻擊、DoS 攻擊、監(jiān)聽(tīng)攻擊、偽造攻擊等網(wǎng)絡(luò)攻擊[4]。入侵檢測(cè)是近年來(lái)新興的一種信息安全方法,其可提前發(fā)現(xiàn)和攔截網(wǎng)絡(luò)攻擊,屬于主動(dòng)安全的范疇,并且可方便地集成到車(chē)載系統(tǒng)中,現(xiàn)已成為車(chē)載CAN 安全領(lǐng)域的重要研究方向。
近年來(lái),車(chē)內(nèi)網(wǎng)的入侵檢測(cè)相關(guān)研究主要集中在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型上。GHALEB 等[5]提出一種基于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)的入侵檢測(cè)模型,并在采集到的真實(shí)車(chē)載CAN 入侵?jǐn)?shù)據(jù)上進(jìn)行測(cè)試,結(jié)果表明,該模型的整體檢測(cè)效果優(yōu)于常見(jiàn)基線模型,但是其針對(duì)樣本數(shù)較少的攻擊類(lèi)型時(shí)檢測(cè)率較差。ALSHAMMARI 等[6]通過(guò)K 近鄰(KNearest Neighbor,KNN)和支持向量機(jī)(Support Vector Machines,SVM)方法對(duì)車(chē)內(nèi)網(wǎng)中的數(shù)據(jù)進(jìn)行分類(lèi)檢測(cè),由于所用模型并不適用于大數(shù)據(jù)量樣本,因此模型訓(xùn)練時(shí)間較長(zhǎng)。YANG 等[7]提出一種基于多層混合模型的車(chē)聯(lián)網(wǎng)入侵檢測(cè)方法MTHIDS,該方法主要分為數(shù)據(jù)處理、特征工程、入侵檢測(cè)、結(jié)果輸出這4 層,其中,在入侵檢測(cè)層使用集成學(xué)習(xí)模型進(jìn)行分類(lèi)。實(shí)驗(yàn)結(jié)果表明,該入侵檢測(cè)方法誤報(bào)率較低,整體檢測(cè)效果較好。AKSU 等[8]提出一種基于特征選擇組合多種分類(lèi)器的入侵檢測(cè)系統(tǒng),首先使用改進(jìn)遺傳算法組合K 折交叉驗(yàn)證方法進(jìn)行特征選擇,然后從若干分類(lèi)器中選擇具有最高分類(lèi)性能的分類(lèi)器。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具有較好的檢測(cè)效果。KHAN 等[9]提出一種基于長(zhǎng)短期記憶(Long Short Term Memory,LSTM)網(wǎng)絡(luò)的車(chē)載CAN 入侵檢測(cè)方法,并在實(shí)際車(chē)載CAN 網(wǎng)絡(luò)中進(jìn)行了實(shí)驗(yàn),結(jié)果表明,該方法的檢測(cè)率高于傳統(tǒng)的基線檢測(cè)模型,但是由于其結(jié)構(gòu)相對(duì)復(fù)雜、計(jì)算量較大,因此整體效率較低。
盡管此前的研究工作已經(jīng)取得了一定的成果,但是整體檢測(cè)性能仍需進(jìn)一步提高。近年來(lái),由于人工智能技術(shù)的逐漸成熟,深度學(xué)習(xí)被廣泛應(yīng)用于機(jī)器翻譯、目標(biāo)識(shí)別等領(lǐng)域。深度學(xué)習(xí)模型一般效果較好,但其計(jì)算成本通常較高,難以應(yīng)用于計(jì)算性能一般的車(chē)載系統(tǒng)。比起深度學(xué)習(xí),機(jī)器學(xué)習(xí)往往更高效,并且已有學(xué)者證明了機(jī)器學(xué)習(xí)在入侵檢測(cè)系統(tǒng)中的有效性[10]。本文提出一種基于聚類(lèi)混合采樣與PSO-Stacking 的車(chē)載CAN 入侵檢測(cè)方法。使用聚類(lèi)混合采樣方法對(duì)初步處理后的訓(xùn)練數(shù)據(jù)進(jìn)行采樣而測(cè)試數(shù)據(jù)不變。使用基于Gini 系數(shù)的梯度提升決策樹(shù)(Gradient Boosting Decision Tree,GBDT)[11]進(jìn)行特征重要性評(píng)估,刪除重要性較低的特征,以實(shí)現(xiàn)數(shù)據(jù)降維。在此基礎(chǔ)上,通過(guò)粒子群優(yōu)化(Particle Swarm Optimization,PSO)算 法[12]組合Stacking 模型[13]完成模型參數(shù)尋優(yōu)和入侵檢測(cè)。
K-means 算法[14]是基于劃分的聚類(lèi)方法,其核心思想是按照樣本之間的相似度將樣本分為不同的簇,其中,簇間相似度較低,簇內(nèi)相似度較高。
對(duì)于一個(gè)給定的包含n個(gè)d維數(shù)據(jù)點(diǎn)的數(shù)據(jù)集X={x1,x2,…,xi,…,xn}(xi∈Rd)和要生成的k個(gè)簇,K-means 聚類(lèi)算法將數(shù)據(jù)組織為k個(gè)劃分C={ci,i=1,2,…,k},每個(gè)劃分代表一個(gè)簇ci,每個(gè)簇有一個(gè)聚類(lèi)中心μi。選取歐式距離作為相似度判斷準(zhǔn)則,計(jì)算類(lèi)內(nèi)各點(diǎn)到聚類(lèi)中心的距離平方和:
聚類(lèi)的目標(biāo)是使各簇整體的距離平方和最小,即式(2)取得最小值:
在聚類(lèi)完成后,每個(gè)簇中的樣本差異最小,簇間的樣本差異最大,此時(shí)每個(gè)簇中的聚類(lèi)中心可有效代表該簇。
SMOTE算法[15]的思想是在少 數(shù)類(lèi)樣本與其k個(gè)近鄰之間的連線上,利用隨機(jī)函數(shù)產(chǎn)生隨機(jī)數(shù),然后合成新樣本,從而增加少數(shù)類(lèi)樣本數(shù)量,達(dá)到對(duì)少數(shù)類(lèi)樣本過(guò)采樣的目的。經(jīng)過(guò)SMOTE 過(guò)采樣,分類(lèi)器可以更好地對(duì)少數(shù)類(lèi)樣本進(jìn)行分類(lèi),提高整體分類(lèi)效果。SMOTE 合成樣本的方法如式(3)所示:
其中:xnew表示新生成的樣本;xi為聚類(lèi)中心點(diǎn);為所選k 近鄰樣本;δ∈[0,1]為隨機(jī)值。SMOTE 生成的樣本如圖1 所示。
圖1 SMOTE 生成的樣本Fig.1 Samples generated by SMOTE
Tomek Links算法[16]的基本思想是:若最接近的兩個(gè)樣本屬于兩個(gè)類(lèi)別,這兩個(gè)樣本組合為一個(gè)Tomek Links對(duì),可能這兩個(gè)樣本中的一個(gè)是噪聲,也可能兩者都靠近類(lèi)別邊界。刪除上述Tomek Links 對(duì),可有效降低類(lèi)間重疊數(shù)據(jù)量,從而使分類(lèi)器能夠更好地分類(lèi)。Tomek Links 采樣示意圖如圖2 所示。
圖2 Tomek Links 采樣示意圖Fig.2 Tomek Links sampling diagram
Gini 系數(shù)的含義是從數(shù)據(jù)集D中隨機(jī)抽取兩個(gè)數(shù)據(jù)分屬不同類(lèi)別的概率,概率越小,集合的純度就越高。在分類(lèi)問(wèn)題上,假設(shè)數(shù)據(jù)集D中有K個(gè)類(lèi)別,其中,Pk表示某個(gè)樣本屬于k類(lèi)的概率,則可以用Gini 值來(lái)度量數(shù)據(jù)集D的純度:
假設(shè)離散特征f有N種可能的取值f={f1,f2,…,fN},若通過(guò)f劃分?jǐn)?shù)據(jù)集D,則可能產(chǎn)生N個(gè)分支,其中,第n個(gè)分支表示在f特征上值為fn的所有樣本,標(biāo)記為Dn。將數(shù)據(jù)集D中特征f的Gini 系數(shù)定義為:
PSO 是一種由鳥(niǎo)群覓食過(guò)程所演變出的群體搜索算法。與其他搜索算法相比,PSO 具有所需調(diào)整參數(shù)少、優(yōu)化速度快、優(yōu)化范圍廣等特點(diǎn)[17]。
若一個(gè)具有m個(gè)粒子的種群在一個(gè)D維空間中搜索,其中,每個(gè)粒子都具有一定的記憶能力,可以存儲(chǔ)搜索到的最佳位置pbest,整個(gè)粒子群搜尋到的最好位置是gbest。每個(gè)粒子根據(jù)自身的pbest與種群搜索到的最好位置gbest之間的關(guān)系來(lái)調(diào)整速度vd和位置xd,以完成對(duì)整個(gè)空間的搜索。粒子的位置變化范圍為[Xmin,d,Xmax,d],速度變化范圍為[-Vmax,d,Vmax,d]。第i個(gè)粒子在D維空間中的速度及位置調(diào)整方法如下:
由于實(shí)際采集到的車(chē)聯(lián)網(wǎng)數(shù)據(jù)流量較大,且非攻擊類(lèi)型的數(shù)據(jù)占絕大多數(shù),使用全部數(shù)據(jù)來(lái)訓(xùn)練模型不僅會(huì)花費(fèi)大量時(shí)間,還會(huì)帶來(lái)因數(shù)據(jù)類(lèi)別不平衡而導(dǎo)致的模型過(guò)/欠擬合問(wèn)題[18]。本文提出聚類(lèi)混合采樣方法對(duì)數(shù)據(jù)進(jìn)行采樣,在保證樣本多樣性沒(méi)有損失的前提下豐富少數(shù)類(lèi)樣本,去除冗余數(shù)據(jù),從而提高模型的檢測(cè)效果。
本文所提聚類(lèi)混合采樣方法首先計(jì)算各類(lèi)別樣本的平均數(shù)nAVG,若某類(lèi)別中的樣本總量高于nAVG,則該類(lèi)別為上區(qū),反之為下區(qū)。對(duì)上區(qū)中的數(shù)據(jù)進(jìn)行聚類(lèi)采樣,從上區(qū)數(shù)據(jù)中隨機(jī)初始化nAVG個(gè)聚類(lèi)中心,通過(guò)聚類(lèi)迭代更新聚類(lèi)中心,直到每個(gè)聚類(lèi)不再變化,此時(shí)抽取最終的nAVG個(gè)聚類(lèi)中心作為上區(qū)數(shù)據(jù)采樣后的結(jié)果。在聚類(lèi)后采樣,舍棄的均為代表性較低的冗余數(shù)據(jù),因此,可以在不損失數(shù)據(jù)多樣性的前提下降低數(shù)據(jù)規(guī)模。對(duì)于下區(qū)內(nèi)的數(shù)據(jù),由于數(shù)據(jù)量不足nAVG個(gè),因此本文采用SMOTE 算法根據(jù)現(xiàn)有數(shù)據(jù)合成所需數(shù)量的新數(shù)據(jù),組合現(xiàn)有數(shù)據(jù)和新數(shù)據(jù)共nAVG個(gè)數(shù)據(jù),作為下區(qū)數(shù)據(jù)采樣后的結(jié)果。
匯總上區(qū)和下區(qū)的數(shù)據(jù)構(gòu)成新的數(shù)據(jù)集,由于使用SMOTE 算法生成了新數(shù)據(jù),因此此時(shí)的數(shù)據(jù)集中存在一些處于各類(lèi)別邊界的樣本,該類(lèi)樣本在一定程度上會(huì)影響模型的分類(lèi)效果。本文通過(guò)Tomek Links 方法清除該類(lèi)樣本,得到最終的數(shù)據(jù)集。本文聚類(lèi)混合采樣方法整體流程如圖3 所示。
圖3 聚類(lèi)混合采樣流程Fig.3 Cluster mixed sampling procedure
GBDT 是由多棵CART 樹(shù)所構(gòu)成的,在單棵樹(shù)中采用Gini 系數(shù)度量特征的重要程度,Gini 系數(shù)的值越小,說(shuō)明集合的不純度越低,分割效果越好[19]。Gini 系數(shù)的計(jì)算公式如式(8)所示:
其中:K代表類(lèi)別總數(shù);Pmk表示節(jié)點(diǎn)m中類(lèi)別k所占的比例。Gini 系數(shù)的定義可表示為從節(jié)點(diǎn)m中隨機(jī)抽取分屬不同類(lèi)別的兩條數(shù)據(jù)的概率。
鑒于分支中的樣本數(shù)量對(duì)分支影響不同,將各分支的Gini 值乘以樣本數(shù)量N,以提高樣本數(shù)多的分支的影響。因此,特征j在節(jié)點(diǎn)m上的重要性可以用加權(quán)不純度的減少量來(lái)表示:
若在第i棵CART 樹(shù)中,節(jié)點(diǎn)集合為M,特征j所在的節(jié)點(diǎn)m包含在M中,此時(shí)特征j在第i棵樹(shù)上的重要程度為:
假設(shè)GBDT 中有n棵樹(shù),那么特征j的重要性可表示為:
對(duì)上面的重要性評(píng)分進(jìn)行歸一化處理,得到特征j的最終重要性:
重要性接近0 的特征對(duì)分類(lèi)結(jié)果貢獻(xiàn)較小,甚至?xí)档头诸?lèi)效果,刪除這些特征可降低數(shù)據(jù)的維度,提高訓(xùn)練速度和分類(lèi)效果。
Stacking 是一種集成學(xué)習(xí)方法,其采用基于模型的異質(zhì)型集成策略,目的是充分發(fā)揮各模型的優(yōu)勢(shì),更好地完成分類(lèi)任務(wù)。Stacking 主要分為兩層:第一層使用原始訓(xùn)練數(shù)據(jù),利用K 折交叉驗(yàn)證法訓(xùn)練不同種類(lèi)的基學(xué)習(xí)器,然后將基學(xué)習(xí)器輸出的分類(lèi)結(jié)果作為特征輸入到第二層;第二層根據(jù)第一層輸出的分類(lèi)結(jié)果訓(xùn)練元分類(lèi)器,構(gòu)成完整的Stacking 模型[13]。由于Stacking 模型集成了多個(gè)不同種類(lèi)的模型,因此可彌補(bǔ)單一分類(lèi)器的缺陷,提高分類(lèi)效果。本文所用Stacking 模型第一層的基學(xué)習(xí)器分別為基于GBDT 的XGBoost[20]、LightGBM[21]及CatBoost[22]模型,為了防止過(guò)擬合,第二層使用擬合效果較弱的多層感知機(jī)(Multi-Layer Perceptron,MLP)模型[23]作為元分類(lèi)器。
XGBoost 是一種基于GBDT 的集成模型,相比傳統(tǒng)的GBDT 模型,XGBoost 采用集成學(xué)習(xí)思想和前向分布算法,提升了精度和訓(xùn)練速度。直接對(duì)殘差進(jìn)行學(xué)習(xí)很可能會(huì)出現(xiàn)過(guò)擬合,因此,XGBoost 在目標(biāo)函數(shù)中引入正則化項(xiàng),在保證準(zhǔn)確性的同時(shí)可以降低過(guò)擬合的風(fēng)險(xiǎn)。
LightGBM 在GBDT 的基礎(chǔ)上引入基于直方圖的算法,將連續(xù)特征放入不同的桶中構(gòu)建直方圖數(shù)據(jù),在選擇特征劃分時(shí),無(wú)需每次遍歷數(shù)據(jù)集就可以找到最優(yōu)切分點(diǎn),提升了運(yùn)行效率;同時(shí)引入單邊梯度采樣算法和互斥特征捆綁算法,降低了對(duì)系統(tǒng)內(nèi)存的占用,提升了訓(xùn)練速度;為防止因生長(zhǎng)出的決策樹(shù)較深而引起過(guò)擬合的問(wèn)題,該模型引入帶深度限制的葉子生長(zhǎng)算法,同時(shí)支持并行訓(xùn)練,在保證較高準(zhǔn)確率的同時(shí)提升了模型的訓(xùn)練效率。
CatBoost 是一種以完全對(duì)稱(chēng)樹(shù)為基學(xué)習(xí)器的GBDT 模型,相比傳統(tǒng)的GBDT 模型,CatBoost 在處理類(lèi)別特征、密集數(shù)值特征、決策樹(shù)生長(zhǎng)評(píng)分以及多GPU 并行計(jì)算方面進(jìn)行了較大改進(jìn)。CatBoost 的基學(xué)習(xí)器為完全對(duì)稱(chēng)樹(shù),在這類(lèi)樹(shù)中,每一層都使用相同的分割條件,預(yù)測(cè)速度較快,同時(shí)由于這種樹(shù)是平衡樹(shù),因此在一定程度上避免了過(guò)擬合問(wèn)題。
綜上所述,本文Stacking 模型使用的3 種基學(xué)習(xí)器整體效率較高、預(yù)測(cè)效果較好,且元分類(lèi)器為擬合效果較弱的MLP 模型,在一定程度上降低了過(guò)擬合的風(fēng)險(xiǎn)。Stacking 模型架構(gòu)如圖4 所示。
圖4 Stacking 模型架構(gòu)Fig.4 Stacking model architecture
為了進(jìn)一步提高模型整體的檢測(cè)效果,本文在Stacking 模型的基礎(chǔ)上引入PSO 算法對(duì)模型進(jìn)行優(yōu)化。本文模型所選基學(xué)習(xí)器均基于樹(shù)模型,在基學(xué)習(xí)器中參與尋優(yōu)的參數(shù)為樹(shù)的深度、學(xué)習(xí)率和迭代次數(shù),元分類(lèi)器中參與尋優(yōu)的參數(shù)為單隱藏層的形狀和學(xué)習(xí)率。使用PSO 算法分別對(duì)Stacking 模型中的各基學(xué)習(xí)器和元分類(lèi)器的參數(shù)進(jìn)行迭代尋優(yōu),當(dāng)達(dá)到設(shè)定的最大迭代次數(shù)(100)時(shí),尋優(yōu)結(jié)束。選取最優(yōu)參數(shù)組合作為各模型最終的參數(shù),使用優(yōu)化后的基學(xué)習(xí)器和元分類(lèi)器構(gòu)建Stacking 模型,重新訓(xùn)練Stacking 模型并保存訓(xùn)練后的結(jié)果。PSO-Stacking模型的執(zhí)行流程如圖5 所示。
圖5 PSO-Stacking 的執(zhí)行流程Fig.5 Implementation procedure of PSO-Stacking
本文所提基于聚類(lèi)混合采樣與PSO-Stacking 的車(chē)載CAN 入侵檢測(cè)模型主要分為4 個(gè)模塊:
1)數(shù)據(jù)預(yù)處理模塊。首先對(duì)初始數(shù)據(jù)進(jìn)行數(shù)值化,同時(shí)為了規(guī)避量綱差異對(duì)模型效果的影響,對(duì)數(shù)據(jù)進(jìn)行歸一化處理,如式(13)所示:
其中:xi表示初始值;xmin為數(shù)據(jù)的最小值;xmax為數(shù)據(jù)的最大值;為歸一化處理后的值。對(duì)數(shù)值化和歸一化后的數(shù)據(jù)進(jìn)行劃分,分成訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行聚類(lèi)混合采樣,平衡樣本數(shù)據(jù)量。
2)特征選擇模塊。對(duì)經(jīng)過(guò)數(shù)據(jù)預(yù)處理后的訓(xùn)練集和測(cè)試集使用基于Gini 系數(shù)的GBDT 特征選擇方法進(jìn)行特征選擇,刪除重要程度較低的特征。
3)PSO-Stacking模塊。通過(guò)PSO 算法優(yōu)化Stacking模型,尋找使模型整體最優(yōu)的參數(shù)組合,重復(fù)此過(guò)程,直至尋優(yōu)結(jié)束,存儲(chǔ)經(jīng)過(guò)訓(xùn)練集訓(xùn)練過(guò)且效果最好的Stacking 模型。
4)入侵檢測(cè)模塊。使用保存的經(jīng)PSO 優(yōu)化后的模型對(duì)測(cè)試數(shù)據(jù)進(jìn)行檢測(cè),輸出檢測(cè)結(jié)果。
本文車(chē)載CAN 入侵檢測(cè)模型整體流程如圖6所示。
圖6 車(chē)載CAN 入侵檢測(cè)模型整體流程Fig.6 Overall procedure of intrusion detection model for in-vehicle CAN
有別于傳統(tǒng)互聯(lián)網(wǎng),車(chē)載CAN 網(wǎng)絡(luò)通過(guò)CAN報(bào)文傳輸數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)較為固定。CAN 報(bào)文由7 個(gè)字段組成,分別為開(kāi)始字段、仲裁字段、控制字段、數(shù)據(jù)字段、循環(huán)冗余校驗(yàn)字段、應(yīng)答字段和結(jié)束字段,其中,仲裁字段包含標(biāo)識(shí)符字段和遠(yuǎn)程傳輸請(qǐng)求字段[24]。CAN 報(bào)文結(jié)構(gòu)如圖7 所示,在CAN 報(bào)文中數(shù)據(jù)字段最為重要,攻擊者可通過(guò)向數(shù)據(jù)字段注入惡意信息來(lái)入侵和控制車(chē)輛。
圖7 CAN 數(shù)據(jù)報(bào)文結(jié)構(gòu)Fig.7 CAN data message structure
本文使用的車(chē)載CAN 入侵?jǐn)?shù)據(jù)集為HCR 實(shí)驗(yàn)室在KIA SOUL 汽車(chē)上提取的真實(shí)數(shù)據(jù)[25],其特征包括時(shí)間戳、CAN 標(biāo)識(shí)符、CAN 數(shù)據(jù)字節(jié)數(shù)以及CAN 數(shù)據(jù)字段,攻擊類(lèi)型主要為拒絕服務(wù)攻擊(DoS)、模糊攻擊(Fuzzy)以及模擬攻擊(Impersonation,Imp)。本文在上述數(shù)據(jù)集中選取數(shù)據(jù)字段長(zhǎng)度為8 Byte 的樣本作為實(shí)驗(yàn)數(shù)據(jù)。
本文全部實(shí)驗(yàn)均在Windows10 系統(tǒng)下進(jìn)行,操作系統(tǒng)為64 位,處理器版本為Intel?CoreTMi5-6500 CPU @3.20 GHz,內(nèi)存為16 GB,所使用的開(kāi)發(fā)語(yǔ)言版本為Python3.8。
實(shí)驗(yàn)評(píng)估指標(biāo)均以混淆矩陣為基礎(chǔ),用于計(jì)算各項(xiàng)評(píng)估指標(biāo)的混淆矩陣如表1 所示。
表1 混淆矩陣Table 1 Confusion matrix
實(shí)驗(yàn)采用準(zhǔn)確 率(Accuracy,ACC)、漏報(bào)率(False Negative Rate,F(xiàn)NR)和精確度(Precision,PRE)作為模型的評(píng)估指標(biāo),各指標(biāo)的計(jì)算方式分別如式(14)~式(16)所示:
實(shí)驗(yàn)內(nèi)容主要分為兩部分:第一部分使用所提PSO-Stacking 模型在原始訓(xùn)練集和經(jīng)過(guò)聚類(lèi)混合采樣、特征選擇處理的訓(xùn)練集上進(jìn)行訓(xùn)練,對(duì)比其檢測(cè)結(jié)果,證明所提聚類(lèi)混合采樣和特征選擇方法的有效性;第二部分將所提基于聚類(lèi)混合采樣與PSOStacking 的車(chē)載CAN 入侵檢測(cè)模型與現(xiàn)有常見(jiàn)車(chē)載CAN 入侵檢測(cè)模型進(jìn)行對(duì)比,證明所提模型的先進(jìn)性和實(shí)用性。為了避免實(shí)驗(yàn)結(jié)果的偶然性,所提模型的準(zhǔn)確率、漏報(bào)率和精確度均為35 次重復(fù)實(shí)驗(yàn)結(jié)果的平均值。
3.3.1 聚類(lèi)混合采樣與特征選擇方法分析
本部分主要證明所提聚類(lèi)混合采樣方法和基于Gini 系數(shù)的GBDT 特征選擇方法的有效性。實(shí)驗(yàn)所用測(cè)試數(shù)據(jù)和經(jīng)過(guò)聚類(lèi)混合采樣前后的訓(xùn)練數(shù)據(jù)如表2 所示,可以看出,聚類(lèi)混合采樣可以在一定程度上降低多數(shù)類(lèi)樣本冗余,同時(shí)豐富少數(shù)類(lèi)樣本,解決了數(shù)據(jù)比例失衡的問(wèn)題。
表2 樣本數(shù)量對(duì)比Table 2 Comparison of sample quantity
表3 所示為使用原始訓(xùn)練數(shù)據(jù)(第一種)、僅經(jīng)過(guò)特征選擇處理的訓(xùn)練數(shù)據(jù)(第二種)、僅經(jīng)過(guò)聚類(lèi)混合采樣處理的訓(xùn)練數(shù)據(jù)(第三種)、同時(shí)經(jīng)過(guò)聚類(lèi)混合采樣與特征選擇處理的訓(xùn)練數(shù)據(jù)(第四種)對(duì)PSO-Stacking 模型進(jìn)行訓(xùn)練所需的時(shí)間。從表3 可知,在其他條件均相同的情況下,使用經(jīng)過(guò)聚類(lèi)混合采樣和特征選擇處理后的訓(xùn)練數(shù)據(jù)訓(xùn)練PSOStacking 模型,能夠降低訓(xùn)練樣本的數(shù)量和維度,使得模型訓(xùn)練速度更快。
表3 聚類(lèi)混合采樣與特征選擇前后的時(shí)間分析Table 3 Time analysis before and after cluster mixed sampling and feature selection
圖8 所示為使用上述4 種情況下的訓(xùn)練數(shù)據(jù)分別訓(xùn)練PSO-Stacking 模型時(shí)對(duì)測(cè)試數(shù)據(jù)的檢測(cè)準(zhǔn)確率。從圖8 可以看出,使用第二種訓(xùn)練數(shù)據(jù)訓(xùn)練PSO-Stacking 模型的檢測(cè)準(zhǔn)確率相對(duì)于第一種訓(xùn)練數(shù)據(jù)的檢測(cè)準(zhǔn)確率略有提升,使用第三種訓(xùn)練數(shù)據(jù)訓(xùn)練PSO-Stacking 模型的檢測(cè)準(zhǔn)確率相對(duì)于第一種和第二種訓(xùn)練數(shù)據(jù)的檢測(cè)準(zhǔn)確率提升較大,使用第四種訓(xùn)練數(shù)據(jù)訓(xùn)練PSO-Stacking 模型的檢測(cè)準(zhǔn)確率最高。
圖8 本文模型的準(zhǔn)確率分析Fig.8 Accuracy analysis of the proposed model
表4、表5 分別表示訓(xùn)練數(shù)據(jù)在上述4 種情況下對(duì)測(cè)試數(shù)據(jù)中不同類(lèi)別的樣本的檢測(cè)精確度和漏報(bào)率,最優(yōu)結(jié)果加粗標(biāo)注。
表4 聚類(lèi)混合采樣與特征選擇前后的精確度分析Table 4 Precision analysis before and after cluster mixed sampling and feature selection %
表5 聚類(lèi)混合采樣與特征選擇前后的漏報(bào)率分析Table 5 False negative rate analysis before and after cluster mixed sampling and feature selection %
從表4 可以看出,使用第四種訓(xùn)練數(shù)據(jù)訓(xùn)練的PSO-Stacking 模型僅在對(duì)Normal 類(lèi)型樣本的檢測(cè)精確度略低于第三種訓(xùn)練數(shù)據(jù),對(duì)其他類(lèi)型樣本的檢測(cè)精確度均較高,整體檢測(cè)效果較好。從表5 可以看出,使用第三種訓(xùn)練數(shù)據(jù)訓(xùn)練的PSO-Stacking 模型對(duì)Normal 類(lèi)型樣本的檢測(cè)漏報(bào)率最低,除此之外,使用第四種訓(xùn)練數(shù)據(jù)訓(xùn)練的PSO-Stacking 模型檢測(cè)漏報(bào)率最低,檢測(cè)效果最好。
綜合上述結(jié)果可以看出,本文所提聚類(lèi)混合采樣與特征選擇方法,在一定程度上平衡了數(shù)據(jù)集中各類(lèi)別樣本的數(shù)量,降低了模型的訓(xùn)練時(shí)間,同時(shí)提升了模型的整體檢測(cè)效果。
3.3.2 所提模型與其他常用模型對(duì)比實(shí)驗(yàn)分析
在初始訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)相同的情況下,本文所提模型與常用車(chē)載CAN 入侵檢測(cè)模型的檢測(cè)準(zhǔn)確率對(duì)比如圖9 所示。從圖9 可知,SVM 模型[6]的檢測(cè)準(zhǔn)確率相對(duì)較低,只有92.82%,其次是ANN[5]和KNN[6],準(zhǔn)確率分別為93.62%和94.67%,檢測(cè)準(zhǔn)確率較高的是MGA-DTC[8]及MTHIDS[7],前者首先使用改進(jìn)遺傳算法組合K 折交叉驗(yàn)證方法進(jìn)行特征選擇,然后使用基于決策樹(shù)的算法進(jìn)行入侵檢測(cè),整體檢測(cè)準(zhǔn)確率為96.68%,后者與本文所提模型均基于集成學(xué)習(xí)模型,因此檢測(cè)準(zhǔn)確率較高,但在集成方式以及數(shù)據(jù)采樣和特征選擇方法上,MTHIDS 與本文模型有較大的區(qū)別。從圖中實(shí)驗(yàn)結(jié)果可知,本文所提模型的檢測(cè)準(zhǔn)確率高于其他常見(jiàn)車(chē)載CAN 入侵檢測(cè)模型,在一定程度上證明了本文所提方法的先進(jìn)性。
圖9 不同模型的檢測(cè)準(zhǔn)確率對(duì)比Fig.9 Comparison of detection accuracy of different models
表6、表7 列出了在初始訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)均相同的情況下所提模型與其他常見(jiàn)車(chē)載CAN 入侵檢測(cè)模型在精確度和漏報(bào)率上的對(duì)比。從表6 可知:ANN、KNN 及SVM 模型的檢測(cè)精確度相對(duì)較低;由于進(jìn)行了特征處理,MGA-DTC 模型的檢測(cè)精確度高于上述3 種模型;MTHIDS 與本文所提模型除了進(jìn)行特征處理之外,還對(duì)數(shù)據(jù)進(jìn)行了采樣,平衡了各類(lèi)別數(shù)據(jù)的比例,因此檢測(cè)精確度較高。本文所提模型僅對(duì)Normal 類(lèi)型樣本的檢測(cè)精確度略低于MTHIDS,對(duì)其余類(lèi)型樣本的檢測(cè)精確度均高于其他模型。從表7 可知,本文所提模型對(duì)Normal 類(lèi)型及Imp 類(lèi)型樣本的檢測(cè)漏報(bào)率略高于MGA-DTC 和MTHIDS,對(duì)DoS 類(lèi)型及Fuzzy 類(lèi)型樣本的檢測(cè)漏報(bào)率均低于其他模型,總體而言,本文模型的整體漏報(bào)率較低,實(shí)用性較好。
表6 不同模型的檢測(cè)精確度對(duì)比Table 6 Comparison of detection precision of different models %
表7 不同模型的檢測(cè)漏報(bào)率對(duì)比Table 7 Comparison of detection false negative rate of different models %
綜上所述,本文所提模型能夠較好地解決車(chē)載CAN 中數(shù)據(jù)比例失衡的問(wèn)題,充分挖掘數(shù)據(jù)特征,具有較好的入侵檢測(cè)能力,在車(chē)載CAN 入侵檢測(cè)中體現(xiàn)出先進(jìn)性和實(shí)用性。
針對(duì)當(dāng)前車(chē)載CAN 中多樣化的網(wǎng)絡(luò)攻擊形勢(shì)以及現(xiàn)有車(chē)載CAN 入侵檢測(cè)方法存在的不足,本文提出一種基于聚類(lèi)混合采樣與PSO-Stacking 的車(chē)載CAN 入侵檢測(cè)方法。車(chē)載CAN 環(huán)境中網(wǎng)絡(luò)數(shù)據(jù)流量較大且各類(lèi)別數(shù)據(jù)比例失衡,直接使用采集到的原始訓(xùn)練數(shù)據(jù)訓(xùn)練模型可能會(huì)降低模型的檢測(cè)效果,為此,本文設(shè)計(jì)一種聚類(lèi)混合采樣方法對(duì)采集到的訓(xùn)練數(shù)據(jù)進(jìn)行采樣,去除多數(shù)類(lèi)樣本冗余,同時(shí)合成少數(shù)類(lèi)樣本,以保證各類(lèi)別數(shù)據(jù)平衡。提出基于Gini 系數(shù)的GBDT 特征選擇方法,刪除重要程度較低的特征,降低數(shù)據(jù)維度。在此基礎(chǔ)上,通過(guò)PSOStacking 模型完成入侵檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該方法整體檢測(cè)效果較好,具有一定的先進(jìn)性和實(shí)用性。下一步將在實(shí)際車(chē)載CAN 環(huán)境中對(duì)檢測(cè)模型進(jìn)行優(yōu)化,嘗試使用生成對(duì)抗網(wǎng)絡(luò)合成少數(shù)類(lèi)攻擊數(shù)據(jù),降低對(duì)少數(shù)類(lèi)攻擊的檢測(cè)漏報(bào)率,進(jìn)一步提升檢測(cè)效果。