【打印本页】      【下载PDF全文】   查看/发表评论  下载PDF阅读器  关闭
←前一篇|后一篇→ 过刊浏览    高级检索
本文已被:浏览 2327次   下载 2382 本文二维码信息
码上扫一扫!
ARM指针认证机制研究综述
张军,侯锐,李小馨,王兴宾,赵路坦,国冰磊
分享到: 微信 更多
(湖北文理学院 计算机工程学院 襄阳 中国 441100;中国科学院信息工程研究所 信息安全国家重点实验室 北京 中国 100093)
摘要:
内存错误漏洞是以不安全语言编写软件系统中安全性和可靠性问题的主要原因。这些漏洞常被用来将代码执行重定向到攻击者控制的位置。诸如代码复用攻击这样的内存错误漏洞利用的流行促使主要处理器制造商设计基于硬件的防御机制。一个例子是ARMv8.3中引入的指针认证(PAuth)机制。PAuth使用签名密钥和指针上下文信息对指针进行签名, 上下文信息是缩小保护范围和开发不同类型安全机制的关键元素。通过使用轻量级分组密码算法QARMA64并将指针认证码(PAC)存储在指针未使用位中, PAuth可以较小的性能和存储开销检查指针的完整性。当前一些研究使用PAuth降低内存安全机制的性能开销, 还有一些研究基于PAuth提高控制流完整性的保护精度。虽然PAuth受到越来越多的关注, 但它仍然遭受暴力攻击和PAC伪造攻击。因此, 很有必要对当前基于PAuth的安全应用进行总结, 并分析其存在的问题。本文首先介绍内存错误漏洞利用的相关背景和相应的保护机制。然后, 我们详细介绍了PAuth机制的详细信息, 包括硬件支持、加密算法和密码密钥管理, 及其潜在的安全问题。然后, 我们总结了当前基于PAuth的内存安全和控制流完整性的研究, 特别是指针上下文的选择方法。最后, 基于我们的调查, 讨论和展望ARM PAuth未来可能的研究方向。未来的研究方向可能包括以下几个方面: PAuth密钥管理和上下文选择、针对推测攻击的防御, 以及PAuth与其他ARM安全机制的结合使用。
关键词:  指针认证  内存错误漏洞  控制流完整性  指针完整性
DOI:10.19363/J.cnki.cn10-1380/tn.2023.11.08
投稿时间:2022-03-03修订日期:2022-08-25
基金项目:本课题得到“新能源汽车与智慧交通”湖北省优势特色学科群项目, 中国科学院信息工程研究所信息安全国家重点实验室开放课题(No.2021-ZD-06)、湖北省自然科学基金(No. 2022CFB325, No. 2022CFB805)、国家自然科学基金(No. 62272459)资助。
A Survey for ARM Pointer Authentication
ZHANG Jun,HOU Rui,LI Xiaoxin,WANG Xingbin,ZHAO Lutan,GUO Binglei
Department of Computer Engineering, Hubei University of Arts and Science, Xiangyang 441100, China;State Key Laboratory of Information Security, Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China
Abstract:
Memory corruption vulnerabilities are the primary cause of security and reliability issues in software systems written in unsafe languages. These vulnerabilities are often exploited to redirect code execution to a location controlled by the attacker. The prevalence of memory corruption exploitation like code reuse attacks has prompted major processor manufactures to design hardware-based countermeasures. An example is the pointer authentication (PAuth) introduced in ARMv8.3. PAuth signs a pointer with a signing key and a context as a nonce. The context is a critical element to narrow down the protection domain and develop different kinds of security mechanisms. By using the lightweight block cipher algorithm QARMA64 and storing the pointer authentication code (PAC) in unused bits of the pointer, PAuth can check the integrity of pointers with much less performance and storage overhead. Currently, some studies use PAuth to reduce the performance overhead of memory security mechanism, and several PAuth based research ideas have been proposed to improve the protection accuracy of control flow integrity. Although PAuth attracts more and more attention, it still suffers from brute force attacks and PAC forging attacks. Therefore, it is necessary to summarize the current security studies based on PAuth and analyze their existing problems. In this paper, we first introduce the relevant background of memory corruption exploitations and the corresponding protection mechanisms. We then present the details of PAuth mechanism, involving the hardware support, encryption algorithm and cryptograph key management, and its potential security issues. After that, we summarize the current security studies for memory security and control flow integrity based on PAuth, especially the selection methods for pointer's context. Finally, we look forward to the future research directions based on our investigation. The future research directions may include the following aspects: key management and context selection for PAuth, defense against speculative attack, and the combination of PAuth and other ARM security mechanisms.
Key words:  pointer authentication  memory corruption vulnerabilities  control-flow integrity  pointer integrity