作者 |喬琪上海控安可信軟件創新研究院工控網絡安全組
來源 |鑒源實驗室
社群 |添加微信號“TICPShanghai”加入“上海控安51fusa安全社區”
摘要:隨著智能網聯汽車的快速發展,其協議安全性和穩定性成為了關注焦點。智能網聯汽車協議特點主要表現為:數據格式不統一、傳輸速率不統一、通信協議復雜以及通信內容不確定等。這些特點對智能網聯汽車的安全性能提出了更高要求,同時也給協議安全性測試帶來了更大挑戰。模糊測試技術因其高效發現協議漏洞和缺陷的特性,在智能網聯汽車領域備受關注。本文旨在對智能網聯汽車協議模糊測試技術進行綜述,探討其原理、方法和應用,以期為智能網聯汽車協議安全研究提供參考。
01
引 言
在“智慧交通”初具模型的大背景下,智能網聯汽車作為汽車產業的重要發展方向,其基于網絡通信的協議安全問題日益受到重視。智能網聯汽車是指由車載傳感器、控制器、執行器等車載組件以及云平臺等基礎設施,融合互聯網、云計算、大數據和人工智能等新興技術形成的一種新型汽車。智能網聯汽車是未來汽車發展的必然趨勢,但是由于其具有“智能”和“網聯”兩大特點,在其實際運行過程中,系統與系統之間的通信安全問題成為制約其發展的重要因素。
近年來,汽車網絡安全攻擊事件層出不窮。例如2013年研究人員通過OBD-II(第二代車載自動診斷系統)成功入侵車載CAN(控制器局域網)總線,從而控制了福特翼虎、豐田普銳斯的方向盤、剎車、油門、儀表盤等汽車組件。2015年研究人員證明可以通過軟件漏洞無線侵入Jeep切諾基系統,導致該公司召回了一大批汽車。現代智能汽車巨頭之一的特斯拉也曾被科恩實驗室通過遠程方式入侵,實現了解鎖車輛、打開天窗及轉向燈、調節座椅等多項汽車功能的控制。
傳統的功能測試如協議一致性測試等,通常無法評估系統在非預期輸入下的行為表現,不能有效保障智能網聯汽車的安全目標實現與其設計的符合性。目前國內外對于智能網聯汽車協議棧的安全保障主要通過對其進行全面的網絡安全測試來實現,具體包括滲透測試、模糊測試和合規性測試三大類。其中,滲透測試通過模擬攻擊者的行為來發現系統中的漏洞和弱點,重點關注協議和系統的安全漏洞以及脆弱性;模糊測試通過向系統輸入隨機、異常或者無效的數據來發現協議棧在處理非預期輸入時可能出現的崩潰和安全漏洞,測試重點是協議棧實施的正確性以及協議本身的漏洞,相對滲透測試更為全面;合規性測試則側重于確認系統是否符合特定的安全標準、行業規范或者法規要求。因此,本文將模糊測試與傳統安全測試進行比較,重點闡述模糊測試在智能網聯汽車協議安全保障方面的應用情況和研究現狀,為開展智能網聯汽車協議安全測試提供參考。
02
模糊測試原理
模糊測試(Fuzzing Test)是一種通過將隨機數據(非預期輸入)輸入到目標系統以評估是否會出現非預期行為的測試方法,已經在計算機網絡安全測試領域獲得了廣泛應用,在自動化漏洞挖掘方面具備優異表現。
按照測試者對于被測系統的了解程度,模糊測試可以分為三種類型:黑盒測試、白盒測試和灰盒測試。這三種測試方式同時也會影響對于測試結果的分析。
· 黑盒測試(Black Box Testing)
不了解系統內部工作原理時可以采用黑盒測試。測試者只需關注系統的輸入和輸出,而不用考慮系統的內部邏輯或實現細節。黑盒測試是最接近真實世界攻擊事件的方式,因為它的假設條件與真實攻擊者能力一致,即只能觀察系統的外部行為,而無法獲取系統的內部信息。對測試結果的監控也只能通過黑盒方式來觀測被測件的外部變化,例如協議連接中斷、硬件耗能異常、設備斷電等。
· 白盒測試(White Box Testing)
在獲得了系統內部工作原理的情況下,可以采取白盒測試。測試者可以通過訪問系統的源代碼、設計文檔等內部信息,設計更具針對性的測試用例,以覆蓋系統的各個路徑和邏輯分支,發現潛在的漏洞和錯誤。白盒測試的實施通常對設計者的技術能力和專業知識有一定的考驗。白盒測試的結果監控則較為清晰明確,可以通過源代碼/二進制插樁等方法獲取系統信息反饋,以及測試覆蓋率、效率等關鍵指標參數。
· 灰盒測試(Gray Box Testing)
灰盒測試介于黑盒測試和白盒測試之間,測試者在一定程度上了解系統的內部工作原理,但并不具備完整的系統信息。灰盒測試在測試效率和覆蓋范圍之間取得了平衡,可以更全面地發現系統的漏洞和弱點,同時又不需要測試者完全了解系統的所有細節。通常的灰盒測試是從一個黑盒被測件開始,由專業測試人員利用逆向工程獲取系統的內部知識,具有較高的復雜性和技術門檻。
協議模糊測試通過模擬通信節點與被測件建立通信信道,通過發送對應協議模糊報文、觀察系統的響應情況,來發現潛在的漏洞和異常行為。協議模糊測試雖然已經獲得了廣泛應用,但是在智能網聯汽車安全評估中的應用相對較少。這主要是因為智能網聯汽車在通信過程中使用了復雜的協議棧,不僅包括以太網類型的協議(例如SOME/IP協議)還包括現場總線類型的協議(例如CAN總線協議),這些協議在數據格式、傳輸速率、通信內容等方面具有較大差異,對模糊測試工具的設計提出了較大挑戰。但很明顯地,協議模糊測試在自動化漏洞挖掘方面具有巨大潛能,具備較高的研究價值。
03
模糊測試方法
按數據產生方式不同,模糊測試數據的生成可以分為生成式(Generation)和變異式(Mutation)兩種主要方式:
1. 生成(Generation)
生成是一種從頭開始創建測試數據的方法。在生成過程中,測試者根據目標系統的特征和預期的輸入格式,使用各種算法和技術生成符合條件的測試數據。這種方法可能包括使用隨機生成器、模型驅動生成、語法驅動生成等技術來生成測試數據。測試者可以根據系統的需求和特性,設計出具有特定結構和屬性的測試數據。生成的測試數據可能更具有代表性,因為它們是根據系統的特征和預期的輸入格式精心設計和生成的。然而,生成測試數據可能需要更多的時間和資源來創建。
2. 變異(Mutation)
變異是一種在現有測試數據的基礎上進行修改和變化,生成新的測試數據的方法。在變異過程中,測試者會對現有的測試數據進行一系列的隨機或有針對性的變換操作,以生成新的測試數據。這種方法通常包括對測試數據進行隨機變換、替換、刪除、添加等操作,以創建與原始測試數據相似但又稍有不同的新測試數據。變異可以快速生成大量的測試數據,因為它利用了現有測試數據的信息和結構。然而,由于變異過程是基于現有數據進行修改的,因此生成的測試數據可能不夠多樣化,可能無法覆蓋所有可能的邊界情況。
生成和變異是兩種常見的模糊測試數據生成方式。生成方法從頭開始創建測試數據,可能更具代表性但需要更多時間和資源;而變異方法則是基于現有數據進行修改,可以快速生成大量測試數據,但可能缺乏多樣性。在實際應用中,可以根據具體的測試需求和情況選擇合適的生成方式,更廣泛使用的方式可能是采用兩種方法的結合。
04
智能網聯汽車協議模糊測試應用
智能網聯汽車融合使用車載總線與車載以太網已經成為了下一代車載網絡架構的發展趨勢。以典型車載診斷協議DoIP為例,其下層傳輸協議可以為CAN總線,也可以為TCP或者UDP等標準以太網協議。車載協議種類的多樣性使得開發人員在實現汽車通信協議棧時,可能因為直接使用了開源代碼或者個人疏忽導致軟件代碼存在漏洞,需要對其進行詳盡的模糊測試。由于汽車領域存在激烈的行業競爭,為保護自身企業的利益和知識產權,仍有相當一部分廠商在委托第三方安全測試時不愿意提供源代碼。因此黑盒測試是目前智能網聯汽車領域最適用的模糊測試方法。
車載通信協議通常運行在汽車行業專有的嵌入式設備,很難在進行測試時提取被測程序或者事先進行插樁,因此基于協議字段規則變異的黑盒模糊測試格外適用于智能網聯汽車協議安全測試。測試人員只需要通過某種方法獲取協議知識并設置合適的監控組件,就能通過分析測試的輸入輸出來獲取測試結果反饋。
獲取協議知識的方法目前大致可以分為3類:①利用領域專家經驗或者分析協議標準文本;②利用機器學習方法;③利用協議逆向工程方法。第一種方法主要適用于公開協議,通過梳理協議報文格式等信息來定義協議報文數據模型以及狀態轉換模型,然后可以利用Peach、Sulley、Boofuzz等知名模糊測試框架進行測試。
第二種方法主要針對協議信息未公開的情況。針對單條協議報文,對抗神經網絡GAN能夠從截獲的協議通信流量數據中學習協議知識并構造符合協議報文結構分布特征的測試數據。而長短期記憶網絡LSTM能夠學習序列報文的內置關系,可以有效描述協議狀態的轉移。基于機器學習的協議知識獲取可以在未知協議結構的情況下提高生成模糊測試用例的效率。
第三種方法與前兩種不同,需要前期針對某個特定協議進行大量分析工作,不具備普適性,但能大幅提高對特定協議的測試效率。研究者曾通過模式識別的方式分析某私有通信協議的報文格式,并通過報文相似性對比重建該協議握手過程。然后使用學習到的協議知識構建模糊測試原型系統,發現了該協議多個嚴重漏洞。可用的私有協議逆向工程包括基于報文序列對齊分析Netzob、Discoverer等和基于程序執行的分析Dispatcher、Replayer等。
除了獲取協議知識,如何監控黑盒模糊測試結果也是車載協議棧測試一大重點。常見的黑盒監控包括連接檢查、主機存活檢查等,發現漏洞能力極其有限,還可能存在大量誤報。目前出現了一些基于電量波動或者報文信號誤差的監測方式,相較于存活檢查等更為精確,但需要硬件分析工具的支持。
05
結論與展望
目前,智能網聯汽車協議安全測試還處于發展中期,測試場景還不夠豐富,測試技術還比較欠缺,同時,隨著新技術的應用,協議安全測試面臨著更多的挑戰。未來智能網聯汽車協議安全測試研究應從以下幾個方面開展:
(1)提升模糊測試的自動化程度。當前模糊測試工具大多只支持單步和單步的執行,未支持多步執行。未來可以引入多步執行模型來提升模糊測試的自動化程度,同時也可以結合深度學習來提高模糊測試效率。
(2)提高模糊測試的覆蓋率。當前的模糊測試技術大多基于機器學習算法對協議進行分析,但是由于機器學習算法的訓練數據集較大,導致其結果準確率較低。未來可以研究基于深度學習算法進行協議分析,提升模糊測試結果準確率。
(3)增強協議安全模型。隨著汽車功能的增多以及更多新技術的應用,協議安全模型需要進行持續更新。目前已有許多公司在進行相關研究,但是這些公司大多為傳統汽車廠商,未來可以考慮和互聯網企業合作,開發新的協議安全模型來提高協議安全性能。
智能網聯汽車協議模糊測試技術是保障智能網聯汽車安全的重要手段之一。隨著智能網聯汽車技術的不斷發展和演進,模糊測試技術也將不斷完善和改進,以應對日益復雜和多樣化的安全威脅。未來,我們可以期待模糊測試技術在智能網聯汽車領域的更廣泛應用,為汽車行業的安全發展貢獻力量。
審核編輯 黃宇
-
測試
+關注
關注
8文章
5375瀏覽量
127061 -
智能網聯汽車
+關注
關注
9文章
1095瀏覽量
31153
發布評論請先 登錄
相關推薦
評論