日前,美国自由软件基金会FSF刊文讨伐Intel ME引擎会完全控制用户电脑,而且用户很可能完全不知情。
  FSF在这篇文章中指出,Intel的ME程序实际上相当于一个小型、低功耗的电脑系统,它由一个或者多个内核、内存、系统时钟、总线及用于加密引擎的保留内存组成,还有自己的独立操作系统及程序,可以读取系统主内存,可以通过Intel网络控制器连接网络。
  
  此外,该文指出Intel ME程序可以完全控制用户的电脑,它可以控制开机、关机,读取所有开放文件、检查所有已运行的程序、追踪用户的键盘、鼠标动作,甚至还能截屏。现在,Intel安全部门的首席技术员Steve Grobman对此事进行了回应,他表示所谓的“后门”子虚乌有。Steve Grobman称,这个所谓的“后门”并不是大家想的那个样子,只是Intel借助推送固件升级的接口而已。
  此外,Steve Grobman还表示,及时推送固件生意有助于Intel和OEM厂商为处理器增强防护,这样反而更安全了。
  详细解读:什么是CPU的后门

  听听一位资深工程师告诉你,什么才是CPU的后门。
  人们普遍认为,任何一款软件都可以通过后门被破坏。举几个比较有代表性的例子如:Sony/BMG的安装程序,有个内置的后门禁止用户复制CD,这个后门也使得恶意的第三方能接管任何安装了该软件的机器;三星Galaxy,它有个后门允许调制解调器访问设备的文件系统,这也就允许了任何一个假基站来访问设备上的文件;以及Lotus Notes,它有个后门能使加密失败。
  
  尽管后门多见于FPGA和网络设备,但每当有人提起CPU上的后门程序是否可能的时候,大部分情况下大家都会断言这是不可能的。人们不会断言CPU后门程序是存在的,但我会断言,如果有正确的访问权限,实现就很容易了。
  比方说,你想制造出一个后门。你要怎么做呢?这要分三个环节:一个CPU后门能做什么,要怎样才能访问这个后门,需要什么样的让步才能安装该后门?
  从第一个环节开始,后门能做什么?这就有很多很多的可能。最简单的就是提升权限:使CPU从ring3过渡到ring0或SMM,给正在运行的进程的内核级别的权限。因为它是负责运行的CPU嘛,完全可以无视硬件和软件虚拟化。你可以做很多更微妙或更具侵略性的事情,但权限提升不仅够简单,而且够强大,所以我就不再打算讨论其他的选项。
  现在你知道了你想要借后门做什么,那么究竟应该如何触发后门呢?理想情况下,它应该既不会被人碰巧运行到,也无法通过暴力寻找到。即使有这样的限制,可能的触发状态空间仍旧是巨大的。
  让我们来看一个特定的指令,fyl2x。在正常操作下,它需要两个浮点寄存器作为输入,给您2*80=160位(bits)来隐藏一个触发器。如果你通过一对特定值来触发一个后门,可能相对于随机筛选更安全些。如果你真的很担心后门被人意外发现或暴力破解掉,你也可以检查两个正常输入寄存器以外的值(毕竟,你控制着整个CPU啊)。
  
  这个触发器简单有效,但不足之处是要触发它很可能需要运行本机代码,但你其实不可能让Chrome或Firefox发出一个fyl2x指令。通过相对容易地令JavaScript引擎发出指令(像fadd),你可以尝试变通地去解决这个问题。与此相对的问题是,如果你想要patch一条add指令,并对它添加一些检查,它就会显著地变慢(尽管如此,如果你可以改写硬件,你应该能够无开销地完成它)。通过patch一个rep字符串指令,做一些事情来设置恰当的“key”,接在块拷贝(block copy)后面,或者idiv,也有可能可以创造一些难以检测并可以通过JavaScript来触发的后门。或者,如果你已经成功地得到了设计的副本,你也许可以想出一个办法,当任意一些JavaScript运行的时候,来使用调试逻辑触发器或性能计数器去引发一个后门。
  好了,现在你已经有一个后门了。那么你怎么植入该后门呢?在软件方面,你可以编辑源代码或二进制文件。
  在硬件方面,如果你有机会到访问到源,你可以在跟在软件中一样容易进行编辑。对硬件重编译源代码,建物理芯片,有着极高的固定成本;如果你试图让你的更改编入源代码,你要么牺牲设计,在一切被发送去生产之前就植入你的所有更改,要么牺牲生产过程,在最后一刻偷偷植入你的更改。
  如果这听起来太难了,你可以尝试牺牲补丁机制。多数现代的CPU配备了一个内置的补丁机制,允许事后的bug修复。你使用的CPU可能早就已经被修补过,也许从第一天开始就是,以作为固件更新的一部分的名目。你CPU补丁机制的细节是严格保密的。这很有可能是CPU上被蚀刻了一个公共密钥,这样它就只能接受已经签署了正确私钥的补丁。
  这就是实际正在发生的事吗?不知道。它可能发生吗?当然可能。有多大几率呢?唔,主要的挑战是非技术性的,所以我不是那个能给出这个问题答案的人。如果非要猜的话,我会说不是,如果没有除了容易破坏其它设备以外的原因的话。
  还没有讨论如何制作这样一个后门:即使有人能够访问你用来触发后门的软件,也还是很难发现它。这更难,但是一旦芯片开始使用内置TPM的话,它就应该有可能了。
  来源:嵌入式资讯精选