Dapper: A Lightweight and Extensible Framework for Live Program State Rewriting

Abhishek Bapat, Jaidev Shastri, Xiaoguang Wang, Abilesh Sundarasamy, Binoy Ravindran · 2024

We present Dapper, a lightweight system that transforms the execution state of a live process into a new process state in a secure and extensible manner. Dapper checkpoints a live process into a process image using Linux's CRIU mechanism, rewrites the image with an updated execution state, and restores program execution. In particular, Dapper can restore the program execution on a CPU with a different architecture by rewriting the process's architecture-specific execution state. Dapper transforms the process externally and only requires inserting a small amount of compile-time metadata to guide the state transformation. Therefore, Dapper brings a smaller attack surface for the transformed program and can be extended for different scenarios in contrast to existing techniques. We build and evaluate a prototype of Dapper using server applications and benchmark suites. Our evaluation shows that Dapper can be extended and used in many different scenarios, such as improving servers' energy efficiency by live program migration on heterogeneous processors and enhancing program security with dynamic randomness of the program states.

Read the paper · More papers on PaperTik