Skip to main content
QUICK REVIEW

[论文解读] Memory Tagging: A Memory Efficient Design

Aditi Partap, Dan Boneh|arXiv (Cornell University)|Sep 1, 2022
Security and Verification in Computing被引用 4
一句话总结

本文提出内存标记:一种针对ARM内存标记扩展(MTE)的内存高效架构增强方案,通过游程编码(RLE)压缩标签存储,实现在不增加内存开销的前提下支持更长的(16位)标签。该技术通过将标签猜测概率从1/16降低至1/65536,显著提升了MTE的安全性,同时通过高效的动态标签管理维持了性能。

ABSTRACT

ARM recently introduced a security feature called Memory Tagging Extension or MTE, which is designed to defend against common memory safety vulnerabilities, such as buffer overflow and use after free. In this paper, we examine three aspects of MTE. First, we survey how modern software systems, such as Glibc, Android, Chrome, Linux, and LLVM, use MTE. We identify some common weaknesses and propose improvements. Second, we develop and experiment with an architectural improvement to MTE that improves its memory efficiency. Our design enables longer memory tags, which improves the accuracy of MTE. Finally, we discuss a number of enhancements to MTE to improve its security against certain memory safety attacks.

研究动机与目标

  • 分析并改进MTE在Glibc、Android、Chrome和LLVM等真实软件系统中的安全性和效率。
  • 解决当前MTE使用4位标签导致的内存开销问题,该问题使攻击者有1/16的概率猜中标签。
  • 设计一种动态数据结构,支持对可变大小分配的游程编码标签的高效存储。
  • 在QEMU中实现并评估修改后的MTE,证明其在极低资源成本下实现了更高的安全性和性能。

提出的方法

  • 提出一种游程编码(RLE)方案以压缩MTE标签,仅存储连续分配的起始地址、长度和标签值。
  • 设计一种动态数据结构,支持在malloc和free操作期间对RLE编码标签进行快速查找和更新。
  • 将基于RLE的标签系统集成到ARMv8.5的QEMU模拟器中,以评估性能和正确性。
  • 在所有粒度单元中使用相同的16位标签空间,使成功猜测标签的概率降低至1/65536,显著提升安全性,优于4位标签。
  • 修改现有分配器(如Glibc、Scudo、Slub等)以采用新的标记策略,增强其对内存安全攻击的抗性。
  • 将增强后的MTE设计与基线MTE以及HWASan和KASAN等现有工具进行性能和内存效率对比评估。

实验结果

研究问题

  • RQ1现有软件系统(如Glibc、Android、Chrome)如何实现MTE标记?其当前策略存在哪些安全弱点?
  • RQ2是否可以在不增加MTE内存开销的前提下,通过增大标签大小来提升对暴力破解攻击的防御能力?
  • RQ3在动态内存分配中,是否可行使用游程编码来压缩MTE标签,且不牺牲性能?
  • RQ4与4位标签相比,使用16位标签在MTE中可实现哪些性能和内存效率的提升?
  • RQ5所提出的基于RLE的标签管理方案在真实世界的内存分配与释放工作负载下是否具备良好的可扩展性?

主要发现

  • 所提出的基于RLE的标签压缩技术将存储标签所需的内存减少了16倍,与存储独立16位标签相比,系统总内存占用仍保持在64GB的基准水平。
  • 新设计支持16位标签,将成功猜测标签的概率从1/16降低至1/65536,显著提升了安全性。
  • 动态RLE数据结构支持O(log n)时间复杂度的标签查找与更新,使其在实时内存分配中具备实际可行性。
  • QEMU中的实现表明,增强后的MTE设计保持了极低的性能开销,malloc/free性能无明显下降。
  • 改进的标记策略显著增强了对Glibc、Android Scudo及其他分配器中缓冲区溢出和释放后使用攻击的防护能力。
  • 该方法与现有软件栈向后兼容,可无需修改源代码实现渐进式部署。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。