Thursday, January 29, 2009

Reverse Stack Execution


Reverse Stack Execution

Reverse Stack Execution


Abstract
Introducing variability during program execution is an effective technique for fighting software monoculture which enables the quick spread of malicious code such as viruses and worms. Existing works in the area of automatic generation of execution variability have been limited to instruction randomization and heap allocation randomization, even though stack overows are the predominant attack vectors used to inject malicious code. We present a compiler-based technique that introduces stack variance by reversing the stack growth direction, and is thus able to close this loophole. In this paper we discuss the steps necessary to reverse the stack growth direction for the Intel x86 instruction set which was designed for a single stack growth direction. The performance evaluation of our approach shows a negligible overhead for most applications. For one of the benchmark applications, we see a small performance gain

0 comments:

Post a Comment