Skip to main content
QUICK REVIEW

[论文解读] Memory Tagging and how it improves C/C++ memory safety

Kostya Serebryany, Evgenii Stepanov|arXiv (Cornell University)|Feb 26, 2018
Security and Verification in Computing被引用 45
一句话总结

本文描述内存标签作为一种提高 C/C++ 内存安全性的技术,详细介绍两种实现:一个完整的硬件 SPARC 方案和一个部分硬件协助的 AArch64 编译器工具,并讨论它们的潜在影响。

ABSTRACT

Memory safety in C and C++ remains largely unresolved. A technique usually called "memory tagging" may dramatically improve the situation if implemented in hardware with reasonable overhead. This paper describes two existing implementations of memory tagging: one is the full hardware implementation in SPARC; the other is a partially hardware-assisted compiler-based tool for AArch64. We describe the basic idea, evaluate the two implementations, and explain how they improve memory safety. This paper is intended to initiate a wider discussion of memory tagging and to motivate the CPU and OS vendors to add support for it in the near future.

研究动机与目标

  • 激发对 C/C++ 提高内存安全的需求,并讨论内存标签可能发挥的作用。
  • 描述两种具体的内存标签实现:SPARC 硬件标签和一个 AArch64 编译器辅助工具。
  • 评估这些实现如何提高内存安全,并讨论对 CPU 和操作系统厂商的更广泛影响。

提出的方法

  • 解释内存标签的基本思路。
  • 描述 SPARC 硬件实现及其特征。
  • 描述用于 AArch64 的部分硬件辅助编译器工具。
  • 在实际层面评估标签化如何改善内存安全。
  • 讨论 CPU 和操作系统厂商采用的影响与建议。

实验结果

研究问题

  • RQ1什么是内存标签,它如何改善 C/C++ 的内存安全?
  • RQ2SPARC 硬件标签实现的特征与取舍是什么?
  • RQ3AArch64 编译器辅助标签工具的特征与取舍是什么?
  • RQ4内存标签如何影响 CPU/OS 生态系统的决策与采用?

主要发现

  • 讨论了两种具体的内存标签方法:一个完整的硬件 SPARC 实现和一个部分硬件辅助的 AArch64 工具。
  • 作者认为内存标签有望显著提高 C/C++ 的内存安全。
  • 本文主张开展更广泛的讨论,并获得硬件/操作系统厂商的支持以实现实际采用。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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