從本質上講,汽車軟件很復雜。
它包含龐大的代碼庫,并跨越關鍵的機載系統。多年來,制造商一直依靠MISRAC/C++編碼指南來幫助軟件開發。該框架為汽車行業及其他行業帶來了實際優勢和安全性提升。
許多創建汽車軟件的開發團隊使用 MISRA 指南和應用程序安全工具,包括靜態應用程序安全測試 (SAST)。這使得在降低安全漏洞和關鍵安全問題風險的過程中發現語法和其他編碼錯誤成為可能。該框架還有助于降低開發成本并加快上市時間。
然而,將這些指南和工具以最大效率結合使用可能具有挑戰性。問題出在哪里?許多應用程序安全 (AppSec) 工具需要大量的手動干預或監督,以便充分了解它們如何影響各種流程。
破解密碼
問題的核心是一個基本事實:當手動接近MISRA標準時,執行MISRA標準是很困難的。許多基本的 AppSec 工具僅處理規則檢查,因此提供了一些幫助,但回避了與應用程序安全性相關的核心問題。它們不解決關鍵任務,例如錯誤檢測和安全漏洞分析。
不幸的是,遵循基本的MISRA指南并不能提供足夠的保護。雖然它可以消除一些錯誤并提高 C 或 C++ 的代碼質量,但它并沒有針對龐大的代碼庫和日益復雜的開發實踐。錯誤和缺陷仍然是編寫代碼的不幸和不可避免的副作用。
這是所有汽車制造商都面臨的問題。研究表明,商業軟件平均每 1,000 行代碼 (KLOC) 有一個缺陷。雖然開源的表現要好一些,但它的測量值為0.68 / KLOC,但它仍然是一個嚴重的問題。考慮一下:今天的豪華車大約有1億行代碼。即使在最佳情況下,這也代表了大約 10,000 個影響質量、安全和安保的潛在缺陷。
當然,在事后修復問題和修復是昂貴且耗時的。當召回車輛以修復軟件缺陷時,這也給消費者帶來了壓力。不幸的是,問題的根本原因通常仍然未知,并且很難找到漏洞的實際來源。這意味著開發人員必須重現故障,對其進行分析,并嘗試了解它如何影響代碼庫的其他部分。實際上,這意味著許多錯誤可能永遠無法修復。
但是,當組織以更深入和更廣泛的方式將 AppSec(包括 SAST)集成到開發過程中時,可以將安全性提升到更高級的水平。組織不再局限于代碼庫的部分快照。可以深入研究它,獲得可見性,并更詳盡地進行測試。借助 SAST,可以在開發過程的早期解決和修復缺陷,從而加快軟件發布并確保質量、安全和保障。
推進應用安全
好消息是,高級測試解決方案支持更全面的應用程序安全框架。他們可以發現通過傳統開發方法遺漏的缺陷。這包括識別關鍵問題,例如:
并發缺陷,通常隨機發生,只有在組織在最終硬件平臺上集成各種系統和代碼存儲庫后才可見。
安全漏洞,又稱軟件缺陷,可被攻擊者利用,從而干擾系統行為并訪問關鍵數據。
警告潛在漏洞的受污染數據分析可能格式不正確。由于這些數據通過許多系統,因此通常很難發現。
難以檢測的復雜過程間缺陷,尤其是在單元和子系統測試中。
顯示為目標文件、庫和可執行文件的已編譯代碼中的錯誤檢測。這些可以掩蓋關鍵的安全問題。
雖然一些MISRA規則非常簡單,只能依賴于代碼語法檢查器,但僅依賴這種方法是錯誤的。更好的方法是更深入地擴展分析并解決上述關鍵問題。這包括生成軟件物料清單 (SBOM) 的能力,該明細表標識軟件的成分列表,包括第三方和開源組件。
SBOM還將附有這些已查明組件的脆弱性報告。這允許組織檢測可能影響軟件安全性和安全性的隱藏問題。更高級的框架還可以檢測困難的情況,例如當需要查看多個連接點,檢查所有編譯單元并比較每個連接點中找到的所有此類標識符時。這些通常會導致假陽性和假陰性。
雪上加霜的是:人類經常誤解這些情況,尤其是在依賴手動工具和報告時。最后,當組織試圖完全理解規則的超集和子集、識別安全漏洞并避免死代碼時,組織被蒙在鼓里。另一方面,最佳實踐框架可以發現規則指定的內容與檢查器發現的內容之間的重疊和差距。
該模型最終通過在開發的早期階段發現和修復缺陷和漏洞來降低風險并節省時間。它通常自動化文檔并削減成本。這增加了文檔級別,反過來又改進了治理框架并簡化了法規遵從性。通過將解決方案集成到安全關鍵環境中,汽車制造商和其他公司可以獲得巨大的收益。
如今,企業級開發項目需要復雜的測試框架來支持和增強整個軟件開發生命周期,包括與其他開發自動化工具集成。超越 MISRA 規則執行和基本 AppSec 的能力推動了巨大的收益。它改進了保護,降低了成本,并使開發人員能夠專注于他們最擅長的事情:構建出色的軟件。
審核編輯:郭婷
-
C++
+關注
關注
22文章
2114瀏覽量
73764 -
代碼
+關注
關注
30文章
4815瀏覽量
68857
發布評論請先 登錄
相關推薦
評論