Skip to main content

UEFI 基礎的物聯網韌體更新讓維護安全更簡易

在這個物聯網 (IoT) 時代,所有物品都連上網路,每個連接點在心懷不軌的人眼中,彷彿寫著「駭我」兩個大字一般。 要防範駭客的攻擊,開發人員需要確保所有韌體及相關的修補程式都是最新版本,而且擁有通過驗證的安全修訂控制。 任何未安裝修補程式或過時的韌體都會讓通往重要系統功能的門戶大開。

不幸的是,保持韌體隨時更新的這項需求常常在產品交付出去後就被開發團隊忽略了。 很多時候這是因為所需的資源與牽涉到的複雜程度太高所導致。 但若整個遠端或空中下載 (OTA) 更新及防護韌體的程序能夠以簡單好用又可靠的解決方案標準化、封裝化,順暢地處理您要管理的硬體,那該有多好?其實早就有能辦到這件事的解決方案了。

軟體/韌體團隊常身陷安全麻煩

在嵌入式系統中,無論是錯誤、安全弱點,還是其他問題,負責修正解決的通常都是軟體/韌體團隊。 按邏輯來說,修正軟體比直接修理硬體簡單且成本低得多。

從安全性的角度來看,消除弱點通常是要從軟體著眼,因為幾乎所有遠端駭客案件都是針對軟體或韌體的弱點下手。 理由是什麼?因為以遠端等方式透過韌體發動攻擊,比實際上接觸要破壞的硬體來得容易許多。

在韌體有安全漏洞的狀況下和物聯網連線,就有可能危害到數百萬台裝置。 嚴重的裝置韌體漏洞有可能造成個資、企業資料,甚至是醫療資料外洩。 除此之外,如果駭客取得作業系統 (OS) 的存取權,他們就能完全掌控該裝置,讓整個網路陷入危機。 假設新的漏洞會不停出現,要面對的挑戰就是如何做到快速反應,避免受到影響或將傷害降到最低。弱點存在越久就越容易受到攻擊,可能造成的傷害也越嚴重。

透過將更新程序標準化,符合規範的作業系統就能套用韌體更新到任何平台,就跟套用作業系統驅動程式或應用程式更新一樣簡單。 由於物聯網裝置已連線到網路上,因此能流暢地透過空中下載技術檢查是否有更新並進行下載,藉此快速消除弱點,甚至能夠在解決方式發布的同一天就完成修正。 以上前提是開發人員必須先解決一些與實作 OTA 更新相關的問題。

更新過時韌體:開發兩難

透過 OTA 更新,OEM 廠商現在能夠從遠端防堵韌體漏洞, 但要有效率地導入既有用又安全的 OTA 更新,就會面臨兩大挑戰。 其一是區分出過時的韌體元件,以及目前存在於特定系統內的元件。 韌體更新通常需要重設裝置,對某些系統來說成本太過昂貴,因此目標是要降低韌體更新的頻率。

要分辨出需要更新的元件,首先得記得韌體本身並非一體成形。 許多在物聯網裝置上的個別 IC 和其他元件都各自有其韌體,因此開發人員和安全專家必須比 BIOS 層級更進一步,在各種元件中一一辨識出哪些是可以升級的元件。

另一個挑戰是判斷新的韌體版本是否確定安全無虞。

UEFI Update Capsule:獨立安全的韌體更新

為協助設計人員快速克服這些挑戰,並讓 OTA 韌體更新更自然地成為產品設計與支援循環中的一部分,OEM 廠商如今開始利用統一可延伸韌體介面 (Unified Extensible Firmware Interface, UEFI) 規格的 Update Capsule 技術。 這麼做可將特定韌體元件獨立出來進行更新。 將 UEFI Update Capsule 導入現成的 UEFI BIOS 韌體解決方案(能夠監控可更新的韌體元件版本,並僅接受「已知良好」的韌體版本以進行更新),就能確保整體系統韌體盡可能保持在最安全的狀態。

導入 UEFI 規格即可透過載入 UEFI 驅動程式和應用程式映像來延伸平台韌體(圖 1)。 當載入這些映像後,就能存取所有 UEFI 定義的執行時間和開機服務。

圖 1. 透過載入 UEFI 驅動程式和應用程式映像(按照 UEFI 規範所定義),這些映像就能取得所有 UEFI 定義之執行時間與開機服務的存取權。 (來源:Insyde Software

UEFI 韌體會傳遞稱為 EFI 系統資源表格 (EFI System Resource Table, ESRT) 的表格,它會描述物聯網裝置上所有可更新的韌體元件,以及每個元件的版本。 當有可用的韌體更新時,它會讓作業系統發現。

當然,如果更新帶來的問題比能解決的還多,那就根本稱不上是更新了。 例如,您絕對不會上傳比現有版本還舊的版本來當成「新」版本使用。 您也絕對不會想要上傳包含惡意軟體的版本,或根本不是物聯網裝置廠商想用的版本。

針對這個理由,UEFI Capsule(包含其版本)會經密碼編譯簽署,驗證金鑰則嵌入於一個快閃記憶體裝置中。 這讓 UEFI Capsule 可在開機程序中、早於 UEFI 韌體執行第三方程式碼之前被存取。

透過此項技術,物聯網裝置製造商就能對產品的安全性更放心。 OEM 廠商也能將傳送出修補程式所花的時間降到最低,好把時間花在開發有利於創造營收的服務。

不過要讓開發人員能充分享受到此技術所帶來的好處,就不能缺少現成的 OTA 版本控制和驗證解決方案。

防堵連網嵌入式裝置中的漏洞

有一間公司叫做 Insyde Software 已經開發出這類解決方案。 該公司所開發的解決方案 InsydeH2O 已在數百種不同的平台內測試過,藉由啟用簡單的更新傳遞機制,協助物聯網裝置開發人員快速回應韌體安全漏洞。

這個軟體工具利用 UEFI Update Capsule 技術的優點,回報系統中每一個可更新韌體元件目前的版本。 接著軟體就會接受已經過驗證的更新,並在安全的環境下套用。 如上所述,ESRT 會回報所有可更新韌體元件目前的版本。 即便作業系統或本地 IT 管理人員沒有提供韌體更新的連線存取,InsydeH20 Firmware Flash Tool 的公用程式 H2OFFT 還是能讓使用者快速輕鬆地以新的 BIOS 韌體更新快閃裝置。

InsydeH20 可以和 OTA 更新一起實作,確保物聯網裝置韌體維持安全狀態和最新版本。 這是藉由鎖定快閃記憶體並讓作業程式知道目前執行的是哪個版本的韌體而辦到。 作業系統接著會接受已驗證的韌體更新版本。 然後 InsydeH2O 會重新檢查,確定新版本已經獲得廠商批准。

沒有任何安全更新程序會強過於處理器為搭載韌體的快閃裝置所提供的保護。 Insyde Software 利用 Intel Atom® C3000 處理器的功能所帶來的好處,確保新一代物聯網邊緣裝置的安全性。

Intel Atom® C3000 處理器讓 InsydeH2O 可以鎖定快閃裝置,避免其之後未經授權遭到修改。 此外 Insyde 的 BootGuard 在 Denverton Innovation Engine 上可以在系統執行韌體前就先進行一部分的韌體驗證,支援 NIST-800-155 規範提供的安全碼驗證。

因為好的理由登上頭版

結合標準化的韌體更新技術及硬體安全功能,讓 OEM 廠商能夠解決已部署在外的裝置中的弱點。 不僅如此,InsydeH20 這樣的技術會主動監控韌體版本,確保韌體是安全的而且是最新版本,為開發人員省去麻煩,不用在整個生命週期中手動查看眾多連網裝置的各韌體元件狀態。 開發人員現在可以專注於創造具有附加價值的服務,更重要的是能大幅減少自己的物聯網系統被駭的機會,甚至最後因此登上新聞版面。

作者簡介

Richard Nass’ key responsibilities include setting the direction for all aspects of OpenSystems Media’s Embedded product portfolio. Previously, he was the Brand Director for UBM’s award-winning Design News property. Nass has been in the engineering OEM industry for more than 25 years. In prior stints, he led the Content Team at EE Times, and the TechOnline DesignLine network of design engineering websites. Nass holds a BSEE degree from the New Jersey Institute of Technology.

Profile Photo of Rich Nass