Mazda車輛資訊娛樂系統(IVI),特別是Mazda Connect連線控制模組(Connectivity Master Unit, CMU),被趨勢科技零日計畫(ZDI)研究人員發現存在多個零日漏洞。此模組是由美國福特公司獨立出來的跨國汽車零部件製造商偉世通(Visteon)所製造,並搭載74.00.324A最新版本軟體,最初由Johnson Controls Inc.開發。本文希望介紹這些漏洞的成因、緩解方式以及建議維繫車輛安全的最好實踐方式。
下列是被發現的漏洞概覽:
•CVE-2024-8355:SQL注入漏洞,由於輸入驗證不充分而導致的SQL注入漏洞,可能允許攻擊者執行任意SQL查詢。
•CVE-2024-8359、CVE-2024-8360、以及CVE-2024-8358:命令注入漏洞,因使用者提供的路徑與檔案名稱未經適當過濾,可能導致允許攻擊者執行未經授權的作業系統(OS)命令。
•CVE-2024-8357:缺少安全啟動信任鏈,導致應用系統單晶片(SoC)無法驗證開機過程的完整性,使系統易受篡改攻擊。
•CVE-2024-8356:未驗證更新套件,因為驗證IP微控制器單元(VIP MCU)韌體不會對更新強制執行代碼簽名,而可能允許安裝未簽名的韌體。
這六個漏洞仍未修補,且大多數可透過USB連接利用,讓攻擊者獲得裝置的Root級存取權。這種情況帶來了巨大的風險,因為任何能夠實際存取車輛IVI系統的人都可能利用這些漏洞來攻擊車輛的IVI系統。
DeviceManager iAP中的SQL注入漏洞
CVE-2024-8355是第一個發現的漏洞,這是由於處理Apple裝置序號時資料沒有適當地過濾處理所造成的。當Apple裝置連接到IVI系統時,其序號會透過介面附件協定(iAP)檢索,並在未經適當清理的情況下直接用於SQL查詢,以建立注入點。攻擊者可以透過欺騙Apple裝置並透過iAP序號注入任意SQL指令來利用此漏洞,而獲取Root權限來操縱資料庫或執行程式碼。
緩解措施:
•使用參數化查詢,而不是直接連接使用者輸入。
•實施適當的輸入驗證以防止執行惡意輸入。
指令注入漏洞
指令注入漏洞CVE-2024-8359、CVE-2024-8360與CVE-2024-8358,源自於軟體更新過程中多個函數對使用者提供的輸入處理不當,系統直接將輸入內容傳遞給指令行工具,導致攻擊者可以插入惡意OS指令,進一步控制系統。例如:
•CVE-2024-8359(ZDI-24-1191):REFLASH_DDU_FindFile命令注入
•CVE-2024-8360(ZDI-24-1192):REFLASH_DDU_ExtractFile命令注入
•CVE-2024-8358(ZDI-24-1190):UPDATES_ExtractFile命令注入
這三個漏洞共同的根本原因是受影響的函數將檔案路徑和檔案名稱等輸入直接傳遞給命令列工具,而沒有進行充分的清除。這種方法包括使用system()或snprintf()等系統呼叫而未經輸入驗證,這允許攻擊者注入任意作業系統命令,導致整個系統被入侵。
緩解措施:
•避免使用未清理輸入的系統呼叫。相反,依靠安全的API函數來確保安全的命令執行。
•強制執行嚴格的輸入驗證,以確保使用者提供的路徑和檔案名稱符合預期的格式,阻止特殊字元或shell命令。
•對與軟體更新相關的所有程式碼路徑進行全面的安全審查,特別是涉及檔案操作的部分。
缺少安全啟動信任鏈
CVE-2024-8357指出應用SoC在引導過程中未能驗證引導程式碼(Bootstrap Code)的完整性。這種疏忽使得具有程式碼執行權限的攻擊者可以操縱啟動過程,獲得持久控制權並修改系統設定。
緩解措施:
•實施安全啟動機制,透過加密驗證來確保驗證引導程式碼和啟動過程的所有後續階段。
•利用基於硬體的信任根(Root of Trust)來防止未經授權的程式碼在開機過程中執行。
缺乏更新套件驗證
CVE-2024-8356指的是VIP MCU未能強制執行韌體更新的代碼簽署。這使得攻擊者可以上傳修改後的韌體,透過授予車輛CAN總線網路未經授權的控制權,進一步影響車輛安全。
緩解措施:
•對VIP MCU上的所有韌體更新強制執行代碼簽署。
•將加密簽章驗證機制整合到更新過程中,確保僅能安裝經過驗證的更新。
安全最佳實踐
ZDI向偉世通Visteon報告了這些漏洞,並根據他們的披露政策通知供應商計劃將其作為零日漏洞發布,該政策允許在指定時間範圍內未收到回復的情況下進行披露。
而以下推薦的最佳實踐方式不僅旨在解決漏洞,還應融入一級供應商(Tier 1 Supplier)和汽車製造商(OEM)的軟體開發流程中,以加強其網路安全立場:
•實施安全編碼實務。使用輸入清理和參數化查詢來防止注入攻擊,並避免直接使用使用者提供的輸入呼叫系統呼叫。
•加強軟體更新流程。對所有更新包強制進行加密驗證,並要求對韌體元件進行代碼簽名,以防止未經授權的修改。
•增強啟動安全性。導入具有信任根的安全啟動程序來驗證所有啟動階段的完整性,確保僅載入經過驗證的程式碼。
•定期進行安全審查。對硬體和軟體組件進行全面的安全評估,包括程式碼審查和滲透測試,以識別和緩解漏洞。
•監測汽車改裝社群的安全討論。關注車輛改裝論壇和社群,以偵測常見的漏洞和潛在的漏洞。主動收集情報有助於應對新出現的威脅並改善緩解策略。
•建立漏洞賞金計畫。啟動正式的漏洞賞金計劃,鼓勵獨立安全研究人員報告漏洞。這種主動方法可以幫助在安全問題被利用之前識別並解決它們。
本文提到的這些漏洞告訴讀者一個訊息,即使是成熟的汽車產品也可能存在因程式錯誤和基本設計疏忽而導致的嚴重缺陷。對車廠以及其供應商來說,優先考慮安全開發實務、實施強大的輸入驗證以及執行全面的更新驗證對於維護IVI系統的完整性和安全性至關重要。這些問題凸顯了整體汽車網路安全的必要性,需要解決軟體和硬體組件的問題,以建立更具彈性、更安全的汽車生態系統。
(本文由VicOne車用資安研究團隊提供)