过去几年,在英特尔和 ARM CPU 中引入的基于硬件的缓解措施,用于修复名为 Spectre 的严重缺陷,并没有想象中那么强大。研究人员设计了一种可以击败防御的新攻击方法,但利用起来并不像原来的漏洞那么容易。
由 VU Amsterdam (VUSec) 系统和网络安全组的研究人员发现的新攻击称为 Spectre-BHI,表示分支历史注入,或 Spectre-BHB,表示分支历史缓冲区,因为英特尔和 ARM 为其分配了不同的名称. 据研究团队称,它是 2017 Spectre 版本 2 攻击的扩展,也称为 Spectre-BTI(分支目标注入),与 Spectre v2 类似,可导致特权内核内存空间中的敏感信息泄漏.
VUSec 研究人员创建的概念验证漏洞利用非特权帐户从 /etc/shadow 文件中泄露了 root 密码的哈希值。/etc/shadow 文件是 Linux 上的系统文件,只有 root 管理帐户才能访问。从本质上讲,该漏洞利用强制内核将文件加载到内存中,通常会在内存中保护它免受非特权进程的访问,然后利用 Spectre-BHI 攻击来访问和泄漏其内容。这是现代操作系统中将用户模式应用程序和内存空间与特权内核内存空间分开的基本安全边界的重大安全漏洞。
什么是幽灵?
Spectre是一类安全漏洞,最初于 2017 年 1 月披露,源于现代 CPU 的一种性能相关特性,称为推测执行,在这种特性中,CPU 试图提前预测程序在到达条件分支时的执行路径和提前在该路径上执行指令。如果基于内部算法的预测结果很糟糕,则存储在临时 CPU 缓存中的结果将被丢弃。Spectre 之类的推测性执行攻击以及随后的许多其他攻击,都会欺骗这种机制,从充当侧通道的临时缓存中泄漏信息。
VUSec 研究人员解释说:“在 Spectre 被发现的日子里,你可以轻松地利用分支目标注入(BTI 或 Spectre-v2),这是最危险的 Spectre 变体,跨越特权级别。” “例如,非特权用户态攻击者可以将任何分支目标从用户态提供给间接分支预测器,并欺骗内核推测性地跳转到注入的目标代码位置并执行在那里找到的代码。”
为了降低风险,Google 等软件供应商和 Linux 内核开发人员提出了基于软件的解决方案,例如 retpoline。虽然这些措施很有效,但它们对性能造成了重大影响,因此 CPU 供应商后来开发了基于硬件的防御措施。Intel 的称为 EIBRS,ARM 的称为 CSV2。
VUSec 研究人员解释说: “这些解决方案很复杂——阅读论文以了解更多信息——但它们的要点是预测器‘以某种方式’跟踪执行目标的特权级别(用户/内核)。” . “而且,正如你所料,如果目标属于较低的特权级别,内核执行将不会使用它(即,不再有攻击者提供的任意代码位置来推测性地劫持内核控制流进入)。”
[在这份免费的 CIO 路线图报告中了解 IT 如何利用 5G 的力量和前景。现在就下载!]
然而,问题在于 CPU 的预测器依赖于全局历史来选择目标条目以推测性地执行,正如 VUSec 研究人员所证明的那样,这个全局历史可能会被毒化。换句话说,虽然最初的 Spectre v2 允许攻击者实际注入目标代码位置,然后欺骗内核执行该代码,但新的 Spectre-BHI/BHB 攻击只能迫使内核错误预测并执行有趣的代码小工具或片段历史中已经存在并在过去执行过,但可能会泄漏数据。
研究人员说:“英特尔 eIBRS 和 Arm CSV2 是否损坏了?有点像。” “也就是说,缓解措施按预期工作,但残留的攻击面比供应商最初假设的要重要得多。[...] 然而,找到可利用的小工具比以前更难,因为攻击者不能直接跨权限注入预测器目标界线。”
缓解新的 Spectre-BHI 漏洞
英特尔将新的 Spectre-BHI 漏洞跟踪为 CVE-2022-0001,用于跨权限变体,CVE-2022-0002 用于相同权限变体。对于这两种变体,ARM 将其跟踪为 CVE-2022-23960。
据英特尔称,该公司的大多数 CPU 都受到了影响,除了 Atom 系列中的 CPU。对于 ARM,易受攻击的 CPU 是 Cortex-A15、Cortex-A57、Cortex-A72、Cortex-A73、Cortex-A75、Cortex-A76、Cortex-A76AE、Cortex-A77、Cortex-A78、Cortex-A78AE、Cortex-A78C 、Cortex-X1、Cortex-X2、Cortex-A710、Neoverse N1、Neoverse N2 和 Neoverse V1。
两家公司都发布了建议,并将暂时提供软件缓解措施。ARM 有五种不同的缓解措施,具体取决于系统。
对于他们的 Linux 漏洞利用,VUSec 研究人员滥用了 eBPF,这是一种自内核 4.4 以来可用的技术,可以在操作系统内核中运行沙盒程序。研究人员表示,虽然 eBPF 不是潜在问题的一部分,并且可以发现其他代码小工具泄漏数据,但非特权 eBPF 的存在“确实极大地促进了推测执行(和其他)攻击”。这就是为什么他们建议禁用它,并且一些 Linux 发行版已经开始默认禁用它。
本文由 探界网 作者:行者 发表,转载请注明来源!