• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      車載CAN總線脫離攻擊及其入侵檢測算法

      2020-11-30 05:47:44李中偉關(guān)亞東姜文淇
      計算機(jī)應(yīng)用 2020年11期
      關(guān)鍵詞:黑客報文總線

      李中偉,譚 凱,關(guān)亞東,姜文淇,葉 麟

      (1.哈爾濱工業(yè)大學(xué)電氣工程及自動化學(xué)院,哈爾濱 150001;2.哈爾濱工業(yè)大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,哈爾濱 150001;3.哈爾濱工業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150001)

      (?通信作者電子郵箱lzw@hit.edu.cn)

      0 引言

      網(wǎng)聯(lián)化、智能化成為未來汽車發(fā)展的主流方向[1]。汽車的網(wǎng)聯(lián)化將提高用戶出行的安全性與舒適程度,是實(shí)現(xiàn)無人駕駛技術(shù)的核心技術(shù);然而,網(wǎng)聯(lián)化汽車也將面臨著更嚴(yán)峻的安全風(fēng)險,黑客可以通過多種途徑進(jìn)入到車內(nèi)網(wǎng)絡(luò)進(jìn)行攻擊。近年來,車聯(lián)網(wǎng)、無人駕駛和汽車通信技術(shù)的不斷發(fā)展,給汽車帶來了更多的安全隱患。360 公司在《2019 智能網(wǎng)聯(lián)汽車信息安全年度報告》中指出,智能網(wǎng)聯(lián)汽車開始面對針對自動駕駛及V2X(Vehicle-to-Everything)系統(tǒng)的攻擊挑戰(zhàn),對以往發(fā)現(xiàn)的安全漏洞也缺乏相應(yīng)的異常檢測和主動防御機(jī)制。

      作為車內(nèi)網(wǎng)絡(luò)通信的關(guān)鍵技術(shù),CAN(Controller Area Network)總線由于其檢錯能力強(qiáng)、通信方式靈活、傳輸速度快等優(yōu)點(diǎn),被廣泛應(yīng)用于車內(nèi)的電子控制單元(Electronic Control Unit,ECU)間的通信。然而,CAN 總線設(shè)計之初并未考慮認(rèn)證等問題,同時智能網(wǎng)聯(lián)汽車需要不斷增加通信外部接口以滿足與外界信息交互的要求,黑客對汽車進(jìn)行攻擊、入侵事件逐漸增多。2015年,Charlie Miller和Chris Balasek 通過遠(yuǎn)程無線通信入侵Jeep Cherokee 的CAN 總線,成功控制了剎車、方向盤和其他關(guān)鍵系統(tǒng)[2]。德國汽車協(xié)會曾指出了寶馬等豪車的一處安全漏洞,黑客能在幾分鐘內(nèi)遠(yuǎn)程打開車門[3]。

      為了檢測和防止車輛網(wǎng)絡(luò)攻擊,人們提出了各種類型的安全解決方案,如用于車內(nèi)網(wǎng)絡(luò)的消息認(rèn)證碼(Message Authentication Code,MAC)和入侵檢測系統(tǒng)(Intrusion Detection System,IDS)[4-5]。這些解決方案提供了一定程度的安全性,但仍然存在較多的安全漏洞。

      CAN總線具有嚴(yán)格的錯誤診斷機(jī)制,當(dāng)檢測到位錯誤、填充錯誤、ACK(Acknowledge Character)錯誤、格式錯誤或循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)錯誤時,數(shù)據(jù)幀傳送過程立即停止,發(fā)送方ECU 將會發(fā)送錯誤幀。當(dāng)ECU 的CAN 控制器錯誤計數(shù)器(Transmit Error Counter,TEC)錯誤累計達(dá)到一定數(shù)值時,ECU 進(jìn)行總線脫離操作[6]。理論表明,正常使用的CAN總線存在漏檢錯誤的概率極低。

      然而國外學(xué)者利用上述CAN 總線錯誤處理機(jī)制提出了一種新型的車載CAN 總線攻擊方法——CAN 總線脫離攻擊。攻擊者周期性地向車內(nèi)網(wǎng)絡(luò)注入攻擊信息,使被攻擊的ECU認(rèn)為自己產(chǎn)生了錯誤,并最終迫使自己脫離總線甚至整個網(wǎng)絡(luò)關(guān)閉[7-8]。除了上述的嚴(yán)重的后果之外,和以往針對車內(nèi)CAN總線的攻擊不同,總線脫離攻擊具有獨(dú)特的特征。

      目前國內(nèi)外學(xué)者對此類攻擊的入侵檢測方法的研究相對較少,且由于總線脫離攻擊很難和一般的通信錯誤進(jìn)行區(qū)分,傳統(tǒng)的入侵檢測方法無法有效對此類攻擊進(jìn)行檢測[9]。為此,本文在分析總線脫離攻擊特點(diǎn)和實(shí)現(xiàn)過程的基礎(chǔ)上,提出一種基于該攻擊特征的入侵檢測算法。該算法通過累計錯誤幀的發(fā)送數(shù)量,并根據(jù)該攻擊所引起的報文發(fā)送頻率的變化實(shí)現(xiàn)入侵檢測。檢測算法可以根據(jù)總線脫離攻擊的特征,有效地對此類攻擊進(jìn)行識別,保證車載CAN總線網(wǎng)絡(luò)的安全。

      1 總線脫離攻擊基本原理與實(shí)現(xiàn)條件

      1.1 總線脫離攻擊基本原理

      由CAN 總線技術(shù)規(guī)范ISO 11898 和STM32F407ZGT6 內(nèi)部集成CAN 控制器器件說明可知,當(dāng)ECU 的TEC 的錯誤計算大于255 時,ECU 將會從總線脫離??偩€脫離攻擊是指通過注入攻擊,使ECU 的發(fā)送錯誤計數(shù)器TEC 的計數(shù)值異常地增加,從而使ECU從總線上脫離。

      1.2 總線脫離攻擊實(shí)現(xiàn)條件

      設(shè)攻擊節(jié)點(diǎn)為A,正常節(jié)點(diǎn)為B,A 發(fā)送的報文為J,B 發(fā)送的報文為Z。則總線脫離攻擊需要滿足:

      1)J與Z均為周期性報文,且ID相同;

      2)J與Z同步發(fā)送;

      3)J 與Z 仲裁場后的數(shù)據(jù)場中至少有一位不同(J 中該位為0),且在該位之前J與Z的數(shù)據(jù)位相同。

      在上述實(shí)現(xiàn)條件中,條件2)是實(shí)現(xiàn)的難點(diǎn)??偩€脫離攻擊原理如圖1 所示,當(dāng)J 與Z 同步發(fā)送時,由于報文ID 相同,J與Z 同時在總線上存在。由于滿足條件3),節(jié)點(diǎn)B 會監(jiān)聽到一個與其發(fā)送位極性相反的位,從而觸發(fā)位錯誤,使其TEC的錯誤計算增加8。節(jié)點(diǎn)A 以此種方式不斷發(fā)動攻擊,當(dāng)節(jié)點(diǎn)B的TEC大于255時,該ECU從總線脫離。

      圖1 總線脫離攻擊原理示意圖Fig.1 Schematic diagram of bus-off attack principle

      1.3 總線脫離攻擊特點(diǎn)

      1)黑客無需通過逆向工程的方式發(fā)動攻擊[10-11],可以對任何車輛發(fā)起攻擊,而無需受到生產(chǎn)廠商和型號的限制。

      2)總線脫離攻擊利用了CAN 總線錯誤處理機(jī)制,例如幀格式錯誤[12]、位錯誤[13]和位丟失[14]等,使得入侵檢測系統(tǒng)對異常攻擊和通信錯誤的判斷混淆,難以區(qū)分。

      3)此類攻擊可通過將攻擊節(jié)點(diǎn)接入車內(nèi)CAN 總線網(wǎng)絡(luò)實(shí)現(xiàn)。

      4)發(fā)送的攻擊報文要與被攻擊報文同步發(fā)送[15]。

      2 總線脫離攻擊過程分析

      本文將分析在CAN 控制器自動重發(fā)模式下的總線脫離攻擊。當(dāng)發(fā)送節(jié)點(diǎn)出現(xiàn)通信錯誤時,發(fā)送節(jié)點(diǎn)會發(fā)送錯誤幀,同時還會立即發(fā)送出現(xiàn)錯誤的報文。

      1)攻擊第一階段。黑客利用節(jié)點(diǎn)A 與節(jié)點(diǎn)B 同步發(fā)送報文,使得節(jié)點(diǎn)B 發(fā)生位錯誤,其TEC 錯誤計算增加8。節(jié)點(diǎn)B向總線發(fā)送激活錯誤標(biāo)志(由六個顯性位組成)。此時,節(jié)點(diǎn)A也會觸發(fā)發(fā)送錯誤標(biāo)志,并使其TEC錯誤計算加8。在經(jīng)過11個隱性位后,節(jié)點(diǎn)A和B會同時發(fā)送之前的報文。因此,相同的位錯誤重復(fù)出現(xiàn)。當(dāng)TEC 錯誤計算值大于等于128 時,兩節(jié)點(diǎn)同時進(jìn)入錯誤認(rèn)可狀態(tài)。在第一階段攻擊節(jié)點(diǎn)A只需注入一條報文即可實(shí)現(xiàn)??偩€脫離攻擊第一階段報文示意圖如圖2所示。

      圖2 總線脫離攻擊第一階段示意圖Fig.2 Schematic diagram of the first phase of bus-off attack

      2)總線脫離攻擊第二階段。總線脫離攻擊第二階段示意圖如圖3所示。

      圖3 總線脫離攻擊攻擊第二階段示意圖Fig.3 Schematic diagram of the second phase of bus-off attack

      當(dāng)節(jié)點(diǎn)A 與B 的TEC 等于128 時,當(dāng)B 再次觸發(fā)位錯誤時,節(jié)點(diǎn)B 向總線發(fā)送認(rèn)可錯誤標(biāo)志,該認(rèn)可錯誤標(biāo)志由6 個連續(xù)的隱性位(111111)組成。因此,攻擊節(jié)點(diǎn)A 不會發(fā)生通信錯誤,同時節(jié)點(diǎn)B 會觸發(fā)位錯誤直到攻擊節(jié)點(diǎn)A 發(fā)送EOF為止。在第二階段,節(jié)點(diǎn)A 始終能夠發(fā)送成功,但是節(jié)點(diǎn)B 的TEC 會不斷增加,每次發(fā)送失敗時TEC 將增加8,重發(fā)成功后減少1。當(dāng)最終TEC大于255時,節(jié)點(diǎn)B將從總線上脫離。

      3 總線脫離攻擊實(shí)現(xiàn)方法分析

      要實(shí)現(xiàn)總線脫離攻擊,須滿足1.2 節(jié)所述的條件。本節(jié)將對其實(shí)現(xiàn)方法進(jìn)行分析。設(shè)報文J 與Z 分別為惡意報文和正常報文。

      對于條件1),黑客可以通過嗅探報文進(jìn)行實(shí)現(xiàn)。黑客需要確定目標(biāo)報文的ID,并確保目標(biāo)報文為周期性報文。

      對于條件3),黑客可以在嗅探到該ID 報文后,獲取數(shù)據(jù)長度碼(Date Length Code,DLC),發(fā)送DLC 值為0 的報文即可滿足條件。

      條件2)是總線脫離攻擊的關(guān)鍵,即要求報文J 和Z 完全同步發(fā)送。若J和Z之間的開始發(fā)送時刻差別大于一位,則攻擊失敗。由于報文的發(fā)送周期在車內(nèi)CAN 總線中存在波動,通過預(yù)設(shè)周期發(fā)送報文的方式實(shí)現(xiàn)同步是不合理的,也是難以實(shí)現(xiàn)的??梢钥紤]一種利用前置報文的方式進(jìn)行攻擊。

      對于周期性報文M,定義M 在上一個發(fā)送周期內(nèi)發(fā)送的其他報文為M的前置報文。

      在圖4中,設(shè)節(jié)點(diǎn)C 發(fā)送的報文為M1、M2。節(jié)點(diǎn)B 發(fā)送的報文為M3。報文M1、M2的優(yōu)先級高于M3。由于仲裁與緩存機(jī)制,M3需要等到其前置報文M2在總線上發(fā)送完成后才能發(fā)送。由于CAN 報文的優(yōu)先級不變,雖然報文周期會出現(xiàn)抖動,但M3與前置報文發(fā)送的相對時間固定,即M2發(fā)送成功后再經(jīng)過3個位的傳輸時間后,M3開始發(fā)送。

      在圖4中,黑客可在接收到M1或M2中任意一條時緩存一條攻擊報文。當(dāng)M2發(fā)送成功后,M3與M3'將會同步發(fā)送,從而滿足條件2)。

      4 總線脫離攻擊特征及其入侵檢測算法

      總線脫離攻擊最顯著的特征為:1)正常節(jié)點(diǎn)被攻擊后TEC 的計算將大于255 而溢出;2)錯誤幀數(shù)量明顯升高。本文利用一個檢測節(jié)點(diǎn)用于監(jiān)聽總線上的報文,發(fā)現(xiàn)此類攻擊。由于錯誤幀中的激活錯誤標(biāo)志更易被檢測到,且總線脫離攻擊第一階段將會發(fā)送16個錯誤幀,每個錯誤幀有6~12個激活錯誤標(biāo)志,因此可將這16 個錯誤幀作為檢測特征。然而,未發(fā)生總線脫離攻擊也可能會出現(xiàn)上述特征,還需根據(jù)特征1)、2)以外的條件來判斷總線脫離攻擊。

      由于在圖3 中,具有相同報文ID 的M3和M3'將會被連續(xù)發(fā)送,且最終M3將會停止發(fā)送,即總線脫離攻擊獨(dú)有特征為:在出現(xiàn)大量錯誤幀后,某ID 的報文頻率增加,最后變?yōu)榱?。本文?jù)此提出總線脫離攻擊檢測方法如圖5 所示。首先進(jìn)行初始化,并獲取報文周期,判斷是否有大量錯誤幀(16 個以上)。若是則進(jìn)行下一步。首先判斷是否存在注入攻擊,當(dāng)發(fā)送頻率超過原來的1.5 倍時,判斷為注入攻擊,并設(shè)置注入攻擊標(biāo)記L=1;而后若當(dāng)發(fā)送頻率為0 時,判斷為中斷攻擊。此時CAN 總線中先后發(fā)生了注入攻擊和中斷攻擊,則檢測節(jié)點(diǎn)發(fā)出總線脫離攻擊警報。

      車載CAN 總線脫離攻擊檢測的代碼如下所示。檢測算法每次從總線上讀取一條報文,每一條報文的檢測不包含循環(huán)過程,算法的執(zhí)行操作數(shù)固定,且注入攻擊和中斷攻擊的檢測時間固定,因此算法的時間復(fù)雜度為O(1)。

      圖5 總線脫離攻擊檢測方法流程Fig.5 Flowchart of bus-off attack detection method

      代碼1 車載CAN總線脫離攻擊檢測的代碼描述。

      5 總線脫離攻擊及其入侵檢測試驗(yàn)

      5.1 實(shí)驗(yàn)設(shè)計

      本文利用STM32F407ZGT6 作為CAN 通信網(wǎng)絡(luò)中的4 個節(jié)點(diǎn)(包括3 個模擬ECU 的通信節(jié)點(diǎn),1 個檢測節(jié)點(diǎn)),并將CAN節(jié)點(diǎn)波特率設(shè)置為500 Kb/s。如圖6為其網(wǎng)絡(luò)的結(jié)構(gòu)。

      圖6 中ECU1 發(fā)送報文周期報文T1、T2。ECU2 接收T1、T2報文。T2是T1的前置報文。攻擊者通過ECU3 緩存報文T2',使報文T2與T2'同步發(fā)送來攻擊ECU1節(jié)點(diǎn)。

      采用示波器Tektronix MSO5104 觀察總線上的電壓信號波形,通過LCD 顯示ECU 節(jié)點(diǎn)的錯誤計數(shù)(TEC)以及報文的傳輸情況。在ECU1 和ECU2 正常通信后,利用ECU3 進(jìn)行攻擊。最后加入檢測節(jié)點(diǎn),按圖5方法進(jìn)行檢測。

      圖6 CAN通信網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 Structure of CAN communication network

      5.2 實(shí)驗(yàn)結(jié)果

      實(shí)驗(yàn)結(jié)果為節(jié)點(diǎn)ECU1 的TEC 逐漸增加,最終脫離總線。而惡意節(jié)點(diǎn)ECU3成功完成了總線脫離攻擊,與第2章的分析一致。圖7 為攻擊發(fā)生時總線上電壓的波形圖。圖8 為圖7的部分放大圖。在圖7中總線上出現(xiàn)了16個錯誤幀。另外根據(jù)上述分析可知,由于ECU1 和ECU3 先后發(fā)送錯誤激活標(biāo)志并進(jìn)入錯誤激活狀態(tài),圖8中出現(xiàn)了總線高低電平的疊加。

      圖7 總線脫離攻擊發(fā)生第一階段電壓波形圖Fig.7 Voltage waveform of the first stage of bus-off attack

      圖8 總線脫離攻擊發(fā)生第一階段錯誤幀電壓波形疊加圖Fig.8 Voltage waveform overlay of wrong frames in the first stage of bus-off attack

      圖9 為攻擊第二階段的總線電壓波形圖,即發(fā)生在第一階段產(chǎn)生的16 個錯誤幀之后,ECU1 與ECU3 同步發(fā)送,惡意報文始終可以發(fā)送成功,而被攻擊報文發(fā)送失敗后,進(jìn)行了自動重發(fā)。

      圖9 總線脫離攻擊第二階段電壓波形圖Fig.9 Voltage waveform of the second stage of bus-off attack

      ECU1 與ECU3 的TEC 變化如圖10 所示。在0.3 s 時,為總線脫離攻擊開始,在0.35 s 時第一階段攻擊結(jié)束。該階段結(jié)束時ECU3的TEC為127,ECU1 的TEC為135。在0.35 s至1.3 s 時為總線脫離攻擊的第二階段,該階段內(nèi)ECU1 的TEC的計算超過255 并溢出,而ECU3 的TEC 的計算開始減少,最后減少到90。當(dāng)成功使ECU1 脫離總線后,ECU3 停止接收和發(fā)送報文,因此之后其TEC的計算不再下降。

      圖10 總線脫離攻擊中正常節(jié)點(diǎn)與惡意節(jié)點(diǎn)的TEC變化圖Fig.10 TEC change diagram of normal nodes and malicious nodes in bus-off attack

      檢測節(jié)點(diǎn)利用圖5 所示的入侵檢測算法進(jìn)行入侵檢測,檢測過程中對錯誤幀進(jìn)行計數(shù),并通過檢測報文M2的發(fā)送頻率判斷是否存在注入攻擊及中斷攻擊。當(dāng)發(fā)生總線脫離攻擊后,若檢測節(jié)點(diǎn)發(fā)出警報,則表示檢測成功。為分析算法的檢測準(zhǔn)確率和誤檢率,首先本文將ECU1 的發(fā)送周期設(shè)為恒定值50 ms,進(jìn)行多次實(shí)驗(yàn)后,得到算法的檢測準(zhǔn)確率為100%,誤檢率為0%。然而在實(shí)際的汽車CAN 總線中,報文的發(fā)送周期會存在波動。因此,本文將ECU3 發(fā)送的報文周期施加一個隨機(jī)的0~35 ms 的時間抖動。檢測算法的檢測率變?yōu)?3.5%,漏檢率變?yōu)?6.5%。由于發(fā)送周期幅值發(fā)生了變化,報文的注入攻擊會發(fā)生一定的漏檢,因此也將導(dǎo)致算法的檢測準(zhǔn)確率下降。由以上分析可知,周期波動的大小將會影響檢測算法的準(zhǔn)確性。在汽車CAN 總線中,報文ID 越小,其優(yōu)先級越高,重要性的程度越高,而周期變化的幅值越小,算法的檢測準(zhǔn)確率也越高[15]。對于一些優(yōu)先級較高的報文,其幅值變化范圍不超過其周期的15%,而算法的檢測率可達(dá)到95%以上,因此可以滿足實(shí)際的需求。

      6 結(jié)語

      本文主要研究工作包括:1)針對車載CAN 總線脫離攻擊,分析了其攻擊原理和發(fā)生條件,給出了總線脫離攻擊的實(shí)現(xiàn)方法。2)模擬車內(nèi)ECU 通信網(wǎng)絡(luò)實(shí)現(xiàn)了CAN 總線脫離攻擊。在分析總線脫離攻擊第一階段、第二階段電壓波形和正常節(jié)點(diǎn)、惡意節(jié)點(diǎn)TEC 變化基礎(chǔ)上,提取了總線脫離攻擊特征,提出了一種基于該攻擊特征的入侵檢測算法。3)基于STM32F407ZGT6,驗(yàn)證了車載CAN 總線脫離攻擊實(shí)現(xiàn)的可行性以及入侵檢測算法的有效性。

      下一步工作是在實(shí)際車內(nèi)CAN 總線網(wǎng)絡(luò)中應(yīng)用并驗(yàn)證本文所提入侵檢測算法的準(zhǔn)確性。

      猜你喜歡
      黑客報文總線
      基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      歡樂英雄
      多少個屁能把布克崩起來?
      CTCS-2級報文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      網(wǎng)絡(luò)黑客比核武器更可怕
      淺析反駁類報文要點(diǎn)
      中國外匯(2019年11期)2019-08-27 02:06:30
      基于PCI Express總線的xHC與FPGA的直接通信
      機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
      ATS與列車通信報文分析
      多通道ARINC429總線檢查儀
      霞浦县| 罗甸县| 茌平县| 台安县| 遂川县| 平凉市| 慈溪市| 曲沃县| 成都市| 潞西市| 凤城市| 安丘市| 贡觉县| 永泰县| 闽清县| 太仆寺旗| 东乡县| 北流市| 抚松县| 宿州市| 汤原县| 寻甸| 平遥县| 武清区| 巴彦淖尔市| 中山市| 东莞市| 杭州市| 南陵县| 广西| 瓦房店市| 兴海县| 鹿泉市| 苍溪县| 晋中市| 茂名市| 通山县| 丰顺县| 紫金县| 和平县| 碌曲县|