Advisor: Jack W. Davidson
Attending Faculty: James P. Cohoon, Chair
OLSSON 228E, 09:30:00
A Master's Project Presentation
ABSTRACT
Software protection mechanisms have increasingly assumed significance as a technique to prevent process level cracking. One common tamper-resistance technique in software is to insert lightweight checksum
guards inside the program binary which are executed periodically. Tampering in the code is detected by
the guards, which then respond appropriately. This work proposes a novel approach that combines guards with process level virtualization. These techniques have multiple advantages over previous techniques. First, guards are placed in the application as well as the virtual machine (VM), providing a secure environment of circular trust for application execution. Second, guards placed in the application are run from the VM~Rs code cache, providing an environment for stealthy execution. For added security, the application and guards are encrypted using a state-of-the-art encryption algorithm, making analysis and modification even more difficult. We have developed an automated toolchain for inserting these features into the application code. Preliminary results on the SPEC CPU2000 benchmarks show that these techniques add an additional overhead of approximately 7% over the VM (24% over native execution) while providing enhanced tamper resistance.