Tech-ASan:基于双阶段检查的地址屏蔽器
软件工程
2025-09-03 v4 密码学与安全
摘要
地址屏蔽器(ASan)是检测 C/C++ 程序在执行期间隐藏的时空内存安全违规的锐利武器。然而,ASan 造成的运行时开销显著,限制了其在大型软件测试中的效率。该开销主要来自由于频繁且昂贵的影子内存访问导致的屏蔽检查。过去十年间,开发了许多方法通过消除和加速屏蔽检查来提高 ASan 效率,但它们要么未能充分消除冗余检查,要么妥协了检测能力。为此,本文提出了 Tech-ASan,这是一种基于双阶段检查的加速 ASan 技术,确保了安全性。首先,我们提出了一种新的双阶段检查算法,用于 ASan,利用魔术值比较减少大部分昂贵的影子内存访问。其次,我们设计了一种高效优化器,用于消除冗余检查,其中集成了一种用于删除循环中检查的新算法。第三,我们在 LLVM 编译器基础设施上实现了 Tech-ASan。我们的评估使用 SPEC CPU2006 基准测试表明,Tech-ASan 在运行时开销上优于当前最先进的方法,分别比 ASan 和 ASan-- 小 33.70% 和 17.89%。此外,在相同的 redzone 设置下测试 Juliet 测试套件时,Tech-ASan 比 ASan 和 ASan-- 检测到 56 个更多的假阴性案例。
引用
@article{arxiv.2506.05022,
title = {Tech-ASan: Two-stage check for Address Sanitizer},
author = {Yixuan Cao and Yuhong Feng and Huafeng Li and Chongyi Huang and Fangcao Jian and Haoran Li and Xu Wang},
journal= {arXiv preprint arXiv:2506.05022},
year = {2025}
}