国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LSTM 網(wǎng)絡(luò)的車(chē)載CAN 總線異常檢測(cè)研究

2020-07-18 03:16安童樂(lè)王春東
關(guān)鍵詞:字節(jié)數(shù)據(jù)包分類器

安童樂(lè),王春東,楊 成

(天津理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,天津300384)

CAN(Controller Area Network)總線是目前應(yīng)用最為廣泛的車(chē)載網(wǎng)絡(luò)總線.相比較于汽車(chē)病毒在汽車(chē)內(nèi)部系統(tǒng)上的破壞,針對(duì)CAN 總線的攻擊可以直接控制動(dòng)力系統(tǒng)、剎車(chē)、轉(zhuǎn)向,其導(dǎo)致的后果不堪設(shè)想.美國(guó)、歐盟、日本等相關(guān)機(jī)構(gòu)積極開(kāi)展智能汽車(chē)信息安全研究,如現(xiàn)代汽車(chē)信息安全最佳實(shí)踐[1]和OVERSEE[2]、PRESERVE[3]項(xiàng)目等. 學(xué)術(shù)界也加大了對(duì)車(chē)載CAN總線信息安全的研究[4-6],根據(jù)研究目標(biāo)的不同,分為基于加密和認(rèn)證[7]的、基于異常檢測(cè)[8-10]的和基于安全框架[11-12]的三個(gè)方向.而絕大部分加密認(rèn)證機(jī)制都是在增加一定的總線負(fù)載的基礎(chǔ)上進(jìn)行,受CAN 通信實(shí)時(shí)性要求的約束較大.采用安全框架的防御需要從整體設(shè)計(jì)網(wǎng)絡(luò)架構(gòu)更新固件,具有一定局限性.

異常檢測(cè)技術(shù)已經(jīng)被廣泛地運(yùn)用來(lái)檢測(cè)網(wǎng)絡(luò)惡意攻擊.在不增加系統(tǒng)開(kāi)銷(xiāo)的基礎(chǔ)上選擇異常檢測(cè)機(jī)制,既能快速的部署到現(xiàn)有的車(chē)載網(wǎng)絡(luò),又可作為基于安全框架的第一層防御.

本文以車(chē)載CAN 總線異常檢測(cè)為目標(biāo),以CAN協(xié)議[13]作為切入點(diǎn),首先分析了CAN 總線通信特征和現(xiàn)有的攻擊方式;然后提出基于LSTM 網(wǎng)絡(luò)的車(chē)載CAN 總線異常檢測(cè)模型:通過(guò)收集CAN 總線中的報(bào)文序列,根據(jù)當(dāng)前ID 號(hào)計(jì)算預(yù)測(cè)值與實(shí)際值之間的誤差,實(shí)時(shí)檢測(cè)異常報(bào)文;最后通過(guò)實(shí)驗(yàn)證明該模型能有效檢測(cè)重放攻擊和幀偽造.

1 車(chē)載CAN 及其面臨的安全威脅

1.1 CAN 總線介紹

汽車(chē)電子控制單元ECU(Electronic Control Unit)在車(chē)內(nèi)網(wǎng)絡(luò)中通過(guò)CAN 網(wǎng)絡(luò)進(jìn)行相互連接,并通過(guò)CAN 總線進(jìn)行通信.

CAN 總線上一個(gè)數(shù)據(jù)幀可攜帶0~8 個(gè)字節(jié)的數(shù)據(jù),報(bào)文可以使用11bit 標(biāo)準(zhǔn)幀ID 或29bit 擴(kuò)展幀ID.在CAN 協(xié)議中,消息的發(fā)送通過(guò)數(shù)據(jù)幀的標(biāo)識(shí)符仲裁來(lái)確定傳輸優(yōu)先級(jí),CAN 數(shù)據(jù)幀的標(biāo)準(zhǔn)格式如圖1 所示.

圖1 CAN 數(shù)據(jù)幀標(biāo)準(zhǔn)格式Fig.1 CAN data frame standard format

1.2 CAN 總線通信特性

CAN 總線上的通信特征主要為下面四個(gè)方面.

1)廣播傳輸.由于CAN 總線是單一公共信道[14],而且協(xié)議規(guī)定所有的節(jié)點(diǎn)都可以監(jiān)聽(tīng)總線消息,所以惡意節(jié)點(diǎn)很容易獲取總線上的所有消息.

2)無(wú)認(rèn)證機(jī)制.CAN 總線上的消息不存在表示消息源和消息目的的字段,這意味著無(wú)法判別消息的發(fā)送方,無(wú)法辨認(rèn)消息來(lái)源于正常節(jié)點(diǎn)還是惡意節(jié)點(diǎn).

3)消息無(wú)加密.CAN 總線上的幾近明文傳輸,而且消息內(nèi)容最多只有64bit,很容易被攻擊者破解.

4)基于ID 號(hào)的消息仲裁.CAN 總線上的消息優(yōu)先級(jí)是通過(guò)每個(gè)消息的ID 號(hào)表示.ID 號(hào)越小,其優(yōu)先級(jí)越高.如果一個(gè)節(jié)點(diǎn)一直發(fā)送ID 優(yōu)先級(jí)最小的消息,其他的消息就無(wú)法正常發(fā)送,會(huì)影響CAN 總線的正常使用.顯然,這是一種DoS 攻擊[15].

1.3 攻擊方式

根據(jù)上節(jié)所述的通信特征,現(xiàn)有對(duì)于CAN 總線的攻擊主要有五種:幀嗅探、幀注入、DoS 攻擊、重放攻擊和幀偽造.

1)幀嗅探.由于CAN 總線上傳輸?shù)南⒚總€(gè)節(jié)點(diǎn)都可以監(jiān)聽(tīng)到,包括網(wǎng)關(guān).所以攻擊者很容易通過(guò)節(jié)點(diǎn)對(duì)總線上的數(shù)據(jù)進(jìn)行監(jiān)聽(tīng).

2)幀注入.CAN 總線上的沒(méi)有消息認(rèn)證機(jī)制,每個(gè)消息的發(fā)送方無(wú)法進(jìn)行辨識(shí).簡(jiǎn)而言之,每個(gè)ECU都可以發(fā)送任意ID 號(hào)的數(shù)據(jù),這就為所有的相關(guān)攻擊提供的便利.

3)DoS 攻擊.DoS 攻擊主要是基于CAN 總線的消息仲裁機(jī)制,ID 號(hào)小的數(shù)據(jù)優(yōu)先級(jí)比較高.如果惡意節(jié)點(diǎn)一直發(fā)送ID 號(hào)最小的消息,CAN 總線就無(wú)法正常工作,嚴(yán)重威脅對(duì)車(chē)輛安全甚至人身安全.

4)重放攻擊. 當(dāng)攻擊者從CAN 總線上竊聽(tīng)到消息時(shí),最先想到的攻擊方式就是重放攻擊,因?yàn)橹胤殴舨恍枰嗟南闰?yàn)知識(shí),只需要保證在重放數(shù)據(jù)時(shí),CAN 總線上沒(méi)有數(shù)據(jù)傳輸.例如在汽車(chē)高速行駛的過(guò)程中一直發(fā)送抱死命令,或者發(fā)送開(kāi)關(guān)門(mén)信息.

5)幀偽造.如果攻擊者有較強(qiáng)的先驗(yàn)知識(shí),可以實(shí)現(xiàn)對(duì)CAN 總線上消息的逆行破解.現(xiàn)有的大部分的通信協(xié)議都是汽車(chē)廠商自己定義,但消息內(nèi)容的長(zhǎng)度最多只有64 位,汽車(chē)的動(dòng)作有限,通過(guò)暴力或彩虹表等互聯(lián)網(wǎng)破解技術(shù)很容易破解.當(dāng)攻擊者已經(jīng)破解了當(dāng)前CAN 總線的通信協(xié)議,可以很容易偽造消息.其中,幀嗅探和幀注入是其它三種攻擊的基礎(chǔ),而DoS 攻擊的檢測(cè)已有研究者進(jìn)行深入研究[9],所以本文只對(duì)重放攻擊和幀偽造這兩種攻擊行為的檢測(cè)進(jìn)行研究.

2 長(zhǎng)短期記憶網(wǎng)絡(luò)

長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)是一種循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[16],由于獨(dú)特的設(shè)計(jì)結(jié)構(gòu),LSTM 網(wǎng)絡(luò)適合處理和預(yù)測(cè)時(shí)間序列.由于CAN總線是單信道,總線上的所有消息都是序列化的,實(shí)際表現(xiàn)出來(lái)是時(shí)間序列數(shù)據(jù),LSTM 對(duì)于此類數(shù)據(jù)的預(yù)測(cè)處理比較適合,所以本文對(duì)于CAN 總線上的重放攻擊和幀偽造使用LSTM 算法進(jìn)行檢測(cè).

LSTM 工作原理如下:

LSTM 時(shí)刻t的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示.其中xt是t時(shí)刻的輸入,ht-1是t-1 時(shí)刻隱藏層的輸出,ct-1是t-1 時(shí)刻歷史信息的輸出;ft、it和ot分別為t時(shí)刻的遺忘門(mén)、輸入門(mén)和輸出門(mén);c′t是t時(shí)刻通過(guò)變換后的新信息,ct是在t時(shí)刻更新過(guò)后的歷史信息,ht是t時(shí)刻隱藏層的輸出.其具體計(jì)算流程如圖2 所示.

圖2 LSTM 節(jié)點(diǎn)計(jì)算流程Fig.2 LSTM node calculation process

首先,將t時(shí)刻的輸入xt和隱藏層的輸出ht-1復(fù)制四份,并為它們隨機(jī)初始化不同的權(quán)重,計(jì)算出遺忘門(mén)、輸入門(mén)和輸出門(mén)以及通過(guò)變換后的新信息.它們的計(jì)算公式如下所示,其中W是輸入層到隱藏層的參數(shù)矩陣,U是隱藏層到隱藏層的自循環(huán)參數(shù)矩陣,b為偏置參數(shù)矩陣,σ 為sigmoid 函數(shù),使得三個(gè)門(mén)的輸出保持0~1 之間.

其次,使用遺忘門(mén)ft和輸入門(mén)it來(lái)控制忘記多少歷史信息ct-1和保存多少新信息c′t,從而更新內(nèi)部記憶細(xì)胞狀態(tài)ct,其計(jì)算公式如下所示.

最后,使用輸出門(mén)ot來(lái)控制輸出多少內(nèi)部記憶單元ct的信息到隱狀態(tài)ht,其計(jì)算公式如下所示.

3 基于LSTM 的數(shù)據(jù)異常分類器

3.1 CAN 總線數(shù)據(jù)域分析

本文使用的數(shù)據(jù)為業(yè)內(nèi)使用比較廣泛的數(shù)據(jù)集[17],大約共有61.5w 條數(shù)據(jù),每條數(shù)據(jù)包括時(shí)間、ID 號(hào)、數(shù)據(jù)內(nèi)容長(zhǎng)度和數(shù)據(jù)內(nèi)容四部分.

每一個(gè)消息中數(shù)據(jù)內(nèi)容部分為0~8 字節(jié),為了便于分析,本文使用8 字節(jié)對(duì)所有的數(shù)據(jù)內(nèi)容進(jìn)行描述,下面所稱數(shù)據(jù)均為8 字節(jié)數(shù)據(jù).

對(duì)于CAN 總線上的數(shù)據(jù),攻擊者如果想要攻擊,對(duì)每一條數(shù)據(jù)進(jìn)行逆向破解就很重要.由于每一個(gè)廠商對(duì)于協(xié)議的制定不同,對(duì)于協(xié)議的破解難度也比較高.在車(chē)輛的實(shí)際通信中,也有一些基于CAN的上層協(xié)議,這些協(xié)議將CAN 總線的能力進(jìn)一步提升,例如ISO-TP 就突破了CAN 一幀只能發(fā)送8 個(gè)字節(jié)的限制. 簡(jiǎn)而言之,有可能CAN 總線上的相鄰的幾個(gè)數(shù)據(jù)包表示的是一個(gè)內(nèi)容,但是無(wú)法得知到底具體數(shù)據(jù)包的數(shù)量.為了模擬黑盒測(cè)試,本文對(duì)于數(shù)據(jù)包的研究是以1 為單位.

不同ID 數(shù)據(jù)包的內(nèi)容部分相關(guān)性幾乎沒(méi)有,所以本文對(duì)于數(shù)據(jù)包的研究是將同ID 號(hào)的數(shù)據(jù)包看做一個(gè)序列,不同的ID 序列有著不同的分類器,但是檢測(cè)算法都是相同的.

綜上所述,本文對(duì)于CAN 總線上的數(shù)據(jù)內(nèi)容研究是基于下面三個(gè)基礎(chǔ):

1)只關(guān)注數(shù)據(jù)內(nèi)容為8 字節(jié)的數(shù)據(jù)幀;

2)以一條數(shù)據(jù)包為單位進(jìn)行數(shù)據(jù)分析;

3)以同ID 號(hào)的數(shù)據(jù)包為一個(gè)分析序列.

3.2 LSTM 檢測(cè)模型

本文使用LSTM 算法對(duì)相同ID 序列進(jìn)行異常檢測(cè),所以在對(duì)本條數(shù)據(jù)進(jìn)行預(yù)測(cè)之前,需要對(duì)于CAN 總線上的整個(gè)數(shù)據(jù)流進(jìn)行分類,具體檢測(cè)流程如圖3.

圖3 數(shù)據(jù)異常檢測(cè)模型Fig.3 Data anomaly detection model

一般檢測(cè)器作為一個(gè)獨(dú)立的單元存在于CAN總線上,對(duì)總線上的數(shù)據(jù)進(jìn)行監(jiān)聽(tīng).每當(dāng)檢測(cè)單元偵測(cè)到一個(gè)數(shù)據(jù)包,首先對(duì)其ID 號(hào)進(jìn)行識(shí)別,從已有的分類器庫(kù)中選擇相應(yīng)的分類器進(jìn)行預(yù)測(cè)模型建立;然后使用以往的ID 序列,對(duì)當(dāng)前應(yīng)該出現(xiàn)的數(shù)據(jù)進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果;最后將預(yù)測(cè)結(jié)果和檢測(cè)到結(jié)果進(jìn)行對(duì)比,判斷此數(shù)據(jù)包是否為異常數(shù)據(jù).如果不為異常數(shù)據(jù),則對(duì)當(dāng)前ID 的序列數(shù)據(jù)進(jìn)行更新,以備下次使用.

1)數(shù)據(jù)輸入.如前所述,對(duì)于每一個(gè)當(dāng)前的數(shù)據(jù)包,針對(duì)ID 選取相應(yīng)的數(shù)據(jù)序列.本文使用8 個(gè)10進(jìn)制數(shù)字表示數(shù)據(jù)包中的數(shù)據(jù),所以預(yù)測(cè)模型的輸入為形如n×8 的數(shù)字矩陣,其中n為分組數(shù)量,即所使用的以往數(shù)據(jù)的數(shù)量,8 為每一條數(shù)據(jù)的內(nèi)容.

2)分類器設(shè)計(jì). 具體的分類器設(shè)計(jì)如圖4 所示,其中,兩個(gè)Dropout 層主要是為了防止出現(xiàn)過(guò)擬合的情況,提高預(yù)測(cè)模型的泛化能力.數(shù)據(jù)經(jīng)過(guò)6 層的運(yùn)算,最后通過(guò)Dense 層進(jìn)行輸出,得到一個(gè)1×8的數(shù)字矩陣,即預(yù)測(cè)結(jié)果.

3)誤差度量.通過(guò)算法模型得到了一個(gè)預(yù)測(cè)數(shù)據(jù),然后就需要和現(xiàn)有數(shù)據(jù)進(jìn)行對(duì)比,判斷當(dāng)前的數(shù)據(jù)是否為異常數(shù)據(jù).由于數(shù)據(jù)包中不同字節(jié)的數(shù)據(jù)大小不一致,本文使用絕對(duì)值均差對(duì)預(yù)測(cè)誤差進(jìn)行界定.具體的計(jì)算方式如下:

其中,d為檢測(cè)到的實(shí)際數(shù)據(jù),d′為預(yù)測(cè)數(shù)據(jù).n為數(shù)據(jù)的長(zhǎng)度,本文中為8,di代表了實(shí)際的數(shù)據(jù)域中的第i字節(jié)的數(shù)據(jù),d′i代表了預(yù)測(cè)的數(shù)據(jù)域中的第i字節(jié)的數(shù)據(jù).

圖4 LSTM 分類器設(shè)計(jì)Fig.4 LSTM classifier design

4 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果

4.1 異常數(shù)據(jù)構(gòu)造

本文的主要目對(duì)重放攻擊和幀偽造進(jìn)行檢測(cè).重放攻擊比較簡(jiǎn)單,一般是發(fā)送之前搜集到的信息.幀偽造是對(duì)數(shù)據(jù)包的內(nèi)容部分進(jìn)行修改,實(shí)現(xiàn)過(guò)程比較復(fù)雜,一般分為兩步:1 通過(guò)監(jiān)聽(tīng)目標(biāo)ID 序列,計(jì)算出發(fā)送周期,踩點(diǎn)發(fā)送高優(yōu)先級(jí)的報(bào)文,阻止正常報(bào)文的發(fā)送;2 發(fā)送偽造的報(bào)文,達(dá)成攻擊目的.

本實(shí)驗(yàn)主要構(gòu)造兩種異常數(shù)據(jù):

1)數(shù)值偽造:包括個(gè)別位數(shù)值修改為最大或最小值,個(gè)別位數(shù)值設(shè)置為隨機(jī)值.以及一個(gè)或多個(gè)字段修改為不同時(shí)間捕獲的相同位置的值,其余位置的數(shù)值保持不變.

2)重放攻擊:直接發(fā)送收集到的當(dāng)前ID 的數(shù)據(jù),不做任何修改.

4.2 實(shí)驗(yàn)結(jié)果與分析

1)實(shí)驗(yàn)設(shè)置.本文將同ID 的數(shù)據(jù)分開(kāi),只使用數(shù)據(jù)內(nèi)容部分,不同ID 共有24 個(gè).本文將每個(gè)ID 序列中的80%的數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測(cè)試集.最后,隨機(jī)抽取其中20%的數(shù)據(jù),注入異常數(shù)據(jù),對(duì)分類器進(jìn)行驗(yàn)證.

為了測(cè)試不同長(zhǎng)度數(shù)據(jù)對(duì)于預(yù)測(cè)的影響,本文將測(cè)試n=1,3,5,8,10 五種不同情況下對(duì)于預(yù)測(cè)結(jié)果的影響,并對(duì)不同的ID 序列建立不同的分類器.

2)數(shù)據(jù)內(nèi)容的偽造和重放. 實(shí)驗(yàn)主要針對(duì)兩種異常數(shù)據(jù)進(jìn)行分析,首先對(duì)數(shù)據(jù)值篡改的檢測(cè)效果進(jìn)行測(cè)試分析,然后對(duì)重放攻擊的檢測(cè)效果進(jìn)行測(cè)試分析.使用數(shù)據(jù)的多少影響算法的時(shí)間和效能.直觀來(lái)看,使用的數(shù)據(jù)越多,準(zhǔn)確率越高,但時(shí)間也就越長(zhǎng);使用的數(shù)據(jù)越少,時(shí)間越短,但是準(zhǔn)確率也會(huì)受到影響,本文也會(huì)測(cè)試使用不同數(shù)據(jù)長(zhǎng)度進(jìn)行預(yù)測(cè)對(duì)于算法的影響.

使用數(shù)據(jù)進(jìn)行訓(xùn)練時(shí),本文將訓(xùn)練過(guò)程分為5類,分別使用長(zhǎng)度為1、3、5、8 和10 的數(shù)據(jù)進(jìn)行訓(xùn)練和預(yù)測(cè).例如,長(zhǎng)度為5 時(shí),使用5 個(gè)數(shù)據(jù)包的數(shù)據(jù)域進(jìn)行訓(xùn)練,預(yù)測(cè)下一個(gè)數(shù)據(jù)包的數(shù)據(jù)域.本文也與RNN 和HMM(隱馬爾可夫模型)進(jìn)行了對(duì)比,具體結(jié)果如圖5 和圖6.圖中橫坐標(biāo)均為進(jìn)行預(yù)測(cè)時(shí)使用的數(shù)據(jù)長(zhǎng)度.

圖5 不同模型對(duì)幀偽造的檢測(cè)效果Fig.5 Detection effect of different models on frame forgery

從圖5 和6 可以看出,三個(gè)算法對(duì)于重放攻擊的檢測(cè)準(zhǔn)確率比對(duì)于幀偽造的檢測(cè)準(zhǔn)確率高,這是因?yàn)橹胤殴羲斐傻臄?shù)據(jù)域變化不大,預(yù)測(cè)數(shù)據(jù)和攻擊數(shù)據(jù)之間的相似度比較高.對(duì)于兩種攻擊行為,LSTM 模型的性能都是最優(yōu)的,比RNN 的性能好一點(diǎn),遠(yuǎn)高于HMM 的性能.而且,當(dāng)使用的數(shù)據(jù)長(zhǎng)度越來(lái)越長(zhǎng)時(shí),準(zhǔn)確率逐漸變高,這與預(yù)期相符合.但是8 到10 之間的性能增長(zhǎng)少于之前,證明并非使用的數(shù)據(jù)量越多越好.

圖6 不同模型對(duì)重放攻擊的檢測(cè)效果Fig.6 Detection effect of different models on replay attacks

5 結(jié) 論

本文通過(guò)對(duì)車(chē)載CAN 總的協(xié)議進(jìn)行分析,根據(jù)其通信特點(diǎn)提出使用LSTM 網(wǎng)絡(luò)對(duì)CAN 總線上的重放攻擊和幀偽造進(jìn)行檢測(cè).實(shí)驗(yàn)表明,LSTM 網(wǎng)絡(luò)相較于已有的算法有著更好的檢測(cè)效果.

本文仍存在一些不足,對(duì)于數(shù)據(jù)集中的數(shù)據(jù)使用不全面,檢測(cè)結(jié)果還有一定的提升空間.下一步的主要目標(biāo)是提升檢測(cè)模型的準(zhǔn)確率.

猜你喜歡
字節(jié)數(shù)據(jù)包分類器
學(xué)貫中西(6):闡述ML分類器的工作流程
二維隱蔽時(shí)間信道構(gòu)建的研究*
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
基于樸素Bayes組合的簡(jiǎn)易集成分類器①
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
基于動(dòng)態(tài)分類器集成系統(tǒng)的卷煙感官質(zhì)量預(yù)測(cè)方法
No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
一種自適應(yīng)子融合集成多分類器方法
C#串口高效可靠的接收方案設(shè)計(jì)
人類進(jìn)入“澤它時(shí)代”
隆子县| 汝南县| 高台县| 肃北| 岳池县| 濉溪县| 西乡县| 昭平县| 杂多县| 苍山县| 苏尼特左旗| 五华县| 双柏县| 昭觉县| 行唐县| 肃北| 阿拉尔市| 宽甸| 广南县| 边坝县| 裕民县| 青海省| 青神县| 茌平县| 瑞安市| 长阳| 隆昌县| 金门县| 五家渠市| 曲阜市| 富阳市| 眉山市| 成安县| 仙桃市| 阿克陶县| 安义县| 璧山县| 乌兰县| 龙川县| 梓潼县| 咸丰县|