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

?

車聯(lián)網(wǎng)絡(luò)協(xié)議的模糊測試研究綜述

2023-05-23 15:07:14周繼祥龔漢文唐順成薛吟興
關(guān)鍵詞:網(wǎng)絡(luò)協(xié)議測試用例數(shù)據(jù)包

張 翼,郭 燕,3,周繼祥,龔漢文,唐順成,薛吟興,3

1(中國科學(xué)技術(shù)大學(xué) 軟件學(xué)院,合肥 230026)

2(中國科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230027)

3(中國科學(xué)技術(shù)大學(xué) 蘇州高等研究院,江蘇 蘇州 215123)

1 引 言

隨著自動駕駛技術(shù)的快速發(fā)展,現(xiàn)代車輛軟硬件系統(tǒng)日益復(fù)雜,同時,車聯(lián)網(wǎng)也不斷演進(jìn),以適應(yīng)車內(nèi)部、車與車、車與路邊基礎(chǔ)設(shè)施、車與云端之間進(jìn)行大量數(shù)據(jù)交互的需求.車聯(lián)網(wǎng)的快速發(fā)展有助于車輛整體的智能駕駛水平和整體交通運(yùn)行效率的提高.但另一方面,系統(tǒng)越復(fù)雜,暴露出的攻擊面就越大,由此引發(fā)的安全技術(shù)問題有可能越多.

車聯(lián)網(wǎng)系統(tǒng)由車輛和云平臺、路基設(shè)施、其他車輛等共同參與,是一個包括Wi-Fi、移動通信網(wǎng)絡(luò)、CAN總線網(wǎng)絡(luò)等多種網(wǎng)絡(luò)協(xié)議的復(fù)雜系統(tǒng).到目前為止,安全人員匯報(bào)過多起針對車聯(lián)網(wǎng)協(xié)議進(jìn)行攻擊的案例,從而達(dá)到硬件篡改、未經(jīng)授權(quán)的數(shù)據(jù)訪問、消息修改、跟蹤車輛位置等攻擊目的.部分案列是針對車聯(lián)網(wǎng)絡(luò)中的身份認(rèn)證、通信鏈路和CAN總線漏洞進(jìn)行攻擊,如嗅探攻擊[1]、繞過身份認(rèn)證[2]和車載僵尸網(wǎng)絡(luò)攻擊[3].部分案例針對云服務(wù)器進(jìn)行側(cè)信道攻擊[4]、消息重放攻擊[5]和DDoS(Distributed Denial of Service)攻擊[6,7].表1列出了部分漏洞/攻擊的類型、介紹及效果.雖然目前存在一些加強(qiáng)車聯(lián)網(wǎng)安全性的措施,如加強(qiáng)身份認(rèn)證難度[2],提高隱私保護(hù)力度[8],但是這些案例極大影響了用戶對自動駕駛系統(tǒng)安全性的信心,也對汽車行業(yè)的發(fā)展帶來了巨大的影響.2021年工信部發(fā)布《工業(yè)和信息化部關(guān)于加強(qiáng)車聯(lián)網(wǎng)網(wǎng)絡(luò)安全和數(shù)據(jù)安全工作的通知》,要求加強(qiáng)車聯(lián)網(wǎng)網(wǎng)絡(luò)安全防護(hù).因此,對車聯(lián)網(wǎng)的網(wǎng)絡(luò)協(xié)議進(jìn)行安全測試,盡早發(fā)現(xiàn)系統(tǒng)中存在的漏洞是一項(xiàng)迫在眉睫的工作.

表1 針對車聯(lián)網(wǎng)的攻擊

車聯(lián)網(wǎng)面臨的安全問題包括系統(tǒng)內(nèi)所有平臺和網(wǎng)絡(luò)協(xié)議所面對的各種安全威脅,包括但不限于網(wǎng)絡(luò)入侵、消息篡改和偽造、通信協(xié)議破解等.而且網(wǎng)絡(luò)協(xié)議在代碼實(shí)現(xiàn)時也有可能引入不規(guī)范或者安全問題.因此,對車聯(lián)網(wǎng)進(jìn)行測試并發(fā)現(xiàn)可能的漏洞非常復(fù)雜和困難.

當(dāng)前已經(jīng)有各種方法用于軟件系統(tǒng)的測試和漏洞發(fā)現(xiàn),如靜態(tài)分析[9]、動態(tài)分析[10]、符號執(zhí)行[11]、模糊測試[12]等.在上述各種方法中,P.Miller[12]提出模糊測試(Fuzzing),通過發(fā)送非預(yù)期的輸入并監(jiān)視異常結(jié)果實(shí)現(xiàn)漏洞發(fā)現(xiàn),具有如下優(yōu)點(diǎn):不必對目標(biāo)程序源碼有深入了解、自動化程度高、可用性好、并且可以容易地?cái)U(kuò)展到對大型目標(biāo)程序.當(dāng)前,模糊測試已成為最常用的自動軟件測試技術(shù),也廣泛應(yīng)用于網(wǎng)絡(luò)協(xié)議的安全測試[13,14].但是,目前仍缺少針對發(fā)展迅速的車聯(lián)網(wǎng)的模糊測試的綜述性研究.

為此,本文對現(xiàn)有的車聯(lián)網(wǎng)模糊測試文獻(xiàn)進(jìn)行綜述,第1部分介紹了車聯(lián)網(wǎng)的架構(gòu),第2部分簡單描述了模糊測試,特別是網(wǎng)絡(luò)協(xié)議模糊測試的分類,第3部分總結(jié)了近年來與車聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議模糊測試相關(guān)的文獻(xiàn),最后第4部分在此基礎(chǔ)上,展望了模糊測試在車聯(lián)網(wǎng)上的研究方向,針對如何加速網(wǎng)絡(luò)協(xié)議模糊測試,提高模糊測試的真實(shí)性提出合理建議.

2 智能車聯(lián)網(wǎng)架構(gòu)

車聯(lián)網(wǎng)利用既定的網(wǎng)絡(luò)通信協(xié)議,實(shí)現(xiàn)車輛智能動態(tài)地與周圍的車、路、人以及通信網(wǎng)絡(luò)之間進(jìn)行信息共享交換,從而提升汽車自動駕駛能力,提高交通效率等.車聯(lián)網(wǎng)的基本架構(gòu)如圖1所示,主要可以分為車載總線網(wǎng)絡(luò)和無線通信技術(shù).

圖1 車聯(lián)網(wǎng)基本架構(gòu)

2.1 車載總線網(wǎng)絡(luò)

車載總線網(wǎng)絡(luò)實(shí)現(xiàn)了大量電子控制元件ECU(Electronic Control Units)通信,從而完成了對發(fā)動機(jī)、安全氣囊、制動器等電子系統(tǒng)的控制,構(gòu)成了車內(nèi)網(wǎng)絡(luò)架構(gòu).不同的ECU節(jié)點(diǎn)通過不同的總線協(xié)議通信.常見的車載總線協(xié)議有CAN(Controller Area Network)、CAN-FD(CAN with Flexible Data-Rate)、LIN(Local Interconnect Network)、FlexRay、MOST(Media Oriented System Transport)和Automotive Ethernet,如表2所示.

表2 車內(nèi)有線網(wǎng)絡(luò)協(xié)議

CAN總線是一種能有效支持分布式實(shí)時控制的串行通訊網(wǎng)絡(luò),具有無損位仲裁機(jī)制、多主結(jié)構(gòu)等優(yōu)點(diǎn),且已被標(biāo)準(zhǔn)化.因此,CAN總線被廣泛用于車內(nèi)通信.CAN成本低,可靠性高,可用于安全應(yīng)用,動力控制和傳感器連接等.

CAN-FD[15]是CAN總線的替代總線,在繼承了CAN總線的大部分特性的同時,提高了總線帶寬和數(shù)據(jù)長度,顯著提高了通信速率,有效彌補(bǔ)了CAN總線的不足.

LIN[16]主要用于ECU和傳感器之間的串行通信,采用單主多從的組網(wǎng)方式,保證了網(wǎng)絡(luò)的可靠性,同時提高了網(wǎng)絡(luò)的開發(fā)速度.

FlexRay[17]專為車聯(lián)網(wǎng)而設(shè)計(jì),是一種具備故障容錯的高速可確定性車載總線系統(tǒng),采用了基于時間觸發(fā)的機(jī)制且具有高帶寬、容錯性好等特點(diǎn),在實(shí)時性和可靠性方面具有一定優(yōu)勢.

MOST[18]是面向媒體的系統(tǒng)傳輸總線,是工業(yè)界合作的成果.MOST總線基于環(huán)形拓?fù)?允許共享多個發(fā)送和接收器的數(shù)據(jù),同時可支持多個主拓?fù)浣Y(jié)構(gòu),專用于高速數(shù)據(jù)傳輸和同步.

車載以太網(wǎng)Automotive Ethernet[19]使用以太網(wǎng)連接車內(nèi)電子單元的局域網(wǎng)技術(shù),包含DoIP(Diagnostic communication over Internet Protocol)、SOME/IP(Scalableservice-Oriented Middleware over IP)和TCP(Transport Control Protocol)等協(xié)議,如表3所示.其不僅可以滿足汽車行業(yè)對高可靠性、低電磁輻射、低功耗、低延遲的要求,還能保持高速聯(lián)通.車載以太網(wǎng)跟傳統(tǒng)以太網(wǎng)最大的區(qū)別在于電纜,傳統(tǒng)以太網(wǎng)使用兩根雙絞線,一根用于傳輸數(shù)據(jù),另一根用于接收數(shù)據(jù);而車載以太網(wǎng)只使用一根同時發(fā)送和接受的雙絞線,在單對非屏蔽雙絞線上即可可實(shí)現(xiàn)100Mbit/s甚至1Gbit/s的數(shù)據(jù)傳輸速率.

表3 車載以太網(wǎng)

但隨著汽車功能的豐富,ECU數(shù)量不斷增加,智能網(wǎng)聯(lián)汽車對ECU元件進(jìn)行了集成,將ECU功能集中化為域控制器.如圖1所示,域控制器按汽車的功能分為車輛控制域、座艙域和自動駕駛域.集中式網(wǎng)關(guān)通過車載以太網(wǎng)集中接入各個域控制器以及遠(yuǎn)程信息處理盒子TBOX(Telematics Box).各個域控制器負(fù)責(zé)域內(nèi)ECU的通信,通過上述各總線協(xié)議進(jìn)行報(bào)文轉(zhuǎn)發(fā)和管理.TBOX為整車提供遠(yuǎn)程通信接口,用于整車的通信管理.

2.2 無線通信技術(shù)

無線通信是一種利用電磁波信號在自由介質(zhì)中進(jìn)行信息交換的通信方式.無線通信技術(shù)需要滿足車輛與車輛、路邊基礎(chǔ)設(shè)備、云端和移動終端等的數(shù)據(jù)交互要求.V2X(Vehicle to Everything)通信可以與環(huán)境交換信息,如當(dāng)前的交通擁堵情況、交通事故等,從而改善交通狀況,提高交通效率以及減少事故發(fā)生率.

車輛與車輛之間通過專用短程通信DSRC(Dedicated Short Range Communications)、基于4G的LTE-V2X(Long Term Evolution-V2X)以及基于5G的5G-V2X進(jìn)行數(shù)據(jù)傳輸,如前方的車輛速度.車輛與路邊基礎(chǔ)設(shè)備通過LTE-V2X、DSRC等進(jìn)行數(shù)據(jù)交互,如前方是否發(fā)生事故以及車輛所處位置.車輛與移動終端通過Wi-Fi(Wireless-Fidelity)、藍(lán)牙、NFC(Near Field Communication)、3G、4G、5G等進(jìn)行數(shù)據(jù)交互,如用戶的語音信息以及駕駛員的生物數(shù)據(jù),從而支持無鑰匙啟動、語音交互等功能,滿足駕駛員的合理需求,提高駕駛員的駕車體驗(yàn).

當(dāng)前主流的V2X通信技術(shù)規(guī)范為DSRC-V2X和基于蜂窩網(wǎng)絡(luò)的C-V2X(Cellular-V2X)[20].其中,DSRC由物理層標(biāo)準(zhǔn)IEEE 802.11p提供車載環(huán)境下的無線接入,網(wǎng)絡(luò)層標(biāo)準(zhǔn)IEEE 1609提供網(wǎng)絡(luò)和安全服務(wù).DSRC還支持IPv6和TCP/UDP,用于連接Internet.其協(xié)議信息內(nèi)容和結(jié)構(gòu)由SAE的SAEJ2735、SAE2945標(biāo)準(zhǔn)規(guī)范構(gòu)成.C-V2X是基于4G/5G等蜂窩網(wǎng)通信技術(shù)演進(jìn)形成的車用無線通信技術(shù),包含LTE-V2X和5G-V2X.相比于DSRC-V2X,C-V2X的通信范圍更廣,部署成本更低.同時,隨著5G技術(shù)的發(fā)展,C-V2X有更為清晰的技術(shù)發(fā)展路線.

在上述通信技術(shù)規(guī)范中應(yīng)用最廣泛的車載無線通信協(xié)議為Wi-Fi、藍(lán)牙和ZigBee 3種無線短距通信協(xié)議,如表4所示.

表4 車載無線通信技術(shù)

Wi-Fi遵循IEEE 802.11標(biāo)準(zhǔn),使用無線電波發(fā)送信號,具有低成本、兼容性好、穩(wěn)定性差、高功耗、安全性較差等特點(diǎn).

藍(lán)牙遵循IEEE 802.15標(biāo)準(zhǔn),可實(shí)現(xiàn)車輛與移動設(shè)備的數(shù)據(jù)交互,具有低功耗、低成本、支持復(fù)雜網(wǎng)絡(luò)、較高安全性(支持?jǐn)?shù)據(jù)包加密和認(rèn)證)、各版本不兼容等特點(diǎn).

Zigbee是基于IEEE 802.15.4標(biāo)準(zhǔn)的LAN協(xié)議,其特點(diǎn)是短距,低復(fù)雜性,低速低功耗,網(wǎng)絡(luò)容量大,抗干擾性差.

隨著汽車功能的不斷升級,其內(nèi)部組件變得越來越復(fù)雜,有線網(wǎng)絡(luò)的部署受到限制且車內(nèi)空間也變得更加擁擠,無線通信技術(shù)也被提出可用于車內(nèi)傳感器和ECU的連接,從而減少對車內(nèi)連接線的需求和汽車車身的重量,節(jié)省能源的同時能提高汽車的續(xù)航能力和車內(nèi)通信的靈活性.其中,Mirza等人[21]提出了一種基于BLE(Bluetooth low energy)的連接傳感器和ECU的低成本通信方案,相較于CAN總線網(wǎng)絡(luò),帶來了更少的電流消耗、更高的通信效率和更低的成本.Parthasarathy等人[22]提出了一種基于Zigbee的車載無線傳感器網(wǎng)絡(luò)設(shè)計(jì)方法.因?yàn)閃i-Fi會干擾藍(lán)牙和Zigbee信號,穩(wěn)定性很差,所以暫時沒有研究人員用于車內(nèi)傳感器和ECU的連接與控制.但上述三種方法均沒有滿足車內(nèi)數(shù)據(jù)傳輸在傳輸時延、數(shù)據(jù)可靠性和安全性方面的需求:傳感器數(shù)據(jù)傳輸需要低時延和超高的可靠性,且車內(nèi)電子設(shè)備眾多,通信環(huán)境復(fù)雜,需要高抗干擾性和高穩(wěn)定性.基于這些需求,2021年,華為提出了“星閃技術(shù)”[23],重新定義車載無線短距通信,具有超低時延、超高可靠、精準(zhǔn)同步等優(yōu)勢.

結(jié)合多種無線通信技術(shù),車輛不再是一個獨(dú)立的電子系統(tǒng),而是車聯(lián)網(wǎng)中的一個移動終端,從而能夠滿足人、車、路和云服務(wù)平臺的全方位連接.

3 網(wǎng)絡(luò)模糊測試介紹

汽車功能的不斷升級導(dǎo)致車內(nèi)通信協(xié)議規(guī)模和復(fù)雜度不斷增加,正如圖1所示:各域控制器負(fù)責(zé)域內(nèi)ECU的通信,域間通信通過集中式網(wǎng)關(guān),無線通信技術(shù)正逐漸取代有線網(wǎng)絡(luò)連接.技術(shù)的創(chuàng)新不僅帶來了功能的便利,對安全性也提出了更高的要求,使得安全測試要求越來越高.相比于其他漏洞發(fā)現(xiàn)方法,模糊測試的優(yōu)勢越發(fā)明顯,已經(jīng)成為車聯(lián)網(wǎng)安全測試領(lǐng)域最常見也是最有效的方法[24].車聯(lián)網(wǎng)模糊測試基本流程和分類與傳統(tǒng)網(wǎng)絡(luò)協(xié)議一致.網(wǎng)絡(luò)協(xié)議模糊測試的基本原則是通過生成或者變異的方法生成畸變的數(shù)據(jù)包,畸變數(shù)據(jù)包可能引起被測協(xié)議在處理畸變數(shù)據(jù)包的時候出錯或崩潰,從而發(fā)現(xiàn)被測協(xié)議中的漏洞.網(wǎng)絡(luò)協(xié)議模糊測試的難點(diǎn)在于在遵循協(xié)議規(guī)范的同時,構(gòu)造合法的畸變數(shù)據(jù)包.本節(jié)將簡要介紹網(wǎng)絡(luò)協(xié)議模糊測試的流程和分類.

3.1 網(wǎng)絡(luò)協(xié)議模糊測試的流程

網(wǎng)絡(luò)協(xié)議模糊測試框架基本上由測試用例生成器、被測協(xié)議、監(jiān)測器和異常分析器4部分組成.

網(wǎng)絡(luò)協(xié)議模糊測試的流程如圖2所示.車聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議模糊測試的流程:①根據(jù)對被測協(xié)議的了解程度和測試目的選擇不同的生成策略以生成測試用例;②將生成的測試用例發(fā)送給被測協(xié)議實(shí)體作為輸入;③根據(jù)協(xié)議實(shí)體中測試用例的執(zhí)行情況,監(jiān)測器觀察協(xié)議是否行為異常或崩潰,同時收集被測協(xié)議在模糊測試過程中產(chǎn)生的崩潰或異常信息;④收集到的異常信息被測試人員用于分析協(xié)議的漏洞.

圖2 網(wǎng)絡(luò)協(xié)議的模糊測試流程

3.2 網(wǎng)絡(luò)協(xié)議模糊測試的分類

網(wǎng)絡(luò)協(xié)議模糊測試的方法可以有多種不同的分類方法,下面從測試用例的生成策略、對被測協(xié)議的了解程度以及模糊測試的目的進(jìn)行分類.

3.2.1 測試用例的生成策略

根據(jù)測試用例的生成策略,網(wǎng)絡(luò)協(xié)議的模糊測試可分為兩種:基于生成和基于變異[25].

基于生成的模糊測試需要分析被測的網(wǎng)絡(luò)協(xié)議使用的協(xié)議規(guī)范,了解字段支持的數(shù)據(jù)結(jié)構(gòu)和字段接受的值的范圍,定義可修改字段和不可修改字段.例如,Zuo等人[26]分析不同狀態(tài)下的RTPS數(shù)據(jù)包,抓取可用特征生成符合協(xié)議規(guī)范的模糊數(shù)據(jù).Bayer等人[27]在了解基礎(chǔ)協(xié)議結(jié)構(gòu)以及數(shù)據(jù)包字段含義之后修正模糊消息包使其符合協(xié)議規(guī)范.

基于變異的模糊測試通過截取網(wǎng)絡(luò)通信流量,捕獲正常的通信協(xié)議消息,根據(jù)設(shè)計(jì)的變異策略(如,位翻轉(zhuǎn))將正常消息中的數(shù)據(jù)轉(zhuǎn)換為非法值.例如,Patki等人[28]提出基于變異的模糊測試框架,檢查8字節(jié)UDS協(xié)議的所有組合,然后改變字段產(chǎn)生無效數(shù)據(jù)包.

3.2.2 對被測協(xié)議的了解程度

根據(jù)測試者對被測協(xié)議的了解,車聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議的模糊測試可分為3種:黑盒測試、灰盒測試以及白盒測試[29].

針對傳統(tǒng)網(wǎng)絡(luò)協(xié)議的黑盒測試是指測試者完全不了解被測協(xié)議的狀態(tài)、功能等內(nèi)部信息,通過預(yù)定義的規(guī)則對數(shù)據(jù)包進(jìn)行變異生成新數(shù)據(jù)包來測試協(xié)議,也稱為功能測試.黑盒測試的缺點(diǎn)很明顯:難以定義測試終止的標(biāo)準(zhǔn),只能提供較低的測試覆蓋率.測試覆蓋率是對測試完成程度的度量.它通常依據(jù)某種覆蓋準(zhǔn)則來對測試用例執(zhí)行情況進(jìn)行衡量,以判斷測試執(zhí)行得是否充分.

車聯(lián)網(wǎng)中的網(wǎng)絡(luò)協(xié)議大部分是有狀態(tài)的網(wǎng)絡(luò)協(xié)議,針對有狀態(tài)的網(wǎng)絡(luò)協(xié)議,黑盒模糊測試[13,14]通過有限狀態(tài)機(jī)FSM(Finite State Machine)和圖遍歷協(xié)議狀態(tài)模型,生成符合語法的消息序列.FSM是表示有限狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)換的數(shù)學(xué)模型,如圖3所示,其中,S={S1,S2,S3}為有限狀態(tài)集,具體而言,S1是斷開狀態(tài),S2是等待連接狀態(tài),S3是連接狀態(tài).T={Tr1,Tr2,Tr3,Tr4}為狀態(tài)轉(zhuǎn)換條件.例如,Zhao等人[30]手動生成ZigBee協(xié)議MAC層的全狀態(tài)覆蓋圖并對其優(yōu)化.圖3的狀態(tài)圖意味著S1狀態(tài)必須要滿足條件Tr1,譬如接收到特定的數(shù)據(jù)包,才能進(jìn)入狀態(tài)S2.在模糊測試中,如果不能在狀態(tài)S1后不能生成特定的數(shù)據(jù)包,那么將始終不能到達(dá)狀態(tài)S2.

圖3 FSM狀態(tài)圖

白盒測試是指測試者通過閱讀被測協(xié)議的源代碼以及協(xié)議規(guī)范,完全了解被測協(xié)議的運(yùn)行方式、功能和狀態(tài)轉(zhuǎn)換等內(nèi)部信息,并使用這些信息來指導(dǎo)測試數(shù)據(jù)包的生成,通過使用動態(tài)符號執(zhí)行和啟發(fā)式搜索快速實(shí)現(xiàn)測試覆蓋率最大化.理論上,白盒模糊測試可以生成覆蓋所有協(xié)議狀態(tài)的測試用例.但是,考慮到程序的復(fù)雜度,白盒測試往往并不能實(shí)現(xiàn)100%的覆蓋.

灰盒測試介于黑盒測試和白盒測試之間,是指測試者對被測協(xié)議內(nèi)部細(xì)節(jié)存在有限認(rèn)知,但是缺乏對內(nèi)部功能和運(yùn)作的詳細(xì)了解.灰盒模糊器可通過代碼插樁獲得目標(biāo)程序的測試覆蓋率,然后利用這些信息調(diào)整變異策略以覆蓋更多的狀態(tài)或者更快地發(fā)現(xiàn)失敗的測試用例.例如,Pham等人[31]首次提出有狀態(tài)的灰盒模糊測試AFLNET,使用服務(wù)器的響應(yīng)碼識別服務(wù)器狀態(tài),構(gòu)建動態(tài)的狀態(tài)模型,同時使用狀態(tài)模型和代碼覆蓋率指導(dǎo)模糊測試過程.

白盒測試和灰盒測試都在一定程度上利用了目標(biāo)程序的信息來減輕黑盒模糊測試的盲目性,即缺少指導(dǎo)測試終止和優(yōu)化的覆蓋度指標(biāo).相比于黑盒模糊測試的盲目性,以及白盒測試在測試大型網(wǎng)絡(luò)協(xié)議時的低效,灰盒測試實(shí)現(xiàn)了較好的平衡,因此受到了更多的關(guān)注.

3.2.3 模糊測試的目的

模糊測試早期被當(dāng)作一種攻擊手段,研究者不需要對被測協(xié)議有較深的了解,也不需要系統(tǒng)的分析協(xié)議運(yùn)行數(shù)據(jù).例如,Koscher等人[32]通過CarsHark(1)https://carshark.net.au/嗅探CAN總線,構(gòu)建簡單的CAN數(shù)據(jù)包,即對隨機(jī)字段進(jìn)行模糊用于攻擊ECU.

但這種方法對CAN數(shù)據(jù)包的處理很簡單,不能控制測試的細(xì)粒度.隨后,Lee等人[33]對嗅探得到的CAN數(shù)據(jù)包中數(shù)據(jù)字段的部分字節(jié)進(jìn)行模糊,其他部分填充為0,模糊后的數(shù)據(jù)包可經(jīng)過無線通道進(jìn)入汽車系統(tǒng)實(shí)施攻擊.上述文獻(xiàn)均驗(yàn)證了模糊測試可用于攻擊.

另外,模糊測試的攻擊可用于輔助車輛功能的逆向分析.例如,Fowler等人[34]利用模糊測試作為攻擊的手段,實(shí)現(xiàn)車輛遠(yuǎn)程開鎖,證實(shí)了模糊測試可用于車聯(lián)網(wǎng)的安全性驗(yàn)證.隨后,該團(tuán)隊(duì)[35]通過發(fā)送CAN數(shù)據(jù)包,揭示了汽車顯示屏顯示不同信息以及其他隱藏的功能所需的數(shù)據(jù),發(fā)現(xiàn)了車輛系統(tǒng)的缺陷,從而可以提高汽車安全性.Werquin等人[36]對CAN數(shù)據(jù)包中的特定字段進(jìn)行模糊測試,成功挖掘了ECU中未記錄的功能除此之外,模糊測試最主要的功能是針對車聯(lián)網(wǎng)漏洞進(jìn)行診斷和分析.其中,Bayer等人[27]針對CAN總線上的UDS(Unified Diagnostic Service)協(xié)議進(jìn)行模糊測試發(fā)現(xiàn)了3種服務(wù)器崩潰類型.UDS協(xié)議是診斷服務(wù)的規(guī)范化標(biāo)準(zhǔn),診斷過程為:診斷儀發(fā)送診斷服務(wù)請求給ECU,然后ECU按照標(biāo)準(zhǔn)回復(fù)給診斷儀.Patki等人[28]也對UDS協(xié)議進(jìn)行了模糊,但是該方法只針對特定的第三方ECU,存在一定的局限性.

4 車聯(lián)網(wǎng)模糊測試的現(xiàn)狀

隨著車聯(lián)網(wǎng)模糊測試的發(fā)展,多種方法被提出,本節(jié)詳細(xì)分析現(xiàn)有文獻(xiàn)在模糊測試時的測試用例生成、異常信息監(jiān)測以及測試評估標(biāo)準(zhǔn)3方面所做的工作.

4.1 測試用例生成方法

模糊測試的本質(zhì)即使用測試數(shù)據(jù)包引起程序出錯,因此模糊測試工具的性能很大程度上取決于測試用例的生成.

4.1.1 模糊測試的基礎(chǔ)框架

現(xiàn)存在部分已開源的模糊測試框架,如AFL(2)https://github.com/google/AFL、Sulley(3)https://github. com/OpenRCE/sulley和beSTORM(4)https://www.capterra.com/p/107198/beSTORM/等.在已有框架上進(jìn)行擴(kuò)展,從而對車聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議進(jìn)行模糊測試是一個合理的選擇例如,Lee等人[37]在Sulley的數(shù)據(jù)庫中加入CAN消息數(shù)據(jù)生成文件,隨機(jī)生成CAN幀并發(fā)送至CAN總線.基于beSTORM的良好擴(kuò)展性,即可用XML定義測試協(xié)議模塊,Nishimura等人[38]引入一個自定義的測試模塊,以連接beSTORM與車載控制系統(tǒng),從而可針對CAN-FD協(xié)議進(jìn)行模糊測試.此外,一些文獻(xiàn)針對協(xié)議本身提出自定義的模糊測試框架.例如,BSS通過簡單改變數(shù)據(jù)包的一個字段來實(shí)現(xiàn)模糊測試.Fowler等人[34]手動分析標(biāo)準(zhǔn)的CAN數(shù)據(jù)包后,試圖約束模糊范圍,只針對部分指定字段進(jìn)行隨機(jī)變異.但該方法降低了模糊測試的有效性,不能探索更多狀態(tài)下的CAN協(xié)議.隨后,該團(tuán)隊(duì)[35]對CAN數(shù)據(jù)字段的每一位都產(chǎn)生變異來探索車輛系統(tǒng)的缺陷.類似地,Patki等人[28]檢查UDS協(xié)議的所有組合,然后改變其字段使其無效化.以上方法均未考慮車聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議的狀態(tài).因此BFuzz和WiFi-Fuzzer[39]宣稱會針對協(xié)議狀態(tài)進(jìn)行智能模糊,即對靜態(tài)分析時確定為易受攻擊的數(shù)據(jù)包進(jìn)行變異.但是該方法幾乎改變了數(shù)據(jù)包的每個字段.

4.1.2 模糊測試的優(yōu)化

模糊生成器在模糊測試的循環(huán)開始時,會反復(fù)從種子池中選擇種子進(jìn)行突變,而上述方法對于種子的選擇較為隨意,未考慮測試的效率,會導(dǎo)致數(shù)據(jù)爆炸,使模糊測試效率降低.因此,不少文獻(xiàn)針對模糊測試的種子調(diào)度(即種子選擇和能量調(diào)度)進(jìn)行優(yōu)化,試圖在提高模糊測試效率的情況下,同時提高模糊測試的深度.種子的選擇會極大地影響模糊測試結(jié)果,有針對性的選擇比隨機(jī)選擇的測試結(jié)果更為完善;種子被選中后,變異的次數(shù)或模糊時間的權(quán)重均被定義為能量,調(diào)整種子能量有一定概率能減少模糊測試的成本.

部分文獻(xiàn)提出根據(jù)可監(jiān)測的物理變量,如ECU狀態(tài)變化、日志文件等進(jìn)行分析,指導(dǎo)測試種子的選擇.可監(jiān)測的物理變量跟車內(nèi)狀態(tài)密切相關(guān),CAN協(xié)議在車內(nèi)應(yīng)用廣泛,因此大部分狀態(tài)都受CAN協(xié)議的影響,此類文獻(xiàn)大多針對CAN協(xié)議.其中,Werquin等人[36]根據(jù)目標(biāo)ECU的狀態(tài)變化指導(dǎo)測試生成器選擇不同的生成策略以縮小模糊輸入空間,同時提出名為遺漏模糊測試的方法,發(fā)送部分消息以識別導(dǎo)致特定狀態(tài)更改的消息,并對其優(yōu)先變異.McShane等人[40]分析日志文件,優(yōu)先變異與與被測協(xié)議崩潰的原因相關(guān)的特定字段.Zhang等人[41]根據(jù)相同ID的不同消息的位翻轉(zhuǎn)率BFR(Bit Flip Rate)生成有針對性的測試用例.BFR是同一個ID的不同CAN報(bào)文中的數(shù)據(jù)字段中某一位在一段時間內(nèi)發(fā)生變化的的頻率,即CAN報(bào)文的變化率.CAN報(bào)文有不同分段,不同分段的BFR值類型不同,根據(jù)BFR的值可標(biāo)記不同分段的類型,以及該分段在數(shù)據(jù)字段中的作用,從而消息生成器可針對每個分段的特征采用不同的變異策略,優(yōu)先選擇高BFR的字段進(jìn)行變異.

部分文獻(xiàn)分析各字段對覆蓋度的影響,優(yōu)先選擇能帶來高覆蓋度的種子,并賦予其較高的種子能量.其中,Li等人[42]提出了一個針對車載以太網(wǎng)中SOME/IP協(xié)議的灰盒模糊測試框架Ori.Ori提出兩個策略:附加模糊測試和結(jié)構(gòu)突變.附加模糊測試使Ori可以并行運(yùn)行模糊測試,從而保證測試效率.結(jié)構(gòu)突變允許Ori針對SOME/IP協(xié)議數(shù)據(jù)包的不同部分采用不同的變異算子(如位翻轉(zhuǎn)突變),而不是將數(shù)據(jù)包作為整體進(jìn)行變異.Ori不改變某些不能提高邏輯覆蓋的頭部字段(如協(xié)議版本、接口版本),從而可以生成能覆蓋更深層次邏輯的數(shù)據(jù)包.Frankenstein[43]是基于固件仿真的模糊測試框架,修改藍(lán)牙的固件系統(tǒng),以快速注入藍(lán)牙數(shù)據(jù)幀.輸入單個數(shù)據(jù)包或者數(shù)據(jù)包序列,并對其分別進(jìn)行變異,即可通過重新排序數(shù)據(jù)包增加代碼覆蓋率.在接受到數(shù)據(jù)幀后,重啟設(shè)備的物理狀態(tài)快照并進(jìn)行固件仿真.

車聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議的覆蓋度不僅僅包括傳統(tǒng)代碼覆蓋度,也有部分文獻(xiàn)結(jié)合抽象狀態(tài)模型提供的狀態(tài)覆蓋度.例如,Zuo等人[26]對RTPS協(xié)議的數(shù)據(jù)包結(jié)構(gòu)進(jìn)行建模,模擬真實(shí)的通信過程.在遍歷所有狀態(tài)的數(shù)據(jù)模型后,學(xué)習(xí)并量化相鄰狀態(tài)數(shù)據(jù)包中各個字段之間的關(guān)系,確定每個字段的變異權(quán)重.能導(dǎo)致覆蓋度提高的字段會被賦予較高的變異權(quán)重,即更容易被突變.之后根據(jù)不同的狀態(tài)選擇特定的突變.動態(tài)變異權(quán)重避免了有限的時間成本和計(jì)算資源的浪費(fèi).

Zhao等人[30]提出了基于FSM的模糊測試算法,該算法首先手動生成狀態(tài)轉(zhuǎn)換的全狀態(tài)覆蓋圖并對其優(yōu)化得到模糊測試序列,從而可生成有效的異常數(shù)據(jù).該方法在藍(lán)牙協(xié)議和Wi-Fi協(xié)議應(yīng)用頗為廣泛.SweynTooth[44]根據(jù)藍(lán)牙協(xié)議的核心規(guī)范構(gòu)建了低功耗藍(lán)牙協(xié)議的狀態(tài)模型,從而保證生成格式上正確的數(shù)據(jù)包,同時其采用粒子群優(yōu)化[45]啟發(fā)式地細(xì)化每個協(xié)議層和層中的每個字段的變異概率分布,從而提高狀態(tài)覆蓋率.該團(tuán)隊(duì)之后提出了BrakTooth[46],通過編寫一組簡單的規(guī)則來識別協(xié)議消息,動態(tài)地構(gòu)建抽象的協(xié)議狀態(tài)機(jī).在模糊測試期間,數(shù)據(jù)包可以實(shí)時地映射到該狀態(tài)機(jī)中的狀態(tài)以計(jì)算狀態(tài)覆蓋率.同時,BrakTooth采用動態(tài)模糊測試,也即攔截?cái)?shù)據(jù)包,并按照規(guī)則修改或者注入數(shù)據(jù)包,從而使得模糊測試能夠到達(dá)協(xié)議的深層狀態(tài)的概率.

GREYHOUND[47]在網(wǎng)絡(luò)接入點(diǎn)運(yùn)行,將Wi-Fi協(xié)議建模為狀態(tài)機(jī)模型,基于該模型預(yù)測數(shù)據(jù)包的狀態(tài).針對協(xié)議字段,GREYHOUND隨機(jī)選擇不同的變異算子(隨機(jī)字節(jié)、零填充和位設(shè)置)獲得變異后的數(shù)據(jù)包.隨后,根據(jù)狀態(tài)轉(zhuǎn)換次數(shù)、發(fā)現(xiàn)兩個異常之間的時間、發(fā)現(xiàn)的異常次數(shù)和迭代時間通過自定義的分代粒子群優(yōu)化算法優(yōu)化變異概率,將較高的突變概率分配給與攻擊狀態(tài)相關(guān)的協(xié)議層.

L2Fuzz[48]首先獲得L2CAP(logical link control and adaptation protocol 邏輯鏈路控制與適配協(xié)議)的狀態(tài)轉(zhuǎn)換圖,然后針對每個L2CAP狀態(tài),將事件、功能和動作分類,根據(jù)分類設(shè)定了針對狀態(tài)的有效命令邊界.這些命令可用于實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換或測試針對特定狀態(tài)的攻擊,以提高模糊測試的狀態(tài)覆蓋度.L2Fuzz對參考VFuzz[49]將L2CAP數(shù)據(jù)包分割成需要變異的部分和不變的需要維護(hù)的部分,通過靜態(tài)分析僅對L2CAP數(shù)據(jù)包關(guān)鍵字段進(jìn)行變異,也即負(fù)責(zé)端口和通道設(shè)置的字段,這樣可以更有效地生成測試包.

部分文獻(xiàn)針對狀態(tài)機(jī)手動創(chuàng)建的缺點(diǎn)——不僅要耗費(fèi)大量人力,也容易出錯,還需要不斷更新——提出了優(yōu)化措施.Tappler等人[50]提出基于主動學(xué)習(xí)[51]的測試,即使用Mealy有限狀態(tài)機(jī)根據(jù)觀察到的數(shù)據(jù)對同一系統(tǒng)的不同行為自動建模.隨后,Aichernig等人[52]針對MQTT協(xié)議的特點(diǎn),自動推斷出一種通用的狀態(tài)模型,并通過隨機(jī)遍歷該模型來生成測試序列,然后將隨機(jī)生成的輸入序列通過模糊測試生成器具體化.之后,該團(tuán)隊(duì)[53]根據(jù)藍(lán)牙低功耗協(xié)議中每個BLE設(shè)備的不同行為分別自動建模.

4.1.3 測試用例的真實(shí)性

此外,基于生成的模糊測試通常會對網(wǎng)絡(luò)協(xié)議結(jié)構(gòu)進(jìn)行分析,從而提高數(shù)據(jù)的可用性.例如,Kim等人[54]基于CAN結(jié)構(gòu)生成測試用例,更快地進(jìn)行測試.該文章先分析CAN報(bào)文之間的關(guān)系,定義導(dǎo)致車輛不良行為的模糊規(guī)則,然后生成并注入CAN模糊報(bào)文.同時,該文章會監(jiān)測是否有無效的CAN ID、CAN字段的BFR是否超過設(shè)定門檻,有效減少了數(shù)據(jù)爆炸.通過少量的CAN消息包,即可達(dá)到暴力模糊的測試范圍.

與基于生成的模糊測試相比,基于變異的模糊測試生成的測試數(shù)據(jù)可用性較低,與真實(shí)數(shù)據(jù)存在嚴(yán)重偏差,可能會被汽車的入侵檢測系統(tǒng)IDS(Intrusion detection system)截獲.因此,為了提高模糊數(shù)據(jù)的真實(shí)性,部分文獻(xiàn)將深度學(xué)習(xí)與模糊測試相結(jié)合.例如,McShane等人[40]從之前模糊測試運(yùn)行的數(shù)據(jù)集中手動識別成功和失敗的測試用例,并對其進(jìn)行歸一化處理.數(shù)據(jù)預(yù)處理之后,構(gòu)建并訓(xùn)練AI模型以預(yù)測測試用例.之后將該模型集成到現(xiàn)有的模糊測試框架中,在運(yùn)行時動態(tài)生成能通過AI模型鑒別的近乎真實(shí)的模糊數(shù)據(jù).Zhang等人[41]利用GAN(Generative Adversarial Networkd)生成符合協(xié)議規(guī)范的測試用例.GAN是一種深度學(xué)習(xí)算法,由生成器和分辨器構(gòu)成.生成器采用隨機(jī)CAN數(shù)據(jù)包作為訓(xùn)練的輸入,分辨器采用真實(shí)數(shù)據(jù)和來自生成器的模糊數(shù)據(jù)作為訓(xùn)練的數(shù)據(jù),利用分辨器對模糊數(shù)據(jù)的反饋來調(diào)整生成器和分辨器的參數(shù).最后消息生成器生成的模糊消息會逐漸接近真實(shí)數(shù)據(jù),從而符合協(xié)議規(guī)范.但是,GAN存在模型不收斂、模式崩潰、梯度消失、梯度爆炸等問題,因此該文章選擇WGAN-GP(Wasserstein GANwith gradient penalty)[55]用于改善模型.

4.1.4 總 結(jié)

如表5所示,車聯(lián)網(wǎng)中的模糊測試用例可通過擴(kuò)展開源軟件進(jìn)行生成,也可通過優(yōu)化模糊測試框架進(jìn)行生成,從而實(shí)現(xiàn)高效率和高覆蓋度.模糊測試的優(yōu)化主要從種子選擇和能量調(diào)度入手,根據(jù)觀測到的物理量和測試覆蓋度對種子選擇進(jìn)行排序,同時根據(jù)種子對覆蓋度的影響分配能量.考慮網(wǎng)絡(luò)協(xié)議的覆蓋度不僅僅包括代碼覆蓋度,因此也有部分文獻(xiàn)針對覆蓋度的計(jì)算,即狀態(tài)模型的建立提出優(yōu)化.

表5 車聯(lián)網(wǎng)的模糊測試用例生成

4.2 異常檢測手段

車聯(lián)網(wǎng)包含總線網(wǎng)絡(luò)協(xié)議和無線通信協(xié)議,因此面臨的安全漏洞可分為兩類,一是網(wǎng)絡(luò)崩潰引發(fā)的車載系統(tǒng)故障,如,緩沖區(qū)溢出漏洞[56],分配內(nèi)存失敗,從而導(dǎo)致ECU表現(xiàn)異常;二是網(wǎng)絡(luò)通信故障,如,拒絕服務(wù)(DoS)或分布式拒絕服務(wù)(DDoS),從而導(dǎo)致網(wǎng)絡(luò)的安全屬性受到威脅.

網(wǎng)絡(luò)崩潰引發(fā)的車載系統(tǒng)故障通常體現(xiàn)在汽車內(nèi)部組件的功能異常上.其中,Fowler等人[35]和Werquin等人[36]根據(jù)儀表板上的常見指示器(如速度指針、轉(zhuǎn)向顯示器等)的狀態(tài)變化感應(yīng)車載系統(tǒng)的故障.Zhang等人[41]實(shí)現(xiàn)了基于AdaBoost(Adaptive Boosting)[57]算法的異常監(jiān)控.AdaBoost是一種迭代算法,在每一輪中加入一個新的弱分類器,根據(jù)其分類錯誤率確定分類器的權(quán)重,最后根據(jù)分類器的權(quán)重,組合成為一個強(qiáng)分類器.該異常監(jiān)控可以識別CAN總線中的異常狀態(tài),并且標(biāo)記異常消息,將其重播到CAN總線中以驗(yàn)證漏洞.該方法發(fā)現(xiàn)了車輛總線的漏洞,如發(fā)動機(jī)轉(zhuǎn)速表異常、轉(zhuǎn)向燈異常、雨刷異常、指示燈異常等.SweynTooth[44]根據(jù)藍(lán)牙設(shè)備的運(yùn)行情況判斷異常,從而發(fā)現(xiàn)棧溢出和死鎖現(xiàn)象.GREYHOUND[47]通過監(jiān)控網(wǎng)絡(luò)接入點(diǎn)的狀態(tài)發(fā)現(xiàn)緩沖區(qū)溢出導(dǎo)致的系統(tǒng)崩潰.Kim等人[54]通過監(jiān)視車輛IMU傳感器的值,自動發(fā)現(xiàn)由注入消息引發(fā)的車輛不當(dāng)行為.

網(wǎng)絡(luò)通信故障通常根據(jù)服務(wù)器的回復(fù)或是否產(chǎn)生難以解決的通信延遲來判斷.例如,Bayer等人[27]通過ECU的回復(fù)判斷測試用例是否導(dǎo)致服務(wù)器崩潰,即發(fā)送測試用例后服務(wù)器是否回復(fù)超時、解析回復(fù)后該消息包是否有效、服務(wù)器是否持續(xù)回復(fù).Werquin等人[36]根據(jù)CAN總線故障發(fā)現(xiàn)注入的信息會導(dǎo)致觸發(fā)不完整拒絕條件,從而無需通過真實(shí)性驗(yàn)證,即CAN消息身份驗(yàn)證的漏洞.SweynTooth[44]根據(jù)每個協(xié)議狀態(tài)中的預(yù)期響應(yīng),來檢驗(yàn)外圍設(shè)備的回復(fù)是否正常,從而發(fā)現(xiàn)DoS漏洞.GREYHOUND[47]監(jiān)控Wi-Fi客戶端接收到的數(shù)據(jù)包與協(xié)議當(dāng)前狀態(tài)的預(yù)期數(shù)據(jù)包類型是否匹配,從而發(fā)現(xiàn)Dragonslayer握手[58]漏洞(EAP-PWD身份驗(yàn)證漏洞).

L2Fuzz[48]檢查目標(biāo)設(shè)備上收到的數(shù)據(jù)包是否包含錯誤消息,是否成功執(zhí)行Ping測試以及是否會生成故障轉(zhuǎn)儲來檢測是否發(fā)生故障.最后,L2Fuzz成功發(fā)現(xiàn)因?yàn)榭罩羔樢脦淼腄oS漏洞.

如表6所示,車聯(lián)網(wǎng)的異常檢測主要針對設(shè)備、總線或服務(wù)器的回復(fù)和狀態(tài),檢測到異常后,經(jīng)過分析可分為兩類:ECU故障和通信故障(如消息驗(yàn)證漏洞、DoS漏洞).

表6 車聯(lián)網(wǎng)的異常檢測手段與漏洞類型

4.3 測試評估指標(biāo)

模糊測試的一個難題是如何評估測試的有效性,即如何定義評估測試的指標(biāo).部分文獻(xiàn)通過對比相同時間發(fā)現(xiàn)的錯誤數(shù)量或者發(fā)現(xiàn)漏洞的嚴(yán)重程度進(jìn)行驗(yàn)證.其中,Bayer等人[27]根據(jù)每分鐘生成的測試用例數(shù)、規(guī)定時間內(nèi)發(fā)現(xiàn)的服務(wù)器崩潰數(shù)以及服務(wù)器崩潰的可用比評估測試的有效性.Nishimura等人[38]根據(jù)生成一份測試用例所需的時間以及上傳規(guī)定數(shù)量的測試用例所需時間評估測試的有效性.Zhang等人[41]根據(jù)不用的模糊測試方法產(chǎn)生的相同數(shù)量的測試用例中導(dǎo)致異常消息的數(shù)量來評估測試的有效性.如表7所示,Bayer等人[27]每分鐘生成的測試用例遠(yuǎn)超過其他人,但是該測試方法不僅沒有考慮測試用例的有效性,也沒有考慮測試效率,因此實(shí)際效果并不如Nishimura等人[38]和Zhang等人[41]的測試方法.

表7 車聯(lián)網(wǎng)模糊測試評估指標(biāo)

灰盒模糊測試和白盒模糊測試?yán)脺y試覆蓋率來指導(dǎo)測試的優(yōu)化和停止.測試覆蓋率是對測試完成程度的度量.它通常依據(jù)某種覆蓋準(zhǔn)則來對測試用例執(zhí)行情況進(jìn)行衡量,以判斷測試執(zhí)行得是否充分.例如,Ori[42]收集運(yùn)行時開源SOME/IP協(xié)議框架中的代碼覆蓋率和運(yùn)行結(jié)束狀態(tài)用于評估測試有效性.

因?yàn)楹诤心:郎y試的特點(diǎn)—即完全不了解被測協(xié)議的狀態(tài)、功能等內(nèi)部信息,黑盒模糊測試更為盲目,缺少覆蓋率指導(dǎo).部分文獻(xiàn)通過基于模型的測試擴(kuò)展了模糊的范圍,以獲得協(xié)議模糊測試的狀態(tài)覆蓋率.狀態(tài)覆蓋度是指測試用例生成器生成的測試用例能測試到的協(xié)議狀態(tài)數(shù)量.其中,Zuo等人[26]量化了RTPS協(xié)議所有狀態(tài)的數(shù)據(jù)模型.BrakTooth[46]將數(shù)據(jù)包動態(tài)映射到狀態(tài)模型中以計(jì)算狀態(tài)覆蓋率.除了狀態(tài)覆蓋率,L2Fuzz[48]還設(shè)計(jì)了另一個覆蓋度指標(biāo)—突變效率,即模糊生成器可以生成的容易出錯的測試包的數(shù)量以及被目標(biāo)拒絕的測試包的數(shù)量.

除了覆蓋度,部分文獻(xiàn)定義了一種區(qū)分期望的正確行為和潛在的不正確行為的判斷機(jī)制(即測試oracle),用于確定測試是否通過.

通過一致性測試預(yù)言即可檢驗(yàn)協(xié)議實(shí)現(xiàn)與協(xié)議標(biāo)準(zhǔn)的一致性程度,即發(fā)送特定數(shù)據(jù)包是否能使協(xié)議按照特定的序列轉(zhuǎn)換.例如,Zhao等人[30]將模糊測試與一致性測試結(jié)合在一起,通過檢查輸入錯誤數(shù)據(jù)后,正常的狀態(tài)轉(zhuǎn)換能否發(fā)生,以發(fā)現(xiàn)異常情況.Tappler等人[50]通過一致性的交叉關(guān)系檢測異常,模型之間的不一致表示可能存在的錯誤.Aichernig團(tuán)隊(duì)[52,53]通過模糊測試實(shí)現(xiàn)測試用例的具體化,執(zhí)行具體輸入后,檢查程序行為是否符合狀態(tài)模型.

綜上,表7中列出了車聯(lián)網(wǎng)模糊測試中不同論文使用的評估指標(biāo)以及測試的結(jié)果,評估指標(biāo)主要分為4類:1)發(fā)現(xiàn)漏洞數(shù)量;2)代碼覆蓋度;3)狀態(tài)覆蓋度;4)一致性測試.

5 展 望

隨著車聯(lián)網(wǎng)的快速發(fā)展,其安全問題也引起了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注.結(jié)合前文所述的車聯(lián)網(wǎng)模糊測試的難點(diǎn)問題以及相關(guān)文獻(xiàn),本文提出一些針對車聯(lián)網(wǎng)模糊測試的展望.

5.1 模糊測試的加速

車聯(lián)網(wǎng)協(xié)議是網(wǎng)絡(luò)協(xié)議的分支,同樣需要針對網(wǎng)絡(luò)協(xié)議的狀態(tài)空間進(jìn)行模糊測試.

但是車聯(lián)網(wǎng)協(xié)議較多,且較為復(fù)雜,需要測試者深入研究被測協(xié)議的協(xié)議規(guī)范,了解其語法和語義,同時根據(jù)協(xié)議建立狀態(tài)模型.若是手動分析,需要大量的時間和人力.因此,實(shí)現(xiàn)協(xié)議模糊測試的自動化分析是個亟需解決的問題.

近年來,許多研究人員已經(jīng)著手自動化協(xié)議分析的研究,用于降低時間成本,提高測試效率.但該方向仍存在巨大的提升空間.

此外,部分文獻(xiàn)[42]針對某些協(xié)議不需要維護(hù)協(xié)議狀態(tài)機(jī)模型的特點(diǎn),提出并行執(zhí)行模糊測試,即在特定條件下會分裂一個或多個模糊測試器,對被測協(xié)議中的某些目標(biāo)進(jìn)行模糊測試.但該方法目前只能針對單一協(xié)議,需要擴(kuò)展該算法使其能夠兼容不同的車聯(lián)網(wǎng)協(xié)議.其次,因?yàn)樵诙嗑€程程序上執(zhí)行灰盒模糊測試會導(dǎo)致代碼覆蓋率失效,所以該算法在多線程程序上的執(zhí)行效率得不到保證.這些問題都有待解決.

5.2 測試用例的生成與優(yōu)化

針對車聯(lián)網(wǎng)的模糊測試,如何快速生成有效且更能觸發(fā)高覆蓋率的測試用例是一個關(guān)鍵難點(diǎn)問題.

首先,解決測試用例的有效性是成功檢測漏洞的關(guān)鍵,有效的測試用例具有較高的通過率和異常率,即又能通過系統(tǒng)的驗(yàn)證,又能引起大量的系統(tǒng)異常.基于突變的模糊測試往往會盲目的對協(xié)議消息的字段部分進(jìn)行突變,生成的測試用例數(shù)量級十分夸張,但同時也會帶來大量無效模糊數(shù)據(jù),即不能符合協(xié)議規(guī)范的模糊數(shù)據(jù).這些無效模糊數(shù)據(jù)不能通過汽車系統(tǒng)的驗(yàn)證,在運(yùn)行早期就會被拒絕.在車聯(lián)網(wǎng)發(fā)展初期,車載系統(tǒng)的安全措施不夠,該方法仍能進(jìn)行攻擊,隨著車聯(lián)網(wǎng)安全性的不斷提高,大量無效數(shù)據(jù)只會降低測試效率,帶來不必要的時間成本.因此,有不少研究人員針對模糊測試時的種子篩選進(jìn)行優(yōu)化,有針對性地變異字段.部分文獻(xiàn)[36,40]收集日志文件或總線狀態(tài),選擇與異常高度相關(guān)地字段進(jìn)行變異.

另一方面,基于生成的模糊測試根據(jù)網(wǎng)絡(luò)協(xié)議的特征生成測試用例.盡管測試用例可以通過驗(yàn)證,但異常率不高,很難觸發(fā)被測協(xié)議中的不安全功能.除了對協(xié)議的分析需要消耗不少人力成本,被測協(xié)議也需要執(zhí)行大量無效的測試用例.為了優(yōu)化數(shù)據(jù),現(xiàn)有文獻(xiàn)將深度學(xué)習(xí)與模糊測試相結(jié)合,但仍存在改進(jìn)的空間.Zhang等人[41]選取的WGAN-GP模型仍然存在一些不足:訓(xùn)練困難,收斂速度慢.將來,可嘗試修改模型提高測試效率.其次,該模型只針對特定的協(xié)議,缺少普適性,可以嘗試將其應(yīng)用在不同的車聯(lián)網(wǎng)協(xié)議以驗(yàn)證其有效性.

5.3 多樣化測試評估標(biāo)準(zhǔn)

在模糊測試中,目標(biāo)協(xié)議或程序被重復(fù)執(zhí)行,執(zhí)行人員提取狀態(tài)信息,用于改進(jìn)測試的執(zhí)行.在此過程中,存在一個關(guān)鍵問題:如何定義測試的停止標(biāo)準(zhǔn).大部分車聯(lián)網(wǎng)協(xié)議是有狀態(tài)且各狀態(tài)間存在一定轉(zhuǎn)換關(guān)系.單個協(xié)議消息的突變只能觸發(fā)較少的安全漏洞,一系列按照指定順序執(zhí)行的消息才能觸發(fā)大部分安全漏洞,導(dǎo)致協(xié)議處于異常狀態(tài).因此,部分文獻(xiàn)[30]通過FSM或圖遍歷模型將黑盒的協(xié)議測試轉(zhuǎn)換成灰盒協(xié)議測試,利用該狀態(tài)下接受的消息類型來生成消息序列,從而確定測試的進(jìn)度以及何時結(jié)束測試.但是,該方法的有效程度取決于給定的狀態(tài)模型和數(shù)據(jù)模型的有效程度,但這些模型通常都是測試人員對協(xié)議規(guī)范手動分析得來,不僅容易出錯,還需要更新.因此,有部分文獻(xiàn)[52,53]在此基礎(chǔ)上提出自動構(gòu)建狀態(tài)模型,并保留相關(guān)的狀態(tài)覆蓋信息用于指導(dǎo)測試用例的生成.確定停止標(biāo)準(zhǔn)后,部分文獻(xiàn)[47,48]動態(tài)構(gòu)建狀態(tài)模型,同時結(jié)合協(xié)議的特點(diǎn)指導(dǎo)測試的進(jìn)行.但是上述評估標(biāo)準(zhǔn)種類單一,缺少更為有效的停止標(biāo)準(zhǔn).

6 結(jié) 語

近年來,車聯(lián)網(wǎng)的安全性要求逐漸提高,關(guān)于模糊測試在車聯(lián)網(wǎng)中的應(yīng)用也成為了研究熱點(diǎn)話題.本文從測試用例的生成、異常檢測手段和測試評估標(biāo)準(zhǔn)等方面闡述目前車聯(lián)網(wǎng)模糊測試的研究現(xiàn)狀,重點(diǎn)關(guān)注了測試用例的生成和優(yōu)化,最后,給出車聯(lián)網(wǎng)模糊測試的研究展望,為將來的研究工作指明了方向.

猜你喜歡
網(wǎng)絡(luò)協(xié)議測試用例數(shù)據(jù)包
計(jì)算機(jī)網(wǎng)絡(luò)理論下的傳播研究結(jié)構(gòu)模型:Communication一詞的兩種翻譯
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
SmartSniff
一種藍(lán)牙多跳網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)與研究
電子制作(2018年17期)2018-09-28 01:56:52
基于混合遺傳算法的回歸測試用例集最小化研究
基于DPI技術(shù)的語音視頻流量監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
芻議局域網(wǎng)中網(wǎng)絡(luò)協(xié)議的添加與配置
科技資訊(2015年10期)2015-06-29 18:17:23
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
阳原县| 铜梁县| 阳谷县| 庆城县| 高陵县| 咸丰县| 柘荣县| 台中县| 澄城县| 双城市| 嘉义县| 昌平区| 通河县| 湖州市| 自治县| 女性| 石泉县| 延边| 中阳县| 乌海市| 鲜城| 宁强县| 河源市| 怀远县| 大同县| 九龙城区| 台南市| 涪陵区| 来安县| 杂多县| 合江县| 会同县| 大厂| 宜都市| 崇文区| 安陆市| 留坝县| 商南县| 昭通市| 临城县| 特克斯县|