摘要:MTE 的实际实现
作者: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。如需更详细的分析,请参阅以下链接的博客文章: