何为Intel ME

青鸾2018-06-05 11:16专题 标签:Intel ME

Intel ME是一种综合管理、监控Intel硬件模块、软件驱动的服务,集成在主板芯片中(早期为ICH,现在为PCH),包括一个微控制器、固件层面的ME FW(Firmware,固件)和驱动层面的MEI(Management Engine Interface,管理引擎接口)。Intel ME的固件与BIOS文件打包在一起的,用户在升级BIOS时就会一起进行升级,据业界人士透露,在制作好BIOS文件时,要用Intel的ME工具把Bios代码和ME固件一起打包,在BIOS文件仅有2MB的时代,ME固件大小就达到了4MB。

独立控制器和复杂完整的固件使Intel ME具有独立于处理器和BIOS/UEFI的运行能力,已经可以看作是一个完整的系统,在其基础上可以安装一些特殊的应用,如远程管理工具AMT(Active Management Technology,主动管理技术)、基于ME的TPM(Trusted Platform Module,可信赖平台模块)安全工具—— Intel PTT(Platform Trust Technology,平台信任技术)等,因此有时也被叫做Intel MEI。作为管理和协调处理器模块的服务,Intel ME运行远离在我们日常可见,甚至是可探测的硬件底层,拥有超越操作系统甚至是BIOS/UEFI的操作特权;同时它也运行在处理器启动之前,甚至是电脑开机之前,拥有在关机状态下保持运行的能力。

01

图1:Intel ME在系统中的位置

02 

图2:从图中可以看到,在升级硬件和系统固件时,Intel ME固件是与BIOS同级的

● 超高权限

作为PC的大脑,CPU不仅具有创造的力量,当然也具有毁灭的力量,有一些CPU指令可以对软件、操作系统的稳定运行,甚至是硬件系统的安全造成影响,因此是被限制使用的,例如清除缓存/内存、调整运行时钟等。这些比较危险的指令当然也有其存在的意义,但却显然不能开放给普通程序,所以处理器指令被分为特权指令和非特权指令,并且为各种软件设置了可用指令等级,例如Intel的处理器的权限等级为RING“X”,其中X为数字,数字越小则权限等级越高,能够使用的指令越多,其中操作系统使的等级为RING0,而普通程序则只能使用RING3等级。

那么Intel ME的权限是什么呢?答案可能会让你大吃一惊,是RING-3(负3),在这一相当高的等级之上,Intel ME应该可以对处理器相关模块及周边进行相当深度的控制。由于非常高的权限,Intel ME的实际运行状况也无法被仅有RING 0权限的操作系统所感知,甚至连BIOS/UEFI都无法真正对它进行控制。从权限等级看,可以认为0以上为用户可见,0以下则是用户无法触及的区域,对用户甚至很多应用开发者来说,就像是地面以下,越来越深,隐藏着无法预知的危险。

作为协调处理器模块的底层服务,Intel ME是不能被禁用的,否则处理器无法正常运行,轻则频繁重启,重则完全不能开机。有些研究者发现,在SandyBridge和IvyBridge核心平台上,可以关闭ME的部分功能,同时保持系统的正常使用。但在SkyLake核心及之后的产品中,Intel强制全面开启了Bootguard(启动防护)功能,不再允许对UEFI BIOS进行非法篡改,当然也就无法对与BIOS固件集成在一起的ME固件进行修改。

不过随着对Intel ME研究的深入,研究人员在ME的固件文件中发现了一个名为“reserve_hap”的字段,所附的注释表明“高保证平台启用”。HAP(High Assurance Platform)是指美国政府的高保证平台计划,这是NSA(美国国家安全局)与科技行业共同运作的一项安全计算计划。有些人认为,只要将相关的位设成“1”,就可以禁用ME,Intel表示则这只会禁用某些功能,因此也有人认为HAP模式的实际意义是减小侧信道泄漏(side-channel leak)。

不仅难以禁用,而且基于严格的保密,第三方人员也完全无法办法审核ME固件,NSA等组织在其中植入后门,那么这种“窃听门”事件几乎无法被察觉,同样,如果这一服务被黑客入侵,植入Rootkit等恶意软件的话,用户也完全不会察觉。作为一种可以接触到硬件底层的,具有微型操作系统性质的服务,即使Intel ME自身不被破解,如果在其上运行的一些应用一旦被利用,同样能造成重大的损失,本次的安全漏洞问题,也正是来源于运行在Intel ME之上的AMT应用。

● 秘密运行

虽然我们常用的Intel ME服务实际上是与BIOS/UEFI共同启动的,但实际上,只要经过激活,Intel ME就会持续运行,甚至在我们关机之后,也会使用少量供电甚至板上电池保持运行,这也是其上运行的一些应用,比如前文提到的AMT的使用基础。下面我们就以Intel ME上最早引入,目前应用也最广泛的AMT为例,讲解一下Intel ME及其应用能力和运行状态。

AMT的历史非常早,在面向酷睿2/奔腾D的G41、P43、P45主板芯片组中,它就已经集成在ICH7芯片中。AMT功能由主板上的Intel ME技术实现,是处于芯片组、网络控制器和处理器之间的一个特殊接口,通过该接口可以连接相应的管理和安全软件,以及客户端嵌入式监控模块。在我们为电脑安装驱动时,可能经常会碰到安装了所有驱动后,还有一个被称为“PCI简易通讯控制器”的设备显示为没有安装驱动,它很有可能就是需要包含AMT的Intel ME驱动的硬件。


AMT可以独立于现有操作系统运行,在操作系统中无法关闭这一功能,在BIOS操作界面虽然可以对其进行设置(图3),但我们并不确定可以完全关闭这一功能。AMT可以在操作系统本身瘫痪的时候进行系统监控和远程管理,不用怕恶意程序摧毁操作系统,更不用担心用户自行或无意中关闭,比传统的安全、管理软件要强大得多。此外,传统的IT管理一般是被动地扫描用户系统,在客户端系统遭到破坏时往往无能为力,而AMT是一种主动管理技术,可以持续运转,自动发现、诊断、排除故障,并进行综合性防护。无论是资产盘点、远程诊断和管理、事故报警/恢复、软件分发还是系统安全防护与隔离,很多功能都是自动形成并发挥作用。

03 

AMT可以不依赖软硬件的实时状态而独立进行开机、维护、关机等操作,在操作死机、蓝屏甚至是已经关机的系统上仍然可以工作,也可以进入BIOS进行操作,有利于IT管理维护人员对电脑进行远程修复和维护。借助于AMT系统,管理员可以远程安装设置操作系统、下载升级软件,即使在电脑操作系统已经关闭,甚至系统瘫痪或硬盘出现故障时仍旧能完成故障调查以及修复工作,为企业节省大量用于电脑管理和维护的人力、经费和时间。

04

图4:AMT的管理界面

尽管我们前面已经提到,Intel ME的源代码是没有公开的,其具体运行方式和能力也就无从得知,不过从AMT的能力可以看到,Intel ME具有在关机状态下运行的能力,在关机状态或者没有启动操作系统的情况下,可以监控网络呼唤、进行网络通信、硬盘操作、修改BIOS等等。而在开机状态下,Intel ME的操作至少包括对硬盘、内存、网络操作的监控,并且有对这些操作的控制能力,我们可以在操作系统中为其安装驱动程序,但在不安装驱动程序的情况下,也基本不会影响系统的正常运行,在常见的Windows操作系统或硬件系统固件中,应该已经包含了Intel ME的基本驱动。