arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2202.08669cs.CRcs.PLcs.SE
收藏

CryptSan:利用ARM指针认证实现C/C++内存安全

CryptSan: Leveraging ARM Pointer Authentication for Memory Safety in C/C++

Konrad Hohentanner, Philipp Zieris, Julian Horsch

AI总结:

提出基于ARM指针认证的内存安全方案CryptSan,利用指针签名保护堆、栈和全局变量,在真实硬件上实现优于现有方法的性能与安全性。

摘要:

内存安全漏洞仍然位居安全漏洞之首,即使经过数十年的检测和预防研究。针对C/C++,已经提出了各种缓解措施,从语言方言到插桩。其中,基于编译器的插桩尤其有前景,不需要手动修改代码,并且能够实现精确的内存安全。不幸的是,现有的基于编译器的解决方案在许多方面有所妥协,包括性能、可用性以及内存安全保证。硬件的新发展可以帮助提高基于编译器的内存安全的性能和安全性。ARMv8.3架构中新增的ARM指针认证,旨在实现硬件辅助的控制流完整性(CFI)。但由于其操作是通用的,它也支持其他更全面的硬件支持的运行时完整性方法。因此,我们提出了CryptSan,一种基于ARM指针认证的内存安全方法。CryptSan使用指针签名来为C/C++程序改造内存安全,保护堆、栈和全局变量免受时间和空间漏洞的影响。我们展示了一个完整的基于LLVM的原型实现,运行在M1 MacBook Pro上,即实际的ARMv8.3硬件上。我们的原型评估表明,该系统在真实条件下优于类似方法。这与其与未插桩库的互操作性以及对元数据攻击的加密保护相结合,使CryptSan成为为C/C++程序改造内存安全的可行解决方案。

英文摘要:

Memory safety bugs remain in the top ranks of security vulnerabilities, even after decades of research on their detection and prevention. Various mitigations have been proposed for C/C++, ranging from language dialects to instrumentation. Among these, compiler-based instrumentation is particularly promising, not requiring manual code modifications and being able to achieve precise memory safety. Unfortunately, existing compiler-based solutions compromise in many areas, including performance but also usability and memory safety guarantees. New developments in hardware can help improve performance and security of compiler-based memory safety. ARM Pointer Authentication, added in the ARMv8.3 architecture, is intended to enable hardware-assisted Control Flow Integrity (CFI). But since its operations are generic, it also enables other, more comprehensive hardware-supported runtime integrity approaches. As such, we propose CryptSan, a memory safety approach based on ARM Pointer Authentication. CryptSan uses pointer signatures to retrofit memory safety to C/C++ programs, protecting heap, stack, and globals against temporal and spatial vulnerabilities. We present a full LLVM-based prototype implementation, running on an M1 MacBook Pro, i.e., on actual ARMv8.3 hardware. Our prototype evaluation shows that the system outperforms similar approaches under real-world conditions. This, together with its interoperability with uninstrumented libraries and cryptographic protection against attacks on metadata, makes CryptSan a viable solution for retrofitting memory safety to C/C++ programs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑