王理冬
(1.安徽省電子產(chǎn)品監(jiān)督檢驗所,安徽 合肥 230061;2.安徽省信息安全測評中心,安徽 合肥 230061)
近年來,隨著車聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,現(xiàn)代汽車已經(jīng)由傳統(tǒng)的人工控制向網(wǎng)絡(luò)控制的方向邁進。車聯(lián)網(wǎng)的概念源自物聯(lián)網(wǎng),即車輛物聯(lián)網(wǎng),在這種模式下,車輛充當(dāng)了信息感知對象的角色,借助新一代的信息通信技術(shù),實現(xiàn)了車輛內(nèi)部設(shè)備之間、車輛與車輛、車輛與人以及車輛與平臺之間的網(wǎng)絡(luò)連接。文中討論的車載網(wǎng)絡(luò),指由車載控制單元組成的局域通信網(wǎng)絡(luò),主要用于車內(nèi)網(wǎng)絡(luò)。
針對車載網(wǎng)絡(luò),大量的學(xué)者進行了研究,涉及了如車載網(wǎng)絡(luò)通信[1]、車輛隱私保護[2]等方面。然而,隨著車載網(wǎng)絡(luò)的連接性和可及性不斷地提高,導(dǎo)致目前車載網(wǎng)絡(luò)的受攻擊面越來越廣,網(wǎng)絡(luò)數(shù)據(jù)可以通過多種途徑進入車載網(wǎng)絡(luò)內(nèi)部,因此車輛會面臨大量外來數(shù)據(jù)入侵的威脅。如果缺乏基本的安全措施,網(wǎng)絡(luò)攻擊者能輕易地對這些車載網(wǎng)絡(luò)發(fā)起攻擊并導(dǎo)致系統(tǒng)崩潰。為車載網(wǎng)絡(luò)提供保護已成為目前亟待解決的問題。
生成對抗網(wǎng)絡(luò)是一種深度學(xué)習(xí)模型,由生成器和判別器兩個組件組成,在實際的應(yīng)用中,生成器和判別器可以有多個。生成對抗網(wǎng)絡(luò)的目標(biāo)在于通過訓(xùn)練生成器和判別器之間的對抗博弈來生成具有逼真度的數(shù)據(jù)樣本[3]。
首先,生成器通過神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)真實數(shù)據(jù)的分布,生成虛假數(shù)據(jù);然后判別器學(xué)習(xí)真數(shù)據(jù)和假數(shù)據(jù)的分布,對數(shù)據(jù)進行判別,并將反饋傳遞給生成器,激勵生成器生成的數(shù)據(jù)更接近真實數(shù)據(jù)。生成對抗網(wǎng)絡(luò)的核心思想是通過兩個相互對抗的模型之間的競爭,交替訓(xùn)練生成器和判別器,逐漸提升生成器生成樣本的逼真度,使其盡可能地與真實數(shù)據(jù)相似,同時讓判別器更加準(zhǔn)確地區(qū)分真假樣本。
車載網(wǎng)絡(luò)是汽車內(nèi)部傳感器、控制器和執(zhí)行器之間進行點對點信號傳遞從而形成復(fù)雜的網(wǎng)狀結(jié)構(gòu)??刂破鲄^(qū)域網(wǎng)(Controller Area Network,CAN)總線作為車載網(wǎng)絡(luò)中的標(biāo)準(zhǔn)總線,被廣泛用于車載網(wǎng)絡(luò)的通信,支持所有電子控制單元(Electronic Control Unit,ECU)之間的高效通信。
入侵檢測系統(tǒng)(Intrusion Detection System,IDS)用于對網(wǎng)絡(luò)上的數(shù)據(jù)流進行收集,并分析其中的信息,以檢測網(wǎng)絡(luò)中是否存在違背安全策略和進行攻擊的流量,為系統(tǒng)提供實時有效的保護。它可以實時監(jiān)控車內(nèi)系統(tǒng),實時檢測ECU 產(chǎn)生的可疑網(wǎng)絡(luò)事件[4]。當(dāng)前IDS 已經(jīng)成為許多專家學(xué)者研究的熱點。Song 等人提出了一種基于CAN 數(shù)據(jù)時間間隔分析的檢測模型,Lee 等人提出了一種通過監(jiān)測CAN 數(shù)據(jù)的請求和響應(yīng)的時間間隔來檢測入侵的方法。
本系統(tǒng)可應(yīng)用于容易受到攻擊的車載網(wǎng)絡(luò)中,對車載網(wǎng)絡(luò)接收的流量進行分析,識別出惡意流量。由于本系統(tǒng)部署在輕量級的設(shè)備上,所占用的車內(nèi)體積極小,也可以直接集成在資源有所剩余的車載網(wǎng)絡(luò)當(dāng)中,從而大大節(jié)省車輛空間和成本。
CAN 總線支持電子控制單元之間的通信。在CAN 總線中,消息頻繁傳輸,CAN 總線每秒大約接受2000 個CAN 數(shù)據(jù),入侵檢測系統(tǒng)必須能夠處理由電子控制單元生成的大量實時CAN 數(shù)據(jù)。因此,將連續(xù)27 個CAN 數(shù)據(jù)合成一張彩色圖,用于快速檢測數(shù)據(jù)。
首先,把正常的數(shù)據(jù)和惡意的數(shù)據(jù)一起放入判別器D1 進行判別,以區(qū)分惡意數(shù)據(jù)和正常數(shù)據(jù),然后把隨機的數(shù)據(jù)放入生成器中,生成假的數(shù)據(jù),判別器D2 只接收正常的數(shù)據(jù)和生成的數(shù)據(jù)。通過不斷的訓(xùn)練,可以得到性能良好的判別器,以用于車載網(wǎng)絡(luò)的攻擊檢測。其框架流程如圖1 所示。
圖1 框架流程圖
本系統(tǒng)還融入了深度學(xué)習(xí)技術(shù)。GAN 是一種深度學(xué)習(xí)模型,通常被用來生成與真實圖像相似的假圖像,將其應(yīng)用于設(shè)計IDS。對車載網(wǎng)絡(luò)的攻擊檢測過程如圖2 所示。
圖2 檢測過程圖
其中,判別器D1 的輸入是CAN 數(shù)據(jù),用來檢測已知攻擊,若輸出結(jié)果小于閾值則認(rèn)為存在已知的惡意數(shù)據(jù);若輸出結(jié)果不小于閾值,則放入判別器D2 中檢測未知攻擊,如果判別器D2 的輸出結(jié)果小于閾值,則認(rèn)為存在未知的惡意數(shù)據(jù),不小于閾值則認(rèn)為數(shù)據(jù)正常。一般將判別器D1 和判別器D2的閾值定義為0.1。
原始數(shù)據(jù)集選用韓國HCRL 實驗室的Car-Hacking 數(shù)據(jù)集,其中既包含文本文件,也包含表格文本。為了方便觀察,統(tǒng)一把文本文件轉(zhuǎn)換成表格文件,在對表格文件觀察時,發(fā)現(xiàn)數(shù)據(jù)中存在一些“臟數(shù)據(jù)”,即一些十六進制數(shù)據(jù)位置發(fā)生了移位,同時,還有一些數(shù)據(jù)存在空值,通過使用python中的pandas 擴展程序庫,對數(shù)據(jù)位置異常的原始樣本進行歸位,但有些數(shù)據(jù)中某幾項為空值,從而導(dǎo)致了數(shù)據(jù)的格式異常,刪除格式異常的數(shù)據(jù)樣本。形成如表1 所示的干凈數(shù)據(jù)集。
表1 干凈數(shù)據(jù)集
其中,Label 為0,代表的是正常的數(shù)據(jù);Label為1,代表的是每分鐘轉(zhuǎn)數(shù)(RPM)欺騙攻擊;Label為2,代表的是齒輪(Gear)欺騙攻擊;Label 為3,代表的是拒絕服務(wù)(Dos)攻擊;Label 為4,代表的是模糊(Fuzzy)攻擊。
每分鐘轉(zhuǎn)數(shù)欺騙攻擊是通過干擾車輛的車速傳感器和控制系統(tǒng)來誤導(dǎo)或欺騙車輛的計算機系統(tǒng),使其錯誤地顯示或記錄轉(zhuǎn)速信息。齒輪欺騙攻擊是通過欺騙車輛或機械設(shè)備的傳動系統(tǒng),誤導(dǎo)其顯示或傳輸錯誤的齒輪信息。拒絕服務(wù)攻擊是通過不斷向目標(biāo)服務(wù)器或網(wǎng)絡(luò)發(fā)送大量請求或惡意數(shù)據(jù)流量,耗盡其資源,導(dǎo)致系統(tǒng)過載或崩潰,從而使合法用戶無法訪問該系統(tǒng)或網(wǎng)絡(luò)。模糊攻擊通常用于發(fā)現(xiàn)軟件或系統(tǒng)中潛在的漏洞和錯誤。
由于卷積神經(jīng)網(wǎng)絡(luò)在圖像分類上具有突出的優(yōu)勢,因此把原始數(shù)據(jù)集轉(zhuǎn)化為圖像數(shù)據(jù),利用卷積神經(jīng)網(wǎng)絡(luò)進行數(shù)據(jù)處理。首先,將表1 中ID 和Data 數(shù)據(jù)(D0~D7)轉(zhuǎn)換成9 個重要特征,然后把重要特征中的十六進制數(shù)據(jù)轉(zhuǎn)換為十進制數(shù)據(jù),最后對數(shù)據(jù)進行歸一化,結(jié)果如表2 所示。
表2 歸一化后的數(shù)據(jù)集
數(shù)據(jù)歸一化后,根據(jù)干凈數(shù)據(jù)集中的Timestamp(時間戳)和特征大小,將數(shù)據(jù)樣本轉(zhuǎn)換為塊狀。由于歸一化后的數(shù)據(jù)有9 個重要的特征,為了將數(shù)據(jù)樣本轉(zhuǎn)換為塊狀數(shù)據(jù),就選取27 個連續(xù)時間戳的樣本(27×9=9×9×3),轉(zhuǎn)換成形狀大小為9×9×3 的方形彩色圖像。因此,每個轉(zhuǎn)換后的圖像是一個具有三通道(紅、綠、藍)的方形彩色圖像。由于這些彩色圖像是根據(jù)連續(xù)的時間戳生成的數(shù)據(jù)樣本,因此能夠保留數(shù)據(jù)的時序完整性。
在把CSV 文件進行處理并轉(zhuǎn)換成RGB 圖像后,下一步將對生成對抗網(wǎng)絡(luò)進行設(shè)計和訓(xùn)練。判別器由三層的卷積神經(jīng)網(wǎng)絡(luò)組成,生成器由五層的反卷積神經(jīng)網(wǎng)絡(luò)組成,將圖片數(shù)據(jù)通過反卷積減少通道數(shù)、擴展維數(shù),使得與判別器的輸入數(shù)據(jù)大小相同,從而形成一幅圖像。生成器和判別器通過反向傳播計算損失,從而減少模型實際值和輸出之間的誤差。
判別器D1 接收從車輛中提取的正常CAN 圖像和異常CAN 圖像。判別器D1 在訓(xùn)練過程中使用了已知的攻擊數(shù)據(jù),所以只能對已知的攻擊進行檢測。生成器和判別器D2 通過一個對抗博弈的過程進行訓(xùn)練,生成器通過使用隨機噪聲來生成假圖像,判別器D2 接收正常的CAN 圖像和生成器生成的圖像,并計算接收到的圖像是真實CAN 圖像的概率。也就是說,判別器D2 鑒別輸入的圖像是真實的CAN 圖像還是由生成器生成的假圖像。生成器和判別器D2 相互競爭,提高了它們的性能。在訓(xùn)練的過程中,判別器D2 最終取勝,因此判別器D2 可以檢測到與真實CAN 圖像相似的假圖像。
由于數(shù)據(jù)集中存在攻擊數(shù)據(jù)和正常數(shù)據(jù),因此對公式中相關(guān)符號的定義如表3 所示。
表3 相關(guān)符號的定義
對準(zhǔn)確率、精準(zhǔn)度和召回率的具體計算方法作如下定義。
公式(1)中Accuracy 是模型的準(zhǔn)確率,如果模型能把攻擊流量和正常流量準(zhǔn)確識別,那么模型準(zhǔn)確率為100%。
公式(2)中Precison 是模型的精準(zhǔn)度,如果模型不把正常流量識別為攻擊流量,那么模型的精準(zhǔn)度為100%。
公式(3)中Recall 是模型的召回率,如果模型能識別所有的攻擊流量,那么模型的召回率為100%。
首先,我們測試了判別器D1 的性能。根據(jù)表4 中判別器D1 對每個已知攻擊的精準(zhǔn)度分析,判別器D1對使用的攻擊數(shù)據(jù)表現(xiàn)出了很好的檢測能力。然而,實驗結(jié)果也表明,未用于訓(xùn)練的攻擊數(shù)據(jù)很難被判別器D1 檢測出來,例如“Fuzzy”行與“RPM精準(zhǔn)度”列交叉處代表的是用Fuzzy數(shù)據(jù)訓(xùn)練的判別器D1 對RPM攻擊檢測的精準(zhǔn)度為32.6%。因此,我們使用正常數(shù)據(jù)和生成的數(shù)據(jù)訓(xùn)練了判別器D2。這樣,判別器D2將能夠更好地應(yīng)對未知攻擊數(shù)據(jù)的檢測需求。
表4 判別器D1 的性能
其次,我們通過準(zhǔn)確率、精準(zhǔn)度和召回率對判別器D2 進行性能評估。評估情況如表5 所示。
表5 判別器D2 的性能
判別器D2 在訓(xùn)練過程中沒有使用任何攻擊數(shù)據(jù)。實驗結(jié)果表明,判別器D2 對四種攻擊的平均準(zhǔn)確率為98%。雖然精準(zhǔn)度低于99%,但我們可以通過將判別器D2 與使用攻擊數(shù)據(jù)進行訓(xùn)練的判別器D1 相結(jié)合,來提高模型的精準(zhǔn)度。
當(dāng)前的研究與實踐中,將生成對抗網(wǎng)絡(luò)應(yīng)用于入侵檢測系統(tǒng)的方法并不多見,文章提出的技術(shù)路線,為構(gòu)建入侵檢測系統(tǒng)提供了新的思路。考慮到車載網(wǎng)絡(luò)的實際情況,我們選擇在資源量較少的樹莓派中運行,以更好地符合實際工況。在某些特殊情況下,也可以直接把體積較小的樹莓派植入汽車系統(tǒng),集成在車載網(wǎng)絡(luò)中,以確保入侵檢測系統(tǒng)的有效部署。