DocumentCode
1799882
Title
Continuous, Low Overhead, Run-Time Validation of Program Executions
Author
Aktas, Erdem ; Afram, Furat ; Ghose, Kanad
Author_Institution
Comput. Sci. Dept., State Univ. of New York at Binghamton, Binghamton, NY, USA
fYear
2014
fDate
13-17 Dec. 2014
Firstpage
229
Lastpage
241
Abstract
The construction of trustworthy systems demands that the execution of every piece of code is validated as genuine, that is, the executed codes do exactly what they are supposed to do. Pre-execution validations of code integrity fail to detect run time compromises like code injection, return and jump-oriented programming, and illegal dynamic linking of program modules. We propose and evaluate a generalized mechanism called REV (for Run-time Execution Validator) that can be easily integrated into a contemporary out-of-order processor to validate, as the program executes, the control flow path and instructions executed along the control flow path. To prevent memory from being tainted by compromised code, REV also prevents updates to the memory from a basic block until its execution has been authenticated. Although control flow signature based authentication of an execution has been suggested before for software testing and for restricted cases of embedded systems, their extensions to out-of-order cores is a non-incremental effort from a micro architectural standpoint. Unlike REV, the existing solutions do not scale with binary sizes, require binaries to be altered or require new ISA support and also fail to contain errors and, in general, impose a heavy performance penalty. We show, using a detailed cycle-accurate micro architectural simulator for an out-of-order pipeline implementing the X86 ISA that the performance overhead of REV is limited to 1.87% on the average across the SPEC 2006 benchmarks.
Keywords
benchmark testing; program compilers; program testing; program verification; trusted computing; ISA support; REV; SPEC 2006 benchmarks; X86 ISA; code injection; contemporary out-of-order processor; control flow path; control flow signature based authentication; embedded systems; illegal dynamic program module linking; jump-oriented programming; microarchitectural standpoint; out-of-order cores; performance overhead; preexecution code integrity validations; program executions; return-oriented programming; run-time execution validator; run-time validation; software testing; trustworthy systems; Authentication; Cryptography; Hardware; Kernel; Out of order; Pipelines; Computer Security; Control-Flow Integrity; Control-Flow Validation; Hardware Security; Secure Execution; Trusted Computing;
fLanguage
English
Publisher
ieee
Conference_Titel
Microarchitecture (MICRO), 2014 47th Annual IEEE/ACM International Symposium on
Conference_Location
Cambridge
ISSN
1072-4451
Type
conf
DOI
10.1109/MICRO.2014.18
Filename
7011391
Link To Document