隨著越來(lái)越多的功能被嵌入到越來(lái)越小的設(shè)備占用空間中,安全問(wèn)題也在增加。通常,新功能會(huì)排擠基本的安全問(wèn)題,因?yàn)楣?yīng)商將越來(lái)越多的功能打包到軟件包中,而幾乎沒(méi)有整體系統(tǒng)工程,而只是粗略的安全測(cè)試。
嵌入式環(huán)境已經(jīng)成熟,安全性必須走在最前沿,就像 20 世紀(jì) 90 年代 PC 發(fā)展時(shí)的安全性一樣。隨著物聯(lián)網(wǎng)(IoT)的爆炸式增長(zhǎng),毫無(wú)疑問(wèn),任何安全漏洞都將被利用。物聯(lián)網(wǎng)設(shè)備使非常有用的業(yè)務(wù)案例成為現(xiàn)實(shí)。同時(shí),它們也帶來(lái)了失去控制的風(fēng)險(xiǎn)。今天的嵌入式系統(tǒng)更加強(qiáng)大和脆弱。如果嵌入式系統(tǒng)要避免1990年代的陷阱,協(xié)議和方法在成為新一代黑客的切入點(diǎn)之前必須到位。
IT 標(biāo)準(zhǔn)組織(如 IT 軟件質(zhì)量聯(lián)盟 (CISQ)、MITRE 常見(jiàn)弱點(diǎn)枚舉 (CWE) 以及 ISO 9000 和 ISO 25000)發(fā)布了指南和軟件質(zhì)量標(biāo)準(zhǔn)。CISQ發(fā)布了針對(duì)安全性、可靠性、性能效率和可維護(hù)性的自動(dòng)化質(zhì)量措施。這些度量提供了一些特定屬性,這些屬性應(yīng)用作嵌入式系統(tǒng)可能需要實(shí)現(xiàn)其業(yè)務(wù)/任務(wù)功能的證據(jù)。在檢查嵌入式系統(tǒng)的狀態(tài)時(shí),很明顯,安全性應(yīng)該預(yù)先設(shè)計(jì)。
實(shí)施安全策略
在考慮安全性時(shí),大多數(shù)嵌入式系統(tǒng)工程師會(huì)立即關(guān)注保護(hù)數(shù)據(jù)的問(wèn)題。系統(tǒng)不僅應(yīng)該保護(hù)數(shù)據(jù)(在應(yīng)用程序中),還應(yīng)該保護(hù)接口不被濫用。這五個(gè)步驟代表了開(kāi)發(fā)嵌入式安全策略的合理起點(diǎn)。
執(zhí)行空間中沒(méi)有未經(jīng)測(cè)試的程序 – 除了執(zhí)行函數(shù)所需的程序之外,其他任何程序都不應(yīng)存在于可以執(zhí)行它們的位置
數(shù)據(jù)必須是私有的 - 程序不應(yīng)無(wú)意中向彼此或向網(wǎng)絡(luò)公開(kāi)信息
在兩端確認(rèn)數(shù)據(jù) – 所有信息必須能夠得到驗(yàn)證,并且必須在預(yù)期范圍內(nèi),并且越界信息被拒絕
安全設(shè)備 – 設(shè)備應(yīng)能夠在啟動(dòng)期間驗(yàn)證其完整性;設(shè)備應(yīng)在發(fā)送或接收數(shù)據(jù)之前對(duì)自己進(jìn)行身份驗(yàn)證
遵循標(biāo)準(zhǔn) – 查看 IT 軟件質(zhì)量聯(lián)盟 (CISQ) 質(zhì)量特征度量,這些度量值可以自動(dòng)執(zhí)行,以進(jìn)行持續(xù)的安全性和軟件質(zhì)量分析和緩解
采取措施 – 如果發(fā)生異常,程序在處理問(wèn)題時(shí)必須繼續(xù)運(yùn)行
執(zhí)行空間中沒(méi)有未經(jīng)測(cè)試的程序
隨著嵌入式供應(yīng)商努力使其產(chǎn)品與眾不同,他們將程序添加到其標(biāo)準(zhǔn)分發(fā)中。其中許多將不會(huì)被使用,并代表潛在的安全風(fēng)險(xiǎn)。這些程序必須被消除,或者更好的是,永遠(yuǎn)不要安裝。要求一個(gè)操作系統(tǒng)發(fā)行版,除了操作系統(tǒng)工作和手動(dòng)安裝程序的必需品之外,沒(méi)有任何內(nèi)容。極簡(jiǎn)主義策略最適合代碼。如果供應(yīng)商不提供精簡(jiǎn)的分發(fā),操作系統(tǒng)可以限制這些程序和敏感 API 的訪(fǎng)問(wèn)權(quán)限,或者可以刪除未使用的代碼。
更好的方法是為自定義和第三方應(yīng)用程序提供一個(gè)沙盒,以便執(zhí)行,然后通過(guò) API 推送通信,從而提供必要的隔離。
硬件本身應(yīng)該是“干凈的”,沒(méi)有安裝任何程序。開(kāi)發(fā)人員安裝設(shè)備上的任何程序都是關(guān)鍵。每段代碼都必須來(lái)自受信任的開(kāi)發(fā)人員,并且在安裝之前無(wú)法更改。
數(shù)據(jù)必須是私有的
程序不應(yīng)無(wú)意中相互暴露信息或向網(wǎng)絡(luò)公開(kāi)信息。盡管相信一臺(tái)設(shè)備不能在互聯(lián)網(wǎng)上被黑客入侵是很誘人的,但它根本不是現(xiàn)實(shí)。隨著程序中模塊的增長(zhǎng),數(shù)據(jù)工件往往會(huì)隨之增長(zhǎng),數(shù)據(jù)往往會(huì)變得越來(lái)越暴露。
嵌入式設(shè)備收集敏感數(shù)據(jù)(例如,醫(yī)療保健,企業(yè)),并且很有可能在數(shù)據(jù)流量到達(dá)目的地之前重新路由和修改數(shù)據(jù)流量。應(yīng)該進(jìn)行檢查以防止復(fù)制和粘貼,以及在設(shè)備落入壞人之手時(shí)遠(yuǎn)程擦除數(shù)據(jù)的能力。
開(kāi)發(fā)人員在滿(mǎn)足最后期限的壓力下,傾向于從自己和同事那里借用代碼和例程。任何安全漏洞都將被傳播。在第一時(shí)間正確設(shè)計(jì)和構(gòu)建代碼。
在兩端確認(rèn)數(shù)據(jù)
所有信息都必須在預(yù)期范圍內(nèi)進(jìn)行驗(yàn)證,并明確識(shí)別。在兩端使用相同的例程來(lái)驗(yàn)證內(nèi)容至關(guān)重要。接口應(yīng)該對(duì)傳入的內(nèi)容敏感,并且能夠在數(shù)據(jù)不正確時(shí)采取措施。當(dāng)設(shè)備從“受信任”的設(shè)備接收到不良數(shù)據(jù)時(shí),入侵很可能是黑客攻擊。對(duì)于直接硬件接口也是如此。
與隱私一樣,所有與外部世界的聯(lián)系都需要被視為可疑。應(yīng)驗(yàn)證接口并檢查數(shù)據(jù)。
保護(hù)設(shè)備
設(shè)備應(yīng)該能夠在啟動(dòng)期間驗(yàn)證其完整性,并應(yīng)在發(fā)送或接收數(shù)據(jù)之前對(duì)自己進(jìn)行身份驗(yàn)證。知道誰(shuí)在發(fā)送數(shù)據(jù)很重要,其中一個(gè)更簡(jiǎn)單的黑客是替換未經(jīng)驗(yàn)證的設(shè)備。
啟動(dòng)時(shí),設(shè)備必須使用加密生成的數(shù)字簽名。資源受限的設(shè)備可以使用獨(dú)特的硬件特征而不是計(jì)算密集型算法來(lái)生成用于身份驗(yàn)證的數(shù)字簽名。未通過(guò)該檢查的設(shè)備應(yīng)具有計(jì)劃的響應(yīng)。默認(rèn)操作可能不適用于任何給定設(shè)備。
每個(gè)設(shè)備都應(yīng)該有一個(gè)密鑰,每個(gè)設(shè)備都應(yīng)該知道其類(lèi)型的可接受密鑰。當(dāng)收到未識(shí)別的密鑰時(shí),應(yīng)計(jì)劃響應(yīng),而不是簡(jiǎn)單地忽略響應(yīng)。如果接收信息對(duì)設(shè)備的功能至關(guān)重要,則多次接收錯(cuò)誤的 ID 應(yīng)被視為攻擊。規(guī)劃此故障至關(guān)重要。
遵循標(biāo)準(zhǔn)
CISQ發(fā)布了一個(gè)安全標(biāo)準(zhǔn),旨在識(shí)別由MITRE在常見(jiàn)弱點(diǎn)枚舉(CWE)中維護(hù)的IT應(yīng)用軟件中的前25個(gè)已知安全漏洞。CWE 是一組可衡量的項(xiàng)目,可用作復(fù)原能力、安全性和安全性的證據(jù)。代碼分析器(如 CAST)可以從復(fù)雜的環(huán)境中挑選出這些代碼。開(kāi)發(fā)人員應(yīng)該始終與這些重要標(biāo)準(zhǔn)保持聯(lián)系。
下手
如果發(fā)生異常,程序在處理問(wèn)題時(shí)必須繼續(xù)運(yùn)行。開(kāi)發(fā)人員通常專(zhuān)注于接收到良好數(shù)據(jù)時(shí)會(huì)發(fā)生什么,但錯(cuò)誤處理通常過(guò)于簡(jiǎn)單。開(kāi)發(fā)人員培訓(xùn)假設(shè)不良數(shù)據(jù)是編程的產(chǎn)物,而不是黑客攻擊,這是需要審查的策略。對(duì)所有關(guān)鍵組件進(jìn)行保證案例測(cè)試。保證案例支持對(duì)實(shí)現(xiàn)進(jìn)行迭代審查和修訂,直到系統(tǒng)顯示正確的行為。
在某些情況下,設(shè)備可能有一種方法可以通知另一個(gè)設(shè)備它受到攻擊。在其他情況下,它可能只是選擇忽略或解決威脅。無(wú)論哪種情況,通信都是避免黑客攻擊的強(qiáng)大武器。
保護(hù)嵌入式設(shè)備
嵌入式安全正在成為嵌入式設(shè)備的關(guān)鍵需求。通過(guò)遵循這些建議,您的嵌入式解決方案可以專(zhuān)注于解決其旨在解決的問(wèn)題,而不會(huì)為新一代黑客打開(kāi)閘門(mén)。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5154文章
19709瀏覽量
318198 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2931文章
46307瀏覽量
393631
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式軟件開(kāi)發(fā)常用的軟件有哪些?
嵌入式軟件行業(yè)增長(zhǎng)驅(qū)動(dòng)因素
嵌入式應(yīng)用中常見(jiàn)的安全威脅

嵌入式主板開(kāi)發(fā)詳細(xì)指南

嵌入式軟件測(cè)試技術(shù)深度研究報(bào)告
嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開(kāi)發(fā)環(huán)境

如何提高嵌入式代碼質(zhì)量?
普華基礎(chǔ)軟件推動(dòng)嵌入式功能安全邁向新臺(tái)階
新手怎么學(xué)嵌入式?
什么是嵌入式操作系統(tǒng)?
什么是嵌入式?一文讀懂嵌入式主板
EsDA,一站式嵌入式軟件

嵌入式linux開(kāi)發(fā)的基本步驟有哪些?
學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計(jì)
嵌入式軟件開(kāi)發(fā)與AI整合

評(píng)論