根据 Spectre BHI,Retpolines 对现代 Intel CPU 的性能影响

BHI / Spectre-BHB 作为 Spectre V2 的最新分支。立即为受影响的英特尔和 Arm 处理器发布了Linux 补丁,同时还围绕其 Retpoline 处理对 AMD CPU 进行了调整。发现 BHI 的 VUSec 安全研究人员建议为更新的处理器启用 Retpolines,即使是那些对 Spectre V2 进行硬件缓解的处理器,但这就是性能成本?以下是一些初始基准。

周二的 Spectre 分支历史注入“BHI”披露利用全球历史重新介绍了对跨特权 BTI 的利用。BHI 允许利用已经具有新硬件内缓解措施的系统,例如 Intel eIBRS 和 Arm CSV2。VUSec 发布了一个概念验证攻击,该攻击利用 Linux 内核的 eBPF 内核虚拟机来利用英特尔最新的处理器泄漏内核内存并在其 PoC 中泄漏根哈希密码。

英特尔证实,至少通过 Alder Lake 的处理器受到 BHI 的影响(跟踪为 CVE-2022-0001 和 CVE-2022-0002),而在其公开声明中指出,各种 Linux 发行版“默认缓解”了研究人员的特定攻击。默认情况下,先前的缓解措施是禁用非特权 eBPF 使用。这不是 eBPF,虽然这从根本上来说是这里的问题,只是它是目前唯一已知的用于轻松利用 BHI 的攻击向量。

虽然默认禁用非特权 eBPF 使用确实是保护系统的明智安全举措。上游内核更改仅发生在 Linux 5.16 中,现在正在向后移植。本周,Canonical 等发行版供应商确认,他们将在受支持的 Ubuntu 版本上默认禁用非特权 eBPF 使用。

可以通过阿姆斯特丹自由大学的VUSec 站点或特别是BHI 白皮书找到有关分支历史注入的更多技术细节。在该白皮书中,研究人员建议应启用 Retpolines(返回蹦床)以缓解 BHI:

image.php_-39

image.php_-41
VUSec 分支历史注入白皮书建议使用 Spectre V2 硬件缓解措施的更新 CPU 重新启用软件 Retpolines,以更好地防御这个新的 Spectre 漏洞。

AMD 不认为受到 BHI 的影响,并且仍然在较新的 Zen 处理器上使用 Retpolines。尽管他们确实发现他们的以 LFENCE/JMP 为重点的 AMD Retpolines 实施很活泼,因此现在转而使用通用 Retpolines。我将在另一篇文章中进行基准测试,看看 AMD Retpolines 与通用实现相比的性能差异,而今天正在研究如果为 Alder Lake 等较新的 CPU 启用 Retpolines 的总体成本。

image.php_-40
英特尔添加了带有 Retpoline 选项的 eIBRS 以缓解问题,但目前默认情况下未启用。

随着周二的Linux x86/x86_64 BHI 缓解措施,它们被合并到主线 Linux 5.17 Git 树(连同 Arm 补丁并在所有 AMD CPU 上使用通用 Retpolines)。这些缓解补丁已经排队等待向后移植到各种稳定的 Linux 内核分支中,并将成为本周针对这些系列的重点发布的一部分。

image.php_-40

作为 x86 补丁的一部分,添加了设置“spectre_v2=eibrs,retpoline”以启用 Retpolines 的功能,即使在具有增强 IBRS 以缓解 Spectre V2 的新 Intel 处理器上也是如此。虽然此时默认情况下不会在较新的 Intel CPU 上使用这种 Retpolines —— 只是在使用添加的新 spectre_v2= 选项时。

image.php_-40

在本文中,我使用最新的 Linux 5.17 Git 内核在较新的 Intel CPU 上运行了一些基准测试,并按照 VUSec 安全研究人员的建议,使用“spectre_v2=eibrs,retpoline”重复测试,以便在 eIBRS 之上启用该软件 Retpoline 保护。

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun137724.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2022年3月11日 上午9:07
下一篇 2022年3月11日 上午9:14

相关推荐