CAMP:基于编译器与分配器的堆内存保护
密码学与安全
2024-06-06 v1 软件工程
摘要
堆是许多应用程序中关键且广泛使用的数据结构。由于其动态特性以及堆管理算法的复杂性,堆也常常成为安全漏洞的目标。为了增强堆的安全性,已引入各种堆保护技术,但这些技术要么引入显著的运行时开销,要么提供的保护有限。我们提出CAMP,这是一种新的用于检测和捕获堆内存损坏的 sanitizer。CAMP利用编译器和定制内存分配器。编译器向目标程序添加边界检查和逃逸跟踪指令,而内存分配器跟踪内存范围,与仪器化协调,并中和悬挂指针。通过这种新颖的错误检测方案,CAMP允许各种编译优化策略,从而消除冗余和不必要的检查仪器。这一设计在不牺牲安全性保证的前提下最小化了运行时开销。我们使用真实应用程序和 SPEC CPU 基准进行评估和比较,结果表明CAMP在更低的运行时开销下提供了更好的堆内存损坏检测能力。
引用
@article{arxiv.2406.02737,
title = {CAMP: Compiler and Allocator-based Heap Memory Protection},
author = {Zhenpeng Lin and Zheng Yu and Ziyi Guo and Simone Campanoni and Peter Dinda and Xinyu Xing},
journal= {arXiv preprint arXiv:2406.02737},
year = {2024}
}