loading...
Preventing Memory Error Exploits with WIT
May 18-May 21
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/SP.2008.302008 IEEE Symposium on Security and P ...
 This Article 
 
PDF
HTML
 
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
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.
Index Terms:
static analysis, instrumentation, attack detection, memory errors
Citation:
Periklis Akritidis, Cristian Cadar, Costin Raiciu, Manuel Costa, Miguel Castro, "Preventing Memory Error Exploits with WIT," sp, pp.263-277, 2008 IEEE Symposium on Security and Privacy (sp 2008), 2008
Usage of this product signifies your acceptance of the Terms of Use.


Suggestions