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