|
ABSTRACT
Memory bugs are a broad class of bugs that is becoming increasingly common with increasing software complexity, and many of these bugs are also security vulnerabilities. Existing software and hardware approaches for finding and identifying memory bugs have a number of drawbacks including considerable performance overheads, target only a specific type of bug, implementation cost, and inefficient use of computational resources. This article describes MemTracker, a new hardware support mechanism that can be configured to perform different kinds of memory access monitoring tasks. MemTracker associates each word of data in memory with a few bits of state, and uses a programmable state transition table to react to different events that can affect this state. The number of state bits per word, the events to which MemTracker reacts, and the transition table are all fully programmable. MemTracker's rich set of states, events, and transitions can be used to implement different monitoring and debugging checkers with minimal performance overheads, even when frequent state updates are needed. To evaluate MemTracker, we map three different checkers onto it, as well as a checker that combines all three. For the most demanding (combined) checker with 8 bits state per memory word, we observe performance overheads of only around 3%, on average, and 14.5% worst-case across different benchmark suites. Such low overheads allow continuous (always-on) use of MemTracker-enabled checkers, even in production runs.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Boletta, J. 2002. Security Focus Newsletter #172. http://citadelle.intrinsec.com/mailing/current/HTML/ml_securityfocus_news/0067.html.
|
 |
3
|
Shimin Chen , Michael Kozuch , Theodoros Strigkos , Babak Falsafi , Phillip B. Gibbons , Todd C. Mowry , Vijaya Ramachandran , Olatunji Ruwase , Michael Ryan , Evangelos Vlachos, Flexible Hardware Acceleration for Instruction-Grain Program Monitoring, Proceedings of the 35th International Symposium on Computer Architecture, p.377-388, June 21-25, 2008
|
 |
4
|
|
| |
5
|
Crispin Cowan , Calton Pu , Dave Maier , Heather Hintony , Jonathan Walpole , Peat Bakke , Steve Beattie , Aaron Grier , Perry Wagle , Qian Zhang, StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks, Proceedings of the 7th conference on USENIX Security Symposium, p.5-5, January 26-29, 1998, San Antonio, Texas
|
| |
6
|
|
 |
7
|
|
| |
8
|
Hinton, G., Sager, D., Upton, M., Boggs, D., Carmean, D., Kyker, A., and Roussel, P. 2001. The micro-architecture of the Pentium 4 Processor. Intel. Tech. J. First Quarter.
|
| |
9
|
IBM Corporation. 2005. IBM Rational Purify. http://www.ibm.com/software/awdtools/purify/.
|
| |
10
|
Jouppi, N. P. et al. 2006. Cacti 4.2. http://quid.hpl.hp.com:9081/cacti/
|
| |
11
|
|
| |
12
|
McDonald, R. G., Burger, D., and Keckler, S. 2005. The design and implementation of the TRIPS prototype chip. http://www.hotchips.org/archives/hc17.
|
 |
13
|
|
| |
14
|
Newsome, J. and Song, D. 2005. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proceedings of the 12th Annual Network and Distributed System Security Symposium (NDSS). Internet Society.
|
| |
15
|
|
| |
16
|
Feng Qin , Cheng Wang , Zhenmin Li , Ho-seop Kim , Yuanyuan Zhou , Youfeng Wu, LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks, Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, p.135-148, December 09-13, 2006
[doi> 10.1109/MICRO.2006.29]
|
| |
17
|
Renau, J. et al. 2006. SESC. http://sesc.sourceforge.net.
|
| |
18
|
Seward, J. 2004. Valgrind: An open-source memory debugger for 86-GNU/Linux. http://valgrind.kde.org/.
|
| |
19
|
R. Shetty , M. Kharbutli , Y. Solihin , M. Prvulovic, HeapMon: a helper-thread approach to programmable, automatic, and low-overhead memory bug detection, IBM Journal of Research and Development, v.50 n.2/3, p.261-275, March 2006
[doi> 10.1147/rd.502.0261]
|
| |
20
|
|
| |
21
|
SPEC. 2006. Standard performance evaluation corporation benchmarks. http://www.spec.org.
|
 |
22
|
G. Edward Suh , Jae W. Lee , David Zhang , Srinivas Devadas, Secure program execution via dynamic information flow tracking, Proceedings of the 11th international conference on Architectural support for programming languages and operating systems, October 07-13, 2004, Boston, MA, USA
|
| |
23
|
Symantec. 2002. Microsoft IIS HTR chunked encoding heap overflow allows arbitrary code. http://securityresponse.symantec.com/avcenter/security/Content/2033.html.
|
| |
24
|
US-CERT. 2001. FedCIRC Advisory FA-2001-19 “code red” worm exploiting buffer overflow in IIS indexing service DLL. http://www.us-cert.gov/federal/archive/advisories/FA-2001-19.html.
|
| |
25
|
US-CERT. 2004. Buffer overflow in Microsoft Internet Explorer. http://www.us-cert.gov/cas/techalerts/TA04315A.html.
|
| |
26
|
Valgrind Developers. 2005. The Valgrind Quick Start Guide. http://valgrind.org/docs/manual/quickstart.html.
|
| |
27
|
Venkataramani, G., Doudalis, I., Solihin, Y., and Prvulovic, M. 2008. Flexitaint: A programmable accelerator for dynamic taint propagation. In Proceedings of the IEEE 14th International Symposium on High-performance Computer Architecture (HPCA'08). IEEE Computer Society, 173--184.
|
| |
28
|
|
 |
29
|
|
 |
30
|
Steven Cameron Woo , Moriyoshi Ohara , Evan Torrie , Jaswinder Pal Singh , Anoop Gupta, The SPLASH-2 programs: characterization and methodological considerations, Proceedings of the 22nd annual international symposium on Computer architecture, p.24-36, June 22-24, 1995, S. Margherita Ligure, Italy
|
| |
31
|
Pin Zhou , Wei Liu , Long Fei , Shan Lu , Feng Qin , Yuanyuan Zhou , Samuel Midkiff , Josep Torrellas, AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants, Proceedings of the 37th annual IEEE/ACM International Symposium on Microarchitecture, p.269-280, December 04-08, 2004, Portland, Oregon
[doi> 10.1109/MICRO.2004.3]
|
 |
32
|
Pin Zhou , Feng Qin , Wei Liu , Yuanyuan Zhou , Josep Torrellas, iWatcher: Efficient Architectural Support for Software Debugging, Proceedings of the 31st annual international symposium on Computer architecture, p.224, June 19-23, 2004, München, Germany
|
 |
33
|
|
|