當(dāng)代的科技正在以前所未有的速度發(fā)展,每天都有嶄新的產(chǎn)品與功能出現(xiàn),完成難以想象的任務(wù)。這種情況不再局限于手機(jī)APP和計(jì)算機(jī),同時(shí)也包括了對(duì)我們?nèi)粘I顏碚f更普遍的嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備。
感覺幾乎所有的設(shè)備都在運(yùn)行軟件:嬰兒監(jiān)視器,揚(yáng)聲器,健身追蹤器,安全攝像頭,恒溫器和車輛等等。
對(duì)于這樣的新世界,建筑師、MIT教授、作家Nicholas Negroponte表示,“如同空氣與飲水,數(shù)字化只會(huì)因缺失被注意到,而不是它的存在。”就Negroponte所提的觀點(diǎn),我們已被數(shù)字科技所包圍,甚至直到它消失或其成為安全問題時(shí),我們才會(huì)注意到它。
我們所知的包括嵌入式系統(tǒng)的物聯(lián)網(wǎng)設(shè)備,具備處理器,傳感器和其它通過網(wǎng)絡(luò)連接的功能。當(dāng)我們談及嵌入式系統(tǒng),我們指的是在更大的數(shù)字、機(jī)械或電氣系統(tǒng)中有專門功能的處理器。嵌入式系統(tǒng)可以是物聯(lián)網(wǎng)設(shè)備中的固件,也可以是汽車、機(jī)器人、信用卡讀卡器、手機(jī)、小工具、網(wǎng)絡(luò)設(shè)備、醫(yī)療設(shè)備或任何東西中的電子控制單元(ECU)。
為什么C與C++對(duì)于嵌入式系統(tǒng)軟件的功能安全及信息安全很重要
由于規(guī)模及成本的限制,嵌入式系統(tǒng)的軟件在運(yùn)算、內(nèi)存和功率方面的計(jì)算資源有限。隨著對(duì)輕量化軟件的需求提升,編程語言如C和C++等已在嵌入式系統(tǒng)中占據(jù)主導(dǎo)地位,就如同它們?cè)诋?dāng)前大多數(shù)云服務(wù)器的 Linux 內(nèi)核上一樣。雖然 C++ 比 C 需要更多的計(jì)算資源,但微處理器性能的提升使得 C++ 成為全球數(shù)百萬嵌入式系統(tǒng)的首選語言。
其他編程語言(如Python)也用于嵌入式系統(tǒng),但C 和 C++ 是主要的語言選擇。還有一種嵌入式C++(EC++)是C++語言的子集,它通過完整 C++ 語言的主要功能,實(shí)現(xiàn)更大的空間和速度效率。當(dāng)今的微處理器可以裝載C++ 編譯器,這讓嵌入式系統(tǒng)編碼將變得更加簡(jiǎn)單。
嵌入式系統(tǒng)的編程不同于其它類型的應(yīng)用。首先,你有資源限制,然后必須針對(duì)魯棒性、實(shí)時(shí)性、可靠性以及長(zhǎng)時(shí)間不停機(jī)運(yùn)行進(jìn)行設(shè)計(jì)。然而更重要的是代碼必須兼信息安全與功能安全。尤其考慮到嵌入式系統(tǒng)與物聯(lián)網(wǎng)設(shè)備在如醫(yī)療健康,制藥,或汽車和航空航天行業(yè)中的重要性。這項(xiàng)技術(shù)的缺失不僅會(huì)引起關(guān)注,如果它們真的不安全更會(huì)造成嚴(yán)重后果。
為什么靜態(tài)分析對(duì)于嵌入式系統(tǒng)軟件的功能安全及信息安全很重要
靜態(tài)分析是確保,源代碼不存在可能導(dǎo)致漏洞和攻擊缺陷的最重要工具之一。靜態(tài)分析也被稱為靜態(tài)應(yīng)用程序安全測(cè)試或SAST,靜態(tài)分析會(huì)掃描應(yīng)用程序的源代碼,包括嵌入式系統(tǒng)和物聯(lián)網(wǎng)的代碼。高度專業(yè)的代碼掃描根據(jù)所使用的相應(yīng)編程語言和框架尋找特定缺陷。 靜態(tài)分析工具(例如Perforce Helix QAC和Klocwork)也可以報(bào)告編碼規(guī)范的合規(guī)情況。
靜態(tài)分析工具允許開發(fā)測(cè)試團(tuán)隊(duì)去分析數(shù)千甚至數(shù)百萬行代碼。他們可尋找代碼中的缺陷并根據(jù)規(guī)則執(zhí)行編碼標(biāo)準(zhǔn)。最重要的是,它們已成為軟件開發(fā)生命周期中不可或缺的一部分,并且必須定期在源代碼上運(yùn)行,如在每次代碼變更或發(fā)布新版本之前。
由于我們身處于以嵌入式系統(tǒng)和物聯(lián)網(wǎng)形式的數(shù)字科技世界,功能安全與信息安全的重要性與日俱增,尤其在跨行業(yè)的關(guān)鍵功能領(lǐng)域。靜態(tài)分析可以發(fā)現(xiàn)功能安全和信息安全缺陷,這可以防止有缺陷的設(shè)備被大規(guī)模生產(chǎn),并節(jié)省資金和企業(yè)聲譽(yù)。
嵌入式設(shè)備的安全性在于降低漏洞數(shù)量。嚴(yán)重性級(jí)別各不相同,高度嚴(yán)重的漏洞代表了更高的被攻擊風(fēng)險(xiǎn)。有幾種常見漏洞是所有軟件都存在的,不管它是在哪部署的。在嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中,漏洞大多與內(nèi)存緩沖區(qū)溢出、資源泄漏、不當(dāng)訪問控制、密碼問題和代碼注入有關(guān)。這些是在嵌入式系統(tǒng)中通過靜態(tài)分析掃描發(fā)現(xiàn)的一些最常見的嵌入式安全漏洞。
為什么編碼標(biāo)準(zhǔn)對(duì)于嵌入式系統(tǒng)軟件的功能安全及信息安全很重要
如上述所說,C 與C++在嵌入式系統(tǒng)中被廣泛使用。多年來,企業(yè)意識(shí)到功能安全與信息安全在所有代碼中的重要性,特別是C和C++的嵌入式設(shè)備。在這些設(shè)備中,故障的成本可能不僅僅是財(cái)務(wù)上的。隨著時(shí)間的推移,編碼標(biāo)準(zhǔn)的出臺(tái)以及持續(xù)的改進(jìn),就是為了幫助提高軟件安全性,可移植性,可靠性以及可維護(hù)性。靜態(tài)分析除了搜索源代碼中的缺陷和漏洞外,還可以應(yīng)用編碼標(biāo)準(zhǔn)中規(guī)定的規(guī)則和建議。這對(duì)需要驗(yàn)證是否符合行業(yè)標(biāo)準(zhǔn)合規(guī)性的企業(yè)尤其重要。常見的嵌入式系統(tǒng)編碼標(biāo)準(zhǔn)包括MISRA,AUTOSAR以及CERT。
還有一些功能安全(FuSa) 標(biāo)準(zhǔn),例如 ISO 21434、ISO 26262、IEC 61508、ISO 13849 和 IEC 62061,專門針對(duì)汽車和制造等不同行業(yè)的嵌入式系統(tǒng)。
為嵌入式系統(tǒng)編碼,遵循編碼標(biāo)準(zhǔn),并將靜態(tài)分析置于軟件研發(fā)生命周期中的一部分,將會(huì)讓我們的數(shù)字化世界更加安全。正如前面提到的,“如同空氣與飲水,數(shù)字化只會(huì)因缺失被注意到”,還有在違反功能安全和信息安全的情況下亦如是。
如果您想親手體驗(yàn)成千上萬研發(fā)者所信賴的Perforce靜態(tài)分析工具,現(xiàn)在即可免費(fèi)申請(qǐng)?jiān)囉茫斍檎?qǐng)私信聯(lián)絡(luò)北匯信息。
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19148瀏覽量
306194 -
信息安全
+關(guān)注
關(guān)注
5文章
656瀏覽量
38925
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論