Janus: Compiler-Based Defense Against Transient Execution Attacks Using ARM Hardware Primitives

2026-05-11Cryptography and Security

Cryptography and Security
AI summary

The authors created Janus, a tool that helps keep ARM64 computers safe from sneaky attacks that try to trick the processor into running harmful code. Janus uses special hardware features to protect the flow of instructions and prevent these attacks without slowing the system down too much. They combined multiple security steps into one to keep performance impact low. Testing showed Janus added only a small delay to programs, making it a practical way to improve security on ARM-based devices.

Transient execution attacksSpeculative executionControl-flow integrityARM64PAC (Pointer Authentication Code)BTI (Branch Target Injection)Compiler-based securitySpectre attackPerformance overhead
Authors
Ciyan Ouyang, Peinan Li, Yubiao Huang, Dan Meng, Rui Hou
Abstract
We present Janus, a compiler-based security framework that mitigates transient execution attacks like Spectre and control-flow hijacking on ARM64 platforms. Janus integrates speculative execution and control flow dependencies with PA modifiers, using PA and BTI microarchitectural features to prevent control-flow speculation attacks and secure both control flow and speculative execution through existing control-flow integrity mechanisms. To optimize performance, Janus minimizes overhead by merging defense operations across different defense layers (modifier fusion) and reusing registers of protected variables (carrier reuse), while maintaining strong security guarantees. Evaluation on SPEC CPU2017 shows an average performance overhead of 3.85%, with real-world applications exhibiting overheads ranging from 2.97% to 7.80%. Janus offers effective speculative execution security and low performance and code size overhead, making it a robust solution for ARM-based systems.