Securing Untrusted Code
via Compiler-Agnostic Binary Rewriting
Richard Wartell, Vishwath Mohan, Kevin W. Hamlen, Zhiqiang Lin
Department of Computer Science, The University of Texas at Dallas
800 W. Campbell Rd, Richardson, TX, 75080
REINS secures untrusted x86 native code without requiring source, metadata(IRM), or specialized infrastructure(VM). It enforces security by partitioning instructions into aligned chunks, protecting indirect control-flow transfers with bit-masking guards, and mediating API calls. It maintains high efficiency with only a 2.4% average runtime overhead while ensuring safety through an independent, machine-verifiable certification process.
Limitations
Reliance on Imperfect Disassembly Heuristics REINS depends on imperfect disassembly heuristics to manage complex features like position-independent code (PIC) and callbacks.
Dependency on Standard Code Generation Conventions Custom control-flow or manual address calculations are incompatible and prone to runtime failure.
Coarse-grained Control-flow Enforcement Protecting external system resources through chunk and mediation rather than enforcing fine-grained, source-level control-flow integrity for the internal logic.