在構建物聯網產品以確保物聯網設備安全時,人們應該問自己一些問題。在構建物聯網解決方案時確保安全是非常具有挑戰性的。
可以論證的是,保護解決方案的“云”端并不是什么新鮮事,而且有很多完善的實踐和支持框架可以幫助您做正確的事情。當涉及到“硬件”方面,最終連接到公共網絡的嵌入式設備——這對大多數人來說仍然是未知的領域。
本文將介紹在構建連接產品時應該問自己的幾個問題,并提供一些答案,以幫助企業使下一個物聯網設備盡可能安全。
(1)我的設備的身份是什么?它是不可偽造的嗎?
當您以個人身份對網站或任何形式的在線服務進行身份驗證時,您通常依賴于多因素身份驗證(MFA)來避免冒充和身份盜竊。多因素身份驗證使得攻擊者幾乎不可能偽造您的在線身份,因為他們可能無法訪問驗證所述網站或服務所需的所有證據。
例如,他們可能知道你的密碼,他們甚至偷了你的手機,但他們不知道你的6位數密碼,也沒有你的指紋。簡而言之:他們將無法完成登錄過程并冒充您。
(2)是否可以實施類似的機制來防止物理物聯網設備的身份盜竊?
答案是使用專用硬件,如可信平臺模塊(TPM)。簡而言之,這種設備持有由硬件保護的加密密鑰。私鑰一旦存儲在模塊中,就永遠不會離開模塊,然后使用公鑰來證明設備的身份。由于密鑰無法偽造,因此冒充設備實際上相當于獲得對其的物理訪問權限(當然,這會帶來其他安全問題,我們將很快討論!)。
(3)我的代碼在哪里運行?
術語可信計算基礎(TCB)是指對系統安全性至關重要的一組硬件、固件和軟件組件。物聯網設備有幾個方面將在確保系統的整體安全性方面發揮作用,從前面提到的TPM到操作系統的內核(可能是實時的)。
在設計物聯網設備時,必須記住,可信計算基礎應盡可能小。這樣,可以最小化攻擊的表面,并降低TCB中允許攻擊者繞過安全保護并部署惡意有效負載(例如,允許他們竊取有價值的業務數據)的錯誤(或功能!)的風險。
如果可以的話,嘗試在一個操作系統或實時操作系統之上構建,它允許只發布和啟用您真正需要的功能。在任何情況下,您的應用程序代碼都應該在TCB之外運行,這樣它就可以在不影響安全性的情況下出錯。
(4)我的軟件組件是劃分的嗎?
看門狗計時器是一個精妙的概念,如果嵌入式系統的一個組件停止響應,可以自動觸發完全重置——我有時也想知道它們是否應該首先存在。
從歷史上看,通常由于硬件的限制,嵌入式代碼被設計成一個相當單一的整體,其中一個組件的缺陷或破壞可能會危及整個系統,因此需要監管機構來減輕軟件故障的后果。
現在,除了一個無害的軟件錯誤導致模塊掛起之外,如果論的是該模塊的破壞,會發生什么?當然,人們不希望攻擊者因為某個軟件模塊的缺陷而控制整個系統。
為了降低這種風險,安全的物聯網設備應該允許將其各種軟件組件劃分開來,并在它們之間實現硬件強制的邊界。如果在RTOS之上構建,允許將模塊作為獨立的任務或進程運行,那么可能處于良好狀態。
更重要的是,您的設備將理想地具有安全模型,允許限制每個軟件模塊可以訪問的硬件資源。
(5)我的安全機制的網播范圍有多廣?
從分布式拒絕服務(DDoS)或勒索軟件攻擊到使用物聯網設備作為訪問企業網絡的一種方式,物聯網設備可能成為黑客的一個誘人目標。你應該假設你的設備會被黑客攻擊,黑客通常比你想象的更有創造力和持久性。
縱深防御起源于軍事領域,是一種通過將資源(防御工事,軍事單位等)部署在前線并遠遠超出前線而延遲攻擊者的技術。這樣,即使攻擊者設法突破前線,他們在深入戰場時仍將面臨幾層防御。
應用于物聯網設備(以及一般的IT),縱深防御包括實施多層安全控制,在每個潛在威脅面前放置幾種類型的緩解措施。
例如,控制對物理總線的訪問的內部防火墻、網絡防火墻和安全引導的組合將大大減少您的設備受到威脅的機會。在不太可能發生的情況下,攻擊者通過安全引導并能夠執行惡意負載,防火墻將阻止他們物理訪問設備的外圍設備或連接到遠程第三方服務器。
(6)鑒權是基于密碼還是證書?
由于可公開訪問的設備依賴于默認憑據,因此存在明顯的威脅,除此之外,基于密碼的身份驗證在大規模管理時可能會很棘手。
例如,如何從被盜的密碼中恢復,特別是當它被部署在現場的數千臺設備使用時?另一方面,基于證書的身份驗證不依賴于共享秘密,并且支持相互身份驗證,從而限制了中間人攻擊的風險。
(7)設備可以輕松自動更新嗎?
說到物聯網設備,俗話說:“如果你不能更新它,你就不能保護它。”
為了使設備在一段時間內保持安全,它需要允許隨著安全威脅的發展和攻擊者發現新的攻擊媒介而推出安全更新。
在理想情況下,用戶還應該有適當的硬件措施,以防止設備在更新后恢復到已知的易受攻擊狀態。
我的設備是否報告故障?
物聯網設備可能出現故障的原因有很多。例如,它可能是由于攻擊者試圖通過利用漏洞或嘗試暴力破解密碼來控制它。它也可能僅僅是由于設備遇到角落情況并切換到未定義狀態,使其易受攻擊。
無論出于何種原因,能夠跟蹤整個機隊的這些故障都是至關重要的,這樣不僅可以診斷和糾正故障,還可以在攻擊被有效利用之前隔離和減輕潛在的攻擊向量。
有幾種解決方案可以幫助處理錯誤報告。Azure物聯網安全中心及其相關的開源代理是如何自動收集和記錄事件的好例子,例如登錄嘗試失敗,來自異常IP地址的連接等。
結論
人們可能喜歡親自動手使用實際設備和實際代碼來熟悉一個新領域。如果是這樣的話,我只能推薦AzureSphere開發工具包作為工具來掌握構建安全物聯網設備所需的工具。
該套件基于開放硬件參考設計,基本上實現了本文中列舉的所有屬性,并使物聯網設備安全。它具有一個安全的,連接的微控制器單元(MCU),一個定制的高級基于linux的操作系統,以及一個基于云的安全服務,提供持續的,可更新的安全性。