Arm 安全防御 95% 的时间都被推测执行所破坏 • –

2018 年,芯片设计公司 Arm 推出了一项名为“内存标记扩展”(MTE)的硬件安全功能,用于防御内存安全漏洞。但它可能没有最初希望的那么有效。

内存安全错误 据说是造成大型代码库中大多数安全漏洞的原因。过去几年,公共和私营部门一直在齐心协力,通过推广内存安全编程语言、基于软件的代码强化技术以及 SPARC ADI 和 Arm MTE 等硬件专用选项来减少此类漏洞。

MTE 的工作原理是使用 4 位元数据标记 16 字节的物理内存块。此元数据充当允许访问的密钥。当指针引用标记的内存块中的数据时,硬件会检查以确保指针包含与内存块匹配的密钥,以便访问数据。不匹配会引发错误。

标签,你就是 IT

深入研究一下,MTE 的基本工作原理如下。当 MTE 处于活动状态时,程序可以使用 特别说明 使用 4 位密钥标记 16 字节内存块。例如,当从堆中分配一块内存时,该块(对齐并四舍五入为 16 字节)可以用相同的 4 位密钥标记,并且会生成指向该块的指针,该指针在其未使用的上部位中包含密钥。

当程序将来使用该指针引用块的某个部分时,一切都会正常进行。指针仍然包含正确的密钥。但是,如果释放了块并且更改了密钥,则由于密钥不匹配,随后使用该过时的指针将触发错误,这表明存在编程错误或漏洞利用尝试,而这两种情况您都希望捕获。

如果程序通过其他漏洞被劫持,并且代码引用了指针中没有正确键的标记块,那么这也会被捕获。

因此,MTE 可以防御利用常见 C/C++ 风格内存漏洞的尝试,例如缓冲区溢出、释放后堆使用和返回后堆栈使用,这些漏洞可能会导致软件和系统被劫持和入侵,同时还可以帮助开发人员在测试期间发现这些漏洞。Arm 希望如此。

泄漏

不幸的是,MTE 似乎不够安全,无法兑现其安全承诺。韩国首尔国立大学、三星研究院和美国佐治亚理工学院的研究人员发现,他们可以通过推测执行来破解 MTE。

作者 Juhee Kim、Jinbum Park、Sihyeon Roh、Jaeyoung Chung、Youngjoo Lee、Taesoo Kim 和 Byoungyoung Lee 在其 研究论文“TikTag:利用推测执行打破 Arm 的内存标记扩展。”

在对 MTE 进行评估以评估其是否具有所声称的安全优势后,研究人员表示,MTE 并不能提供安全优势。相反,他们发现他们可以在 4 秒内提取 MTE 标签,成功率约为 95%。

“[W]“我们发现针对 MTE 的推测执行攻击确实可能存在,这严重损害了 MTE 的安全保障,”作者报告说。“我们发现了两个新的小工具,分别名为 TIKTAG-v1 和 TIKTAG-v2,它们可以泄露任意内存地址的 MTE 标签。”

这不会完全破坏 Arm 上应用程序的安全性;这意味着可以在适当的条件下绕过 MTE。

安全猜测

推测执行 指在需要之前在现代处理器上执行某些操作的做法,如果程序路径需要,则使用结果,如果程序采用不同的路径,则丢弃结果。这样做往往会使应用程序执行速度更快,但它会增加重大的安全风险,例如 2018 年出现的 Meltdown 和 Spectre 漏洞,它们一直困扰着硬件和软件制造商。

通过使用小工具(内存中的机器指令模式),科学家发现他们可以观察内存访问模式来确定给定内存地址的 MTE 标记。他们说,根本原因与标记检查结果影响 CPU 数据预取的方式以及 CPU 核心在出现标记检查故障时阻止存储和加载转发的方式有关。

作者表示,他们的研究扩展了 关于先前的工作 从 2024 年 5 月开始,MTE 就很容易受到推测性探测。此外,他们还认为他们的发现挑战了谷歌 Project Zero 的工作, 未发现旁道攻击 能够打破MTE。

据称,使用概念验证代码,可以从 Android 上的 Google Chrome 和 Linux 内核中挖掘出 MTE 标签,成功率在不到四秒的时间内超过 95%。

作者已经公开了他们的代码 在 GitHub 上代码库解释道:“当 TikTag 小工具被推测执行时,缓存状态会根据小工具是否触发标签检查错误而有所不同。”“因此,通过观察缓存状态,有可能泄露标签检查结果而不会引发任何异常。”

访问泄露的标签并不能确保漏洞被利用。这仅仅意味着能够利用受影响设备上特定内存漏洞的攻击者不会被 MTE 阻止。

研究人员向 Arm 披露了他们的研究结果,Arm 对此表示承认 开发者笔记 于 2023 年 12 月发布。该芯片设计公司表示,成功和失败的标签检查的时间差异足以在 Cortex-X2、Cortex-X3、Cortex-A510、Cortex-A520、Cortex-A710、Cortex-A715 和 Cortex-A720 处理器中创建 MTE 推测预言(一种揭示 MTE 标签的机制)。

然而,Arm 认为,尽管它敦促实施防止投机预言机的机制,但这种风险不会损害 MTE 的价值。作者建议,可以在 Chromium 和 Linux 内核代码中实施设置投机障碍和限制小工具构建的缓解措施。

研究人员表示,谷歌的 Chrome 团队承认了这个问题,但拒绝在 Chrome 的 V8 引擎中修复它,因为它“无法保证内存数据和 MTE 标签的机密性。”作者表示,他们在某种程度上同意这一观点,因为 Chrome 默认不实施 MTE,但他们仍然希望看到他们建议的缓解措施得到部署。

当作者于 2024 年 4 月向 Android 安全团队报告他们在 Pixel 8 设备中对 MTE 预言机的研究工作时,他们表示团队承认了这个问题,并解决了它,并发放了漏洞赏金。

Arm 和谷歌尚未立即回应置评请求。®

1718673742
2024-06-18 01:11:00
#Arm #安全防御 #的时间都被推测执行所破坏 #Register

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​