英特尔隐藏的 Minix 操作系统和安全问题的真相

如果您有一个基于英特尔芯片组的主板,它很有可能配备了英特尔管理 (Intel ME) 单元。 这并不新鲜。 多年来,人们对这个鲜为人知的功能背后的隐私问题提出了担忧。 但突然之间,博客圈似乎有了 重新发现了问题. 我们可以读到许多关于这个话题的半真半假或完全错误的陈述。

因此,让我尽可能多地澄清一些要点,供您发表自己的看法:

什么是英特尔 ME?

首先,让我们直接给出一个定义 英特尔的网站

许多基于英特尔® 芯片组的平台内置了一个小型、低功耗的计算机子系统,称为英特尔® 管理引擎(英特尔® ME)。 英特尔® ME 在系统睡眠、启动过程和系统运行时执行各种任务。

简单地说,这意味着 Intel ME 在主板上增加了另一个处理器来管理其他子系统。 事实上,它不仅仅是一个微处理器:它是一个具有自己的处理器、内存和 I/O 的微控制器。 真的就像它是您计算机中的小型计算机。

该补充单元是芯片组的一部分,不在主 CPU 上 . 独立,这意味着 Intel ME 不受主 CPU 的各种睡眠状态的影响,即使您将计算机置于睡眠模式或关闭它,它也会保持活动状态。

据我所知,英特尔 ME 从 GM45 芯片组开始出现——这让我们回到了 2008 年左右。 在最初的实施中,英特尔 ME 位于一个可以物理移除的单独芯片上。 不幸的是,现代芯片组包括 Intel ME 作为 北桥 这对于您的计算机工作至关重要。 官方没有办法关闭 Intel ME,即使某些漏洞似乎已成功用于禁用它。

我读到它在“ring -3”上运行,这是什么意思?

说 Intel ME 在“环 -3”中运行会导致一些混乱。 这 保护环 是处理器实现的各种保护机制,例如,允许内核使用某些处理器指令,而在其上运行的应用程序不能这样做。 关键是在“环”中运行的软件可以完全控制在更高级别环上运行的软件。 可用于监视、保护或向在更高级别环中运行的软件提供理想化或虚拟化执行环境的东西。

通常,在 x86 上,应用程序在 ring 1 中运行,内核在 ring 0 中运行,最终的管理程序在 ring -1 中。 “ring -2”有时用于处理器微码。 在几篇论文中使用“ring -3”来谈论 Intel ME,以此来解释它比主 CPU 上运行的所有东西具有更高的控制力。 但是“ring -3”肯定不是你的处理器的工作模型。 让我再重复一遍:Intel ME 甚至不在 CPU 芯片上。

我鼓励你看一看,尤其是第一页 Google/Two Sigma/Cisco/Splitted-Desktop Systems 报告 了解典型的基于 Intel 的计算机的几个执行层。

英特尔 ME 有什么问题?

按照设计,Intel ME 可以访问主板的其他子系统。 包括 RAM、网络设备和加密引擎。 只要主板通电。 此外,它可以使用专用链路直接访问网络接口进行带外通信,因此即使您使用 Wireshark 或 tcpdump 等工具监控流量,也不一定能看到 Intel ME 发送的数据包。

英特尔声称需要 ME 才能充分利用您的英特尔芯片组。 最有用的是,它尤其可以在企业环境中用于一些远程管理和维护任务。 但是,除了英特尔之外,没有人确切知道它可以做什么。 存在 close 来源导致对该系统的功能及其使用或滥用方式的合理质疑。

例如,Intel ME 有可能读取 RAM 中的任何字节以搜索某个关键字或通过 NIC 发送这些数据。 此外,由于 Intel ME 可以与运行在主 CPU 上的操作系统以及潜在的应用程序进行通信,我们可以想象 Intel ME 将被恶意软件(ab)用于绕过操作系统级别安全策略的场景。

这是科幻小说吗? 好吧,我个人并不知道数据泄露或其他利用英特尔 ME 作为主要攻击媒介的漏洞。 但是引用 Igor Skochinsky 的话可以让您对此类系统的用途有所了解:

英特尔 ME 具有一些特定功能,尽管其中大部分可以被视为您可以为负责在企业环境中部署数千台工作站的 IT 人员提供的最佳工具,但仍有一些工具非常有趣一个利用。 这些功能包括主动管理技术,具有远程管理、配置和修复的能力,以及作为 KVM 运行。 系统防御功能是英特尔机器上可用的最低级别防火墙。 IDE 重定向和 Serial-Over-LAN 允许计算机通过远程驱动器启动或修复受感染的操作系统,并且身份保护具有用于双重身份验证的嵌入式一次性密码。 还有一些“防盗”功能,如果 PC 未能在某个预定时间间隔签入服务器或“毒丸”通过网络交付,则该功能会禁用 PC。 此防盗功能可以杀死计算机,或通知磁盘加密擦除驱动器的加密密钥。

我让您看一下 Igor Skochinsky 在 REcon 2014 会议上的演示,以第一手了解 Intel ME 的功能:

作为旁注,为了让您了解风险,请查看 CVE-2017-5689 2017 年 5 月发布的关于在启用 Intel AMT 时使用在 Intel ME 上运行的 HTTP 服务器的本地和远程用户可能的权限升级。

但是不要立即惊慌,因为对于大多数个人计算机来说,这不是问题,因为它们不使用 AMT。 但这让我们了解了针对英特尔 ME 和其中运行的软件的可能攻击。

英特尔 ME 和在其上运行的软件是 close 来源,并且可以访问相关信息的人受保密协议的约束。 但多亏了独立研究人员,我们仍然掌握了一些关于它的信息。

Intel ME 与您的 BIOS 共享闪存以存储其固件。 但不幸的是,大部分代码无法通过简单的闪存转储访问,因为它依赖于存储在 ME 微控制器无法访问的 ROM 部分中的功能。 此外,似乎可以访问的代码部分是使用未公开的 Huffman 压缩表压缩的。 这不是密码学,它的压缩——有些人可能会说是混淆。 无论如何,它对逆向工程 Intel ME 没有帮助。

直到其第 10 版,英特尔 ME 都基于 或者 SPARC 处理器。 但英特尔 ME 11 是基于 x86 的。 在四月份, Positive Technologies 的一个团队试图分析英特尔为 OEM/供应商提供的工具以及一些 ROM 绕过代码. 但是由于霍夫曼压缩,他们无法走得很远。

然而,他们能够做的是分析 TXE,即可信执行引擎,这是一个类似于英特尔 ME 的系统,但在英特尔凌动平台上可用。 TXE 的好处是固件不是霍夫曼编码的。 他们在那里发现了一件有趣的事情。 我更喜欢在这里引用相应的段落:

此外,当我们查看解压后的 vfs 模块时,我们遇到了字符串“FS: bogus child for forking”和“FS: forking on top of in-use child”,这显然来自 Minix3 代码。 ME 11 似乎是基于 Andrew Tanenbaum 开发的 MINIX 3 OS ?

让我们说清楚:TXE 包含从 Minix “借来”的代码。 那是肯定的。 其他提示表明它可能运行完整的 Minix 实现。 最后,尽管没有证据,我们可以假设 ME 11 也将​​基于 Minix 没有太多风险。

直到最近,Minix 肯定不是一个众所周知的操作系统名称。 但是最近有几个吸引人的标题改变了这一点。 这和 Minix 的作者 Andrew Tannenbaum 最近的一封公开信可能是当前围绕英特尔 ME 炒作的根源。

安德鲁·塔南鲍姆?

如果你不认识他, 安德鲁·S·塔南鲍姆 是荷兰阿姆斯特丹自由大学的计算机科学家和名誉教授。 包括我在内的几代学生都通过 Andrew Tanenbaum 的书籍、工作和出版物学习了计算机科学。

出于教育目的,他在 80 年代后期开始开发受 Unix 启发的 Minix 操作系统。 并因其与当时名叫 Linus Torvalds 的年轻人在 Usenet 上关于单体内核与微内核的优点的争议而闻名。

对于我们今天感兴趣的事情,Andrew Tanenbaum 已经声明没有任何来自英​​特尔的关于他们使用 Minix 的反馈。 但 在给英特尔的一封公开信中,他解释说,几年前英特尔工程师联系了他,询问有关 Minix 的许多技术问题,甚至要求更改代码以能够选择性地删除系统的一部分以减少其占用空间。

根据 Tannenbaum 的说法,英特尔从未解释过他们对 Minix 感兴趣的原因。 “在最初的活动爆发之后,无线电沉默了几年”,直到今天。

在最后的说明中,Tannenbaum 解释了它的立场:

作为记录,我想声明当英特尔联系我时,他们没有说他们在做什么。 公司很少谈论没有保密协议的未来产品。 我认为这是一个新的以太网芯片或图形芯片或类似的东西。 如果我怀疑他们可能正在制造间谍引擎,我当然不会合作 […​]

值得一提的是,如果我们可以质疑英特尔的道德行为,无论是关于他们接近 Tannenbaum 和 Minix 的方式,还是在英特尔 ME 追求的目标,严格来说,他们的行为完全符合 Minix 项目随附的伯克利许可条款。

关于我的更多信息?

如果您正在寻找有关英特尔 ME 的更多技术信息以及该技术的社区知识现状,我鼓励您查看 积极的技术介绍 为 TROOPERS17 IT 安全会议发布。 虽然不是每个人都容易理解,但这当然是判断在其他地方阅读的信息有效性的参考。

那么使用AMD呢?

我不熟悉 AMD 技术。 因此,如果您有更多见解,请使用评论部分告诉我们。 但据我所知,AMD 加速处理单元 (APU) 系列微处理器具有类似的功能,它们嵌入了一个额外的基于 ARM 的微控制器,但这次是直接在 CPU 芯片上。 令人惊讶的是,这项技术被 AMD 宣传为“TrustZone”。 但就像它的英特尔对手一样,没有人真正知道它的作用。 没有人可以访问源代码来分析它添加到您计算机的漏洞利用表面。

那么该怎么想呢?

对这些主题很容易变得偏执。 例如,如何证明以太网或无线 NIC 上运行的固件不会监视您通过某些隐藏通道传输数据?

让 Intel ME 更受关注的是因为它以不同的规模工作,实际上是一台小型独立计算机,负责查看主机上发生的所有事情。 就我个人而言,自从 Intel ME 最初发布以来,我就对它感到担忧。 但这并没有阻止我运行基于 Intel 的计算机。 当然,如果英特尔选择开源监控引擎和相关软件,我更愿意。 或者,如果他们提供了一种物理禁用它的方法。 但这是只针对我的意见。 你当然有自己的想法。

最后,我在上面说过,我写那篇文章的目的是为您提供尽可能多的可验证信息,以便您发表自己的意见……