本文提出 Janus,一个基于编译器的安全框架,旨在缓解 ARM64 平台上的瞬态执行攻击(如 Spectre)和控制流劫持。Janus 利用 ARM 的硬件原语——指针认证(PA)和分支目标识别(BTI),通过修改指针认证修饰符(PA modifiers)来整合推测执行和/或控制流依赖,从而防止控制流推测攻击。它通过现有的控制流完整性机制同时保护控制流和推测执行。为了优化性能,Janus 采用修饰符融合(modifier fusion)技术合并不同防御层的操作,以及载体重用(carrier reuse)技术重用受保护变量的寄存器,从而降低开销,同时保持强大的安全保证。在 SPEC CPU2017 基准测试上,平均性能开销仅为 3.85%;实际应用(如 nginx、redis)的开销在 2.97% 到 7.80% 之间。Janus 有效提供了推测执行安全性,且性能和代码大小开销较低,是 ARM 系统的稳健解决方案。本文适合编译器开发者、系统安全研究人员以及 ARM 平台的安全架构师阅读。
💡 推荐理由: 瞬态执行攻击(如 Spectre)至今仍是现代处理器的严重威胁。Janus 通过编译器自动利用 ARM 硬件原语,提供了一种低开销、强安全的缓解方案,对 ARM 生态的防御实践具有重要参考价值。
🎯 建议动作: 研究跟进