原創(chuàng)|使用教程|編輯:鄭恭琳|2020-06-18 17:29:28.360|閱讀 292 次
概述:盡管在IoT上下文中嵌入式設(shè)備具有潛力,但目前并不需要許多設(shè)備符合安全標(biāo)準(zhǔn)。但是在物聯(lián)網(wǎng)開發(fā)的敏捷世界中,在已經(jīng)編寫和測(cè)試了代碼之后,合規(guī)性要求可能會(huì)晚得多。那么,如何為嵌入式物聯(lián)網(wǎng)設(shè)備的未來做好準(zhǔn)備?
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
盡管在IoT上下文中嵌入式設(shè)備具有潛力,但目前并不需要許多設(shè)備符合安全標(biāo)準(zhǔn)。但是在物聯(lián)網(wǎng)開發(fā)的敏捷世界中,在已經(jīng)編寫和測(cè)試了代碼之后,合規(guī)性要求可能會(huì)晚得多。那么,如何為嵌入式物聯(lián)網(wǎng)設(shè)備的未來做好準(zhǔn)備?
物聯(lián)網(wǎng)(IoT)術(shù)語(yǔ)是指發(fā)布和/或使用數(shù)據(jù)的具有網(wǎng)絡(luò)功能的設(shè)備,組件或服務(wù)的系統(tǒng)。物聯(lián)網(wǎng)應(yīng)用正成為我們生活中不可或缺的一部分:從工業(yè)機(jī)器人和手術(shù)器械到自動(dòng)駕駛汽車和自動(dòng)駕駛無人機(jī)。今天,這些設(shè)備中的許多設(shè)備已經(jīng)可以影響其用戶的安全性,隱私權(quán)和安全性。在某些情況下,故障的代價(jià)是致命的,因此,按現(xiàn)行標(biāo)準(zhǔn)制造這些設(shè)備至關(guān)重要。
盡管最好從一開始就將合規(guī)性活動(dòng)嵌入軟件設(shè)計(jì)中,但眾所周知的事實(shí)是,嚴(yán)格的開發(fā)流程(尤其是沒有自動(dòng)化的幫助)會(huì)影響產(chǎn)品上市時(shí)間。沒有多少開發(fā)人員喜歡在正常工作時(shí)間之外進(jìn)行額外的測(cè)試和記錄可追溯性,因此,務(wù)實(shí),敏捷和快節(jié)奏的團(tuán)隊(duì)通常不能以在計(jì)劃中“可能需要”為前提建立合規(guī)性來失去動(dòng)力。未來。取而代之的是,許多團(tuán)隊(duì)選擇“在到達(dá)那座橋時(shí)越過那座橋”。
不幸的是,沒有魔術(shù)棒或銀彈可以追溯“使”代碼兼容。這些組織正在努力學(xué)習(xí)的是,在項(xiàng)目結(jié)束時(shí)增加合規(guī)性的成本要比開發(fā)初始工作產(chǎn)品的成本高幾個(gè)數(shù)量級(jí)。
那么,為了滿足明天的嚴(yán)格合規(guī)性要求,您今天可以采取哪些低影響的措施?
了解您的項(xiàng)目目前的位置非常重要。技術(shù)債務(wù)的金額是由于代碼復(fù)雜性以及代碼中當(dāng)前存在的任何剩余編碼標(biāo)準(zhǔn)和安全性違規(guī)導(dǎo)致的潛在返工成本。該債務(wù)歸因于隨后的代碼清理,修復(fù)和測(cè)試。掌握當(dāng)前項(xiàng)目狀況的一種方法是使用自動(dòng)靜態(tài)代碼分析。靜態(tài)分析可深入了解代碼庫(kù)的質(zhì)量和安全性,并列舉適用的編碼標(biāo)準(zhǔn)違規(guī)情況。
不幸的是,許多使用C和C++開發(fā)嵌入式應(yīng)用程序的團(tuán)隊(duì)仍然依靠他們的編譯器或手動(dòng)代碼審查來發(fā)現(xiàn)問題,而不是采用靜態(tài)分析。一些團(tuán)隊(duì)出于各種原因而努力采用靜態(tài)分析工具,例如發(fā)現(xiàn)它們嘈雜且難以使用(如果您學(xué)習(xí)了正確的入門方法,就不會(huì)有問題),或者無法將其用于日常開發(fā)過程中由于緊急的日常事務(wù)。常見的(誤)理解是,確定哪些違規(guī)值得解決所花費(fèi)的時(shí)間大于實(shí)際修復(fù)的價(jià)值。
但是我們發(fā)現(xiàn),在項(xiàng)目后期面對(duì)功能安全審核時(shí),采用少量關(guān)鍵性和強(qiáng)制性規(guī)則的團(tuán)隊(duì)花費(fèi)更少的時(shí)間來重新編寫代碼。通過實(shí)施(例如)CERT C安全編碼準(zhǔn)則,從根本上構(gòu)建安全可靠的系統(tǒng)要容易得多。您可以從小處著手。 CERT擁有完善的優(yōu)先級(jí)劃分系統(tǒng)(使用嚴(yán)重性、可能性和補(bǔ)救成本,每三個(gè)級(jí)別,總共27個(gè)級(jí)別),并且,如果您使用Parasoft工具,則可以在預(yù)配置的儀表板中輕松查看合規(guī)性狀態(tài)。
靜態(tài)分析還可以通過收集數(shù)據(jù)點(diǎn)來幫助組織了解其技術(shù)欠債,這些數(shù)據(jù)點(diǎn)可以幫助管理層實(shí)現(xiàn)安全合規(guī)。管理人員可以輕松評(píng)估重要問題,例如:
一些標(biāo)準(zhǔn)要求測(cè)量圈復(fù)雜度,以使其保持在一定閾值以下。復(fù)雜性指標(biāo)也可以用于估計(jì)測(cè)試工作——例如,您需要證明100%分支級(jí)別覆蓋以符合IEC 61508 SIL 2的測(cè)試用例數(shù)量,將與該函數(shù)的McCabe環(huán)復(fù)雜性成比例。
下面是一個(gè)儀表板示例,顯示了Parasoft DTP(Parasoft的報(bào)告和分析中心)中項(xiàng)目對(duì)MISRA的遵守情況:
這與CERT C相同:
查看代碼指標(biāo)的價(jià)值可能有助于揭露更復(fù)雜的區(qū)域,以便進(jìn)行其他代碼審查,并監(jiān)視測(cè)試對(duì)這些區(qū)域的覆蓋程度。這是度量指標(biāo)儀表板的示例:
因此,您可以從基礎(chǔ)開始。一旦團(tuán)隊(duì)對(duì)管理最關(guān)鍵的錯(cuò)誤感到滿意,就可以增加違反標(biāo)準(zhǔn)的范圍。并非所有規(guī)則都是一成不變的,因此,重要的是要確定哪些規(guī)則在項(xiàng)目編碼標(biāo)準(zhǔn)之內(nèi)或之外。至少,在幾個(gè)關(guān)鍵編碼標(biāo)準(zhǔn)中采用強(qiáng)制性規(guī)則集(例如MISRA強(qiáng)制性或CERT C規(guī)則)可以使連接設(shè)備將來的安全性和安全性論證更加容易。
大多數(shù)務(wù)實(shí)的工程師傾向于同意盲目地為所有功能創(chuàng)建單元測(cè)試并不能提供良好的投資回報(bào)率。但是,如果您的團(tuán)隊(duì)可以將單元測(cè)試框架作為項(xiàng)目沙箱的一部分進(jìn)行訪問,則這是一筆寶貴的投資。當(dāng)工程師認(rèn)為需要單獨(dú)測(cè)試某些復(fù)雜算法或數(shù)據(jù)操作時(shí),可以智能地使用單元測(cè)試。在開發(fā)單元測(cè)試的過程中,還有一個(gè)重要的價(jià)值——我們從組織中看到的是,簡(jiǎn)單地編寫和執(zhí)行單元測(cè)試的做法會(huì)使代碼更健壯和設(shè)計(jì)更好。
當(dāng)出現(xiàn)安全性或安全性合規(guī)性要求時(shí),組織可以通過臨時(shí)增加人員來迅速提高單元測(cè)試的工作量。但是,為了迅速擴(kuò)大工作量,在整個(gè)項(xiàng)目過程中應(yīng)該已經(jīng)理解并記錄了單元測(cè)試框架和過程。考慮到未來合規(guī)性的可伸縮單元測(cè)試框架的共同特征是:
關(guān)鍵要點(diǎn)是部署未來安全標(biāo)準(zhǔn)要求的所有測(cè)試技術(shù),但要以最小的規(guī)模進(jìn)行。當(dāng)出現(xiàn)認(rèn)證需求時(shí),這比從頭開始更容易擴(kuò)展。
設(shè)計(jì)嵌入式系統(tǒng)需要考慮很多“缺點(diǎn)”:簡(jiǎn)單性、可移植性、可維護(hù)性、可伸縮性和可靠性,同時(shí)還要解決延遲、吞吐量、功耗和大小限制之間的折衷。在設(shè)計(jì)可能會(huì)連接到大型IoT生態(tài)系統(tǒng)的系統(tǒng)時(shí),許多團(tuán)隊(duì)并未將安全性和安全性放在其他一些質(zhì)量因素之上。
為了使將來的安全合規(guī)性變得更容易(并遵循良好的架構(gòu)實(shí)踐),您可以在時(shí)間和空間上分離組件。例如,您可以設(shè)計(jì)一個(gè)系統(tǒng),其中所有關(guān)鍵操作都在單獨(dú)的專用CPU上執(zhí)行,而所有非關(guān)鍵操作都在另一個(gè)CPU上運(yùn)行,從而實(shí)現(xiàn)物理隔離。另一個(gè)選擇是采用“分離內(nèi)核管理程序”和“微內(nèi)核”概念。還有其他選擇,但是關(guān)鍵是采用關(guān)鍵架構(gòu)方法,將關(guān)注點(diǎn)分離、縱深防御和盡早混合關(guān)鍵性分離。這些方法不僅減少了遵守安全標(biāo)準(zhǔn)的工作量,而且還提高了應(yīng)用程序的質(zhì)量和彈性。例如,以下是一些隔離關(guān)鍵代碼的方法:
將關(guān)鍵功能與非關(guān)鍵功能分開可以減少將來為證明合規(guī)性而進(jìn)行的驗(yàn)證工作的范圍。
物聯(lián)網(wǎng)生態(tài)系統(tǒng)中的許多邊緣設(shè)備提供的關(guān)鍵服務(wù)可能屬于未來的安全標(biāo)準(zhǔn)。 當(dāng)然,在不知道是否需要標(biāo)準(zhǔn)的情況下嘗試遵守標(biāo)準(zhǔn)并不是一種經(jīng)濟(jì)有效的策略。為了為未來做準(zhǔn)備,組織可以采用關(guān)鍵設(shè)計(jì)技術(shù),單元測(cè)試方法和靜態(tài)分析工具,并收集度量標(biāo)準(zhǔn)來支持未來的需求。如果足夠早地開始,軟件團(tuán)隊(duì)可以將這些方法無縫地應(yīng)用到其現(xiàn)有流程中。從正確的方法開始,盡早進(jìn)行擴(kuò)展,然后再進(jìn)行擴(kuò)展,以防止在開發(fā)、測(cè)試和部署軟件代碼時(shí)合力地付出努力。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn