軟件中的安全漏洞很難發現。特意種植的那些:間諜或蓄意破壞分子制造的隱藏后門甚至更難發現。想象一個不是種植在應用,或者深深嵌入在操作系統中的惡意軟件。它藏得更深,在計算機運行所需的處理器中。
再想象一個基于硅的后門,它并不僅僅對計算機的軟件隱身,甚至對芯片的設計者也隱身。芯片設計人員不知道它是被芯片的制造商,比如某家大型的電子設備生產工廠添加進去的。而且它只是數百、數百萬、甚至數億元件中的其中之一;每個這樣的元件都僅有人類頭發直徑的千分之一大小。
實際上,來自密歇根大學的研究人員并不只是想象出了這種計算機安全噩夢。他們還制造出了它,證明了其可行性。上周IEEE隱私與安全大會 (IEEE Symposium on Privacy and Security) 上,他們的研究獲得了最佳論文獎。文中,研究人員詳細描述了一種惡意、超微型的微型硬件后門的概念驗證攻擊。而且,在他們的展示中,黑客通過每分鐘在處理器上運行一系列看上去完全無害的命令,能夠有效地觸發處理器的一項功能,獲得操作系統的完整權限。最讓人恐慌的是,研究人員寫道,極微小的硬件后門基本無法通過任何現代硬件安全分析手段檢測出來,而且只要芯片工廠中的一位員工就能進行種植。
密歇根大學計算機科學教授Todd Austin領導了這項研究,他表示:“使用當前技術檢測它將會非常非常具有挑戰性,幾乎完全不可能。它就像稻草山里面的一根針。”谷歌的工程師Yonatan Zunger也在讀完論文之后寫道:“這可能是這么多年來我見到過的最惡毒、最聰明的計算機安全攻擊。”
模擬電路攻擊
密歇根大學的研究人員發現的這一“鬼馬聰明”的后門不止厲害在它的體積上,還在于它是一個隱藏的硬件,而不是軟件。這一點顛覆了安全行業對芯片數字特性最基本的假設,成了芯片被入侵的一種新方式。它不是篡改芯片的“數字”特性,比如更改芯片的邏輯計算功能:研究人員將他們的后門稱為“模擬”的,它是一種物理入侵,劫持電流穿過二極管的路線,觸發預料之外的結果。該后門的名字叫A2,它既代表著密歇根大學所在的城市Ann Arbor,也代表“模擬攻擊” (Analog Attack) 。
以下是這種模擬入侵的攻擊方式:在芯片完全設計好,就等著制造的狀態下,攻擊者對其“面具” (控制其布局的藍圖) 增加一個元件?,F代的芯片上可能會有數百萬乃至數億個這樣的元件或“單元”,它的元件區域和處理器的其它部分并沒有什么不同:電線、二極管組成了可開關的閘門,實現芯片的邏輯功能。不過,這個單元被秘密地設計成能夠行使電容的功能,因此可以暫時存儲電能。
以下的圖片顯示了研究人員制造的處理器大小與惡意單元大小的比較。
每次當惡意軟件,比如你瀏覽的網站上的腳本,運行一個特定的、隱蔽的指令,這一電容單元就會“竊取”一部分電能,并將其存儲在單元的電線中,而不會影響芯片的功能。每當這一指令運行一次,該電容就會獲得更多的電能。只有當“觸發”指令運行了數千次之后,該單元才能完全充滿電,并達到一個閾值,讓單元打開處理器的一個邏輯功能,使惡意軟件獲得原本沒有的操作系統最高權限。“攻擊者需要在一段特定的時間里用很高的頻率連續發出這一指令,然后系統就會轉入一個特權狀態,讓攻擊者可以為所欲為。”
這種利用電容進行觸發的設計模式意味著任何人都幾乎無法通過連續運行如此之長的指令序列來“打開”后門,測試芯片的安全性。此外,過了一段時間之后,該電容會將其充上的電能放空,重新關上后門,這使得審計人員更難找到這一漏洞。
新規則
以前也曾出現過處理器級別的后門。但通過建立一個能夠發揮芯片元件物理屬性,“偶然地” 聚集并堆積小股電能,利用漏洞的后門,而不是利用元件本來的邏輯功能,研究人員表示他們的后門元件可以做成比之前利用漏洞的硬件小上千倍的體積。此外,這種方式更難被現在的技術探測到,比如肉眼檢測,或者監測其電能使用,發現異常。密歇根大學的另一位研究人員Matthew Hicks說:“我們在‘矩陣之外’利用了這些規則,讓這種技巧變得不再那么昂貴和明顯。通過不同的規則集合,我們實現了一種更加隱蔽的攻擊。”
密歇根的研究人員目前將A2后門嵌入了一個OR1200處理器,以測試他們的攻擊。由于后門機制依賴于芯片布線的特性,他們甚至在給芯片加降溫的條件下測試了后門的觸發過程,使用的溫度范圍是華氏-13度到212度,而且發現該方法仍舊能夠實現。
以下是研究人員用于在不同溫度下測試安裝了后門的處理器的實驗環境。
由于他們的介入對于計算機安全的未來非常危險,來自密歇根的研究人員堅稱他們的本意是防止這類無法檢測的硬件后門攻擊,而不是發明它們。他們稱,事實上,世界各國的政府有可能已經想到了這種模擬電路攻擊方法。“通過發布這篇論文,我們說明了,這種攻擊是真實的、迫在眉睫的威脅?,F在我們需要找到一種防御方式。”
不過,考慮到目前檢測處理器級別后門的方法無法發現他們的A2攻擊,研究人員稱需要一種新方法: 現代處理器芯片需要一種可信的元件,持續檢查是否有軟件被非法授予了操作系統級別的權限。 通過保證這一元件的安全,比如在安全的生產設施中制造它,或者確保這種設計沒有在生產之前遭到篡改,可能比找到方法確保整個芯片安全要容易得多。
他們承認,進行這樣的修復可能需要時間和金錢。但在它之外,這一概念驗證攻擊的本意是顯示計算機安全甚至在它被賣出之前就已經可能被徹底污染與破壞。“我希望這篇論文能夠強調一種需求,在生產過程中建立信任,否則可能會發生很糟糕的事。”