從本質(zhì)上講,汽車軟件很復(fù)雜。
它包含龐大的代碼庫,并跨越關(guān)鍵的機(jī)載系統(tǒng)。多年來,制造商一直依靠MISRAC/C++編碼指南來幫助軟件開發(fā)。該框架為汽車行業(yè)及其他行業(yè)帶來了實(shí)際優(yōu)勢(shì)和安全性提升。
許多創(chuàng)建汽車軟件的開發(fā)團(tuán)隊(duì)使用 MISRA 指南和應(yīng)用程序安全工具,包括靜態(tài)應(yīng)用程序安全測試 (SAST)。這使得在降低安全漏洞和關(guān)鍵安全問題風(fēng)險(xiǎn)的過程中發(fā)現(xiàn)語法和其他編碼錯(cuò)誤成為可能。該框架還有助于降低開發(fā)成本并加快上市時(shí)間。
然而,將這些指南和工具以最大效率結(jié)合使用可能具有挑戰(zhàn)性。問題出在哪里?許多應(yīng)用程序安全 (AppSec) 工具需要大量的手動(dòng)干預(yù)或監(jiān)督,以便充分了解它們?nèi)绾斡绊懜鞣N流程。
破解密碼
問題的核心是一個(gè)基本事實(shí):當(dāng)手動(dòng)接近MISRA標(biāo)準(zhǔn)時(shí),執(zhí)行MISRA標(biāo)準(zhǔn)是很困難的。許多基本的 AppSec 工具僅處理規(guī)則檢查,因此提供了一些幫助,但回避了與應(yīng)用程序安全性相關(guān)的核心問題。它們不解決關(guān)鍵任務(wù),例如錯(cuò)誤檢測和安全漏洞分析。
不幸的是,遵循基本的MISRA指南并不能提供足夠的保護(hù)。雖然它可以消除一些錯(cuò)誤并提高 C 或 C++ 的代碼質(zhì)量,但它并沒有針對(duì)龐大的代碼庫和日益復(fù)雜的開發(fā)實(shí)踐。錯(cuò)誤和缺陷仍然是編寫代碼的不幸和不可避免的副作用。
這是所有汽車制造商都面臨的問題。研究表明,商業(yè)軟件平均每 1,000 行代碼 (KLOC) 有一個(gè)缺陷。雖然開源的表現(xiàn)要好一些,但它的測量值為0.68 / KLOC,但它仍然是一個(gè)嚴(yán)重的問題。考慮一下:今天的豪華車大約有1億行代碼。即使在最佳情況下,這也代表了大約 10,000 個(gè)影響質(zhì)量、安全和安保的潛在缺陷。
當(dāng)然,在事后修復(fù)問題和修復(fù)是昂貴且耗時(shí)的。當(dāng)召回車輛以修復(fù)軟件缺陷時(shí),這也給消費(fèi)者帶來了壓力。不幸的是,問題的根本原因通常仍然未知,并且很難找到漏洞的實(shí)際來源。這意味著開發(fā)人員必須重現(xiàn)故障,對(duì)其進(jìn)行分析,并嘗試了解它如何影響代碼庫的其他部分。實(shí)際上,這意味著許多錯(cuò)誤可能永遠(yuǎn)無法修復(fù)。
但是,當(dāng)組織以更深入和更廣泛的方式將 AppSec(包括 SAST)集成到開發(fā)過程中時(shí),可以將安全性提升到更高級(jí)的水平。組織不再局限于代碼庫的部分快照??梢陨钊胙芯克@得可見性,并更詳盡地進(jìn)行測試。借助 SAST,可以在開發(fā)過程的早期解決和修復(fù)缺陷,從而加快軟件發(fā)布并確保質(zhì)量、安全和保障。
推進(jìn)應(yīng)用安全
好消息是,高級(jí)測試解決方案支持更全面的應(yīng)用程序安全框架。他們可以發(fā)現(xiàn)通過傳統(tǒng)開發(fā)方法遺漏的缺陷。這包括識(shí)別關(guān)鍵問題,例如:
并發(fā)缺陷,通常隨機(jī)發(fā)生,只有在組織在最終硬件平臺(tái)上集成各種系統(tǒng)和代碼存儲(chǔ)庫后才可見。
安全漏洞,又稱軟件缺陷,可被攻擊者利用,從而干擾系統(tǒng)行為并訪問關(guān)鍵數(shù)據(jù)。
警告潛在漏洞的受污染數(shù)據(jù)分析可能格式不正確。由于這些數(shù)據(jù)通過許多系統(tǒng),因此通常很難發(fā)現(xiàn)。
難以檢測的復(fù)雜過程間缺陷,尤其是在單元和子系統(tǒng)測試中。
顯示為目標(biāo)文件、庫和可執(zhí)行文件的已編譯代碼中的錯(cuò)誤檢測。這些可以掩蓋關(guān)鍵的安全問題。
雖然一些MISRA規(guī)則非常簡單,只能依賴于代碼語法檢查器,但僅依賴這種方法是錯(cuò)誤的。更好的方法是更深入地?cái)U(kuò)展分析并解決上述關(guān)鍵問題。這包括生成軟件物料清單 (SBOM) 的能力,該明細(xì)表標(biāo)識(shí)軟件的成分列表,包括第三方和開源組件。
SBOM還將附有這些已查明組件的脆弱性報(bào)告。這允許組織檢測可能影響軟件安全性和安全性的隱藏問題。更高級(jí)的框架還可以檢測困難的情況,例如當(dāng)需要查看多個(gè)連接點(diǎn),檢查所有編譯單元并比較每個(gè)連接點(diǎn)中找到的所有此類標(biāo)識(shí)符時(shí)。這些通常會(huì)導(dǎo)致假陽性和假陰性。
雪上加霜的是:人類經(jīng)常誤解這些情況,尤其是在依賴手動(dòng)工具和報(bào)告時(shí)。最后,當(dāng)組織試圖完全理解規(guī)則的超集和子集、識(shí)別安全漏洞并避免死代碼時(shí),組織被蒙在鼓里。另一方面,最佳實(shí)踐框架可以發(fā)現(xiàn)規(guī)則指定的內(nèi)容與檢查器發(fā)現(xiàn)的內(nèi)容之間的重疊和差距。
該模型最終通過在開發(fā)的早期階段發(fā)現(xiàn)和修復(fù)缺陷和漏洞來降低風(fēng)險(xiǎn)并節(jié)省時(shí)間。它通常自動(dòng)化文檔并削減成本。這增加了文檔級(jí)別,反過來又改進(jìn)了治理框架并簡化了法規(guī)遵從性。通過將解決方案集成到安全關(guān)鍵環(huán)境中,汽車制造商和其他公司可以獲得巨大的收益。
如今,企業(yè)級(jí)開發(fā)項(xiàng)目需要復(fù)雜的測試框架來支持和增強(qiáng)整個(gè)軟件開發(fā)生命周期,包括與其他開發(fā)自動(dòng)化工具集成。超越 MISRA 規(guī)則執(zhí)行和基本 AppSec 的能力推動(dòng)了巨大的收益。它改進(jìn)了保護(hù),降低了成本,并使開發(fā)人員能夠?qū)W⒂谒麄冏钌瞄L的事情:構(gòu)建出色的軟件。
審核編輯:郭婷
-
C++
+關(guān)注
關(guān)注
22文章
2124瀏覽量
77207 -
代碼
+關(guān)注
關(guān)注
30文章
4971瀏覽量
74076
發(fā)布評(píng)論請(qǐng)先 登錄
過程×框架×平臺(tái):安全“三支柱”護(hù)航AI應(yīng)用量產(chǎn)落地
請(qǐng)問CW32L是如何提供3級(jí)程序安全防護(hù)?
PYQT 應(yīng)用程序框架及開發(fā)工具
如何在應(yīng)用程序調(diào)試期間分析棧和堆使用情況
如何采用SAFERTOS和ESM保護(hù)嵌入式系統(tǒng)安全
請(qǐng)問rt smart 的用戶應(yīng)用程序能自動(dòng)加載嗎?
學(xué)生適合使用的SOLIDWORKS 云應(yīng)用程序
瑞薩電子高級(jí)語音用戶界面解決方案
從底層解讀labview的TDMS高級(jí)異步寫入的工作原理
肖特基二極管四通道混頻器芯片采用薄膜框架 skyworksinc
CYBT-343026-01能否使用 HFP 和 AVRCP 制作應(yīng)用程序?
Claroty與NIST網(wǎng)絡(luò)安全框架中文手冊(cè)
ETAS易特馳發(fā)布汽車跨域安全框架白皮書
SMR配置后面向故障的安全引導(dǎo)重置了,為什么?
MCP:連接AI與應(yīng)用程序的開放標(biāo)準(zhǔn)!
采用更高級(jí)的應(yīng)用程序安全框架
評(píng)論