PACStack:一种已认证的调用栈
密码学与安全
2020-10-16 v5
摘要
一种流行的运行时攻击技术是修改栈上的函数返回地址以破坏程序的控制流完整性。迄今为止,影子栈已被证明对于全面防止返回地址篡改至关重要。影子栈将返回地址记录在通过硬件辅助或软件访问控制保护的完整性受保护内存中。软件影子栈会带来高开销或在安全性与效率之间权衡。硬件辅助影子栈高效且安全,但需要部署专用硬件。我们提出已认证调用栈(ACS),一种使用链式消息认证码(MAC)的方法。我们的原型 PACStack 使用 ARM 通用硬件指针认证(PA)机制来实现 ACS。通过严格的安全性分析,我们表明 PACStack 在不要求专用硬件的情况下达到了与硬件辅助影子栈相当的安全性。我们证明了 PACStack 的性能开销很小(约 3%)。
引用
@article{arxiv.1905.10242,
title = {PACStack: an Authenticated Call Stack},
author = {Hans Liljestrand and Thomas Nyman and Lachlan J. Gunn and Jan-Erik Ekberg and N. Asokan},
journal= {arXiv preprint arXiv:1905.10242},
year = {2020}
}
备注
Author's version of article to appear in USENIX Security '21