中文

InversOS:基于特权反转的AArch64应用高效控制流保护

密码学与安全 2023-07-20 v2 操作系统

摘要

随着AArch64处理器在通用计算中的日益普及,保护运行于AArch64系统上的软件免受控制流劫持攻击已成为安全计算的关键一环。影子栈保存函数返回地址的影子副本,当其对非法修改受保护并与前向边控制流完整性结合时,构成针对此类攻击有效且经证实的防御。然而,AArch64缺乏对写保护影子栈的原生支持,而软件替代方案要么带来过高性能开销,要么提供较弱的安全保证。我们提出InversOS,首个面向AArch64用户空间应用的硬件辅助写保护影子栈,利用AArch64的通用可用特性实现保护影子栈所需的高效地址空间内隔离(称为特权反转)。特权反转采用非常规设计选择,使受保护应用运行于内核模式并将操作系统(OS)内核内存标记为用户可访问;因此InversOS使用OS内核修改、编译器变换及另一AArch64特性的新颖组合来确保此举的安全性并支持遗留应用。我们表明InversOS在设计上安全,可有效抵御各类控制流劫持攻击,并在所选基准与应用上具备性能优势(在LMBench上开销7.0%,在SPEC CPU 2017上开销7.1%,在Nginx Web服务器上开销3.0%)。

关键词

引用

@article{arxiv.2304.08717,
  title  = {InversOS: Efficient Control-Flow Protection for AArch64 Applications with Privilege Inversion},
  author = {Zhuojia Shen and John Criswell},
  journal= {arXiv preprint arXiv:2304.08717},
  year   = {2023}
}

备注

18 pages, 9 figures, 4 tables