Code reuse attacks are still big threats to software and system security. Control flow integrity is a promising technique to defend against such attacks. However, its effectiveness has been weakened due to the inaccurate control flow graph and practical strategy to trade security for performance. In recent years, CPU vendors have integrated hardware features as countermeasures. For instance, ARM Pointer Authentication (PA in short) was introduced in ARMV8-A architecture. It can efficiently generate an authentication code for an address, which is encoded in the unused bits of the address. When the address is de-referenced, the authentication code is checked to ensure its integrity. Though there exist systems that adopt PA to harden user programs, how to effectively use PA to protect OS kernels is still an open research question. In this paper, we shed lights on how to leverage PA to protect control flows, including function pointers and return addresses, of Linux kernel. Specifically, to protect function pointers, we embed authentication code into them, track their propagation and verify their values when loading from memory or branching to targets. To further defend against the pointer substitution attack, we use the function pointer address as its context, and take a clean design to propagate the address by piggybacking it into the pointer value. We have implemented a prototype system with LLVM to identify function pointers, add authentication code and verify function pointers by emitting new machine instructions. We applied this system to Linux kernel, and solved numerous practical issues, e.g., function pointer comparison and arithmetic operations. The security analysis shows that our system can protect all function pointers and return addresses in Linux kernel.


翻译:代码再利用攻击仍然是软件和系统安全的重大威胁。 控制流程完整性是防范此类攻击的一个很有希望的技术。 但是,由于控制流程图不准确和实用的绩效贸易安全战略不准确, 其有效性已经削弱。 近年来, CPU 供应商具有综合硬件功能作为对策。 例如, ARMV8- A 架构中引入了 ARME 指针认证( 简称PA ) 。 它可以有效地生成地址认证代码, 该代码在未使用的地址位元中编码。 当地址被删除时, 验证代码会被检查以确保其完整性。 尽管存在采用 PA 以硬化用户功能, 如何有效使用 PA 保护 OOS 内核仍然是一个开放式研究问题。 在本文中, 我们发布了如何利用 PAME 来保护控制流程( 包括功能指针和返回地址) 。 具体来说, 保护功能指针, 我们将认证代码嵌入它们, 在从记忆或分支装载到目标时, 追踪它们的价值。 为进一步防御点替换用户程序, 我们使用 PAEA 的运行点 规则, 将运行到运行点 。 将运行到服务器 。 运行到运行到服务器 。 运行 运行到 运行 运行 运行到运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到 运行到

0
下载
关闭预览

相关内容

Integration:Integration, the VLSI Journal。 Explanation:集成,VLSI杂志。 Publisher:Elsevier。 SIT:http://dblp.uni-trier.de/db/journals/integration/
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
Python计算导论,560页pdf,Introduction to Computing Using Python
专知会员服务
72+阅读 · 2020年5月5日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
58+阅读 · 2019年10月17日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
275+阅读 · 2019年10月9日
TorchSeg:基于pytorch的语义分割算法开源了
极市平台
20+阅读 · 2019年1月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
将门创投
3+阅读 · 2017年10月12日
Arxiv
0+阅读 · 2020年11月23日
VIP会员
相关资讯
TorchSeg:基于pytorch的语义分割算法开源了
极市平台
20+阅读 · 2019年1月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
将门创投
3+阅读 · 2017年10月12日
Top
微信扫码咨询专知VIP会员