安全性一直是物聯(lián)網(wǎng)(IoT)中眾多嵌入式系統(tǒng)的首要問(wèn)題。LDRA報(bào)告說(shuō),如果被滲透,埋在電網(wǎng),發(fā)電,制造,汽車系統(tǒng),醫(yī)療設(shè)備,建筑物管理,氣泵,烤面包機(jī)等中的系統(tǒng)可能會(huì)構(gòu)成重大風(fēng)險(xiǎn)。
幸運(yùn)的是,有了安全性,古老的格言“一盎司的預(yù)防值得一磅的治療”無(wú)疑是正確的,并且是更新的“向左移”流行語(yǔ)的基礎(chǔ)!工程遠(yuǎn)見(jiàn)有助于以比隨后的反應(yīng)測(cè)試更低的成本構(gòu)建安全的系統(tǒng)。實(shí)際上,由于構(gòu)建安全軟件與構(gòu)建功能安全的應(yīng)用程序有很多共同點(diǎn),因此安全軟件的開(kāi)發(fā)從遵循功能安全過(guò)程開(kāi)始。
請(qǐng)考慮以下最佳做法,以幫助產(chǎn)生高質(zhì)量的代碼并提高嵌入式系統(tǒng)的安全性:
1.將安全性納入軟件開(kāi)發(fā)生命周期
傳統(tǒng)的安全代碼驗(yàn)證在很大程度上是被動(dòng)的。根據(jù)相對(duì)寬松的準(zhǔn)則來(lái)開(kāi)發(fā)代碼,然后進(jìn)行測(cè)試以識(shí)別漏洞。無(wú)論是使用敏捷開(kāi)發(fā)還是傳統(tǒng)的開(kāi)發(fā)生命周期模型,都存在一種更加主動(dòng)的內(nèi)置安全性方法。
在傳統(tǒng)開(kāi)發(fā)中,需求流向設(shè)計(jì),編碼(可能通過(guò)模型)和測(cè)試。通過(guò)敏捷開(kāi)發(fā),需求可以由內(nèi)而外地逐步構(gòu)建,每個(gè)層次都有自己的需求,設(shè)計(jì),代碼和測(cè)試循環(huán)。無(wú)論采用哪種方法,確保安全要求都是開(kāi)發(fā)過(guò)程不可分割的一部分,這將帶來(lái)比僅在最后尋找漏洞要令人滿意的結(jié)果。
2.確保雙向可追溯性
大多數(shù)功能安全標(biāo)準(zhǔn)都需要雙向可追溯性證明,以證明從需求到設(shè)計(jì),代碼和測(cè)試的所有開(kāi)發(fā)階段之間的開(kāi)發(fā)階段之間完整而徹底的覆蓋。通過(guò)這種透明性,可以通過(guò)影響分析來(lái)評(píng)估對(duì)需求的任何更改或失敗的測(cè)試用例的影響,然后加以解決。
可以自動(dòng)重新生成工件,以提供持續(xù)符合相應(yīng)標(biāo)準(zhǔn)的證據(jù)。在安全至上的情況下,雙向可追溯性還可以確保沒(méi)有冗余代碼或未指定的功能,并且包括后門方法。這些優(yōu)點(diǎn)強(qiáng)調(diào)了系統(tǒng)開(kāi)發(fā)的價(jià)值,以提高構(gòu)建安全系統(tǒng)的能力。
3.選擇一個(gè)安全的語(yǔ)言子集
使用C或C++開(kāi)發(fā)時(shí),大約80%的軟件缺陷可歸因于20%的語(yǔ)言構(gòu)造的不正確使用。語(yǔ)言子集通過(guò)防止或標(biāo)記使用不安全的構(gòu)造來(lái)提高安全性和安全性。MISRAC和卡耐基梅隆軟件工程學(xué)院(SEI)CERTC這兩種流行的編碼標(biāo)準(zhǔn)可幫助開(kāi)發(fā)人員生成安全的代碼。
應(yīng)用MISRAC或CERTC會(huì)比未應(yīng)用這兩種方法產(chǎn)生的代碼更安全。但是,手動(dòng)執(zhí)行這些準(zhǔn)則要付出時(shí)間,精力,金錢和諷刺性的代價(jià),因?yàn)槭謩?dòng)過(guò)程很復(fù)雜且容易出錯(cuò)。為了降低成本和提高生產(chǎn)率,開(kāi)發(fā)組織需要自動(dòng)化對(duì)合規(guī)性的支持。
4.使用以安全為重點(diǎn)的流程標(biāo)準(zhǔn)
安全標(biāo)準(zhǔn)提供了另一種安全開(kāi)發(fā)解決方案,盡管安全標(biāo)準(zhǔn)還沒(méi)有像功能安全標(biāo)準(zhǔn)那樣得到很好的開(kāi)發(fā)和時(shí)間測(cè)試,而功能安全標(biāo)準(zhǔn)已經(jīng)使用了數(shù)十年。但是,隨著特定于行業(yè)的安全標(biāo)準(zhǔn)的發(fā)展,這將改變。
例如,汽車工業(yè)目前正在開(kāi)發(fā)ISO/SAE21434“道路車輛網(wǎng)絡(luò)安全工程”,以緩解作為網(wǎng)絡(luò)攻擊目標(biāo)的聯(lián)網(wǎng)車輛的問(wèn)題。與SAEJ3061“網(wǎng)絡(luò)物理車輛系統(tǒng)網(wǎng)絡(luò)安全指南”的高級(jí)指導(dǎo)原則相比,更詳盡的文檔有望使ISO/SAE21434廣受期待。
5.盡可能自動(dòng)化
在軟件開(kāi)發(fā)過(guò)程的每個(gè)階段,自動(dòng)化都會(huì)減少嵌入式系統(tǒng)中的漏洞,并節(jié)省大量時(shí)間和成本。開(kāi)發(fā)人員可以插入需求工具(例如,IBMRationalDOORS),導(dǎo)入仿真和建模構(gòu)造,并針對(duì)代碼進(jìn)行測(cè)試,以一目了然地了解如何以及是否滿足需求,遺漏了什么以及在哪里死了的無(wú)效代碼。不能滿足要求。
靜態(tài)分析引擎可以檢查對(duì)編碼標(biāo)準(zhǔn)以及功能安全性和安全性標(biāo)準(zhǔn)的符合性。通過(guò)自動(dòng)化和安全的設(shè)計(jì),諸如滲透測(cè)試之類的反應(yīng)性測(cè)試就占有一席之地,但是它們的作用是確認(rèn)代碼是安全的,而不是找出不存在的地方。
6.選擇一個(gè)安全的軟件基礎(chǔ)
安全的嵌入式軟件必須在安全的平臺(tái)上運(yùn)行,因此,如果應(yīng)用程序受到攻擊,它將在與其他軟件組件(“域分離”)隔離的自己的筒倉(cāng)中運(yùn)行。自動(dòng)化的軟件測(cè)試和驗(yàn)證工具從需求規(guī)格說(shuō)明到設(shè)計(jì)和建模,再到編碼和文檔,都集成到常見(jiàn)的開(kāi)發(fā)環(huán)境中。這樣可以確保開(kāi)發(fā)人員可以在熟悉的環(huán)境中以及已經(jīng)為其系統(tǒng)指定的工具中構(gòu)建安全的系統(tǒng)。
遵循這六個(gè)過(guò)程為開(kāi)發(fā)安全,可靠和可靠的IoT嵌入式軟件提供了一種緊密結(jié)合的方法。
責(zé)任編輯人:CC
-
嵌入式
+關(guān)注
關(guān)注
5089文章
19167瀏覽量
306707 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3614瀏覽量
129624 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2912文章
44867瀏覽量
375553
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論