1. 程式人生 > >【無人駕駛系列九】無人駕駛系統安全

【無人駕駛系列九】無人駕駛系統安全

目前針對無人車攻擊的方法有許多,如何防禦這些攻擊以保證無人車的安全是個重要的課題。本文是無人駕駛技術系列的第九篇,詳細介紹針對無人車感測器、作業系統、控制系統、車聯網的攻擊手段以及防禦方法。
針對無人駕駛的安全威脅

對於無人駕駛系統來說,安全性至關重要。任何無人車如果達不到安全要求就上路是極其危險的。目前,針對無人車攻擊的方法五花八門,滲透到無人駕駛系統的每個層次,包括感測器、作業系統、控制系統、車聯網通訊系統等。首先,針對感測器的攻擊不需要進入無人駕駛系統內部,這種外部攻擊法技術門檻相當低,既簡單又直接。 第二,如果進入無人駕駛作業系統,黑客可以造成系統崩潰導致停車,也可以竊取車輛敏感資訊。第三,如果進入無人駕駛控制系統,黑客可以直接操控機械部件,劫持無人車去傷人,是極其危險的。第四,車聯網連線不同的無人車,以及中央雲平臺系統,劫持車聯網通訊系統也可以造成無人車間的溝通混亂。本文將詳細介紹每種攻擊手段,並且討論相應的防禦方法。
無人駕駛感測器的安全

由於感測器處於整個無人駕駛計算的最前端,最直接攻擊無人車的方法就是攻擊感測器。這種外部攻擊法並不需要入侵到無人駕駛系統內部,使得入侵的技術門檻相當低。正是因為入侵的門檻低,我們需要在感測器做大量的工作來保證其安全。如圖1所示,對各種感測器,我們都可以輕易地攻擊與誤導。無人駕駛系列文章《GPS及慣性感測器在無人駕駛中的應用》(《程式設計師》2016年9月)提到可以使用慣性感測器IMU輔助無人駕駛定位,但是IMU對磁場很敏感,如果使用強磁場干擾IMU,就有可能影響IMU的測量。對於GPS,如果在無人車附近設定大功率假GPS訊號,就可以覆蓋原來的真GPS訊號,從而誤導無人車定位。通過兩種簡單攻擊方法的結合,GPS與IMU的定位系統會輕易被攻破。除了GPS與IMU外,通常我們也可以使用輪測距技術輔助無人車定位。輪測距是通過測量輪子的轉速乘與輪子的周長進行測距,如果黑客破壞了輪子,這個定位輔助技術也會受影響。

無人駕駛系列文章《光學雷達(LiDAR)在無人駕駛技術中的應用》(《程式設計師》2016年4月)提到鐳射雷達是目前無人駕駛最主要的感測器,而無人車也依賴於鐳射雷達資料與高精地圖的匹配進行定位。但鐳射雷達也可以輕易地被幹擾。首先鐳射雷達是通過測量鐳射反射時間來計算深度的。如果在無人車周圍放置強反光物,比如鏡子,那麼鐳射雷達的測量就會被幹擾,返回錯誤資訊。除此之外, 如果黑客使用鐳射照射鐳射雷達,測量也會受干擾,會分不清哪些是自身發出的訊號,哪些是外部鐳射的訊號。另外,無人車會不斷下載更新的高精地圖,如果黑客把下載的地圖掉包,也會造成定位失效。

圖片描述
圖1 針對感測器的攻擊

無人駕駛系列文章《基於計算機視覺的無人駕駛感知系統》(《程式設計師》2016年7月)提到計算機視覺可以輔助無人車完成許多感知的任務,比如交通燈識別、行人識別和車輛行駛軌跡跟蹤等等。在交通燈識別的場景中,無人車上的攝像機如果檢測到紅燈,就會停下來。如果檢測到行人,也會停下以免發生意外。黑客可以輕易地在路上放置假的紅綠燈以及假的行人,迫使無人車停車並對其進行攻擊。

既然每個感測器都可以輕易被攻擊,如何保證無人車安全?對此,需要使用多感測器融合技術互相糾正。攻擊單個感測器很容易,但是如果同時攻擊所有感測器難度相當大。當無人車發現不同感測器的資料相互間不一致,就知道自己可能正在被攻擊。例如,無人車檢查到交通燈,但是高精地圖在此處並未標註有交通燈,那麼就很可能是被攻擊了。又例如GPS系統與LiDAR系統定位的位置極不一致,無人車也很可能是被攻擊了。
無人駕駛作業系統安全

針對感測器的攻擊是外部攻擊,不需要進入無人駕駛系統。第二種攻擊方式是入侵到無人駕駛作業系統,劫持其中一個節點並對其進行攻擊。在無人駕駛系列文章《基於ROS的無人駕駛系統》(《程式設計師》2016年5月)中提到,目前的無人駕駛作業系統基本是基於ROS的框架實現。但是ROS本身安全性有一定問題,總結有以下兩種攻擊方法:第一,其中一個ROS的節點被劫持,然後不斷地進行分配記憶體,導致其系統記憶體消耗殆盡,造成系統OOM而開始關閉不同的ROS節點程序,造成整個無人駕駛系統崩潰。第二,ROS的topic或service被劫持, 導致ROS節點之間傳遞的資訊被偽造,從而導致無人駕駛系統的異常行為。造成第一個問題的原因是ROS Node本身是一個程序,可以無節制分配資源導致奔潰,另外的原因是ROS Node可以訪問磁碟以及網路資源,並無很好的隔離機制。為了解決這個問題,可以使用Linax容器技術(LXC)來管理每一個ROS節點程序。簡單來說,LXC提供輕量級的虛擬化,以便隔離程序和資源,而且不需要提供指令解釋機制以及全虛擬化等其他複雜功能,相當於C++中的NameSpace。LXC有效地將由單個作業系統管理的資源劃分到孤立的群組中,以更好地在孤立的群組之間平衡有衝突的資源使用需求。對於無人駕駛場景來說,LXC最大的好處是效能損耗小。我們測試發現,在執行時LXC只造成了5%左右的CPU損耗。除了資源限制外,LXC也提供了沙盒支援,使得系統可以限制ROS節點程序的許可權。為避免可能有危險性的ROS節點程序破壞其他的ROS節點程序執行,沙盒技術可以限制其程序訪問磁碟、記憶體以及網路資源。

至於第二個問題,主要原因是通訊的資訊並沒有被加密,以至於攻擊者可以輕易得知通訊內容。目前業界有不少對ROS節點間通訊的加密嘗試,比如使用DES加密演算法。在通訊的資訊量十分小的時候,加密與否對效能影響不大。但隨著資訊量變大,加密時間相對資訊量成幾何級增長。另外,由於ROS通訊系統的設計缺陷,加密時間也與接收資訊的節點數量有直接關係。當接受資訊的節點數量增長時,加密時間也隨之增長。無人駕駛系列文章《基於ROS的無人駕駛系統》提出了幾個改進ROS通訊系統的機制,在這些機制中,加密對效能影響將大大減少。
無人駕駛控制系統安全

如圖3所示,車輛的CAN匯流排連線著車內的所有機械以及電子控制部件,是車輛的中樞神經。CAN匯流排具有佈線簡單、典型匯流排型結構、可最大限度節約佈線與維護成本、穩定可靠、實時、抗干擾能力強、傳輸距離遠等特點。由於CAN匯流排本身只定義ISO/OSI模型中的第一層(物理層)和第二層(資料鏈路層),通常情況下,CAN匯流排網路都是獨立網路,所以沒有網路層。在實際使用中,使用者還需要自己定義應用層的協議,因此在CAN匯流排的發展過程中出現了各種版本的CAN應用層協議。CAN匯流排採用差分訊號傳輸,通常情況下只需要兩根訊號線(CAN-H和CAN-L)就可以進行正常的通訊。在干擾比較強的場合,還需要用到遮蔽地即CAN-G(主要功能是遮蔽干擾訊號)。CAN總線上任意節點均可在任意時刻主動的向其它節點發起通訊,節點沒有主從之分,但在同一時刻優先順序高的節點能獲得匯流排的使用權。
圖片描述
圖2 無人車作業系統安全

圖片描述
圖3 CAN匯流排安全

如果CAN被劫持,那麼黑客將為所欲為,造成極其嚴重的後果。一般來說,要進入CAN系統是極其困難的。但是一般車輛的娛樂系統以及檢修系統的OBD-II埠都連線到CAN匯流排,這就給了黑客進入CAN的機會。攻擊的方式包括以下幾點:

    OBD-II入侵: OBD-II埠主要用於檢測車輛狀態,通常在車輛進行檢修時,技術人員會使用每個車廠開發的檢測軟體接入OBD-II埠並對汽車進行檢測。由於OBD-II連線到CAN匯流排,只要黑客取得這些檢測軟體,包括 Ford的NGS、Nissan的Consult II、Toyota的Diagnostic Tester等,便能輕易擷取車輛資訊。

    電動車充電器入侵:最近電動車越來越普及,充電裝置成為電動車生態必不可少的核心部件。由於電動車的充電裝置在充電時會與外部充電樁通訊,而且電動車的充電裝置會連線CAN匯流排,這就給了黑客們通過外部充電樁入侵CAN系統的機會。

    車載CD機入侵:曾經有攻擊的案例是把攻擊程式碼編碼到音樂CD中,當用戶播放CD時,惡意攻擊程式碼便會通過CD播放機侵入CAN匯流排,從而可以取得匯流排控制以及盜取車輛核心資訊。

    藍芽入侵:另一個攻擊入口是藍芽。如今藍芽連線手機與汽車通訊以及娛樂系統已經成為標配。由於使用者可以通過藍芽給CAN傳送資訊以及從CAN讀取資訊,這也給黑客們攻擊的視窗。除了取得車主手機的控制權,由於藍芽的有效範圍是10米,黑客們也可以使用藍芽進行遠端攻擊。

    TPMS入侵: TPMS是車輪壓力管理系統,也有黑客對TPMS展開攻擊。在這種攻擊方法中,黑客先把攻擊程式碼放置在車輛TPMS ECU中,然後當TPMS檢測到某個胎壓值的時候,惡意程式碼便會被啟用,從而對車輛進行攻擊。

一個通用的解決方法是對ECU接收的資訊進行加密驗證,以保證資訊是由可信的MCU,而不是由黑客發出。使用加密驗證,我們可以選擇對稱或者非對稱密碼。對稱密碼的計算量小但是需要通訊雙方預先知道密碼。非對稱密碼無需預先知道密碼,但是計算量大。由於大部分車用ECU計算能力與記憶體有限,現在通用做法是使用對稱密碼加密,然後金鑰在生產過程中被寫入ECU。這樣的後果是有許多ECU複用同一個金鑰,當一個ECU金鑰被破解後,同批的ECU都會有風險。為了解決這個問題,學術界和業界也提出了幾種解決方案:

    TLS安全協議沿用非對稱密碼的演算法對通訊雙方進行驗證。
    Kerberos是一個通用的基於對稱密碼演算法的驗證平臺。
    TESLA安全協議(注意:這個TESLA安全協議與Tesla汽車沒有關係)提出了使用對稱密碼機制去模擬非對稱密碼的做法,從而達到既安全又能降低計算量的目的。
    LASAN安全協議使用兩步驗證的機制實時讓通訊雙方交換金鑰,然後使用對稱密碼的演算法對資訊進行驗證。

車聯網通訊系統的安全性

當無人車上路後,它會成為車聯網的一部分。V2X是車聯網通訊機制的總稱。可以說,V2X是泛指各種車輛通訊的情景,包括V2V車車通訊、V2I車路通訊、V2P車與路人通訊等。通過V2X車輛可以獲得實時路況、道路、行人等一系列交通訊息,從而帶來遠距離環境訊號。比如V2V,最普遍的應用場景是在城市街道、高速公路,車輛之間可以相互通訊,傳送資料,實現資訊的共享。這樣的資料包括:車輛的時速、相對位置、剎車、直行還是左拐等所有與行駛安全的資料提前提供給周圍的車輛,使得周圍車輛都能夠預判其他車輛的駕駛行為,從而實現主動的安全策略。V2X安全防護是自動駕駛必要技術和智慧交通的重要一環,接下來我們討論V2X的潛在安全風險及解決方案。

圖片描述
圖4 ECU安全加密系統

確保V2X通訊安全的系統要滿足以下兩個基本條件:第一,確認訊息來自合法的傳送裝置,這個需要通過驗證安全證書來保證。第二,確認訊息傳輸過程中沒有被修改,這個需要接受資訊後計算資訊的完整性。為了實現V2X的安全,歐盟發起了V2X安全研究專案PRESERVE並在專案中提出了符合V2X安全標準的硬體、軟體,以及安全證書架構。

    硬體:在每個車輛中儲存了大量金鑰,如果使用普通的Flash與RAM,金鑰會被輕易盜取。另外,使用加密解密技術會對計算資源消耗極大。為了解決這些問題,PRESEVER提出了設計安全儲存硬體,以及使用ASIC硬體加速加解密。

圖片描述
圖5 車聯網V2X系統

    軟體:在安全硬體上,PRESEVER提供了一整套開源軟體棧提供安全通訊。這套軟體棧提供了加密解密的軟體庫、電子證書認證庫、與受信任的證書頒發機構的安全通訊庫等。

    安全證書:為了確保資訊來源於可信裝置,可以使用受信任的證書頒發機構來提供安全證書與金鑰。當汽車A向汽車B放送資訊時,汽車A的傳送器會在資訊上新增電子簽名,並用金鑰對資訊進行加密。汽車B接受資訊時,會首先對資訊的電子證書進行認證,確認資訊是由汽車A傳送,然後使用公鑰對資訊進行解密,並對資訊的完整性進行驗證。

圖片描述
圖6 PRESERVE系統架構

安全模型校驗方法

為了保證無人駕駛系統的安全性,我們需要從縱向對系統的每個層面進行校驗。這些層面包括程式碼、電子控制單元(ECU)、控制演算法、車內及車外網、自動車整體與物理環境結合的網宇實體系統,甚至需要多部車輛互相通訊的車聯網。越往上層系統的複雜度越大,校驗也越困難。所以一般在對上層系統的分析會基於下層的分析結果做抽象化處理。比如在分析車內網的時候,對與網路連結的電子控制單元一般只考慮通訊介面的模型,而不會考慮電子控制單元內的具體功能及軟體。在對每個層面在做安全分析時,也需要考慮各種不同的威脅模型和攻擊向量。比如說,程式碼的安全校驗除了需要考慮緩衝區溢位,還要考慮其他模組通過利用API來侵入,或者是第三方軟體裡載有木馬的威脅。在對車內網的分析時,要考慮在某個電子控制單元被黑客控制下可能出現的各種情況,包括阻斷服務攻擊(Denial of Service Attack),修改通訊件的內容,偽造通訊件的來源等。由於無人駕駛系統對處理速度和容量的要求遠遠高於傳統車輛控制系統,一部分單核的電子控制單元在不久的將來會被多核晶片或GPU取代。每個新的電子控制單元將會支援多個功能或多個功能的部分實現,而這些功能會通過虛擬機器來管理硬體資源分配。從安全的角度來說,就需要對虛擬機器管理器進行分析,比如虛擬機器與虛擬機器之間的通訊(intra-VM communication)保證不被第三方干擾或竊聽。無人車加入了很多新的自動行駛功能,比如最簡單的自動剎車,對於這些功能的控制演算法,驗證時也需要全面地考慮前文所提到的一系列威脅,包括某個感測器的資訊被惡意修改,通訊渠道被堵所引起的資訊滯後等等。因為無人車需要強大的AI系統做支援,對這些AI系統的不同攻擊方式也在校驗的考慮範圍內。最近有研究指出,深度學習系統(特別應用在影象識別上)也很容易被攻擊。比如修改一張影象中的幾個畫素就可能使識別結果大相徑庭。這個隱患大大增加了系統被黑客攻破的可能性。在車聯網的層面上,常見的安全問題有通訊資訊被篡改,被黑客控制的車輛故意提供假資訊或偽造身份,阻斷服務攻擊,女巫攻擊(sybil attack:單輛車通過控制多個身份標識來對網路整體進行攻擊),以及盜取其他車主的私密資訊(比如所在位置)。

對於這些安全問題及攻擊向量的分析涉及的技術非常廣。本文重點介紹關於車內網(比如前面提到的CAN)和控制系統的安全模型和驗證。現有的車內網安全協議一般建立在一些基本的加密單元上,比如對稱金鑰加密和非對稱金鑰加密。一般初始身份鑑別時需要用非對程金鑰加密,而之後的通訊就可以用相對更快的對稱金鑰加密。根據不同的安全等級需求,金鑰的長度會不一樣。長的金鑰會更安全,但也會增加加密和解密的時間,因此影響到控制系統的效能。另外,長的金鑰會增加通訊的負擔。不管是CAN還是TDMA類的車內網協議,這些附加的安全資訊都可能導致通訊超時(結果可能是來不及剎車)。所以在安全校驗的同時也必須考慮增加安全機制所產生的延時。最後,金鑰的分發和管理也至關重要。這是當前的一個技術難點,還沒有特別好的解決方案。對於協議本身的驗證方法有幾種。一般來說,首先要校驗協議的數學模型。最近提出的LASAN就是先用形式化驗證工具Scyther來證明協議的安全性,然後做模擬來測試效能。對於控制系統,分析時是會側重考慮攻擊對資料所產生的影響(比如說延時,丟失或假資料),然後對相應的安全方案(比如感測器資料混合處理或狀態估計)做數學證明來達到校驗的目的。類似的方法也被應用在驗證一些車聯網的功能上,像合作的可變巡航控制。總體來說,無人車的安全問題至關重要,車輛如果被黑客攻擊或控制會危及生命。但是,不管從技術還是標準化的角度看,現階段對於無人車安全問題的校驗尚未成熟,還需要學術界和工業界的深入研究與大力開發。

作者簡介:

    劉少山,PerceptIn聯合創始人。加州大學歐文分校計算機博士,研究方向智慧 感知計算、系統軟體、體系結構與異構計算。現在PerceptIn主要專注 於SLAM技術及其在智慧硬體上的實現與優化。
    李文超,美國波士頓大學助理教授。加州大學伯克利分校電子工程與電腦科學博士。研究方向包括自動化設計與檢測,可靠及容錯計算機系統,計算證明法,網宇實體系統。
    唐潔,華南理工大學電腦科學與工程學院副教授。主要從事面向無人駕駛和機器人的大資料計算與儲存平臺、面向人工智慧的計算體系架構、面向機器視覺的嵌入式系統研究。

點選閱讀無人駕駛技術系列文章:

    光學雷達(LiDAR)在無人駕駛技術中的應用
    基於ROS的無人駕駛系統
    基於計算機視覺的無人駕駛感知系統
    基於Spark與ROS分散式無人駕駛模擬平臺
    GPS及慣性感測器在無人駕駛中的應用
    增強學習在無人駕駛中的應用
    高精地圖在無人駕駛中的應用
    CNN在無人駕駛中的應用
    無人駕駛系統安全

【CSDN_AI】熱衷分享 掃碼關注獲得更多業內領先案例
圖片描述
 
---------------------  
作者:CSDN AI  
來源:CSDN  
原文:https://blog.csdn.net/heyc861221/article/details/80128081  
版權宣告:本文為博主原創文章,轉載請附上博文連結!