Memory-safety escapes continue to form the launching pad for a wide range of security attacks, especially for the substantial base of deployed software that is coded in pointer-based languages such as C/C++. Although compiler and Instruction Set Architecture (ISA) extensions have been introduced to address elements of this issue, the overhead and/or comprehensive applicability have limited broad production deployment. The Memory Tagging Extension (MTE) to the ARM AArch64 Instruction Set Architecture is a valuable tool to address memory-safety escapes; when used in synchronous tag-checking mode, MTE provides deterministic detection and prevention of sequential buffer overflow attacks, and probabilistic detection and prevention of exploits resulting from temporal use-after-free pointer programming bugs. The AmpereOne processor, launched in 2024, is the first datacenter processor to support MTE. Its optimized MTE implementation uniquely incurs no memory capacity overhead for tag storage and provides synchronous tag-checking with single-digit performance impact across a broad range of datacenter class workloads. Furthermore, this paper analyzes the complete hardware-software stack, identifying application memory management as the primary remaining source of overhead and highlighting clear opportunities for software optimization. The combination of an efficient hardware foundation and a clear path for software improvement makes the MTE implementation of the AmpereOne processor highly attractive for deployment in production cloud environments.
翻译:内存安全漏洞仍然是各类安全攻击的主要切入点,尤其是针对大量基于指针语言(如C/C++)编写的已部署软件。尽管编译器和指令集架构扩展已被引入以解决该问题的某些方面,但开销和/或全面适用性限制了其大规模生产部署。ARM AArch64指令集架构的内存标记扩展是解决内存安全漏洞的重要工具:在同步标签检查模式下使用时,MTE能够确定性检测和预防顺序缓冲区溢出攻击,并概率性检测和预防由时序use-after-free指针编程漏洞导致的利用。2024年发布的AmpereOne处理器是首款支持MTE的数据中心处理器。其优化的MTE实现方案独特地将标签存储的内存容量开销降至零,并在广泛的数据中心级工作负载中实现个位数性能影响的同步标签检查。此外,本文分析了完整的硬件-软件堆栈,指出应用程序内存管理是剩余开销的主要来源,并明确了软件优化的关键方向。高效的硬件基础与清晰的软件改进路径相结合,使AmpereOne处理器的MTE实现方案在生产云环境部署中极具吸引力。