ShadowBound: 通过高级元数据管理和定制编译器优化实现高效堆内存保护
密码学与安全
2024-09-24 v2
摘要
在软件开发中,C和C++等不安全语言的普及引入了潜在漏洞,尤其是在堆(动态内存分配的关键组件)中。尽管其重要性不言而喻,但堆管理的复杂性使得堆破坏普遍存在,对系统安全构成严重威胁。尽管先前旨在实现时间和空间内存安全性的解决方案表现出被认为不切实际的性能开销,但我们提出了ShadowBound,一种独特的堆内存保护设计。其核心是,ShadowBound是一种高效的越界防御机制,可以与各种释放后使用防御机制(例如MarkUs、FFMalloc、PUMM)协同工作,且无兼容性限制。我们利用基于影子内存的元数据管理机制来存储堆块边界,并应用为边界检查量身定制的编译器优化。我们在LLVM框架之上实现了ShadowBound,并集成了三种最先进的释放后使用防御机制。我们的评估表明,ShadowBound以极低的时间和内存开销提供了强大的堆保护,表明其在保护真实世界程序免受普遍堆漏洞侵害方面的有效性和效率。
引用
@article{arxiv.2406.02023,
title = {ShadowBound: Efficient Heap Memory Protection Through Advanced Metadata Management and Customized Compiler Optimization},
author = {Zheng Yu and Ganxiang Yang and Xinyu Xing},
journal= {arXiv preprint arXiv:2406.02023},
year = {2024}
}
备注
Accepted by USENIX Security 2024