PAC it up:基于 ARM 指针认证的指针完整性防护
密码学与安全
2019-05-27 v4
摘要
针对以内存不安全编程语言(如 C 与 C++)编写程序的运行时攻击仍是计算机系统面临的突出威胁。像面向返回编程(ROP)这类技术在攻击真实世界系统中的盛行,促使主要处理器制造商设计基于硬件的对抗措施以防范特定类别的运行时攻击。一个例子是近期在 ARMv8-A 处理器架构(常用于智能手机等设备)中加入的指针认证(PA)支持。PA 是一种低成本的对指针进行认证以抵御内存漏洞的技术。已证明其能对破坏返回地址或函数指针的内存漏洞提供实用防护。然而,迄今为止,PA 作为一种用于加固软件以抵御各类内存攻击的通用防护机制,极少受到关注。本文中,我们利用 PA 构建针对各类运行时攻击的新型防御,包括首个基于 PA 的数据指针完整性机制。我们提出 PARTS,一个将基于 PA 的防御集成到 LLVM 编译器与 GNU/Linux 操作系统的插桩框架,并通过系统评估表明,PARTS 以合理的性能开销提供了优于现有方案的防护。
引用
@article{arxiv.1811.09189,
title = {PAC it up: Towards Pointer Integrity using ARM Pointer Authentication},
author = {Hans Liljestrand and Thomas Nyman and Kui Wang and Carlos Chinea Perez and Jan-Erik Ekberg and N. Asokan},
journal= {arXiv preprint arXiv:1811.09189},
year = {2019}
}
备注
Author's version of article to appear in USENIX Security 2019