01
關(guān)于SOME/IP和Fuzzing
近年來,汽車行業(yè)對(duì)于連接車輛的更多數(shù)據(jù)通信的需求不斷增加。更高的數(shù)據(jù)交換量要求底層通信協(xié)議具備更高的帶寬,這對(duì)車輛中廣泛使用的現(xiàn)有通信協(xié)議如CAN、LIN、FlexRay等構(gòu)成了挑戰(zhàn)?,F(xiàn)有協(xié)議的限制使得需要采用新的通信協(xié)議來支持汽車行業(yè)的新趨勢(shì),而汽車以太網(wǎng)則是其中有前途的解決方案之一。
SOME/IP是一種輕量級(jí)協(xié)議,用于簡化進(jìn)程/設(shè)備間的通信,支持過程調(diào)用和事件通知。由于其簡單和高效的特點(diǎn),SOME/IP被越來越多的汽車設(shè)備采用。隨著SOME/IP的出現(xiàn),SOME/IP應(yīng)用程序的漏洞檢測(cè)變得至關(guān)重要。
02
SOME/IP協(xié)議概述
汽車以太網(wǎng)上的眾多上層協(xié)議中,SOME/IP 是一種專門針對(duì)汽車的協(xié)議,通過 UDP 協(xié)議棧提供基于服務(wù)的通信,使不同車輛組件之間進(jìn)行基于服務(wù)的通信成為可能,例如在信息娛樂系統(tǒng)和發(fā)動(dòng)機(jī)控制單元之間的通信。SOME/IP 的關(guān)鍵特點(diǎn)之一是其高效地使用單播和組播通信。這使得在組件之間發(fā)送控制消息時(shí),網(wǎng)絡(luò)不會(huì)被不必要的流量擁塞。除此之外,SOME/IP 協(xié)議還包括遠(yuǎn)程過程調(diào)用(RPC)、服務(wù)發(fā)現(xiàn)(SD)、服務(wù)事件的發(fā)布/訂閱以及 UDP 消息的分段等功能 。這些功能是通過數(shù)據(jù)序列化實(shí)現(xiàn)的,其中 SOME/IP 消息頭被預(yù)置到消息的有效載荷前面。消息頭包含以下字段:
1.MessageID:標(biāo)識(shí)應(yīng)用層中的 RPC 調(diào)用或事件,其中包含 2 個(gè)子字段 ServiceID 和 MethodID;
2.Length:指示從 RequestID 到 SOME/IP 消息結(jié)尾的字節(jié)數(shù);
3.RequestID:區(qū)分用于同一事件的并行使用的數(shù)據(jù)包,其中包含 2 個(gè)子字段 ClientID 和 SessionID;
4.Protocol Version:標(biāo)識(shí)使用的 SOME/IP 頭部格式;
5.Interface Version :使用的 SOME/IP 協(xié)議的主要版本
6.Message Type :用于區(qū)分 SOME/IP 協(xié)議中的不同消息類型
7.Return Code :指示請(qǐng)求是否已成功處理。
SOME/IP協(xié)議消息頭格式 圖1
03
? 灰盒模糊測(cè)試
在過去的十年中,模糊測(cè)試已經(jīng)展示了在漏洞檢測(cè)方面的潛力,并被用于發(fā)現(xiàn)開源和閉源軟件中的數(shù)千個(gè)漏洞。此外,研究人員也提出了新的模糊測(cè)試技術(shù)來模糊不同的協(xié)議實(shí)現(xiàn),如FTP或RTSP。然而,與常規(guī)以太網(wǎng)上運(yùn)行的FTP或其他協(xié)議不同,汽車以太網(wǎng)上的SOME/IP和其他汽車以太網(wǎng)協(xié)議通常是簡單直接的。這是因?yàn)檫\(yùn)行這些協(xié)議的設(shè)備的計(jì)算能力通常是有限的。一方面,協(xié)議設(shè)計(jì)的簡單性意味著模糊測(cè)試器不需要為協(xié)議維護(hù)狀態(tài)機(jī)模型,如AFLnet。另一方面,計(jì)算能力的限制意味著我們需要尋求在并行運(yùn)行多個(gè)模糊測(cè)試器以提高模糊測(cè)試效率。
灰盒模糊測(cè)試是一種廣泛用于檢測(cè)真實(shí)世界程序漏洞的方法。近年來,像AFL、libFuzzer等灰盒模糊測(cè)試工具已經(jīng)幫助發(fā)現(xiàn)了數(shù)千個(gè)漏洞?;液心:郎y(cè)試的基本思想是應(yīng)用一些預(yù)定義的生成和變異策略來產(chǎn)生輸入,然后通過觀察受監(jiān)視的執(zhí)行過程中的安全問題來發(fā)現(xiàn)錯(cuò)誤。
下面是一個(gè)典型的灰盒模糊測(cè)試工具的工作流程:
1. 定義輸入生成和變異策略:模糊測(cè)試工具應(yīng)用一組預(yù)定義的輸入生成和變異策略來生成輸入,這些輸入會(huì)被提供給目標(biāo)程序。這些策略可以包括翻轉(zhuǎn)、替換、添加/減去位、字節(jié)或塊,或者基于輸入結(jié)構(gòu)生成輸入。
2. 目標(biāo)程序的插裝:目標(biāo)程序通常會(huì)插入特定的代碼段,以在模糊測(cè)試期間提供覆蓋反饋。這些反饋有助于根據(jù)特定文件輸入評(píng)估程序執(zhí)行。
3. 監(jiān)控執(zhí)行:模糊測(cè)試工具會(huì)監(jiān)控執(zhí)行過程,以確定是否觀察到任何安全違規(guī)??梢允褂?a target="_blank">AddressSanitizer、MemorySanitizer等工具來幫助識(shí)別這些違規(guī)。例如內(nèi)存使用后釋放、緩沖區(qū)溢出等安全違規(guī)通常表示實(shí)現(xiàn)缺陷,這可能會(huì)導(dǎo)致漏洞,如內(nèi)存損壞、信息泄露等。
4. 發(fā)現(xiàn)漏洞:如果觸發(fā)了違規(guī),相應(yīng)的文件輸入將被用作漏洞的證明。
5. 增加覆蓋率:如果模糊測(cè)試工具發(fā)現(xiàn)當(dāng)前輸入有助于增加覆蓋率,則會(huì)用于后續(xù)變異。
6. fork-exec模型:由于執(zhí)行會(huì)被重復(fù)多次且由模糊測(cè)試工具進(jìn)行控制,因此可采用fork-exec模型來減少加載目標(biāo)程序公共序言代碼段的開銷,并提高整體模糊測(cè)試性能。
灰盒模糊測(cè)試流程 圖2
04
如何有效Fuzzing SOME/IP
在現(xiàn)有的方法中,每個(gè)模糊測(cè)試器實(shí)例將管理和運(yùn)行唯一的測(cè)試目標(biāo)實(shí)例。然而,如果測(cè)試目標(biāo)需要某些獨(dú)特的資源(例如端口,鎖定文件等)才能執(zhí)行,則測(cè)試目標(biāo)只能在每個(gè)設(shè)備上運(yùn)行一個(gè)實(shí)例。在SOME/IP中,服務(wù)器應(yīng)用程序通常在每個(gè)設(shè)備上運(yùn)行一個(gè)實(shí)例,這使得進(jìn)行并行模糊測(cè)試變得具有挑戰(zhàn)性。
針對(duì)這些挑戰(zhàn),我們介紹一個(gè)針對(duì)SOME/IP應(yīng)用程序的灰盒模糊測(cè)試工具-Ori。Ori具有兩個(gè)關(guān)鍵創(chuàng)新點(diǎn):附加模糊測(cè)試模式和結(jié)構(gòu)變異。附加模糊測(cè)試模式使Ori能夠高效地測(cè)試服務(wù)器程序,而結(jié)構(gòu)變異使Ori能夠有效地生成有效的SOME/IP數(shù)據(jù)包以到達(dá)目標(biāo)程序的深層路徑。通過評(píng)估表明,Ori可以準(zhǔn)確高效地檢測(cè)SOME/IP應(yīng)用程序中的漏洞。
SOME/IP模糊測(cè)試的常規(guī)設(shè)計(jì)步驟
1. 選擇fuzz工具:根據(jù)需要,選擇一個(gè)適合的fuzz工具進(jìn)行SOME/IP模糊測(cè)試,如AFL、libFuzzer或Ori等。
2. 選擇目標(biāo)程序:選擇需要進(jìn)行SOME/IP模糊測(cè)試的目標(biāo)程序,確保其符合SOME/IP協(xié)議規(guī)范,并且能夠接受并處理來自模糊測(cè)試的數(shù)據(jù)包。
3. 準(zhǔn)備seed文件:生成或準(zhǔn)備一個(gè)符合SOME/IP協(xié)議規(guī)范的數(shù)據(jù)包作為初始化的樣本文件。
4. 配置fuzz工具參數(shù):根據(jù)需要,配置fuzz工具的參數(shù),如超時(shí)時(shí)間、內(nèi)存限制、CPU核心數(shù)等。
5. 啟動(dòng)模糊測(cè)試:將seed文件作為輸入文件,啟動(dòng)fuzz工具進(jìn)行模糊測(cè)試。fuzz工具將在seed文件的基礎(chǔ)上生成大量隨機(jī)變異的數(shù)據(jù)包,并將其發(fā)送到目標(biāo)程序進(jìn)行測(cè)試。
6. 分析測(cè)試結(jié)果:當(dāng)模糊測(cè)試結(jié)束后,需要對(duì)測(cè)試結(jié)果進(jìn)行分析,包括生成的數(shù)據(jù)包數(shù)量、覆蓋率、崩潰數(shù)等指標(biāo)。通過分析測(cè)試結(jié)果,可以發(fā)現(xiàn)目標(biāo)程序的漏洞,從而進(jìn)行修復(fù)。
用Ori實(shí)現(xiàn)SOME/IP變異包方法
Ori是一種基于變異的覆蓋引導(dǎo)灰盒模糊測(cè)試的工具,它通過在目標(biāo)程序中插入代碼來收集執(zhí)行反饋以幫助模糊測(cè)試。是否可借助Ori的兩個(gè)關(guān)鍵特性進(jìn)行SOME/IP協(xié)議的變異包實(shí)現(xiàn)?
第一個(gè)特性是附加模式
當(dāng)我們使用Ori進(jìn)行fuzzing時(shí),fuzzer會(huì)附加到被測(cè)試的進(jìn)程上。換句話說,我們首先啟動(dòng)被測(cè)試的進(jìn)程,然后運(yùn)行fuzzer與被測(cè)試的進(jìn)程進(jìn)行通信并執(zhí)行fuzzing。這與以前的fuzzer情況不同,以前的fuzzer負(fù)責(zé)啟動(dòng)被測(cè)試的進(jìn)程和管理被測(cè)試進(jìn)程的生命周期。
整個(gè)過程可以分為兩個(gè)步驟:fuzzing設(shè)置步驟和多附加fuzzing步驟。
1)在fuzzing設(shè)置步驟中,儀表化的目標(biāo)程序?qū)⒃谔囟l件下分叉出一個(gè)fuzzing服務(wù)器。fuzzing服務(wù)器是從儀表化的原始進(jìn)程分叉出來的,并將循環(huán)等待傳入的fuzzing請(qǐng)求。
2)成功設(shè)置后,我們可以運(yùn)行一個(gè)或多個(gè)前端fuzzer。前端fuzzer將與fuzzing服務(wù)器通信,并發(fā)送附加請(qǐng)求。一旦fuzzing服務(wù)器接收到請(qǐng)求,它將分叉出一個(gè)fuzzing目標(biāo)進(jìn)程,該進(jìn)程與前端fuzzer一起執(zhí)行所有剩余的fuzzing流程。
總的來說,附加模式消除了加載特定SOME/IP實(shí)現(xiàn)的前導(dǎo)代碼段的多余執(zhí)行。通過這個(gè)特性,Ori通過專注于實(shí)際協(xié)議邏輯來提高整體性能,并提供了調(diào)用多個(gè)fuzzing實(shí)例進(jìn)行并行fuzzing的能力。
第二個(gè)特性是Ori支持種子輸入的兩個(gè)變異級(jí)別
SOME/IP協(xié)議的數(shù)據(jù)包包含兩個(gè)部分:正文和頭部。相應(yīng)地,Ori使用不同的變異算子來處理不同的部分。通過變異數(shù)據(jù)包的正文部分,Ori可以測(cè)試SOME/IP服務(wù)器的核心邏輯。通過變異數(shù)據(jù)包的頭部部分,Ori可以測(cè)試SOME/IP協(xié)議的實(shí)現(xiàn)。
對(duì)于數(shù)據(jù)包的正文部分,Ori使用類似于AFL的樸素隨機(jī)變異算子,如位/字節(jié)翻轉(zhuǎn)、替換/添加/刪除隨機(jī)塊等。對(duì)于數(shù)據(jù)包的頭部部分,Ori首先識(shí)別頭部的不同字段,然后根據(jù)字段的類型應(yīng)用變異。值得注意的是,Ori不會(huì)變異ServiceID、ClientID、Protocol Version和Interface Version字段。這是因?yàn)樽儺愡@些字段不會(huì)有助于覆蓋測(cè)試目標(biāo)的關(guān)鍵邏輯。例如,如果突變數(shù)據(jù)包的ServiceID字段,并且無法匹配測(cè)試目標(biāo)提供的服務(wù),則數(shù)據(jù)包將立即被拒絕,測(cè)試目標(biāo)的更深層邏輯將不會(huì)被執(zhí)行。了解此特點(diǎn)之后,Ori可以生成可以到達(dá)目標(biāo)程序的深層邏輯的數(shù)據(jù)包,并且可以同時(shí)測(cè)試協(xié)議框架和應(yīng)用程序。
Ori的架構(gòu)圖3
05
Fuzzing SOME/IP的流程設(shè)計(jì)
Ori包括一個(gè)前端fuzzer和后端目標(biāo),兩者之間詳細(xì)的fuzz流程如圖4所示,其中包含兩個(gè)階段:準(zhǔn)備階段和測(cè)試階段。
1)準(zhǔn)備階段
在進(jìn)行SOME/IP模糊測(cè)試之前,我們需要進(jìn)行準(zhǔn)備階段,以確保測(cè)試目標(biāo)的可用性和測(cè)試環(huán)境的穩(wěn)定性。以下是詳細(xì)的步驟:
1. 啟動(dòng)目標(biāo)服務(wù)器程序并進(jìn)入forkserver狀態(tài):首先,我們需要啟動(dòng)目標(biāo)服務(wù)器程序,并將其設(shè)置為forkserver模式。這樣,目標(biāo)程序可以與fuzzer進(jìn)行通信,并接收來自fuzzer的測(cè)試數(shù)據(jù)。
2. 啟動(dòng)fuzzer:接下來,我們需要啟動(dòng)fuzzer,以準(zhǔn)備開始模糊測(cè)試。在啟動(dòng)fuzzer之前,我們需要設(shè)置fuzzing環(huán)境,如共享內(nèi)存、輸出目錄等。
3. 檢查目標(biāo)程序的forkserver狀態(tài):fuzzer將嘗試聯(lián)系目標(biāo)程序,以檢查其是否已準(zhǔn)備好與fuzzer通信。如果目標(biāo)程序已經(jīng)處于forkserver狀態(tài),則它將通知fuzzer,并準(zhǔn)備接收來自fuzzer的測(cè)試數(shù)據(jù)。
4. 啟動(dòng)主fuzzing循環(huán):如果目標(biāo)程序已準(zhǔn)備好與fuzzer通信,則fuzzer將啟動(dòng)主fuzzing循環(huán)。在主循環(huán)中,fuzzer將生成大量隨機(jī)變異的數(shù)據(jù)包,并將其發(fā)送到目標(biāo)程序進(jìn)行測(cè)試。如果目標(biāo)程序崩潰或產(chǎn)生其他異常行為,則表明存在漏洞,需要進(jìn)行修復(fù)。
5. 結(jié)束fuzzing:當(dāng)fuzzing循環(huán)結(jié)束時(shí),fuzzer將生成測(cè)試報(bào)告,包括生成的數(shù)據(jù)包數(shù)量、覆蓋率、崩潰數(shù)等指標(biāo)。通過分析測(cè)試結(jié)果,我們可以發(fā)現(xiàn)目標(biāo)程序的漏洞,并進(jìn)行修復(fù)。
2)測(cè)試階段
Fuzzer將生成數(shù)據(jù)包來測(cè)試目標(biāo)服務(wù)器并處理測(cè)試結(jié)果。首先,fuzzer將向forkserver發(fā)送一個(gè)請(qǐng)求,要求它fork一個(gè)新實(shí)例進(jìn)行測(cè)試。這個(gè)測(cè)試實(shí)例從forkserver邏輯被插入的點(diǎn)開始執(zhí)行,因此測(cè)試實(shí)例可以跳過與測(cè)試無關(guān)的邏輯執(zhí)行。測(cè)試實(shí)例開始執(zhí)行后,它會(huì)通知fuzzer繼續(xù)執(zhí)行。然后,fuzzer將使用結(jié)構(gòu)變異生成一個(gè)新的SOME/IP數(shù)據(jù)包,并將其發(fā)送到測(cè)試實(shí)例。變異的數(shù)據(jù)包頭部有助于測(cè)試數(shù)據(jù)包解析組件,而變異的數(shù)據(jù)包主體有助于測(cè)試服務(wù)器的業(yè)務(wù)邏輯。在測(cè)試實(shí)例執(zhí)行完成后,forkserver將收集其退出狀態(tài)和執(zhí)行覆蓋信息,并將收集到的數(shù)據(jù)向fuzzer報(bào)告。
在處理測(cè)試結(jié)果時(shí),Ori與其他基于覆蓋率的灰盒fuzzer類似。如果數(shù)據(jù)包導(dǎo)致測(cè)試實(shí)例崩潰,fuzzer將保留它以供將來分析。如果數(shù)據(jù)包可以增加代碼覆蓋率,fuzzer將保留它作為生成新測(cè)試用例的種子。這標(biāo)志著一輪測(cè)試的結(jié)束。如果用戶不停止fuzzer或目標(biāo)服務(wù)器,則整個(gè)過程將繼續(xù)進(jìn)行下一輪測(cè)試。
Ori詳細(xì)fuzz流程 圖4
06
Fuzzing SOME/IP的具體實(shí)現(xiàn)與評(píng)估結(jié)果
1. 實(shí)現(xiàn)邏輯
Ori是一個(gè)工具,由兩個(gè)主要組件組成:代碼儀器和模糊器。代碼儀器構(gòu)建在AFL的LLVM模式之上,使用定制的LLVM傳遞對(duì)目標(biāo)程序進(jìn)行儀器化。盡管儀器化繼承了afl-clang-fast的邏輯來收集代碼覆蓋信息,但其forkserver注入部分被修改以適應(yīng)模糊的額外模式邏輯。這個(gè)修改涉及約200行C++代碼。Ori的模糊器使用約400行Python代碼實(shí)現(xiàn),并依賴于Scapy庫來執(zhí)行結(jié)構(gòu)變異。
2. 驗(yàn)證評(píng)估
1)評(píng)估目標(biāo)
目前,唯一的開源SOME/IP協(xié)議框架是GENIVI/vsomeip 。
> GENIVI/vsomeip是一個(gè)基于C++語言的開源SOME/IP協(xié)議實(shí)現(xiàn)框架,主要用于汽車電子領(lǐng)域的通信。SOME/IP是一種輕量級(jí)的通信協(xié)議,可以在汽車電子中實(shí)現(xiàn)多種通信方式,如消息傳遞、遠(yuǎn)程過程調(diào)用和發(fā)布/訂閱等。該框架實(shí)現(xiàn)了SOME/IP協(xié)議的所有特性,包括服務(wù)注冊(cè)、發(fā)現(xiàn)、發(fā)布、訂閱和取消訂閱等。它提供了一個(gè)高度可擴(kuò)展和易于使用的API,可幫助開發(fā)人員輕松實(shí)現(xiàn)復(fù)雜的汽車電子應(yīng)用程序。GENIVI/vsomeip框架還包括一組工具,如vsomeip-sd、vsomeip-jsonconfig和vsomeip-log等,用于簡化SOME/IP應(yīng)用程序的開發(fā)和測(cè)試。此外,GENIVI/vsomeip框架也可以與其他GENIVI項(xiàng)目進(jìn)行集成,如DBus和CommonAPI等。
因此,以下描述的測(cè)試目標(biāo)基于GENIVI/vsomeip示例程序的修改版本,所有當(dāng)前的實(shí)驗(yàn)都基于該程序。該程序是一個(gè)SOME/IP服務(wù)器,接受客戶端的消息并發(fā)送回"Hello "加上消息內(nèi)容作為反饋。我們?cè)谑纠绦蛑刑砑恿艘粋€(gè)崩潰點(diǎn),以便如果客戶端發(fā)送以小寫字母'a'開頭的消息,程序?qū)⒈罎ⅰJ纠绦虻男薷娜鐖D5所示,代碼行6-14。
GENIVI/vsomeip修改程序示例 圖5
2)可附加模式模糊測(cè)試
附加模式模糊測(cè)試允許多個(gè)模糊器實(shí)例并行模糊測(cè)試,而不會(huì)受到端口占用的限制。此外,Ori在初始化主要上下文后插入forkserver邏輯,從而允許測(cè)試實(shí)例跳過服務(wù)器設(shè)置過程,顯著提高了測(cè)試速度。實(shí)驗(yàn)結(jié)果表明,Ori比現(xiàn)有工具具有更快的執(zhí)行速度,每個(gè)測(cè)試用例只需要1-2秒,而沒有延遲forkserver插入的AFL至少需要4秒。這些結(jié)果表明,Ori是一個(gè)高效、靈活和可擴(kuò)展的模糊測(cè)試工具。
Ori相比于現(xiàn)有的工具,具有更快的執(zhí)行速度和更高的有效性。結(jié)構(gòu)變異的應(yīng)用使得Ori可以在復(fù)雜的協(xié)議中生成正確的有效載荷和報(bào)頭,并顯著提高了Ori的有效性。Ori是一個(gè)非常有用的工具,可以在軟件開發(fā)中提高測(cè)試的效率和質(zhì)量。
3)結(jié)構(gòu)變異有效性高
結(jié)構(gòu)變異可以幫助Ori在生成復(fù)雜數(shù)據(jù)包頭時(shí),提高其有效性,使其可以測(cè)試目標(biāo)服務(wù)器。通過比較,我們可以看出AFL幾乎無法生成像SOME/IP數(shù)據(jù)包頭這樣復(fù)雜的結(jié)構(gòu),因此即使它可以生成正確的有效載荷,也無法成功將數(shù)據(jù)包傳遞到測(cè)試目標(biāo),這限制了AFL在這種場(chǎng)景下的有效性。而Ori使用結(jié)構(gòu)變異的方法可以生成符合SOME/IP協(xié)議要求的數(shù)據(jù)包頭,提高了其有效性和可用性。
這種實(shí)驗(yàn)結(jié)果可以啟示我們,在實(shí)際應(yīng)用中,如果需要對(duì)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)進(jìn)行測(cè)試,可以考慮使用結(jié)構(gòu)變異的方法來生成測(cè)試用例,以提高測(cè)試的有效性。此外,結(jié)構(gòu)變異的應(yīng)用范圍不僅限于模糊測(cè)試,還可以用于其他領(lǐng)域,例如軟件漏洞挖掘和惡意軟件分析等。因此,結(jié)構(gòu)變異作為一種有效的技術(shù)手段,可以在軟件測(cè)試和安全領(lǐng)域中發(fā)揮重要作用。
木衛(wèi)四威脅分析平臺(tái)S3一直在不斷探索智能汽車協(xié)議異常檢測(cè)的方法,通過不斷迭代和擴(kuò)展S3的智能分析能力,實(shí)現(xiàn)更加精準(zhǔn)的檢測(cè)。其中,通過Fuzzing技術(shù)可以有效發(fā)現(xiàn)協(xié)議實(shí)現(xiàn)中未知的異常行為。以SOME/IP協(xié)議為例,S3可以通過Fuzzing來探索協(xié)議的特征結(jié)構(gòu),例如SOME/IP數(shù)據(jù)包頭、有效負(fù)載等,從而更好地理解協(xié)議的行為和發(fā)現(xiàn)潛在的漏洞。通過不斷改進(jìn)和優(yōu)化Fuzzing技術(shù),S3可以在協(xié)議異常檢測(cè)方面實(shí)現(xiàn)更加準(zhǔn)確和高效的表現(xiàn)。
參考文獻(xiàn)
1. A Greybox Fuzzer for SOME/IP Protocols in Automotive Ethernet:
[https://ieeexplore.ieee.org/abstract/document/9359273/]
2.Genevivsome/ip.[Online].Available: [https://github.com/]GENIVI/vsomeip
3. SOME/IP Protocol Specification, [https://www.autosar.org/fileadmin/user_upload/standards/foundation/19-11/AUTOSAR_PRS_SOMEIPProtocol.pdf]11/AUTOSAR_PRS_SOMEIPProtocol.pdf), AUTOSAR Std.,Rev. R19-11, Nov. 2019.
4.LLVM,“l(fā)ibFuzzer,”2015.[Online].Available: [https://llvm.org/docs/LibFuzzer.html]
編輯:黃飛
?
評(píng)論
查看更多