芯片中的硬件木馬:X86 CPU 到底存在哪些安全風險?
引用從海灣戰爭中薩達姆的防空系統突然癱瘓,到2007年以色列轟炸敍利亞東北部的一處潛在核設施時,敍利亞預警雷達因通用處理器後門而失效,再到2012年伊朗布什爾核電站在信息系統物理隔絕的情況下遭到震網病毒的攻擊....
殘酷的現實向世人闡釋了只要存在國家和利益鬥爭,給CPU留後門的行為就永遠存在。
不久前,自由軟件基金會(FSF)指出,所有現代Intel處理器平台都內置了一個低功耗的子系統IntelManagementEngine,IntelManagementEngine能完全訪問和控制PC,能啟動和關閉電腦,讀取打開的文件,檢查所有運行的程序,跟蹤按鍵和鼠標移動,甚至能捕捉屏幕截圖,它還有一個被證明不安全的網絡接口,允許攻擊者植入rootkit程序控制和入侵電腦。
FSF稱,IntelManagementEngine威脅着用户的隱私和安全,而開發替代的自由固件是一項不可能任務,因此唯一的做法是拋棄Intel平台。
據業內人士分析,由於很多底層功能不開放,導致Intel掌握着用户的命門,雖然Intel未必會隨意黑用户,但確實擁有黑掉用户的能力。其實,除自由軟件基金會曝光度IntelManagementEngine之外,各種硬件木馬,甚至是X86指令集本身也存在安全風險。
| 什麼是硬件木馬?
硬件木馬是指被故意植入電子系統中的特殊模塊以及電路,或者設計者無意留下的缺陷模塊以及電路,這種模塊或電路平日中潛伏在原始電路之中,在特殊條件觸發下,該模塊或電路能夠被攻擊者利用以實現對原始電路進行有目的性的修改,以及實現破壞性功能,使原始電路發生本不該發生的情況——比如泄露信息給攻擊者,使電路功能發生改變,甚至直接損壞電路。硬件木馬能夠實現對專用集成電路(ASIC)、微處理器、微控制器、網絡處理器、數字信號處理器等硬件的修改以及對FPGA比特流的修改。
上圖為一個簡單的利用電流信號觸發的硬件木馬電路,該木馬電路由1個AND門,1個NAND門,1個電容和2個XOR門組成。木馬電路通過監測信號a、b和c實施攻擊。當a、b、c均為“1”時對電容充電,反之,電容放電。若滿足充電條件的時間足夠長,電容結點就會在一定的時間內進入高電平區,從而觸發硬件木馬功能邏輯單元,使信號e發生改變,否則,硬件木馬電路則不影響原始電路的功能。
- 硬件木馬並不遙遠
實事求是地説,硬件木馬離我們並不遙遠——據台灣媒體報道,台灣VIA公司於2014年11月24日在香港高等法院審理“HKIAC/A11022仲裁案”上訴案中,承認VIA的VT3421安全芯片(亦使用編號TF376)有後門,威盛電子高層黎少倫甚至在訴訟中坦承,“這顆晶片,有“後門”(Backdoor)。”
據媒體報道,該起案件的起因是VIA設計生產的VT3421安全芯片被出售給Samsung、Honda、上海通用、中國電子、新科電子等20多家公司後,遭客户投訴經常發射存儲器泄露、頻頻當機等情況而引發的......在案件審理中,VIA公司公然辯稱TF376的設計,“Preventing hackers such as”“Fa Lun Gong”只是產品功能之一;並坦承產品留有後門(Backdoor),“客户不知道Backdoor的存在,亦不能自行啟動”。VIA卻可以輕易打開這個後門,取得末端使用者手機、機頂盒等之包括通話、通訊錄、信用卡、定位等等各種數據。
- 硬件木馬的特點
硬件木馬一般是由攻擊者根據被攻擊系統的工作原理精心設計,實現對底層硬件的修改,而且隨着半導體工藝的不斷髮展,納米級關鍵尺寸和電路高集成度使得硬件木馬的檢測越來越困難。
與傳統的軟件木馬相比,硬件木馬具有以下幾個特點:
一是隱蔽性強。硬件木馬邏輯部件較小且在未激活時不影響系統功能,不易被檢測;
二是設計靈活,作用機制複雜。可實現摧毀,邏輯破壞,信息泄露等不同功能;
三是破壞力大。通用CPU已被廣泛使用,而且通常廣泛用於對信息系統中央控制,一旦遭到硬件木馬攻擊,將對國家利益造成重要威脅;
四是設計要求高。硬件木馬設計需要設計者熟悉系統工作原理,有較高的硬件設計水平;
五是防護檢測難度大。隨着半導體工藝的進步,集成度的提高,使得硬件木馬檢測的難度越來越大。
- 硬件木馬的結構
雖然硬件木馬工作機制的多樣性和設計方法的靈活性使得它的實現方式複雜多樣,但就大多數情況下硬件木馬在單個芯片內部的實現而言,其結構主要由2個功能部件構成。
(硬件木馬結構示意圖)
一是觸發邏輯單元,通過監聽輸入,總線,寄存器數據,監測電路工作狀態或經過設定的工作時間等方式激活功能邏輯單元。根據是否需要觸發邏輯,硬件木馬可分為有條件觸發和無條件觸發2類。
有條件觸發是指木馬電路同時包含觸發邏輯和功能邏輯單元,需要在特定的狀態下激活硬件木馬,此類硬件木馬較為隱蔽,可通過設置較為苛刻的觸發條件,避免被傳統的功能測試檢測;無條件觸發是指硬件木馬電路僅包含功能邏輯單元,木馬電路時刻處於激活狀態,此類木馬活性很強,功耗相對較大,而且易被功能測試等檢測發現,一般只在實驗驗證中使用。
由於硬件木馬工作機制多樣,設計方法靈活,使得觸發單元既可能被組合邏輯信號、時序邏輯信號或混合信號等數字信號觸發,也可能被電流、電壓、温度、電磁等數字信號測試技術很難實施檢測的模擬信號觸發。
二是功能邏輯單元,是硬件木馬攻擊的執行單元,負責實施硬件木馬攻擊行為。當功能邏輯單元被激活後,其通過改變系統輸出或按預先設定的攻擊方式,達到破壞電路正常運行的目的。
功能邏輯單元根據其行為特徵和工作方式的不同可分為顯性功能單元和隱性功能單元。顯性功能單元通過改變電路節點的邏輯狀態來實施攻擊,硬件木馬被激活以後,通過改變電路內部控制信號和數據信號,使得芯片出現錯誤的行為或直接傳輸祕密信息。隱性功能單元同顯性功能單元相比,不改變電路內部邏輯,僅將其作為觸發信號,通過其他方式來實施攻擊,如發射電磁、功耗等旁路信號泄露密鑰、加速芯片失效或者直接物理摧毀芯片,使芯片失效。
| 芯片製造過程中也可植入硬件木馬
日前,來自密歇根大學的研究人員證明了在芯片製造過程中植入硬件木馬的可行性,並在不久前的IEEE隱私與安全大會 (IEEE Symposium on Privacy and Security) 上,他們的研究獲得了最佳論文獎。
在論文中研究人員詳細描述了一種惡意、超微型的硬件後門的概念驗證攻擊。而且,在他們的展示中,黑客通過每分鐘在處理器上運行一系列看上去完全無害的命令,能夠有效地觸發處理器的一項功能,獲得操作系統的完整權限。最讓人恐慌的是,極微小的硬件後門基本無法通過任何現代硬件安全分析手段檢測出來,而且只要芯片工廠中的一位員工就能進完成植入......
密歇根大學的研究人員稱,這種木馬不是篡改芯片的“數字”特性,比如更改芯片的邏輯計算功能,而是一種物理入侵,劫持電流穿過二極管的路線,觸發預料之外的結果。科研人員將該後門的命名為A2,它既代表着密歇根大學所在的城市Ann Arbor,也代表“模擬攻擊”。
換言之,除了在集成電路設計的過程中可以安插硬件木馬之外,在集成電路的製造過程中,同樣可以對原始電路進行惡意修改,安插微小的惡意電路,以達到在無條件或在特定的觸發條件下實現改變系統功能,泄露機密情報,或摧毀系統的目的。
因此,國內一些公司在境外流片的所謂的“安全芯片”,很難説安全保密程度到底有多高。
A2如何發動攻擊?
以下是這種模擬入侵的攻擊方式:在芯片完全設計好,就等着製造的狀態下,攻擊者對控制其佈局的藍圖增加一個元件。現代的芯片上可能會有數百萬乃至數億個這樣的元件或“單元”,它的元件區域和處理器的其它部分並沒有什麼不同:電線、二極管組成了可開關的閘門,實現芯片的邏輯功能。不過,這個單元被祕密地設計成能夠行使電容的功能,因此可以暫時存儲電能。
每次當惡意軟件,比如你瀏覽的網站上的腳本,運行一個特定的、隱蔽的指令,這一電容單元就會“竊取”一部分電能,並將其存儲在單元的電線中,而不會影響芯片的功能。每當這一指令運行一次,該電容就會獲得更多的電能。只有當“觸發”指令運行了數千次之後,該單元才能完全充滿電,並達到一個閾值,讓單元打開處理器的一個邏輯功能,使惡意軟件獲得原本沒有的操作系統最高權限。“攻擊者需要在一段特定的時間裏用很高的頻率連續發出這一指令,然後系統就會轉入一個特權狀態,讓攻擊者可以為所欲為。”
這種利用電容進行觸發的設計模式,意味着任何人都幾乎無法通過連續運行如此之長的指令序列來“打開”後門,測試芯片的安全性。此外,過了一段時間之後,該電容會將其充上的電能放空,重新關上後門,這使得監測工程師更難找到這一漏洞。
在論文中,來自密歇根的研究人員堅稱,“他們的本意是防止這類無法檢測的硬件後門攻擊,而不是發明它們。事實上,世界各國的政府有可能已經想到了這種模擬電路攻擊方法......通過發佈這篇論文,我們説明了,這種攻擊是真實的、迫在眉睫的威脅。現在我們需要找到一種防禦方式。”
硬件木馬檢測十分困難
硬件木馬一旦被人為隱蔽地插入一個複雜的芯片中,要檢測出來是十分困難的,主要有以下幾點原因:
引用一是硬件木馬通常只在非常特殊的值或條件下才能被激活並且發生作用,其他時候對原始電路的功能並無影響,它能躲過傳統的結構測試和功能測試;
二是隨着IP核重用技術的發展,系統芯片(SOC)上使用IP軟核、IP固核和IP硬核的數量增加,檢測一個很小的惡意改動是極其困難的;
三是納米級集成電路與複雜的系統很難通過物理性檢測和破壞性反向工程檢測出硬件木馬,並且成本很高,耗時巨大,特別是當木馬被選擇性地插入到整體芯片中的一部分時,破壞性反向工程也不能保證剩餘的集成電路沒有木馬;
四是由於硬件木馬相對目標電路很小,工藝噪聲與環境噪聲使檢測變得十分困難。
| 指令集也存在安全隱患
據中科網威公司透露,國內單位通過對某些國外CPU的嚴格測試,已經可以確認X86芯片存在功能不明確的“多餘”模塊——這些模塊不是一般意義的調試接口,而是由特定的CPU芯片引腳控制,可讀寫CPU內部狀態寄存器、讀寫指定存儲區域、激活特定的微代碼段執行某個處理流程、並且可以對CPU進行復位。
其實,除了硬件木馬和自由軟件基金會曝光的IntelManagementEngine,X86指令集也存在安全風險——根據中科網威公司透露,經實測,發現X86指令集存在未公開指令,包括加解密、浮點操作在內共計二十餘條,其中,有三條指令在用户模式就可以使機器死機或重啟,作用機制直接穿透各種軟件保護措施,防護軟件不能感知;普通應用程序中嵌入一條即可使系統宕機——Intel和黑客可以利用硬件木馬或後門輕而易舉的黑掉用户,更要命的是,這些硬件木馬的檢測難度非常大,檢測成本也異常高昂。
| 結語
雖然全球CPU公司都一再向社會宣傳自己是多麼的大公無私,向用户承諾自己的產品是絕對安全可靠。但從海灣戰爭中薩達姆的防空系統突然癱瘓,到2007年以色列轟炸敍利亞東北部的一處潛在核設施時,敍利亞預警雷達因通用處理器後門而失效,再到2012年伊朗布什爾核電站在信息系統物理隔絕的情況下遭到震網病毒的攻擊......殘酷的現實向世人闡釋了只要存在國家和利益鬥爭,給CPU留後門的行為就永遠存在。
前車之鑑,後事之師,如何讓中國避免重蹈伊拉克、敍利亞、伊朗的覆轍應為上位者執政的當務之急。
雷鋒網注:本文作者鐵流,雷鋒網(搜索“雷鋒網”公眾號關注)獨家約稿文章,轉載請聯繫我們授權,並保留出處和作者,不得刪減內容。
資料來源:雷鋒網
作者/編輯:鐵流