论文标题
加密:使用加密彩色内存来挫败物理和逻辑记忆漏洞
CrypTag: Thwarting Physical and Logical Memory Vulnerabilities using Cryptographically Colored Memory
论文作者
论文摘要
内存漏洞是许多计算系统的主要威胁。为了有效阻止空间和时间内存漏洞,需要完整的逻辑记忆安全。但是,当前的缓解记忆安全技术要么太贵了,要么是针对效率的贸易安全性。在硬件中检测内存安全漏洞的一种有希望的尝试是内存着色,这是在标记的内存体系结构之上部署的安全策略。但是,由于大型标签的内存存储和带宽开销,商品标记的内存体系结构通常仅提供小标签大小,从而限制了它们用于安全应用程序的使用。无论逻辑记忆安全性如何,物理记忆安全都是现代云计算和物联网设备普遍存在的敌对环境中的必要性。 Intel和AMD的体系结构已经实现了透明的内存加密,以保持所有外芯片数据的机密性和完整性。令人惊讶的是,在先前的研究中尚未对逻辑和物理记忆安全性的结合,尚未进行广泛的研究,两种安全策略的天真组合都会累积这两个开销。在本文中,我们提出了Cryptag,这是一种有效的硬件/软件共同设计,可缓解大量逻辑记忆安全问题并提供完整的物理记忆安全。 Cryptag以其核心使用了透明的内存加密引擎,不仅用于物理记忆安全,而且还用于记忆着色,几乎没有任何其他费用。该设计通过将内存颜色嵌入指针的上部,并使用这些位作为内存加密的附加输入,从而避免了标签存储的任何开销。自定义编译器扩展程序会自动利用Cryverag检测商品计划的逻辑记忆安全问题,并且完全兼容。
Memory vulnerabilities are a major threat to many computing systems. To effectively thwart spatial and temporal memory vulnerabilities, full logical memory safety is required. However, current mitigation techniques for memory safety are either too expensive or trade security against efficiency. One promising attempt to detect memory safety vulnerabilities in hardware is memory coloring, a security policy deployed on top of tagged memory architectures. However, due to the memory storage and bandwidth overhead of large tags, commodity tagged memory architectures usually only provide small tag sizes, thus limiting their use for security applications. Irrespective of logical memory safety, physical memory safety is a necessity in hostile environments prevalent for modern cloud computing and IoT devices. Architectures from Intel and AMD already implement transparent memory encryption to maintain confidentiality and integrity of all off-chip data. Surprisingly, the combination of both, logical and physical memory safety, has not yet been extensively studied in previous research, and a naive combination of both security strategies would accumulate both overheads. In this paper, we propose CrypTag, an efficient hardware/software co-design mitigating a large class of logical memory safety issues and providing full physical memory safety. At its core, CrypTag utilizes a transparent memory encryption engine not only for physical memory safety, but also for memory coloring at hardly any additional costs. The design avoids any overhead for tag storage by embedding memory colors in the upper bits of a pointer and using these bits as an additional input for the memory encryption. A custom compiler extension automatically leverages CrypTag to detect logical memory safety issues for commodity programs and is fully backward compatible.