維克多(Vector)為汽車及相關產業的OEM及供應商,提供專業的開放式開發平臺。在安全領域中提供各種安全開發和測試工具,安全軟件組件和安全咨詢服務,應用于嵌入式系統的創建,基礎協議站在MICROSAR的網絡安全部署中居于關鍵地位。
維克多汽車技術(上海)有限公司商業開發經理范科發圍繞《車端網絡安全一站式解決方案》展開演講,以下是演講內容整理:
維克多汽車技術(上海)有限公司商業開發經理范科發
ISO 21434標準下的車端安全測試
今天話題主要聚焦在車內安全通訊和相應的測試技術適用上。比如說已七層架構的以太網為例,需要在每一層之間實現通信,那么每一層都會有潛在的網絡攻擊點,就要求我們對各種各樣的入侵手段進行相應的處理。具體來看,汽車行業已經給出了明確的答案,分別在每一層上都有相應的技術手段,去保證通訊是能夠安全進行,比如SecOC、TLS、IPsec和MACsec等
我的同事剛才已經介紹了設計和實現階段維克多提供的安全方案,我現在要談的是測試端的安全測試,后面會提到如果客戶使用了加密技術,那么從開發到調試的過程中怎么進行解密。安全規范體系ISO 21434里面有定一些方法論,同功能安全ISO 26262測試的規范有一定差異,但大部分還都是類似的。
車端安全測試主要包括涉及安全的功能測試,主要測試與安全相關的函數的正確行為和系統健壯性,是對產品安全性(機制)的測試,后面就是漏洞掃描(用于測試已知漏洞)、模糊測試(嘗試通過向目標系統發送無效的、未定義的或隨機的輸入來發現實現的新漏洞,屬于黑客視角尋找漏洞的首選技術)和滲透測試(對SW+HW系統進行高度個性化和創造性的測試)。
CANoe在SIL/HIL網絡安全測試中的應用
維克多持續在測試領域深耕,在網絡安全引入車載系統中也構建完整的測試解決方案。一般而言,供應商會接觸到大量不同的OEM加解密項目需求,因此選用的工具也需要支持不同的OEM加解密體系,才能夠將后續生產、測試、DV、PV等各個階段銜接起來。工具僅僅捕捉數據是遠遠不夠的,還需要將數據轉變為能夠識別的報文,進而加為開發、測試和生產環節服務。
從工具層面看,OEM這幾年進行通信加解密處理時,有可能通過密鑰,也有可能通過證書,所用到加解密算法、在不同層面使用的加解密技術都不同,尤其在HPC、區域控制器領域。因此,供應商需要在工程中花大量的時間,去提前了解不同加解密技術,最終在開發環境進行調試和測試,這樣看下來是一件很麻煩的事情。
此外,安全性、新鮮值、證書等狀態在開發ECU、量產交付、售后維護這三個階段的狀態也不一樣,這就帶來一個問題:供應商在生產線上部署的工具體系能否支持不同階段的應用?維克多所推出的CANoe作為老牌的工具,也是希望在網絡安全領域更好地滿足工程應用。
圖片來源:維克多
那么如何處理以上的各種問題?維克多提供包含系統化的安全管理工程方案,包含HSM, Secure Boot, SecOC, Secure Diagnostics等,安全管理方案(Security Manager)可以為維克多所有工具和加密材料的來源提供一致的接口,降低nominal函數測試人員的安全性復雜度,屬于高度集成的解決方案(不需要適應現有的工具鏈)。
圖片來源:維克多
此外,維克多CANoe可以針對專門的安全性插件提供所需服務,我們部門主要做的就是將加密報文呈現為明文,支持AUTOSAR標準和OEM所需特定變體的SecOC通信,可以實現消息加密、新鮮值的管理,針對以太網通信安全也能夠做相應的支持。
汽車網絡安全模糊(Fuzzy)測試“利器”:vTESTstudio
接下來是模糊測試,通過CANoe可以將通訊測試系統上的加密報文轉換為明碼,使得后續測試可以依照傳統測試的步驟進行。在做好安全功能和安全通信模塊的測試后,需要去做相應的模糊測試,模糊測試主要有兩個方面的區分:第一是針對信號應用層做模糊,另一方面是基于通訊、基于報文去做模糊。
在模糊測試中比較核心的概念是:模糊測試的時候要監控什么,希望發現什么問題?這一點在行業仍然沒有很明確的定義,有可能去測應用,有可能去測ECU,不同層面、不同工程師關注的不一樣。
接下來講一下什么是模糊測試,模糊測試由測試環境、模糊測試用例生成器和監控數據流三部分組成,需要易用的測試工具來實現各類攻擊的模擬,即自動化生成模糊測試用例,從而為測試系統提供高收益。用于模糊測試的模糊測試器(Fuzzer)分為兩類:基于變異的模糊測試器,通過對已有數據樣本進行變異來創建測試用例;基于生成的模糊測試器,利用被測系統使用的協議或文件建模,基于模型生成輸入并據此創建測試用例。
以上,模糊測試定義中最重要的其實是模糊測試器。簡單來說,只要測試人員在工具體系里面修改模糊測試器,能夠按照算法規則去生成相應的隨機數,給到ECU,就可以定義為模糊測試,只是生成器需要用的數據不同。
維克多的方案復用了HIL和SIL的自動化腳本開發工具vTESTstudio,嵌入模糊測試所要用到的模糊測試引擎,在里面配置相應的測試數據主要是Ethernet和CAN通信的報文層面,Ethernet和CAN傳輸的信號層面、I/O或A2L信號層面等。以DBC里面定義的三個信號為示例,把這三個信號通過vTEST studio中的模糊引擎在工具里面進行相應的配置,每個信號會按照配置的規則生成模糊測試數據。這三個信號在生成的時候,信號之間會按照Sequential、Pairwise、Combinatorial幾種規則進行配置組合,組合之后,測試人員會把這些數據輸入到測試環境和ECU。
在模糊測試這塊,最難的在于測試需要監控觀測項。比如說,有可能一組數據給到ECU,使得對應Task對CPU的占用率很高,如果觀測人員要去監控數據輸入中對CPU的占用率,這個時候怎么做?毫無疑問要在板子里面設置測量函數,要對一定時間內的CPU占用率進行監控,這就需要利用控制器本身的調試口,將其對CPU的占有率在測試過程中傳遞到CANoe中。
除了報文層面能夠做模糊,維克多也能夠做I/O層面的模糊,因為CANoe本身是HIL環境的測試工具。CANoe結合vTESTstudio為嵌入式系統開發工程師提供攻擊者視角的同類攻擊注入,并通過復用已有配置工程數據生成模糊測試用例。CANoe的強大功能有助于強化汽車電子行業Fuzz test器環境:可適配不同OEM,不同網絡協議和數據庫;支持數據記錄、數據回放,并提供詳細的自動化測試報告。
圖片來源:維克多
此外,動態測試方案可覆蓋HIL中的真實ECU和SIL中的虛擬ECU兩種情況,維克多兩種都可以提供,只不過在真實板測需要提前插樁,通過調試口拿數據,維克多在工具里面給定的每一條測試率都可以在執行過程中拿到Coverage。
接下來講一下CANoe做模糊測試的優勢,簡單來說,測試人員可以直接使用研發部門所開發的CANoe工程,在上面嵌入模糊測試器,進而直接進行相應的模糊測試。
通常模糊測試引擎是基于“黑盒”測試技術,然而在汽車電子行業開發驗證系統中復用已有的配置工程(如網絡通信協議和控制器邏輯狀態功能)及工具可實現“白盒”測試技術。此外,當軟件功能發生變更時,可結合持續集成環境實現驗證的快速迭代。
因為CANoe的存在,維克多更多會使用灰盒模糊測試,黑盒是對于通信報文做模糊測試,利用已有數據庫,利用其內部的信號和變量,直接操縱報文中傳輸的信號,從而更加高效地得出結果,因為灰盒的模糊測試效率比“暴力”黑盒的方式更能確定系統存在的問題。
滲透測試、漏洞掃描和診斷測試
模糊測試的下一個環節是滲透測試,一般OEM會委托指定的機構作滲透測試,在滲透測試里面用的最多的技術手段就是剛才講的模糊測試,測試人員會通過模糊的方式排查ECU的漏洞,也是有白盒、灰盒、黑盒的不同方式,維克托咨詢部門為整車廠和tier1在ECU和車輛層面提供獨立的滲透測試和進一步的操作保證。基于灰盒方法,適合增量回歸測試,比傳統的滲透測試更高效。
圖片來源:維克多
最后講一下漏洞掃描和診斷測試,漏洞掃描主要是針對已知進行測試,需要提前積累漏洞庫,也就是對代碼規則,行業規則有一個提前的把握,這一方面維克多已經有多年的行業積累。
隨著車輛中ECU復雜度的增加,診斷測試的測試范圍以及完成診斷功能驗證需要花費的時間和精力也在增加,盡管診斷測試的范圍不斷擴大,但創建和執行測試用例的時間和人力投入相對穩定。基于CANoe.DiVa的診斷自動化測試方案顯著減少了診斷驗證所用的時間和人力投入,同時極大地增加了測試的廣度和深度。如果每個ECU都有CDD或ODX格式的診斷數據庫,那么從診斷需求規范到全面的自動化協議測試只需一小步,僅需很少的準備工作就可以檢測到協議錯誤。CANoe.DiVa的測試后處理能力包括:分類、過濾測試報告,便于獲取期望的測試結果;鏈接失敗的測試用例與測試數據流(Trace);為各個測試結果添加注釋,便于對錯誤以及錯誤原因進行分類。記錄糾正措施,控制故障排除;將測試解決方案鏈接到現有測試數據管理系統或需求管理系統,方便集成到現有流程中。當前,全球眾多整車廠都在采用CANoe.DiVa實現診斷測試。
在安全測試服務方面,維克多不僅僅提供工具咨詢,也提供安全測試系統搭建和改造升級服務。
圖片來源:維克多
(以上內容來自維克多汽車技術(上海)有限公司商業開發經理范科發于2022年8月25日由蓋世汽車主辦的2022中國汽車信息安全與功能安全大會發表的《車端網絡安全一站式解決方案》主題演講。)
來源:蓋世汽車
作者:薈薈
本文地址:http://www.155ck.com/news/qiye/185566
以上內容轉載自蓋世汽車,目的在于傳播更多信息,如有侵僅請聯系admin#d1ev.com(#替換成@)刪除,轉載內容并不代表第一電動網(www.155ck.com)立場。
文中圖片源自互聯網,如有侵權請聯系admin#d1ev.com(#替換成@)刪除。