摘要:MTE 的实际实现

访问原始链接 Google 翻译

作者:Mark Brand,Project Zero
2022年中,Project Zero获得了访问实现ARM MTE规范预生产硬件的权限。本系列博客文章基于该次评估,并总结了关于MTE实施效果的一般性结论,特别是在防止内存安全漏洞利用的背景下。

尽管存在局限性,MTE仍然是2023年提升C/C++软件安全性最具前景的技术路径。MTE能够在首次危险访问时检测内存破坏利用,这显著提升了诊断能力和潜在的安全防护效果。相比之下,大多数其他提议的方法依赖于阻断利用过程的后续阶段,例如各种旨在阻止无效控制流转移的硬件辅助CFI(控制流完整性)方案。基于MTE的缓解措施并不能完全解决可被利用的C/C++内存安全问题。推测执行侧信道攻击的残酷现实是,MTE无法终结内存破坏利用。然而,目前尚无其他实用方案能对如此广泛的内存破坏问题的可利用性(及利用成本)产生类似广泛的影响,同时还能解决这一局限性。

此外,考虑到该领域悠久的创新和研究历史,我们认为不可能构建一个软件解决方案,在C/C++内存安全方面达到与MTE相当的覆盖范围,同时运行时开销低于AddressSanitizer/HWAsan。显然,这样的开销对于大多数生产工作负载来说是不可接受的。

对于长期内预计包含大型C/C++代码库、且认为内存破坏漏洞利用是其产品安全关键风险的产品,应积极推动在其产品中支持ARM的MTE。如需更详细的分析,请参阅以下链接的博客文章:

  1. 实现测试 - 对执行测试的客观总结及一些基础分析。如果您有兴趣基于MTE实施缓解措施,应首先阅读本文档,它将提供更详细的技术背景。
  2. 缓解措施案例研究 - 基于第一部分测试中的经验,对在各种用户态场景中使用MTE的各种缓解方法效果的主观评估。如果您对基于MTE实施缓解措施不感兴趣,但想了解此类缓解措施可能的效果极限,可以跳过第一部分,从这里开始阅读。
  3. 内核 - 对在内核态缓解措施中使用MTE所面临额外问题的主观评估。