《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 關于汽車軟件安全保障改進

關于汽車軟件安全保障改進

2021-06-28
來源:網絡安全應急技術國家工程實驗室
關鍵詞: 汽車 軟件安全

  前言

  《Better Embedded System Software》一書的作者在其博客上發布了可致命汽車軟件缺陷列表,該列表主要來源于NHTSA(美國高速公路安全管理局)官網上的召回通告。作者在博客中表示,整理出列表的目的不是要針對任何特定的公司或軟件缺陷,現實是關鍵的安全性軟件缺陷在整個汽車行業中都是普遍且持久存在的。

  本文將首先從清單中挑選出一些典型例子,然后討論SAST能對這些狀況提供的幫助。

  汽車軟件故障示例

  原博客中列出的那些問題能被作為車輛召回的原因,也表明了那些問題確實是足夠嚴重的安全隱患,以下是部分召回信息:

  1、由于診斷檢查問題,ABS 和 DSC 被禁用(捷豹)/ 2021 年 3 月

微信圖片_20210628170228.jpg

2、無線電軟件安全漏洞(克萊斯勒)/ 2015微信圖片_20210628170236.jpg

3、ESC故障(梅賽德斯)/ 2021 年 2 月微信圖片_20210628170239.jpg

4、制動性能降低(現代)/ 2020 年 12 月微信圖片_20210628170242.jpg

  5、由于偏航傳感器軟件的缺陷,特別是診斷程序缺陷,導致錯誤干預電子穩定程序(ESP)。在這種情況下,傳感器漂移會增加撞車的風險。

  6、由于軟件代碼缺失以及與新引入的硬件不兼容,自動緊急制動可能無法啟動。

  以上只是一些有代表性的問題,還有非常多類似的召回案例,其中涉及到的軟件和硬件缺陷,可能影響車輛穩定性、制動和發動機控制等關鍵方面。

  SAST在安全關鍵軟件開發中的作用

  汽車軟件的安全保障顯然是一個系統性問題,需要企業文化、管理流程和研發技術變革共同推進。行業自認證也存在問題,ISO 26262等標準并沒有被普遍采用,由于這個主題太大,以下將僅關注可以通過SAST (static application security testing,靜態應用程序安全測試) 和SCA (軟件組成分析) 改進的流程和過程。

  SAST的強大之處在于不依賴于測試用例來發現問題,也不需要重現錯誤或失敗。類似GrammaTech CodeSonar這樣的SAST工具可以在不實際運行程序的情況下推斷出程序的運行時行為。此外,當它識別出一個問題時,還能在代碼中定位到導致失敗的位置。這使得調試工作變得簡單。

  靜態分析并不能完全替代測試,而是對測試的有效補充。現實情況是,在大型的復雜軟件系統中,可能的狀態非常之多,可能的執行路徑數量更是驚人,所以對它們進行詳盡的測試是不現實的。靜態代碼分析可以從總體上探索這些路徑和狀態,以發現測試中遺漏的問題。

  通過編碼標準進行預防:編碼標準是安全關鍵軟件開發的重要組成部分,因為它們定義了一組更安全的編程語言子集。汽車軟件中最常用的標準是 MISRA C 和 MISRA C++(還有相關的AUTOSARC++標準)。執行更嚴格的安全編碼標準,可以提前消除許多軟件缺陷,重點是避免使用已知的危險語法和每種語言中潛在未定義行為的部分。

  代碼覆蓋率不代表一切:許多安全標準需要高水平的代碼覆蓋率(以證明測試執行了大部分語句和條件)。雖然這是非常詳盡的,但做起來成本很高,而且必須在開發的每個主要階段重復進行(單元、集成和系統測試)。其實軟件的關鍵性決定了覆蓋率的水平,一些不太關鍵的軟件不需要正式的測試覆蓋率。雖然測試代碼覆蓋率是評估軟件質量的一個指標,但在有些情況下,它并不是絕對的。

  被基于覆蓋率測試所遺漏的漏洞和錯誤:基于覆蓋率指標的軟件測試本質上是基于單元的測試(盡管覆蓋率也會在系統層面進行評估)。而并發性錯誤和安全漏洞是兩個在嚴格測試中也可能被遺漏的隱患。并發產生的錯誤(如競爭條件)只有在運行過程中出現一些不可預見的情況時才會被發現。安全漏洞是存在于代碼中的錯誤 – 造成錯誤的原因通常是由于在測試期間沒有考慮輸入的類型。SAST可以及早發現這些錯誤,并防止它們在開發周期的后期成為絆腳石。

  及早發現缺陷:嚴格的測試可以發現軟件中的大多數缺陷,但成本高昂且極其耗時。在編寫代碼時就發現和修復這些錯誤比在開發周期后期便宜得多(隨著時間的推移,發現缺陷的成本呈指數級增長)。靜態分析可以在代碼編寫時檢測錯誤——如果能作為開發人員開發環境的一部分,這將大大降低缺陷出現在下游時的成本。

  分析開源和第三方代碼:在嵌入式軟件開發中,使用第三方代碼和開源軟件是一個常見現象。一些安全標準認為,任何沒有按照特定標準開發的軟件都是血統不明的軟件(SOUP)--是需要仔細檢查后才能納入系統的。針對這類情況,軟件組成分析工具SCA可以提供幫助,如GrammaTech CodeSentry,可以分析第三方二進制文件以發現缺陷和安全漏洞,并生成軟件材料清單(SBOM)。

  總結

  NHTSA對存在軟件相關缺陷車輛的召回正在增加,這表明汽車軟件開發需要加快改進步伐。然而,為汽車系統開發嵌入式軟件,需要遵守嚴格的方法和承諾,以增加安全和保障,改進需要自上而下地進行文化和流程的改變。與此同時,還需要自下而上的改變,采用最佳實踐,包括流程和編碼標準以及其他經過驗證的方法來提高代碼質量。

  引入高級靜態分析工具將有助于自動執行編碼標準,更重要的是它們能在查找被其他驗證測試活動遺漏的缺陷方面發揮重要作用,并且有助于開發人員理解和糾正代碼問題。對軟件成分分析以及審查開源和第三方軟件的已知漏洞,并創建軟件物料清單 (SBOM) 會對降低軟件供應鏈風險起到關鍵作用。




本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美巨大另类极品video | 久久国产精品免费视频 | 欧美午夜精品 | 人人澡人摸人人爽歪歪 | 成人亚洲欧美日韩中文字幕 | 高清一区二区亚洲欧美日韩 | 在线午夜 | 亚洲第一区视频在线观看 | 男女做羞羞的网站视频 | 97免费在线观看视频 | 国产精品一区二区三区久久 | 欧美性视频一区二区三区 | 亚洲天堂久久新 | 国产精品福利在线观看秒播 | 黄色污污在线观看 | 九九视频免费精品视频免费 | 久久国产高清波多野结衣 | 边做边叫床的大尺度床戏欧美 | 日本三级a | 亚洲欧美高清视频 | 中文字幕 制服诱惑 | 婷婷操| 成人在线观看午夜 | 香港一级a毛片在线播放 | 亚洲第一免费网站 | 一个人看的www高清在线观看 | 黄污视频在线 | 亚洲小说综合 | 成人免费一级片 | fulidown国产精品合集 | 欧洲一区 | 2021国产精品自在拍在线播放 | 欧美xxxxxxx人妖极品 | 九色福利 | 成人免费黄网站 | 国产免费久久精品99 | 亚洲欧美一区二区三区在饯 | 天天狠狠色噜噜 | 成人久久伊人精品伊人 | 欧美日韩午夜视频 | www.欧美黄色 |