無人機起飛之前,請先確保物聯網安全無虞
在嵌入式系統的世界裡,透過匿名方法提供安全性已是常態。然而,當我們將這些裝置互相連接納入物聯網系統時,卻讓這些裝置暴露於不可預測的安全風險。
一旦設計師開始將連接架構納入系統,安全漏洞勢必將成為全新的挑戰。工程常識告訴我們須採取新的方式來對物聯網系統進行壓力測試,因為這些系統所使用的設備,多半是網路連接時代來臨前所開發的舊款硬體與設計技術。
以商業無人機為例,當越來越多無人機與網路連接時,其硬體與軟體也暴露在網路威脅之中。這個典型的例子說明了為什麼設計師必須在設計時就將安全議題列入考慮,不能留待設計完成後再處理。
雖然攸關安全的各個面向需要透過先進的測試能力加以驗證,但若要解決大部分的問題,則必須在虛擬平台上建立某種形式的模型。
使用硬體進行測試不僅成本高昂且過程複雜。工程師必須讓裝置暴露出已知的漏洞,過程可能須耗費數天甚至數週,而且還可能會對硬體造成實體損壞。
發現物聯網的漏洞
這時就是進行錯誤注入或滲透測試的時候。滲透測試會對無人機(或其他嵌入式系統)展開模擬攻擊以偵測漏洞。過程中,開發人員會使用已知攻擊或弱點的資料庫,在受測裝置(DUT)中注入錯誤,然後分析回應(圖 1)。
Wind River 工具與模擬產品主管 Sean Evoy 表示:「在嵌入式領域內,一個新興的研究議題是,如何以主動方式找出安全漏洞」「問題通常是實踐方式。我可以使用哪些工具來部署與執行這種例行性的滲透測試,說得更確切些,我該如何使用具有可擴充性的方式進行?」
有別於使用實體硬體而且故障事件可能僅偶爾發生的測試系統,虛擬平台讓設計師得以於任何特定時間建立完整且精確的系統檢查點。
模擬系統的檢查點可讓設計師在記憶體中注入錯誤,然後利用某件硬體或舊款匯流排中的漏洞。有了這項資訊,設計師即可觀察系統如何回應。例如,物聯網開發人員可以瞭解如果有人惡意更改記憶體的設定值,無人機會如何回應。
因此,開發人員並不是測試無人機的實體,而是利用軟體模擬無人機內執行的硬體。換言之,他們可以建立數位分身並在伺服器或網路硬體上執行。
使用模擬引擎建立模型
我們因此把目光投向 Simics,這款由 Wind River 系統推出的工具組可讓嵌入式設計師在虛擬平台上,按所需詳細程度為硬體建立模型。這款工具組也可用於建立數位分身。數位分身是一個軟體概念,意思是建立實際物體的類比物件,我們可以藉由這種方式為感測器、無線數據通訊系統和定位系統建立軟體分身。
該分身是從嵌入式系統透過抽象過程所建立,可以極小也可以極大,而且讓設計師可以完全掌控硬體(圖 2)。Simics 可協助建立規模化模擬,以及協助建立個別無人機、特定零組件或無人機互連網路的模型。唯一的限制就是設計師可用於測試這些模型的硬體或伺服器的可用性。
每一項建立起來的模型都需要特定數量的資源,例如記憶體和 CPU 週期。這些無人機(或工業控制系統和其他物聯網應用程式)所搭載的 Intel® 處理器可以對硬體進行抽象化,以允許多項工作負載分享共同的一組資源。
此外,Intel® 虛擬化技術(Intel® VT),在消除效能額外負荷並提升安全性的同時,也可為虛擬化軟體提供硬體支援。
Simics 還可以協助建立虛擬平台網路——設計師駕駛 50 台無人機,並且觀察這些無人機如何在網路中運作。Evoy 表示:「安全性專家可以透過引入噪音並模擬訊號丟失或無人機零組件故障,來對網路進行模糊測試。」
他補充說,有別於只能在固定時間內收集資料以找出故障的實際硬體測試,模擬時所用的系統時鐘可向前推進與倒轉,以找出問題的根本原因。
「Simics 可讓設計師注入錯誤然後倒轉時鐘,直到找出錯誤為止。接著,他們就可以推測該錯誤的原因。」他如此說道。
廣泛的物聯網網路安全測試
結論就是,在開發和原型設計階段,設計師如果能進行廣泛的安全測試,就能省下時間和金錢——在無人機升空前確保其能正常運作。此外,開發人員可在受控制的模擬環境中測試網路安全,找出固定出現的安全漏洞,並且快速修復問題。