Title
Preventing Memory Error Exploits with WIT
Abstract
Attacks often exploit memory errors to gain control over the execution of vulnerable programs. These attacks remain a serious problem despite previous research on techniques to prevent them. We present Write Integrity Testing (WIT), a new technique that provides practical protection from these attacks. WIT uses points-to analysis at compile time to compute the control-flow graph and the set of objects that can be written by each instruction in the program. Then it generates code instrumented to prevent instructions from modifying objects that are not in the set computed by the static analysis, and to ensure that indirect control transfers are allowed by the control-flow graph. To improve coverage where the analysis is not precise enough, WIT inserts small guards between the original program objects. We describe an efficient implementation with optimizations to reduce space and time overhead. This implementation can be used in practice because it compiles C and C++ programs without modifications, it has high coverage with no false positives, and it has low overhead. WIT's average runtime overhead is only 7% across a set of CPU intensive benchmarks and it is negligible when IO is the bottleneck.
Year
DOI
Venue
2008
10.1109/SP.2008.30
IEEE Symposium on Security and Privacy
Keywords
Field
DocType
indirect control transfer,average runtime overhead,control-flow graph,high coverage,efficient implementation,wit insert,points-to analysis,time overhead,low overhead,preventing memory error exploits,static analysis,false positive,color,instrumentation,testing,error correction,privacy,gain control,control flow graph,memory errors,security
Bottleneck,Control flow graph,Memory corruption,Computer science,Computer security,Compile time,Static analysis,Error detection and correction,Exploit,Memory errors
Conference
ISSN
Citations 
PageRank 
1081-6011
128
5.06
References 
Authors
31
5
Search Limit
100128
Name
Order
Citations
PageRank
Periklis Akritidis145122.09
Cristian Cadar22812131.38
Costin Raiciu32102112.68
Manuel Costa4158988.62
Miguel Castro55088328.69