(英特尔)芯片组是否在监视我们?

信息安全 硬件 后门
2021-09-04 01:38:16

昨天我进行了一次谈话,有人声称我应该只使用 2006 年之前的(英特尔)计算机。据称这是因为在此之后,软件已嵌入到能够“打电话回家”或让他们“打电话”的芯片组中“以各种方式。没有进一步详细说明如何和什么的确切细节。

这听起来有点像失控的偏执狂,但是关于可以远程关闭计算机的秘密 3g 芯片之类的故事对我来说似乎并不完全是科幻小说,而且令人深感担忧。

所以我想我应该把它放在地板上:有哪些可靠的来源可以支持这种说法?

2个回答

他在说什么?

他指的是英特尔可管理性/管理引擎,或 ME。它是嵌入芯片组 PCH 中的处理器,通常由 ARC、ARCCompact 或 i486/i586 混合微处理器组成。除其他外,它旨在使远程管理更容易。在支持 AMT(英特尔主动管理技术)的服务器和某些商务笔记本电脑上,某些网卡可用于远程控制系统。这需要在 BIOS/UEFI 中启用它并设置密码。如果您安装了 3G 卡,那么理论上它可以使用该卡进行远程管理,但很可能您不会。

漏洞利用的危险

网络协议存在漏洞风险,就像所有实现网络堆栈的东西一样,过去也有涉及它们的错误。它们通常要求您实际启用远程管理以使其易受攻击。总的来说,整个 ME 恐慌有点过头了。列出的所有可怕功能都是可选的,甚至不存在。

Rootkit 的危险

还有人担心 ME 可能被用来隐藏低级 rootkit。在大多数情况下,这不是问题,因为它需要对计算机进行非常特权的访问,或者需要物理修改主板的能力(例如更换 BIOS 芯片)。即使没有 ME,仍然可以使用该级别的访问权限安装非常隐蔽的 rootkit。

新处理器的好处

我不建议使用较旧的 CPU 型号。较新的模型在安全性方面有了显着改进。当前的现代处理器可能支持以下许多功能:

  • NX - 最古老的安全功能之一,它允许将页面标记为不可执行,因此覆盖 NX 数据的缓冲区溢出无法执行它。
  • SMEP - 防止低权限的用户空间代码在高权限的内核空间环境中执行。这迫使攻击者将他们的 shellcode 直接注入内核,这要困难得多并且容易崩溃。
  • SMAP - 与 SMEP 相同,但阻止所有访问,而不仅仅是执行。
  • UMIP - 隐藏某些可能以低权限访问的潜在敏感信息。
  • VT-x(虚拟化)- 通常不用于安全性,但可用于沙盒,在紧要关头。
  • VT-d (IOMMU) - 允许将设备相互隔离并与内存的其余部分隔离,防止 DMA 攻击。
  • IR 和 x2apic - 虽然它们的功能与安全无关,但它们都是 VT-d 对抗恶意行为者所必需的。
  • MPX - 虽然设计用于调试,但可用于防止使用这些指令的程序出现缓冲区溢出。
  • SGX - 创建一个安全、加密的“飞地”,即使是高权限代码也无法访问。
  • RDRAND/RDSEED - 向系统添加高质量的随机数据,这在生成密码等操作时很有用。虽然有理由怀疑将其用作唯一的随机源,但在用于增强系统的其他源时它是无害的。
  • AES-NI - 使用专用硬件指令加速 AES 加密,但由于不使用处理器的缓存,因此通过防止侧信道攻击也有助于安全。
  • CET - 一项即将推出的功能,旨在帮助缓解 ROP 攻击(允许在内存上运行任意代码的攻击,该代码可执行但无法通过乱序执行指令写入)。
  • MPK - 一项即将推出的功能,除其他外,通过提供对内存权限的更细粒度的控制,允许代码可执行但不可读。
  • BootGuard - 通过签名并在每次启动时验证签名来防止对 BIOS 进行任何未经授权的修改。
  • TPM - 虽然功能有限,但它仍然可用于安全证明、密钥存储和检测邪恶女仆攻击(参见 Joanna Rutkowska 的“反邪恶女仆”程序)。
  • fTPM - 类似于硬件 TPM,但集成到 ME 本身中。虽然它有自己的缺点,但它也不受针对常规 TPM 的经典 MITM 攻击的影响。
  • TRR/pTRR - 通过检测行被过于频繁地访问并强制刷新它来强烈抵抗对支持的内存模块的 rowhammer 攻击。

在所有这些安全功能中,旧处理器通常只支持 NX,即便如此,它也可能存在漏洞。

旧处理器的问题

此外,较旧的处理器通常具有由于不再获得微码更新而无法修复的严重错误。许多 32 位 Core2duo 处理器存在一个错误,导致 NX 仅在两个内核中的一个上处于活动状态。较新的系统通常也具有更安全的 BIOS,这主要归功于 Legbacore 所做的工作。这些较新的系统会锁定 BIOS,因此无法对其进行修改。旧系统没有此功能,并且很容易被 BIOS rootkit 感染,因为它们不为 BIOS 提供写保护。

更糟糕的是,一些旧处理器(尤其是 Atom 处理器)极易受到缓存漏洞的攻击。这可能非常糟糕,以至于它可以允许运行 JavaScript 的网页劫持 CPU 本身,而无需退出浏览器。其他旧处理器容易受到 SMM rootkit 的攻击,与 ME rootkit 一样,操作系统无法检测到这些 rootkit。“sinkhole”攻击是在旧处理器上利用 SMM 的一个例子。

较旧的处理器可能是 32 位的,这会降低 ASLR 的质量,这是一种随机化加载库位置的技术。例如,在 Linux 上,ASLR 在这些处理器上的强度限制为 16 位(默认为 8),而在 64 位系统上运行时为 32(默认为 16)。因此,某些侧信道攻击可以更容易地在 32 位系统上破坏 ASLR。

但真正的风险是什么?

如果你的系统的 ME 支持远程管理,如果你有一个受支持的网卡,如果你在 BIOS 中启用它,如果网络堆栈中存在可远程利用的错误,如果你允许传入连接,那么你可能会感染你的计算机与 BIOS rootkit 等效(毕竟 ME 代码存在于 BIOS 中)。如果您使用较旧的系统来避免 ME,您将放弃大量重要的安全功能,并且需要忍受已知的、通常是严重的错误。

缓解措施

如果您仍然担心 ME,或者您的威胁模型使其比大多数人面临更大的风险(例如您需要使用 3G 卡),那么目前有两种方法可以限制 ME 的权力,除了从简单地关闭 AMT。一种方法适用于 Sandybridge 和 Ivybridge 处理器。覆盖 ME 的第一页可能会削弱它,因此仅启用核心功能。第二种方法允许在运行时完全禁用它。发现了一个未记录的开关,该开关导致 ME 在运行必要的硬件初始化例程后锁定自身。

以一个类比结束,想象一个网络浏览器。当然,较旧的浏览器更简单,并且没有像 WebGL 或 WebRTC 这样的潜在可利用功能,但是如果他们建议您使用具有已知错误的过时 Web 浏览器,您是否真的相信某人,只是因为修复它们的新模型可能有自己的设置的问题?

我的预期是,这指的是在那个时间范围内引入了英特尔管理引擎 (IME)。围绕这项服务的安全性以及由于滥用它而监视用户的风险存在许多担忧,一个例子就是这个EFF Page

IME 允许远程管理嵌入它的计算机,并且很难完全禁用。

今年 5 月,英特尔宣布了一个漏洞该漏洞可能允许绕过此服务的身份验证,在某些情况下允许未经授权访问该设备。

最近(2017 年 10 月)Purism 发布了有关 IME 所涉及内容的指南以及有关如何禁用它的信息。那篇文章有一个指向此页面的链接,其中包含有关如何禁用 IME 的更多详细信息。