arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 2104.14993cs.CR
收藏

FIPAC:利用ARM指针认证挫败故障和软件引发的控制流攻击

FIPAC: Thwarting Fault- and Software-Induced Control-Flow Attacks with ARM Pointer Authentication

Robert Schilling, Pascal Nasahl, Stefan Mangard

摘要:

随着计算技术的进步,越来越多的应用将强大的ARM处理器嵌入到其设备中。这些系统可以通过重定向程序的控制流来绕过关键代码片段(如特权检查或签名验证)来攻击。控制流劫持可以使用经典的软件漏洞、物理故障攻击或软件引起的故障攻击来执行。为了应对这种威胁并保护控制流,需要专门的对策。为了对抗控制流劫持,控制流完整性(CFI)旨在成为一个通用的解决方案。然而,基于软件的CFI通常可以防止软件攻击或故障攻击,但不能同时防止两者。虽然硬件辅助的CFI可以减轻这两种类型的攻击,但它们需要大量的硬件修改。由于硬件变化对于现有的ARM架构来说是不现实的,因此许多系统仍然不受保护,容易受到控制流攻击。在这项工作中,我们提出了FIPAC,一个有效的基于软件的CFI计划,保护基于ARM的设备对软件和故障攻击的基本块粒度的执行。FIPAC利用ARMv8.6-A的ARM指针认证来实现加密签名的控制流图。我们以密码方式链接执行的基本块的正确序列,以在此粒度下实施CFI。我们使用基于LLVM的工具链来自动检测程序。在不同安全策略下对SPEC 2017的评估显示,代码开销在54-97\%之间,运行时开销在35- 105%之间。虽然这些开销高于针对软件攻击的对策,但FIPAC优于保护控制流免受故障攻击的相关工作。FIPAC是一种有效的解决方案,可以在现代ARM设备的基本块级别上提供针对基于软件和故障的CFI攻击的保护。

英文摘要:

With the improvements of computing technology, more and more applications embed powerful ARM processors into their devices. These systems can be attacked by redirecting the control-flow of a program to bypass critical pieces of code such as privilege checks or signature verifications. Control-flow hijacks can be performed using classical software vulnerabilities, physical fault attacks, or software-induced fault attacks. To cope with this threat and to protect the control-flow, dedicated countermeasures are needed. To counteract control-flow hijacks, control-flow integrity~(CFI) aims to be a generic solution. However, software-based CFI typically either protects against software or fault attacks, but not against both. While hardware-assisted CFI can mitigate both types of attacks, they require extensive hardware modifications. As hardware changes are unrealistic for existing ARM architectures, a wide range of systems remains unprotected and vulnerable to control-flow attacks. In this work, we present FIPAC, an efficient software-based CFI scheme protecting the execution at basic block granularity of ARM-based devices against software and fault attacks. FIPAC exploits ARM pointer authentication of ARMv8.6-A to implement a cryptographically signed control-flow graph. We cryptographically link the correct sequence of executed basic blocks to enforce CFI at this granularity. We use an LLVM-based toolchain to automatically instrument programs. The evaluation on SPEC2017 with different security policies shows a code overhead between 54-97\% and a runtime overhead between 35-105%. While these overheads are higher than for countermeasures against software attacks, FIPAC outperforms related work protecting the control-flow against fault attacks. FIPAC is an efficient solution to provide protection against software- and fault-based CFI attacks on basic block level on modern ARM devices.

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

↑