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

?

基于報警網(wǎng)關(guān)的CAN總線傳輸異常檢測方法

2019-08-13 07:11:12范明月
中國計量大學(xué)學(xué)報 2019年2期
關(guān)鍵詞:注入式發(fā)送數(shù)據(jù)網(wǎng)關(guān)

潘 琪,譚 勁,范明月

(中國計量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)

控制器局域網(wǎng)CAN[1](Controller area network)最早是由Bosch公司于1985年研發(fā),用于搭建車內(nèi)網(wǎng)絡(luò),是一個汽車內(nèi)部ECU之間有效、可靠、快速的串行傳輸總線,并于1993年成為國際標(biāo)準(zhǔn)(ISO 11898)。大部分汽車?yán)锒加袃蓷lCAN總線[2]:一條高速總線,用來傳輸汽車在行駛中傳動系統(tǒng)單元的相關(guān)數(shù)據(jù),如發(fā)動機(jī)、方向盤、剎車和變速箱等。它的傳輸速率約500 kb/s,最高可達(dá)1 M;另一條是低速總線,主要用于傳輸車身單元的數(shù)據(jù),如收音機(jī)、車門鎖、車窗控制和溫度(空調(diào))等數(shù)據(jù),傳輸速率可達(dá)125 kb/s。在每條總線上傳輸?shù)母鱾€數(shù)據(jù)就是一個電控單元即ECU。兩條總線之間通過一個網(wǎng)關(guān)[3]相連,網(wǎng)關(guān)可以進(jìn)行速度匹配和與其它總線格式進(jìn)行轉(zhuǎn)換。整車網(wǎng)絡(luò)框架如圖1。

圖1 整車網(wǎng)絡(luò)框架圖Figure 1 Vehicle network framework

CAN協(xié)議廢除了傳統(tǒng)的站地址編碼,對發(fā)送的消息進(jìn)行編碼,消息的標(biāo)識符ID由11位或29位[4]的二進(jìn)制數(shù)組成。在CAN總線上不存在主/從ECU,所有節(jié)點(diǎn)都能發(fā)送數(shù)據(jù)和接收其它節(jié)點(diǎn)發(fā)出的數(shù)據(jù)[5],并且所有ECU都有過濾能力。當(dāng)某一個ECU發(fā)出消息后,其他所有的ECU可以同時接收并讀取該ECU發(fā)送的數(shù)據(jù),但這些ECU只對有需要的數(shù)據(jù)作出回應(yīng);當(dāng)多個節(jié)點(diǎn)同時發(fā)送數(shù)據(jù)時,依據(jù)總線仲裁特性[6],ID值越低優(yōu)先權(quán)越高,具有較低值ID的消息可以優(yōu)先將數(shù)據(jù)發(fā)送出去,而較高值ID的消息只能在總線空閑時再發(fā)送。CAN總線上的消息包含4種不同的幀[7],即數(shù)據(jù)幀、請求幀、錯誤幀和超載幀。數(shù)據(jù)幀的數(shù)據(jù)長度范圍為0~8字節(jié)[8],由ECU周期性的發(fā)出,不同ECU發(fā)出數(shù)據(jù)的間隔周期是不同的,通常在10~10 000 ms間;請求幀用于請求其它ECU發(fā)出的數(shù)據(jù),發(fā)送出去的請求幀的ID與被請求數(shù)據(jù)的數(shù)據(jù)幀ID相同,但數(shù)據(jù)段沒有內(nèi)容,被請求的ECU在接收到該請求幀后需要響應(yīng)該請求,CAN 2.0A數(shù)據(jù)幀與請求幀格式見圖2;錯誤幀在發(fā)送和接收遇

圖2 數(shù)據(jù)幀與請求幀格式Figure 2 Data frame and request frame format

到錯誤時發(fā)出用于糾正錯誤;超載幀用于發(fā)送數(shù)據(jù)太快,接收ECU跟不上發(fā)送的速度時發(fā)出。

由于任何接入CAN總線的設(shè)備都可以發(fā)送消息,而且CAN總線沒有安全組件不能及時鑒定并阻止惡意攻擊,導(dǎo)致汽車CAN總線容易成為惡意對手(盜車者、自行改裝、競爭對手等)攻擊的目標(biāo)[9-10]。攻擊者可以將設(shè)備通過在線診斷接口OBD將攻擊設(shè)備接入CAN[11]或自行改造更換原有ECU對車輛進(jìn)行攻擊。最典型攻擊模式的就是注入式攻擊[12],主要包含以下三類。

1)拒絕服務(wù)攻擊DoS:由于總線仲裁機(jī)制,低ID消息將獲總線使用權(quán),攻擊者不停發(fā)送低ID(如00)消息,將阻止所有其它正常ECU發(fā)送消息,汽車將不能啟動;

2)假扮攻擊:假扮原有ECU(消息ID相同,移除了原有ECU),如為了獲取更多發(fā)動機(jī)功率或速度的車輛改裝;

3)模糊攻擊:隨機(jī)產(chǎn)生消息ID發(fā)送到CAN總線,其ID消息有可能是總線上沒有的(與總線上相同ID的攻擊類同于假扮攻擊),其目的是破壞汽車正常運(yùn)行(數(shù)據(jù)亂七八糟,不在正常范圍內(nèi)),嚴(yán)重可能導(dǎo)致事故。

為提高CAN總線傳輸安全,對傳輸消息進(jìn)行加密的密鑰鑒定協(xié)議[13]成為抵抗攻擊的首選方法。但由于CAN總線傳輸時發(fā)送的消息數(shù)據(jù)最多允許放置8個字節(jié),使用到的加密算法占用的字節(jié)數(shù)遠(yuǎn)超過8個字節(jié),如果不想讓消息鑒定導(dǎo)致的傳輸流通量影響CAN總線上的數(shù)據(jù)傳輸,就需要一次性發(fā)送多個消息來完成一次認(rèn)證,這樣就會造成資源浪費(fèi),被惡意攻擊之后甚至?xí)?dǎo)致數(shù)據(jù)丟失無法完成后續(xù)認(rèn)證,干擾報文時序。為了不占用額外的數(shù)據(jù)幀且無需發(fā)送多個消息協(xié)同認(rèn)證,對傳輸過程中出現(xiàn)的異常情況直接檢測的方法能更高效的提高安全性能。它只需要對總線中的ECU或網(wǎng)關(guān)等內(nèi)部數(shù)據(jù)進(jìn)行監(jiān)控,與真實(shí)環(huán)境下總線正常傳輸?shù)玫降膮?shù)范圍進(jìn)行對照來檢測是否存在惡意攻擊,這樣既能確保傳輸安全又不影響數(shù)據(jù)正常傳輸。為了有效檢測出注入式攻擊,本文提出一種總線報警網(wǎng)關(guān)。通過只修改CAN總線網(wǎng)關(guān)的軟件,利用CAN總線協(xié)議中ECU發(fā)出數(shù)據(jù)幀的ID、響應(yīng)其它ECU請求幀的時間、數(shù)據(jù)本身的最大值和最小值及數(shù)據(jù)產(chǎn)生的周期,來判斷是否有DoS和冒充已有ECU或新增ECU發(fā)出假扮數(shù)據(jù)等的注入式攻擊中的應(yīng)用。

1 相關(guān)工作

目前,為了提高CAN總線的安全性能,國內(nèi)外研究者主要從信息安全角度出發(fā),對信息數(shù)據(jù)進(jìn)行檢測或?qū)鬏敭惓_M(jìn)行檢測,以確保傳輸安全。在消息數(shù)據(jù)檢測過程中大都采用加密和解密的手段,選取消息數(shù)據(jù)中的特定數(shù)據(jù)作為標(biāo)記并對其進(jìn)行加密傳輸,接收節(jié)點(diǎn)接收到消息之后對其進(jìn)行解密認(rèn)證是否存在惡意侵襲,在此基礎(chǔ)上還會添加時間戳來優(yōu)化檢測性能,更高效地檢測注入式攻擊,提高傳輸安全。文獻(xiàn)[14]提出一種基于HMAC[15]的簡單輕量級消息認(rèn)證協(xié)議,使用對稱密鑰對報文中的認(rèn)證標(biāo)記進(jìn)行加密處理,在系統(tǒng)啟動期間建立會話密鑰并在MAC上添加一定長度的計數(shù)器有效避免重放攻擊,但驗(yàn)證消息的所有節(jié)點(diǎn)都必須需要知道預(yù)共享密鑰。文獻(xiàn)[16]將消息數(shù)據(jù)與時間戳結(jié)合并使用HMAC算法對其進(jìn)行加密,接收方對其解密對比認(rèn)證,之后再比較時間戳的新鮮度進(jìn)行雙重認(rèn)證,保護(hù)CAN總線免受DoS攻擊、重放攻擊和一般未經(jīng)授權(quán)的使用,但并不能有效避免模糊攻擊。通過網(wǎng)關(guān)內(nèi)部數(shù)據(jù)進(jìn)行異常檢測的研究相對較少,國內(nèi)外對于車載CAN網(wǎng)關(guān)的研究主要集中于CAN網(wǎng)絡(luò)與其他網(wǎng)絡(luò)的互聯(lián)上以及為了避免網(wǎng)關(guān)作為數(shù)據(jù)傳輸介質(zhì)時造成延遲并對其優(yōu)化[17-20]。文獻(xiàn)[21]對當(dāng)前待檢驗(yàn)車載網(wǎng)絡(luò)中ECU之間傳輸?shù)南?shù)據(jù)進(jìn)行監(jiān)控并計算得出信息熵,將正常網(wǎng)絡(luò)傳輸時的計算得出的信息熵作為參照并將兩者的信息熵對比,檢測CAN總線傳輸過程中可能存在的洪泛攻擊以及重放攻擊。文獻(xiàn)[22]提出一種基于CAN ID熵變的黃金熵模型來檢測惡意攻擊,攻擊對正常傳輸過程注入惡意消息,這類消息會阻止來自其他ECU的正常消息訪問CAN總線,此時就會改變位級的熵,將模擬過程中的位熵與正常駕駛期間熵的分布即黃金熵模型進(jìn)行對比推斷有無惡意ID。文獻(xiàn)[23]將網(wǎng)關(guān)作為介質(zhì)實(shí)現(xiàn)CAN總線與LIN總線之間的信息傳輸并被證實(shí)網(wǎng)關(guān)確實(shí)可以提高兩者的通信效率。

2 檢測算法

2.1 修改網(wǎng)關(guān)軟件

在網(wǎng)關(guān)的內(nèi)存中記錄兩個表格,一個是靜態(tài)表,一個是動態(tài)表。

1)靜態(tài)表:該表格記錄了CAN總線上所有ECU發(fā)出消息的ID,周期T、數(shù)據(jù)的最大值Max、最小值Min及響應(yīng)請求幀的響應(yīng)時間R,此表按ID由小到大排序,如表1。請求響應(yīng)時間R需要車輛啟動后獲取,獲取的方法是:ECUj向CAN總線發(fā)送請求消息為IDi的請求幀,網(wǎng)關(guān)監(jiān)聽到并記錄當(dāng)前時間,具有消息IDi的ECUi接收到請求幀后發(fā)送一個響應(yīng)數(shù)據(jù)幀出去,網(wǎng)關(guān)監(jiān)聽到該響應(yīng)數(shù)據(jù)幀后記錄當(dāng)前時間,等待響應(yīng)時間Ri公式如下:

Ri=網(wǎng)關(guān)接收到響應(yīng)數(shù)據(jù)幀時間-網(wǎng)關(guān)監(jiān)聽到請求數(shù)據(jù)IDi時間。

(1)

2)動態(tài)表:該表記錄著CAN總線上的所有兩次數(shù)據(jù)幀發(fā)出的時間、數(shù)值大小和請求幀發(fā)出的時間及對應(yīng)的響應(yīng)幀的時間和大小,如表2。

表1 靜態(tài)表

表2 動態(tài)表

2.2 檢測算法

檢測算法過程如下。

步驟1 各ECU周期性發(fā)送數(shù)據(jù)幀出去,記錄發(fā)送時間st1。

步驟2 網(wǎng)關(guān)循環(huán)接收數(shù)據(jù)幀或請求幀,如果是數(shù)據(jù)幀轉(zhuǎn)步驟3;如果是請求幀轉(zhuǎn)步驟7。

步驟3 檢測數(shù)據(jù)幀的ID是否在表1中即是否滿足式(2):

IDi∈{ID1,ID2,…,IDn}。

(2)

如果式(2)不滿足,存在惡意攻擊,報警;否則轉(zhuǎn)步驟4。

步驟4 檢測其值Value是否在表1的Min和Max之間即是否滿足Min

步驟5 該數(shù)據(jù)幀前面無請求幀,說明是ECU自己周期性地發(fā)出數(shù)據(jù),將第二次發(fā)出的數(shù)據(jù)的日期sT1和大小Value2存入表2中Current對應(yīng)的字段比較數(shù)據(jù)發(fā)出的周期T是否滿足式(3):

sT1-st1=T。

(3)

如果式(3)不滿足,存在惡意攻擊,報警;如果式(3)滿足,用Current中的接收時間和大小替換Previous對應(yīng)的字段,轉(zhuǎn)步驟2,等待下一個數(shù)據(jù)幀,如此循環(huán)往復(fù)。

步驟6 該數(shù)據(jù)幀前面有請求幀,說明有其它ECU請求數(shù)據(jù),收到數(shù)據(jù)幀后將收到的時間rt2和大小Value3存入表2中ID且類型為“請求幀”記錄中的Current對應(yīng)字段,比較響應(yīng)時間是否滿足式(4):

rt2-rt1=R。

(4)

如果式(4)不滿足,存在惡意攻擊,報警;如果式(4)滿足,刪除表2中ID且類型為“請求幀”記錄,轉(zhuǎn)步驟2。

步驟7 檢測該請求幀ID是否在表1中,即是否滿足公式(2)。不滿足則存在攻擊,報警;滿足則轉(zhuǎn)步驟8。

步驟8 在表2中新建ID且類型為“請求幀”的記錄,并將請求時間rt1填入Previous中的時間字段(Value值為0),轉(zhuǎn)步驟2。

算法流程如圖3。

圖3 算法流程圖Figure 3 Algorithm flowchart

3 性能分析

3.1 實(shí)驗(yàn)環(huán)境

為了驗(yàn)證本文提出算法的可行性,我們在CANoe仿真軟件中搭建一個CAN總線模型并加入攻擊ECU進(jìn)行模擬驗(yàn)證是否可以檢測傳輸異常,在CAN總線上任何ECU都可以接收消息且網(wǎng)關(guān)可以監(jiān)聽到所有消息。我們假設(shè)在一個完整的CAN總線結(jié)構(gòu)中對特定的ECU收發(fā)消息過程進(jìn)行模擬,并放置一個攻擊節(jié)點(diǎn)分別對實(shí)驗(yàn)?zāi)P桶l(fā)送異常攻擊報文,搭建模型如圖4。

圖4 實(shí)驗(yàn)?zāi)P虵igure 4 Experimental model

3.2 實(shí)驗(yàn)設(shè)置

在實(shí)驗(yàn)?zāi)P椭形覀儷@取到Engine以及ABS的消息ID,產(chǎn)生周期T、最大/最小值Max/Min和響應(yīng)時間R并將其存儲在靜態(tài)表表3中,之后將Engine的所有兩次數(shù)據(jù)幀發(fā)出的時間、數(shù)值大小、ABS發(fā)出請求幀的時間及對應(yīng)的響應(yīng)幀的時間和大小存儲在動態(tài)表表4中。我們?yōu)镋ngine設(shè)三個信號變量,并設(shè)定Engine周期性發(fā)送數(shù)據(jù)幀出去,周期T為40 000 ms。

表3 靜態(tài)表數(shù)據(jù)

表4 動態(tài)表數(shù)據(jù)

3.3 注入式攻擊理論討論

我們針對以下三種常見的注入式攻擊進(jìn)行討論分析。

1)DOS攻擊:總線上沒有的消息ID通過網(wǎng)關(guān)中的表3可以直接檢測出DoS攻擊或部分模糊攻擊;網(wǎng)關(guān)監(jiān)聽CAN總線上的所有數(shù)據(jù)幀和請求幀,如果其ID不在表3所在的表中,肯定是DoS攻擊或部分模糊攻擊。

2)假扮攻擊:攻擊節(jié)點(diǎn)Attack發(fā)送具有相同ID的數(shù)據(jù)幀出去,網(wǎng)關(guān)經(jīng)過表4檢測發(fā)現(xiàn)“周期數(shù)據(jù)幀”的周期出錯(增大或減小)或數(shù)據(jù)的大小(含響應(yīng)請求幀的數(shù)據(jù))不在Min、Max之間,報警。

3)模糊攻擊:其消息ID屬于CAN總線,其值也在Min、Max間,但值不是準(zhǔn)確值。這類攻擊可以從表3中的響應(yīng)時間參數(shù)來檢測,也就是表4中的rt3-rt2是否等于R2,不等于說明有攻擊需要報警。

3.4 注入式攻擊模擬驗(yàn)證

程序運(yùn)行之后,我們得到Engine三個信號變量的數(shù)據(jù)變化曲線圖如圖5(a)所示并對其觀察,當(dāng)這三個信號變量數(shù)據(jù)脫離循環(huán)軌跡,傳輸異常,此處存在攻擊;之后再對循環(huán)周期進(jìn)行實(shí)時監(jiān)控雙重檢測是否出現(xiàn)傳輸異常,Engine周期性發(fā)送數(shù)據(jù)幀出去得到的運(yùn)行結(jié)果如圖5(b),當(dāng)數(shù)據(jù)周期性發(fā)送出去時,第1次發(fā)送數(shù)據(jù)幀出去的時間st與第2次發(fā)送數(shù)據(jù)幀時間sT的差值一直等于周期(40 000 ms)。當(dāng)周期不滿足T=40 000 ms時,判定傳輸異常,此處存在攻擊。

圖5 Engine正常發(fā)送數(shù)據(jù)幀F(xiàn)igure 5 Engine sends data frames in normal

1)Attack假扮Engine發(fā)送ID同為0×257但數(shù)據(jù)內(nèi)容不同的消息出去;依據(jù)圖6(b)方框標(biāo)注信號區(qū)域發(fā)現(xiàn)三個信號變量的數(shù)據(jù)急劇下降或上升,脫離循環(huán)軌跡,判定此時存在攻擊。再對圖6(c)方框區(qū)域內(nèi)CAPL運(yùn)行數(shù)據(jù)分析發(fā)現(xiàn)網(wǎng)關(guān)監(jiān)聽到該消息后優(yōu)先判斷這是數(shù)據(jù)幀;將該數(shù)據(jù)幀ID與表3進(jìn)行對照發(fā)現(xiàn)有此ID;與表4中的數(shù)據(jù)對比發(fā)現(xiàn),該數(shù)據(jù)幀的Value不在Min和Max范圍內(nèi);判定此時存在攻擊,報警。

2)攻擊節(jié)點(diǎn)Attack偽造一個ID為0×100的消息發(fā)送出去,對圖7(b)方框內(nèi)信號區(qū)域分析發(fā)現(xiàn)網(wǎng)關(guān)接收到該消息后對其進(jìn)行檢測發(fā)現(xiàn)是數(shù)據(jù)幀,網(wǎng)關(guān)接收到該數(shù)據(jù)幀后將該數(shù)據(jù)幀的ID與存儲在表3中的ID進(jìn)行對照發(fā)現(xiàn)此ID不在表3中,存在攻擊,網(wǎng)關(guān)報警。

3)ABS發(fā)送ID為0×257的請求幀出去;由圖8(b)方框內(nèi)信號區(qū)域分析發(fā)現(xiàn)三個信號變量數(shù)據(jù)脫離循環(huán)軌跡,判定此時存在注入式攻擊。對圖8(c)最上方和最下方的方框內(nèi)容分析發(fā)現(xiàn)網(wǎng)關(guān)監(jiān)聽到該請求幀后記錄時間rt1;Engine接收到ABS發(fā)送過來的請求幀并對其回應(yīng),網(wǎng)關(guān)接收到后對其檢測并記錄接收該響應(yīng)請求幀時間rt2,將rt2與rt1的差值17 ms與表1中R值進(jìn)行對比發(fā)現(xiàn)相等,判定這是一個響應(yīng)數(shù)據(jù)幀并刪除表4中請求幀列表。Attack接收到該請求幀之后發(fā)送一個ID為0×257的響應(yīng)數(shù)據(jù)幀出去;網(wǎng)關(guān)監(jiān)聽到該響應(yīng)數(shù)據(jù)幀記錄請求時間rt2;將rt2和rt1的差值10 000 ms與表3中R值進(jìn)行比對發(fā)現(xiàn)不相等,此時存在攻擊,報警。

圖6 假扮攻擊Figure 6 Spoofing attack

圖7 Attack偽造一個ID為0×100的消息Figure 7 Attack forges a message of 0×100

圖8 ABS發(fā)送ID為0×257的請求幀F(xiàn)igure 8 ABS sends a request frame of 0×257

4 結(jié) 論

在不添加額外認(rèn)證數(shù)據(jù)以及不干擾報文時序的前提下,我們只對CAN總線中的車載網(wǎng)關(guān)作出修改使之具備檢測能力。我們在車載網(wǎng)關(guān)軟件中添加兩個檢測表格并利用CAN總線協(xié)議中ECU發(fā)出數(shù)據(jù)幀的相關(guān)信息對CAN總線傳輸過程中出現(xiàn)的異常進(jìn)行檢測;最后,我們使用CANoe仿真軟件對正常CAN總線傳輸過程進(jìn)行模擬,并使用網(wǎng)關(guān)對傳輸消息進(jìn)行實(shí)時監(jiān)測,經(jīng)驗(yàn)證發(fā)現(xiàn),網(wǎng)關(guān)確實(shí)能夠有效的檢測出注入式攻擊,可以有效提高CAN總線傳輸?shù)陌踩?/p>

猜你喜歡
注入式發(fā)送數(shù)據(jù)網(wǎng)關(guān)
移動自組網(wǎng)中MAC層協(xié)議研究
基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計
高中化學(xué)教學(xué)模式的探討與學(xué)習(xí)
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
使用IPSec安全傳輸數(shù)據(jù)
紅外導(dǎo)引頭注入式閉環(huán)試驗(yàn)的邊界能力及一致性
旁河注入式水庫在黃土高原山區(qū)型河道調(diào)蓄工程中的應(yīng)用
LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
移動通信(2015年18期)2015-08-24 07:45:08
應(yīng)對氣候變化需要打通“網(wǎng)關(guān)”
太陽能(2015年7期)2015-04-12 06:49:50
云阳县| 绥滨县| 米泉市| 太仆寺旗| 晋中市| 时尚| 揭东县| 江口县| 修武县| 镶黄旗| 汉阴县| 平和县| 秦皇岛市| 上蔡县| 平乡县| 枣庄市| 孝昌县| 年辖:市辖区| 信宜市| 陇西县| 五原县| 镇沅| 阳泉市| 乡宁县| 松桃| 离岛区| 蓬溪县| 麻城市| 伊宁县| 新余市| 天柱县| 乌拉特中旗| 长治县| 政和县| 禄丰县| 宁德市| 盐源县| 鄂温| 日喀则市| 巩留县| 元阳县|