On the effectiveness of multi-variant program execution for vulnerability detection and prevention

T Jackson, B Salamat, G Wagner, C Wimmer… - Proceedings of the 6th …, 2010 - dl.acm.org
T Jackson, B Salamat, G Wagner, C Wimmer, M Franz
Proceedings of the 6th International Workshop on Security Measurements and …, 2010dl.acm.org
Multi-variant program execution is an application of n-version programming, in which
several slightly different instances of the same program are executed in lockstep on a
multiprocessor. These variants are created in such a way that they behave identically under"
normal" operation and diverge when" out of specification" events occur, which may be
indicative of attacks. This paper assess the effectiveness of different code variation
techniques to address different classes of vulnerabilities. In choosing a variant or …
Multi-variant program execution is an application of n-version programming, in which several slightly different instances of the same program are executed in lockstep on a multiprocessor. These variants are created in such a way that they behave identically under "normal" operation and diverge when "out of specification" events occur, which may be indicative of attacks. This paper assess the effectiveness of different code variation techniques to address different classes of vulnerabilities. In choosing a variant or combination of variants, security demands need to be balanced against runtime overhead. Our study indicates that a good combination of variations when running two variants is to choose one of instruction set randomization, system call number randomization, and register randomization, and use that together with library entry point randomization. Running more variants simultaneously makes it exponentially more difficult to take over the system.
ACM Digital Library