電腦里的CPU被藏了臺小電腦?
問你兩個問題:
首先,你的電腦運行什么操作系統?
無非是 Windows 10、macOS,或者成百上千種 Linux 發行版的其中一個吧……
第二個問題:你的服務器,運行什么操作系統?
基本都是 Linux 吧……
但如果硅星人(微信公眾號:guixingren123)告訴你:你的電腦和服務器里,其實還藏著一臺你根本不知道的神秘「小電腦」,運行著一個你根本不知道的神秘操作系統呢?
來,搬好小板凳,開講。
隱藏在 CPU 里的神秘「OS」
再問一個問題:你的電腦或者服務器用的什么處理器?
只要是 Mac/Windows PC/Chromebook,而且是最近幾年購買的——肯定用的是英特爾的處理器,沒有懸念。
而我們今天的主角,這臺神秘的電腦和操作系統,就藏在英特爾處理器里。
從 2006 年往后所有的英特爾處理器里,都植入了一個名叫 AMT 的技術。
它的全稱是:Active Management Technology(主動管理技術,也叫 ME, Management Engine)[1]
這么一大段字,硅星人幫你長求總一下:
首先,AMT 能夠讓英特爾遠程維護升級處理器固件,以保護計算機不在處理器這個環節被攻破。
其次,如果你被解雇了,公司 IT 可以在處理器的層級遠程控制你的電腦,該鎖定鎖定該重置重置,確保公司資料不外泄。
那么,AMT 又是怎么實現的呢?
這是因為,處理器里本來就運行著一個名叫 MINIX (mini-Unix) 的操作系統。它的體量非常小,通常只有 5MB 左右,在處理器出廠之前就已經寫了進去。
也就是說:MINIX 是世界上最流行的操作系統——比 Linux 還流行……
有了 AMT 和 MINIX,你的 CPU,其實不是你的 CPU 了。AMT 就像寄生在你電腦里的一臺「小電腦」一樣。
它不但不受宿主的控制,反而會控制宿主![2]
就像科幻電影《黑衣人》(MIB) 的這一幕:
可是,AMT 怎么就控制了我們的電腦呢?
大家都知道 Google 云計算很厲害。作為云計算行業的巨頭之一,Google 都的數據中心 不是每一臺都運行 TPU 啦……還是要采購非常多的英特爾處理器。
但 Google 的工程師們發現:在我們的 Linux 操作系統和處理器硬件之間,還藏著至少 2? 個內核;這些內核不但對 Google 完全不開放,而且還很容易遭受黑客攻擊,攻擊還有能力重寫內核本身,Google 無法修復。
在下圖中,Google 的工程師描述了這 2? 到底都包括了些什么
你會看到 Ring 這個東西。它代表的是權限層級,數字越低離用戶越遠、權限越高。Ring 3 是用戶在操作系統上能接觸的內容,比如軟件或者文件;Ring 2 到 1則是驅動,Ring 0 是操作系統內核,也是用戶,而且是非常有經驗的用戶,比如專業的 IT 人士所能觸碰和修改的最低層級。
但 Ring 0 并不是重點……再往下還有 Ring -1、-2 和 -3。一般人并不知道有負數層的存在,在大部分 Ring 示意圖離都根本看不到負數層,因為它們并不是開放的。
負數層都在處理器內核上。如果你刷過 Android 手機第三方內核,可能知道 CPU 核心資源是可以調整的,這個能力通常在 Ring -2 上。
至于 Ring -3,權限已經非常之高了……別說你或者 IT 小哥,連電腦公司(戴爾、惠普、蘋果)都觸碰不到。
而 MINIX 就運行在 Ring -3 上。
這里,是屬于芯片廠商的「絕對領域」。
麻雀雖小,五臟俱全
這個操作系統里都裝了些什么呢?Google 的工程師繼續研究,發現里面東西還真不少……
文件系統
CPU 資源分配
一套完整的驅動,包括 USB、聯網 (IPV6)、聲卡顯卡等
TLS 加密通訊協議
一個網絡服務器
完整的網絡棧(跟聯網沒關系,你就理解為把各個元器件連接起來讓數據互通)
電腦該有的東西都齊活了,現在你知道為什么管它叫小電腦了吧……
至于這個小電腦都能做些什么,聽完你一定會害怕的:
讀取硬盤上的所有文件、記錄鍵盤和鼠標、獲取截圖、聯網上傳和下載數據、查看所有運行中的程序、分配資源、打開和關閉程序、在防火墻打開/軟件斷網時通過物理網線/ WiFi 傳輸資料、開機和關機、在關機狀態下提取緩存數據、重寫處理器內核等等等等……
——它能做到所有上述的事情,而且還是在完全對用戶隱秘的前提下。管理員賬戶?硬盤分區?雙系統?別開玩笑了,你能做的所有事情都在 Ring 3,而 MINIX 的所作所為都在 Ring -3 上,你根本看不到。
重申一遍:這是 Ring -3 層級,是芯片廠商的絕對領域。
這個層級對你的電腦或服務器擁有百分之百的控制權,而這個至高無上的領域只屬于芯片廠商。
(題外話:都說每次蘋果發新手機,舊 iPhone 就會立變慢變費電。庫克桌子上是不是真的有個按鈕,我們可能無法知曉,但至少你現在知道,芯片廠商擁有這樣的能力絕對不是都市傳說……)
有后門就沒有絕對安全
既然 Ring -3 權限只屬于芯片廠商,那么好,如果芯片廠商都靠譜的話,應該不會出問題吧?
很遺憾,真相并非如此。
現實中,黑客可以通過很粗劣但很有效的方式,比如釣魚郵件,比如社會工程學;或者更聰明的方式,比如通過可被 AMT 系統識別,能夠直接進入處理器,但不會被防火墻阻擋住的特定流量 (SOL Traffic,下圖) ,來獲得一家企業的 IT 管理員的權限。
最一開始提到,英特爾賦予了企業管理員利用 AMT 渠道來管理辦公硬件的能力,而黑客獲取了管理員權限,也就掌握了 AMT 的控制權。進而,他們可以通過 AMT 渠道去控制更多的設備,擴大破壞力。前段時間,微軟就已經發現了一個名叫 PLATINUM 的黑客機構/惡意軟件,在利用這種方式藉由 AMT 的后門侵入了大量東南亞的電腦。[3]
今年 5 月,英特爾突然宣布了一個跟 AMT 有關的漏洞信息,并提供了補丁。結果安全專家們一看,這個漏洞已經開放了長達 7 年之久……Google 認為,這個漏洞可能已經導致超過 10 億臺設備暴露。
然而英特爾發布的只是一個補丁,意味著多加了一道鎖。可只要 AMT 仍然留著,不給用戶關閉的選擇,根本沒有任何本質上的區別。不管加多少道鎖,后門依然是后門。
總結一下:AMT 能夠聯網和讀取你的所有文件;它對常見的刷機免疫,能夠自修復;它本身不是絕對安全的,有 bug,有漏洞;你以為你用的是最安全的 Linux 發行版,實際上這個充滿著漏洞的系統能夠在你眼皮底下控制 Linux……
這一切,難道不會讓你感到毛骨悚然嗎?
既然英特爾不給關也不給鑰匙,人們開始自己研究關門的方法。
首先,遷移平臺不現實。x86 處理器只有英特爾和 AMD,而AMD 也有一個同類技術,叫做 PSP,全稱 Platform Security Processor,邏輯不同,功能近似——一句話概括:沒比英特爾強多少……
AMT 還真的很不好處理。它成為了 處理器「開機」的一個必經的固件,如果你完全去除掉 AMT,就等于去掉了「開機鍵」,處理器可能開不了機,或者無法正常工作。
但好在 AMT 固件里面有很多組件(如前述對應“小電腦”的不同功能),而這些組件大多數都是可以去掉的。GitHub 上有一個 me_cleaner 工具,可以去掉聯網、驅動、鍵盤記錄器等各種 Ring -3 上壓根不該出現的東西。
用這個工具刷機后,AMT 的固件尺寸從幾 MB 降低到了 300K 左右,刪掉的東西之多可想而知……
進一步,Google 的工程師還想去掉 Ring -2 上的一些同樣功能太強、太底層,很容易作為漏洞被利用的固件。他們用自己編寫的開源文件管理系統替代原來的系統,不但加快了開機時間,還增強了系統的整體穩定性。
在技術界崇尚開源的一個重要原因在于,開源意味著人們可以明白它的機制,在攻守中不斷進步,長期來看更安全。然而,英特爾和 AMD 將它們各自最底層操作系統的代碼奉若神明,實際上的防火性能卻不如它們想象的好。
所以,解決這個問題有兩種思路,要么去掉,要么開源。但問題是,這兩種,都會對芯片廠商的商業模式帶來根本性的顛覆……
不過好在現在這個“小電腦”的存在已經完全暴露,越來越多的人開始關注這個問題。
今年 5 月,電子前線基金會 (EFF) 也向英特爾喊話了,要求它:
提供 AMT 功能組件的詳細清晰說明文檔,告知用戶查閱組件的命令,提供控制這些功能的用戶界面;
允許用戶查看 AMT 的核心代碼來確認漏洞;
提供關閉 AMT 的方式,允許用戶刷入社區開源的 AMT 固件,等等。
但很遺憾,英特爾目前仍然無動于衷……
尷尬的是這種情況大家只能默默接受。英特爾是世界上最大的芯片供應商,對 Google 這樣的云計算巨頭來說遷移平臺的代價成本太高了,幾乎不可能,只有英特爾能滿足需求。
一切過后,最根本的問題仍然沒有解決。本質上,留著 AMT 和 MINIX 就是留著后門。去掉才能徹底關閉它。
這也是 Google 的工程師開始研究移除 AMT 組件的根本原因所在:如果英特爾可以在自己最關鍵的業務后臺保留后門,保留一個具有巨大的潛在信息安全隱患的漏洞,卻拒絕提供合理解釋,也不配合客戶的要求給出關門的方法,那么大家只能各自行動了……
現在,你已經對這個隱秘的終極操作系統有了一個基本的認識。還在跟別人爭吵 Windows、macOS、Linux 到底哪個操作系統最高貴?省省吧……咱們大家都是 MINIX 的用戶……[4]
以及,聽沒聽說過 NSA 的「棱鏡」計劃?是不是一直不明白怎么實現的?懷疑到底有沒有那么強大的大規模控制和監視技術?
現在,你還懷疑么?