2023年4月20-21日蓋世汽車與上海市國際展覽(集團)有限公司(SIEC)共同主辦第二屆中國汽車信息安全與數據安全大會上,新思科技高級安全架構師許焱表示,汽車軟件安全面臨的挑戰有五大挑戰:供應鏈安全挑戰大;E/E架構不斷調整;軟件開發和部署更加復雜;攻擊面劇增,安全漏洞層出;TTM加速,迭代加速。

汽車行業數據顯示,汽車行業開源軟件代碼庫,其中60%都具有代碼漏洞,高出整體行業水平。通過SCA進行深度掃描分析,準確識別風險,針對不同的項目來源,為第三方制定供應鏈軟件安全解決方案。而企業自有代碼安全實踐,把專業的SAST工具融入流程,才能提高軟件開發的代碼和質量,同時保證開發效率。


(資料圖片僅供參考)

許焱 | 新思科技高級安全架構師

以下為演講內容整理:

智能汽車時代代碼安全的嚴峻性

從三四十年前只有一部分發動機控制單元的代碼,到現在的ADAS、智能座艙、車身控制、V2X等。單一的架構也在向多域融合的方向演進,這是軟件量的提升?,F在的智能網聯汽車對于汽車的算力也提出了更多的要求,在做高算力比拼的背后,其實也是軟硬件協同的一個結果。

此前某芯片廠商在發布高算力芯片時曾提出,依靠軟件架構的改進來大幅提升了算力,這可以說是軟件質的變化。還有一種可能,是軟件直接和錢掛鉤。

比較典型的例子是特斯拉,在選購時它的高級智能輔助駕駛系統是收費的軟件包,并且價格也在不斷上漲,與其車本身降價形成鮮明對比。21年時,特斯拉軟件部分的收入占到整體營收的6%,并且這個比例還在不斷的提升。但也要看到軟件與汽車聯網的需求雖然大增,但安全方面的攻擊也在增加。

下圖是統計的軟件的攻擊面,可以看到受到攻擊最多的是后端服務器,包括進入系統的攻擊。比如傳統的OBD接口、SD卡等,這樣的攻擊面已經多達十幾個。另外造成軟件安全漏洞的原因也各不相同,可以看到右邊SAE的統計,除了最上面可能是來自于軟件上市的壓力以外,下面三個主要是跟軟件的代碼和測試相關??梢詺w納為沒有使用好的應用安全測試系統,導致發現問題和軟件開發能力需要提高。

圖源:演講嘉賓材料

因為汽車受到的攻擊面增多,所以汽車上存在的一些安全漏洞問題會被利用,形成了一個安全事件。這邊列出了一部分2022年公開的汽車事件的案例,可以看出網絡安全事件的攻擊類型多樣化,比如藍牙攻擊、授權不當引起的漏洞、數據泄露的漏洞等,所以保障網絡安全已經成為了較大的課題。

圖源:演講嘉賓材料

智能汽車時代代碼安全的嚴肅性

因為汽車中有各種安全問題的隱患,國內外的立法機構、國際組織也在不斷的更新網絡安全的法規和標準。最重要的是兩年前發布的ISO21434的國際標準,如果車企是基于此標準來建立車輛安全體系的,那么它也基本上符合了WP29R155對網絡安全管理體系的要求。有了證書之后,才可以去進行VTA的認證。CSMS體系搭建也要在應用場景和開發流程中加入安全活動,比如安全測試、OTA升級、應急響應等。

下圖藍色背景的部分是安全活動,可以看到,在用戶需求方面要加入相關的安全管理,并且在產品測試等方面也要做安全的測試。這是21434標準中要求的活動事例,比如與靜態分析相關時,要求集成和驗證活動必須符合相關的網絡安全規范,靜態代碼測試就可以被用來進行這樣一個驗證活動,當然它還要求在做靜態代碼測試時,還可以去做相關的編碼安全規范的測試。另外在測試方面,對測試用力的驅動也提出了一些建議,比如需求的分析、邊界值的分析等,在去驗證安全漏洞問題時,也提供了相應的方法和建議,比如功能測試、漏洞掃描等。

圖源:演講嘉賓材料

保障智能汽車代碼安全的實踐

首先將汽車軟件分為嵌入式和企業IT相關的軟件,但軟件本身的側重點、開發模式等都是不同的。軟件安全開發面臨的五大挑戰,首當其沖的是供應鏈安全的挑戰。比如汽車軟件是由OEM、Tier1、Tier2,Tier2++等組成,那么供應商軟件是否安全、不同軟件模塊調用接口是否安全等都會對供應鏈的安全提出挑戰。另外隨著汽車的電子電器架構在不停的調整,軟件開發的部署也變得更為復雜。并且攻擊面的增加,也對安全測試提出了更高的要求。還有軟件上市加速,也對開發周期進行了不斷的壓縮,這就對軟件開發的效率提出了更高的要求。

那么如何針對第三方代碼去做一個安全保障,在此之前先來分享一些數據,來源于新思科技今年年初發布的開源軟件安全與風險分析報告,從整體情況來看,1703個代碼庫里包含有開源組建的代碼庫達到了96%,也就是只有4%的代碼庫是沒有開源軟件的。開源軟件占整體代碼庫的比重是76%,并且開源軟件和自研代碼的比例是3:1,而這些代碼庫里面已知漏洞的代碼庫占到了48%。從汽車行業來看,100%的代碼庫都包含了開源代碼,所占比重約為80%。那么在安全漏洞上,汽車行業的比例要高達60%。

從時間維度來看,過去五年十七個行業的高危漏洞的增長方面,汽車行業排名第五,增長了232%,增速較快。提到開源軟件繞不開的話題,是許可證的風險。所謂許可證沖突是各個開源組建的許可證條款與本身項目的許可證條款存在沖突。另外一個運維風險可以理解為開源社區活躍度較低的開源軟件。所以安全漏洞、許可證和運維風險都會對供應鏈安全造成影響,需要引起重視。

不管什么樣的開源風險,處理風險的第一步是通過SCA工具去識別軟件中的風險,只有使用了SCA工具根據不同的應用場景,準確識別所有的開源組件才能進行下一步的操作處理。

針對汽車行業的供應鏈軟件安全的解決方案,可以使用SCA工具,比如新思科技的BlackDuck,可以掃描整個項目的原代碼和二進制文件,也可以直接導入SPDX等格式的SBOM文件,形成項目的一個初版,在此基礎上用OSS治理策略來自動識別安全漏洞或是許可證違規的情況。那如果產生這樣的情況,需要將相關的信息反饋到審核團隊,進行處理之后再次掃描,直到確認項目里沒有出現違反公司OSS治理要求的情況,才可以去做軟件的發布。軟件發布后,還有進行持續的監控,所以這個流程是一個持久的過程。

汽車行業的特殊性具有安全編碼規范,目前的車企都在做安全編碼的相關檢查,雖然它可以解決整個軟件的可讀性等問題,但僅依靠編碼規范的檢查是很難確保代碼的質量和安全性。如果是外界輸入的變量或是其他的數據類型,不對其做嚴格的檢查和驗證,就會發生數據篡改等問題,此時就需要更專業的工具來檢查。

從下圖中可以看到左上角A點到B點的過程中,軟件的問題在大量的減少,產品質量和安全性在逐步提升,那么競爭力也會有相應的提升。在減少的過程中,需要更強的數據流、控制流檢查才能發現問題,雖然它的量相對較少,但它往往是一些質量事件或是安全漏洞背后的原因。所以在選擇掃描工具時,除了安全編碼規范的檢查外,還需要一個相對更綜合、更全面的檢查。并且誤報率也是一個檢驗的標準,如果誤報率過高,那意味著研發人員需要投入大量的時間去判斷是不是誤報,這會降低開發的效率。

圖源:演講嘉賓材料

新思科技解決方案

新思科技研發的Coverity軟件是誤報率最低的SAST工具,它的檢出率是97%,誤報率可以控制在10%以內。除了傳統的模型以外,CICD,DevOps等開發模式也在汽車開發中被應用。對SAST工具的使用,要讓其無縫融入,這樣才能在提高軟件質量和安全性的同時,提高開發效率。

針對汽車行業SDLC的推進方案,在開發人員自檢階段,可以通過IDE的一些插件,或者是命令行的方式,對當前修改的代碼做快速且高效的掃描和驗證。并且代碼入庫門禁,可以結合代碼review系統去做,只有通過了代碼入庫門禁的提交,才可以提交到整體的代碼倉庫。在代碼入庫后,不僅有編碼規范的檢查,還增加一個流程,可以根據本身的分類,去制定相應的分數,只有通過一定的標準檢查的結果,才會把它提交到最終的報告中,這樣可以減少確認這些問題的數量。

下圖是我們軟件代碼做的資源相關等檢查,檢查完之后,可以通過郵件的方式發送給開發人員確認,開發人員可以通過瀏覽器或者IDE插件,快速修復問題,并且也可以把一些問題集成到BTS系統去做一個閉環。作為應用安全測試領先的供應商,可以在工具層面提供更多的解決方案,為車企的相關活動做一個支撐。

圖源:演講嘉賓材料

(以上內容來自于新思科技高級安全架構師許焱于2023年4月20-21日在蓋世汽車與上海市國際展覽(集團)有限公司(SIEC)共同主辦第二屆中國汽車信息安全與數據安全大會發表的《智能汽車時代如何保障代碼安全》主題演講。)

關鍵詞: