2018年1月,電腦安全研究人員披露了兩個重大的處理器安全性漏洞:Meltdown和Spectre,惡意程式可以利用這些漏洞竊取安全資料。

工程界和普通民眾早已習慣了為修補軟體漏洞而頻繁更新App或安裝作業系統補丁。而這裡所說的不同,罪魁禍首是硬體,而硬體更新可不便宜。修補硬體漏洞唯一可行的方法是發佈新的軟體,以降低系統速度與能效為代價,遮蔽易受攻擊的硬體功能或避免使用它們,Meltdown和Spectre的發現引發了一系列針對硬體安全的調查。

截至目前,安全研究人員已經公佈了更多的硬體漏洞,包括Foreshadow、ZombieLoad、RIDL和Fallout。這些硬體缺陷危及個人電腦、智慧型手機甚至雲端的安全性。

20190814NT31P1 圖1 攻擊者進程透過基於行填充緩衝區(LFB)的微架構側通道從受害者進程中竊取機密資料。受害者和攻擊者進程處於不同的安全域中。(資料來源:S. van Schaik等人,RIDL:Rogue In-Flight Data Load)

那嵌入式系統是否就安全了呢?

圍繞著處理器的安全性漏洞有一個共同主題是它們都針對具有先進性能最佳化的現代高階實現功能,事實證明,這些先進功能可能被惡意目的利用。

而嵌入式系統通常採用相對簡單的處理器實現。它是一個封閉的環境,供應商應該可以更嚴格地控制它。實際上,在DVCon US 2019會議上,在開放式指令集架構(ISA)的驗證和合規性討論時這個問題已經被提出來。開放式ISA,特別是RISC-V,以及MIPS等,提供優於專有架構的優勢,越來越受到半導體產業和嵌入式設備社區的關注。

嵌入式處理器被應用於許多連網系統,例如工廠、智慧家居、物聯網(IoT)設備、醫療設備和消費電子產品,以及自動駕駛、飛機和其他生命安全攸關關鍵應用。

不同於普遍的看法,嵌入式平台上執行的軟體來自多個通常不可信的來源,例如那些允許使用者執行協力廠商應用程式或運作來自多個供應商和開放原始碼庫的大型軟體堆疊平台。為了最大化硬體利用率並降低成本,關鍵和非關鍵應用程式在同一物理處理器上運作。例如,汽車電子控制單元(ECU)可以在同一處理器核心上執行資訊娛樂程式碼,以及安全相關功能。

直到最近,安全防護還主要集中在軟體堆疊上,其硬體提供諸如信任根的底層防護功能。 RISC-V基金會將精力主要放在安全平台和機制的實現上,以防止不受信任的程式碼影響關鍵系統功能的完整性。這些安全功能對於驗證軟體更新至關重要,從理論上講,這些方法沒有問題,不受信任的軟體只能在定義好的保護殼內運作,無法突破或竊取安全區域的敏感資訊。

漏洞並非高階處理器獨有

不幸的是,還有一個複雜的問題。

最近,電腦科學家公佈了一種新型攻擊,稱為Orc攻擊,它威脅到嵌入式應用中常用的簡單處理器。最重要的是,該篇報告作者已經證明,很小的實施決策可能會產生或者防止嚴重的硬體漏洞。「這裡的關鍵點在於,即使是簡單的設計步驟,例如添加或刪除緩衝區,不經意間也可能在任何處理器中引入隱蔽通道漏洞,」發現Orc攻擊的Kaiserslautern-Stanford團隊成員Mo Fadiheh說。

最終的結果是,Orc和側通道攻擊打破了特權級和用戶級域之間的隔離。加密和安全驗證可以被繞開,惡意代理程式可以推斷出秘密資料,包括密碼、社會安全號碼和醫療記錄;暴露用於驗證韌體更新的金鑰可能允許攻擊者載入自己的程式碼並以更高的許可權執行它或替換作業系統中的某些功能;用於DoS攻擊的後門或終止開關可能被添加;還有無數的可能性。「從理論上講,駭客可以使用Orc漏洞來控制自動駕駛車或者徵用物聯網上連網的電腦,」史丹佛大學(Stanford University)電子工程和電腦科學教授、Kaiserslautern-Stanford團隊成員Subhasish Mitra說。

業界已經意識到了這些風險,並正在積極尋求解決方案。例如,英飛凌(Infineon)就參與了發現Orc漏洞的研究工作。

防止硬體漏洞的系統方法

證明微架構側通道不存在很複雜。硬體安全驗證不僅僅是確保正確實施ISA安全功能,開發和分析威脅模型也是不夠的,因為攻擊場景需要被提前辨識。

發現Orc漏洞的同一個團隊發明了一種強大的方法可以在大規模生產和部署IC之前檢測設計過程中的硬體漏洞,這就是唯一程式執行檢查(UPEC),它可以系統地檢測來自處理器微架構和較小實施決策中的漏洞。

「Orc漏洞的出現反映出,晶片設計師每天都會做出的看似無害的設計決策,但可能會導致嚴重的缺陷,」威斯康辛大學麥迪遜分校(University of Wisconsin-Madison)教授、電腦架構專家Mark D. Hill指出。「透過UPEC,設計人員可以更加自信地發現並消除設計中所有潛在的隱蔽通道缺陷。」

嵌入式系統需要高完整性的IC

在嵌入式系統中,不太可能完全信任和控制軟體堆疊的所有層。因此,即使使用簡單的處理器核心,利用硬體實現中漏洞實施的微架構側通道攻擊也會對安全造成真正的威脅。

基於RISC-V ISA的開放原始碼硬體為更高級別的安全審查提供了機會。但同時,惡意代理軟體也可以對設計執行詳細分析並發現低級漏洞。

20190814NT31P2 圖2 除一些受保護的秘密資料外,UPEC創建包含相同資料的同一運算系統的兩個實例。基於形式驗證的分析揭示了是否有可能構建程序在未被授權訪問秘密資料的情況下在兩個系統中以不同的方式執行。(資料來源:M. R. Fadiheh等人,Processor Hardware Security Vulnerabilities and their Detection by Unique Program Execution Checking。)

而且嵌入式設備一旦部署,更換處理器就很困難且成本高昂。所以,替代方案就是在部署之前即辨識硬體漏洞來防止側通道攻擊。UPEC是一種強大的硬體安全驗證技術,其基於形式驗證的屬性檢查,可以系統地辨識硬體寄存器傳輸層(RTL)設計模型中的漏洞,而不用依靠專業知識來猜測可能存在的問題。

當前UPEC的實施是利用OneSpin Solutions提供的IC完整性來保證產品構建。資料安全性(Security)是IC完整性的基石,當然還有信任、功能正確性和生命安全性(Safety)。各種因素相輔相成,例如安全性漏洞或硬體木馬可能會危及自動駕駛車的安全性。可見,IC完整性對如今的數位世界至關重要。

(參考原文: Side-Channel Attacks on Embedded Processors,by Raik Brinkmann)

本文同步刊登於EE Times Taiwan 8月號雜誌