【知乎】如何看待英特爾管理引擎(Intel ME)被爆出運行在 Minix3 操作系統(tǒng)?
如何看待英特爾管理引擎(Intel ME)被爆出運行在 Minix3 操作系統(tǒng)?
英文報道:https://m.hexus.net/tech/news/software/111857-intel-management-engine-runs-minix-3-os
中文報道:世界上最流行的操作系統(tǒng) MINIX 暗藏著最大的威脅?
英特爾為什么要這么做?會有哪些風險?普通人可以做什么嗎?
被瀏覽
380,945
查看全部 37 個回答

老狼
2021 年度新知答主
謝邀。作為BIOS工程師,經(jīng)常和ME(Management Engine)打交道,事實上ME的固件就是放在BIOS固件之中的,BIOS和ME也要進行一些協(xié)同工作,所以我想我的回答還是十分權(quán)威的。我認為ME被嚴重妖魔化了,充滿了各種臆測和誤解。各種陰謀論甚囂塵上,什么“你的電腦里面還有個小電腦!”、“ME控制CPU,是ring -3!”等等,各種標題黨。事實的情況是問題遠遠沒有爆出的那么嚴重,ME也沒有那么神奇,干不了很多神奇的事情。
為什么要有ME?
這個世界并不是充滿了計算機專家,事實上大多數(shù)人連簡單的安裝操作系統(tǒng)都完成不了。術(shù)業(yè)有專攻,很正常。電腦愛好者們可以應付一般的電腦問題,但是處理復雜的證書問題和有上千種原因的死機問題往往無能為力。如果能夠遠程由IT專業(yè)人士協(xié)助解決問題就好了!遠程管理成為了解決問題的良方。
遠程管理分為帶外和帶內(nèi)管理兩種:
帶外管理
(Out-of-band management,OOB):使用獨立管理通道進行設備維護。無論被管理設備是否處于開機狀態(tài),只要已經(jīng)通電并聯(lián)網(wǎng),就可以遠程監(jiān)控和管理設備,包括遠程關(guān)機、遠程開機
、遠程重啟、遠程更改BIOS設置、遠程安裝操作系統(tǒng)等。
帶內(nèi)管理(In-Band Network Access,IBN):是指使用常規(guī)數(shù)據(jù)通道來管理設備。這種管理要求被管理設備不僅要通電、聯(lián)網(wǎng),而且必須已經(jīng)開機、運行了客戶端程序等。
我們經(jīng)常使用的Windows遠程桌面、VNC、SNMP和Telnet等等都屬于帶內(nèi)管理。而各種KVM(注意這個不是虛擬機世界的KVM),BMC和AMT就屬于帶外管理。
帶內(nèi)管理的優(yōu)點是便宜,不要增加什么硬件,安裝個軟件就可以了。缺點也很明顯,OS死掉了就無解了,所以大部分安裝、死機問題并不能靠帶內(nèi)管理解決。
KVM是一種帶外管理解決方式。這里舉個KVM設備的例子(見參考資料1)

從圖上可以看到它有VGA和USB的輸入,同時還有VGA和USB輸出,并可以連接網(wǎng)絡。它的工作原理大致是把目標計算機的部分輸入和顯示輸出重定向到管理機器上或者網(wǎng)絡中,管理員可以登錄這個KVM設備,就可以看到目標機器的顯示結(jié)果和用虛擬USB設備輸入內(nèi)容。真是十分方便,我們BIOS工程師在調(diào)試目標服務器機器時,經(jīng)常借助KVM,避免做到大型服務器旁邊(十分吵,像飛機場)。KVM可以解決部分問題,例如安裝操作系統(tǒng)等等,但是更新BIOS等就無能為力了。
服務器領域很早就引入BMC(Baseboard ManagementController),它借助IPMI(Intelligent Platform Management Interface)來進行帶外管理。這里不打算展開講,爭取今后在專欄里面另寫文章專門介紹。我只是簡單說一下它的原理。它是一個單獨在服務器主板
上的芯片:
它有自己的處理器(一般是ARM),有自己的固件,并且如同KVM一樣,Hook了部分USB、顯示和部分IDE/SATA等等。在上電后它會獨自運行,通過各種總線控制風扇,監(jiān)控溫度、和BIOS固件等通訊,共同管理主板?,F(xiàn)在每個服務器主板缺省都帶著BMC,它為服務器管理
、部署和監(jiān)控帶來了極大方便。
終于該我們的正主出場了。大家都知道,大型公司都有IT部門,專門負責維護電腦,幫助安裝操作系統(tǒng)、處理各種千奇百怪的死機和不工作的問題。據(jù)統(tǒng)計有80%以上的問題都十分愚蠢,譬如沒有插電源、不知道CD ROM是啥等等(有人問客服是不是那個放咖啡的槽子,大家可以看看The Old New Thing, 微軟的Blog上面有不少吐槽)。這也很好理解,畢竟還有很多不是IT產(chǎn)業(yè)的大公司,IT公司里面也不是各個都是高手。大型公司每年都耗費巨資用于IT服務,譬如重裝電腦、安裝Patch等等。而中小型公司更加頭疼,他們臨著類似于大型企業(yè)所面臨的復雜 IT 挑戰(zhàn),但是中小型企業(yè)往往沒有較大的預算或 IT 專家員工。怎么辦呢?
作為PC界的老大,有感于PC領域的現(xiàn)實需求,于是Intel在PC中引入了類似BMC的概念:有一個專門的處理器,帶外進行計算機管理
。開始是引入AMT技術(shù)(Intel Active Management Technology,英特爾主動管理技術(shù),參考資料2),后來又整合其它技術(shù),推出vPro(博銳
,參考資料3)。
看到帶有vPro的徽標,就表示可以使用vPro的AMT遠程管理技術(shù)。它的框架圖如下:

后來ME加入了更多安全、校驗、防盜和電平信號管理等等新功能。
ME在哪里?
與網(wǎng)上大多數(shù)瞎說的不同,ME并不在CPU內(nèi)核中。它最早在北橋里:

北橋消失后,它被放到了南橋PCH中:

為什么有的人會認為它在CPU中呢?
部分SOC的酷睿產(chǎn)品,南橋被放入CPU Package中。因此ME也隨著被放入CPU的Package中,這并不意味著ME是CPU內(nèi)核的一部分,這種做法和單獨的PCH并沒有本質(zhì)區(qū)別,PCH和CPU還是兩個Die。這種設計簡化了主板,節(jié)約了成本,但是誤導了部分IT愛好者。CPU Package設計是一個很有趣的方向,改天寫一篇文章介紹一下,這里按下不表。
部分ATOM產(chǎn)品中,ME的部分功能被真正植入CPU Die中。但它也并不在CPU core和uncore中,而是在類似南橋的south cluster
中。這個ME閹割版也并不含現(xiàn)在被廣泛討論的AMT功能。
ME干了哪些事
ME有自己的處理器,它是一款32位的ARC MCU。也有部分片上RAM,但是主要RAM是BIOS在啟動時在住內(nèi)存上挖下來專門給它的。這種方式叫做UMA:

BIOS不僅僅為ME分配內(nèi)存,也為內(nèi)置GPU用同樣的方法分配內(nèi)存。
和BMC一樣,它脫離于CPU獨自運行,有自己的操作系統(tǒng)(具體不詳,BMC一般是Linux)。由于電源部分被它管理,在主板有電,但CPU尚未上電的時候,它可以開啟電腦。在開機后它和BIOS協(xié)同工作,并在OS啟動后和ME的操作系統(tǒng)驅(qū)動程序一起工作,完成AMT、KVM、電源管理、電平管理等等功能。
AMT典型應用是,當大家晚上關(guān)閉電腦回家后,IT人員在晚上Push最新的Windows patch到電腦上,利用晚上的時間安裝完畢,大家第二天早上來時就可以直接工作省時省力,完全不耽誤工作?;蛘咝枰匮b電腦,告訴IT你的工位,IT就可以遠程幫你重裝操作系統(tǒng),不用抱著沉重的電腦跑來跑去,豈不美哉?
ME后來又加入了更多的功能,包括安全管理(fTPM等)、電平管理、電源管理等等高級功能。
ME是不是唯一的法外之地
?
大家都默認主板上有BIOS固件這個事情,如果我說一般的電腦里面單獨的固件可以有近十個到幾十個,是不是很多人都要驚掉了下巴?好吧,我就舉幾個例子:
網(wǎng)卡。網(wǎng)卡有單獨的固件,有自己的控制器,控制器有些還是ARM。Intel南橋的網(wǎng)卡固件甚至和ME的固件一起被包含在BIOS固件中。
顯卡。這個應該是常識了。實際上幾乎所有PCIe設備都有自己的固件和處理器,處理器有的是ARM,有的是MCU,還有用FPGA做的。
硬盤。高端的硬盤甚至用到了Intel的ATOM CPU。
傳感器。很多傳感器有固件,并有MCU控制。
Sensor Hub。SH最早普遍應用在手機上,慢慢地也被平板電腦、筆記本電腦甚至PC上采用。它的固件設計還較傳感器復雜一點。
還有很多,包括PMIC、PMC等等都含有固件。事實上,讓各個部分自我管理是計算機設計的發(fā)展趨勢,CPU把任務off load出去,讓設備自己完成好再通知自己,有利于CPU集中注意力干大事,同時節(jié)省用電。
一些謠言
ME是Intel不可告人的后門。實際上AMT曾經(jīng)被Intel廣泛宣傳過,并被作為一個很有價值的技術(shù)被推廣到很多計算機廠家,并受到廣泛歡迎,尤其是中小企業(yè)。Intel官網(wǎng)上有很多介紹。
ME可以干任何事情。實際上它有很多限制,并不能隨便訪問主存。BIOS為它單獨分配了內(nèi)存,這些內(nèi)存被保留,OS并不知情。ME通過一般辦法并不能訪問被分配空間之外的其他內(nèi)存(當然也有例外)。我們可以認為它的內(nèi)存訪問和內(nèi)置GPU內(nèi)存訪問沒有本質(zhì)區(qū)別,GPU也有自己的運行單元,為什么沒有被詰難?它的USB、IDE/SATA重定向、網(wǎng)口控制也并不是對所有都有效。事實上,和它對應的BMC在服務器領域已經(jīng)應用更長時間,而服務器對安全更加在乎,為什么沒有這么大反對聲呢?
ME可以控制CPU,是ring -3。實際并不行,兩者是互相獨立工作的。這個說法是純粹的吸引眼球的標題黨干的,ring
的概念只在X86上有,ARC并不會存在。
ME控制網(wǎng)口為了留后門。ME中的AMT既然作為帶外管理,必須聯(lián)網(wǎng),這是理所應當?shù)摹?/p>
ME很容易被篡改。ME受數(shù)字簽名保護,實際上它是fTPM等等安全手段的提供者。
ME可以訪問硬盤數(shù)據(jù)。部分有問題,ME固件并不能在操作系統(tǒng)環(huán)境下獨自訪問硬盤,否則會有沖突??梢栽L問硬盤的是ME的操作系統(tǒng)驅(qū)動。事實上硬件驅(qū)動大部分都是ring 0
的,可以訪問任何東西。ME的驅(qū)動也不例外,如果不信任驅(qū)動,那也不要安裝主板驅(qū)動了。
Intel強制安裝ME。ME有好幾個版本,主板包含哪種ME,這是OEM的選擇。
ME不能關(guān)閉。實際上很多主板BIOS中都有ME關(guān)閉的功能:
關(guān)閉后ME會進入一個低功耗狀態(tài)。
結(jié)論
我們可以把ME想象成Intel在PC上推出的免費BMC。它方便了中小企業(yè)做帶外計算機管理。它有自己的處理器和操作系統(tǒng)(固件)。任何操作系統(tǒng)都有Bug,ME的操作系統(tǒng)應該是個RTOS,必然也有Bug和漏洞,這個沒有什么奇怪之處。對ME最不爽的人是操作系統(tǒng)提供商,他們希望一切都在掌握之中。人們總是恐懼不了解的東西,也許ME開源會讓大家放心,但有時候貿(mào)然的開源會讓部分黑客有機可乘。到底開源有利于安全還是不利于安全,這個問題有很多討論,也不在本文的范圍內(nèi)。如果大家感興趣,改天寫一篇個人如何開啟和使用AMT的文章,其實KVM功能對個人用戶還是十分有用的。
本回答和其他精彩文章被整理發(fā)布在我的專欄:UEFI和BIOS探秘,歡迎大家關(guān)注本專欄和用微信掃描下方二維碼加入微信公眾號
"UEFIBlog",在那里有最新的文章。同時歡迎大家給本專欄和公眾號投稿!
參考資料:
[1]: Spider Network KVM over IP Switch
[2]: https://zh.wikipedia.org/wiki/Intel%E4%B8%BB%E5%8A%A8%E7%AE%A1%E7%90%86%E6%8A%80%E6%9C%AF
[3]: https://zh.wikipedia.org/wiki/%E5%8D%9A%E9%94%90
編輯于 2018-02-15 11:25
予人玫瑰,手有余香
還沒有人贊賞,快來當?shù)谝粋€贊賞的人吧!
更多回答

沈萬馬
編程話題下的優(yōu)秀答主
首先吧,先說說新聞都在胡說些啥。之后再說應該看啥。
Intel ME是在芯片組里的,不在CPU里。權(quán)限是ring -3這個說法是沒什么道理的——這只是個被人生造的稱呼。有官方文檔能佐證的別名只到ring -2也就是System Management Mode。ring -3這種說法可能來自于一個很老的黑帽talk(Introducing Ring -3 Rootkits,Alexander Tereshkin and Rafal Wojtczuk,Black Hat USA, July 29 2009):
https://www.blackhat.com/presentations/bh-usa-09/TERESHKIN/BHUSA09-Tereshkin-Ring3Rootkit-SLIDES.pdf
當然不能說ring -3這個稱呼是胡說。但它并不等于高于ring -2的權(quán)限。
而且,這所有的可能的安全問題不僅2009年就已經(jīng)被研究過了,這過去的8年中啥都沒變嗎?顯然變了。第一大變化就是ME可以軟件關(guān)閉(HAP)。第二大變化就是TXT/SGX等技術(shù)可以在ME之前初始化代碼驗證。其余還有一系列安全性增強。
另外就是MINIX3是否是實際使用的OS還并未定論,目前還只能說可能源自MINIX3。當然這條可能等更多信息出現(xiàn)之后才能確定。
然后說應該看啥。
第一大關(guān)注點是,ME最大的風險在于它可直接訪問NIC,而且在最終消費市場上的是默認啟用的。這意味著網(wǎng)絡攻擊是可能的。
第二大關(guān)注點是,MINIX3并不是安全加強的操作系統(tǒng)內(nèi)核。這意味著任何能在本地接觸CPU的代碼都可以用一些基本的方法進行攻擊。
第三大關(guān)注點是,ME會使用主內(nèi)存存儲數(shù)據(jù)(有自己的運存但是會把數(shù)據(jù)交換到主內(nèi)存,有內(nèi)存保護)。這意味著ring 3以上的攻擊存在實現(xiàn)的可能。
整體上來說,這事是個很大的安全隱患,但不至于駭人聽聞。
編輯于 2017-11-10 00:17

zhuang zhuang
IT從業(yè)26年,弈城業(yè)余4段
估計很多人都還沒明白Intel ME的硬件是什么就開始xxyy了。請不要和Intel CPU混為一談,Intel CPU是否有后門那是另一件事情,不少人看到這個新聞就以為Intel CPU有嚴重漏洞或后門了。這個新聞并不意味著Intel很邪惡。
第一:Intel chipsets 不等于Intel CPU,集成了ME的這個chipsets以前通常是motherboard
上的northbridge芯片,更新的Intel架構(gòu)下(Intel 5 Series以上),Intel ME是集成在Platform Controller Hub (PCH)這個芯片上。
AMD類似的Chipsets上也有一個閉源的Firmware,其他Chipsets廠商如VIA、SiS等也是如此。很多硬件設備上都是有Firmware的,比如網(wǎng)卡、顯卡、光纖卡,計算機能工作有賴于這些Firmware。這些Firmware越來越復雜,有可能會暴露出更多漏洞。你可以認為這些Firmware比BIOS或UEFI更底層,所以有說法ME運行在Ring -3,BIOS或UEFI是-2,Hypervisor是-1,操作系統(tǒng)是0,你的辦公軟件運行在Ring 3。ME只是Intel Chipset Firmware中的一部分。
摘錄自 Intel Active Management Technology
The Management Engine (ME) is an isolated and protected coprocessor
, embedded as a non-optional part in all current (as of 2015) Intel chipsets.
Until the release of Nehalem processors, the ME was usually embedded into the motherboard's northbridge, following the Memory Controller Hub (MCH) layout. With the newer Intel architectures
(Intel 5 Series onwards), ME is included into the Platform Controller Hub (PCH).
第二:和Intel ME通訊的渠道
摘錄自 Intel Active Management Technology
The ME has its own MAC and IP address for the out-of-band interface, with direct access to the Ethernet controller; one portion of the Ethernet traffic is diverted to the ME even before reaching the host's operating system, for what support exists in various Ethernet controllers, exported and made configurable via Management Component Transport Protocol (MCTP). The ME also communicates with the host via PCI interface. Under Linux, communication between the host and the ME is done via /dev/mei.
第三:Intel ME能訪問的數(shù)據(jù)
摘錄自 Disabling Intel ME 11 via undocumented mode
Intel Management Engine is a proprietary technology that consists of a microcontroller integrated into the Platform Controller Hub (PCH) chip and a set of built-in peripherals. The PCH carries almost all communication between the processor and external devices; therefore Intel ME has access to almost all data on the computer.
有沒有開源Firmware的Chipsets?好像沒有。
能把閉源Firmware替換為我信任的Firmware嗎?很難,除非廠家公開技術(shù),目前只能做到剪除ME大部分的module,而不能完全替換。黑客想將惡意代碼放入Firmware中,也非易事。要求Intel提供方法可以安全地完全地disable Intel Chipsets Firmware中的ME,我認為是合理的要求。
摘錄自 Disabling Intel ME 11 via undocumented mode
The disappointing fact is that on modern computers, it is impossible to completely disable ME. This is primarily due to the fact that this technology is responsible for initialization, power management, and launch of the main processor. Another complication lies in the fact that some data is hard-coded inside the PCH chip functioning as the southbridge on modern motherboards.
有興趣可以看這個,corna/me_cleaner ?How to remove ME
最后附上Intel文檔上的一張圖,可以看到Intel Management Engine的位置,與CPU、GPU的關(guān)系。
編輯于 2017-11-08 16:31