ACM Home Page
Please provide us with feedback. Feedback
Effective memory protection using dynamic tainting
Full text PdfPdf (180 KB)
Source
Automated Software Engineering archive
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering table of contents
Atlanta, Georgia, USA
SESSION: Protection table of contents
Pages 284-292  
Year of Publication: 2007
ISBN:978-1-59593-882-4
Authors
James Clause  Georgia Institute of Technology, Atlanta, GA
Ioannis Doudalis  Georgia Institute of Technology, Atlanta, GA
Alessandro Orso  Georgia Institute of Technology, Atlanta, GA
Milos Prvulovic  Georgia Institute of Technology, Atlanta, GA
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 77,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1321631.1321673
What is a DOI?

ABSTRACT

Programs written in languages that provide direct access tomemory through pointers often contain memory-related faults, which may cause non-deterministic failures and even security vulnerabilities. In this paper, we present a new technique based on dynamic tainting for protecting programs from illegal memory accesses. When memory is allocated, at runtime, our technique taints both the memory and the corresponding pointer using the same taint mark. Taint marks are then suitably propagated while the program executes and are checked every time a memory address m is accessed through a pointer p; if the taint marks associated with mand p differ, the execution is stopped and the illegalaccess is reported. To allow for a low-overhead, hardware-assisted implementation of the approach, we make several key technical and engineering decisions in the definition of our technique. In particular, we use a configurable, low number of reusable taint marks instead of a unique mark for each area of memory allocated, which reduces the overhead of the approach without limiting its flexibility and ability to target most memory-related faults and attacks known to date. We also define the technique at the binary level, which lets us handle the (very) common case of applications that use third-party libraries whose source code is unavailable. To investigate the effectiveness and practicality of our approach, we implemented it for heap-allocated memory and performed a preliminary empirical study on a set of programs. Our results show that (1) our technique can identify a large class of memory-related faults, even when using only two unique taint marks, and (2)a hardware-assisted implementation of the technique could achieve overhead in the single digits


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
 
3
cplusplus.com. Malloc example, June 2007. http://www.cplusplus.com/reference/clibrary/cstdlib/malloc.html.
 
4
5
6
7
 
8
J. S. Fenton. Memoryless subsystems. The Computer Journal, 17(2):143--147, 1974.
9
 
10
R. Hastings and B. Joyce. Purify: Fast detection of memory leaks and access errors, 1992.
11
 
12
 
13
S. Lu, Z. Li, F. Qin, L. Tan, P. Zhou, and Y. Zhou. Bugbench: Benchmarks for evaluating bug detection tools. In n Proc. of the Work. on the Evaluation of Software Defect Detection Tools, 2005.
14
15
 
16
 
17
J. Renau, B. Fraguela, J. Tuck, W. Liu, M. Prvulovic, L. Ceze, S. Sarangi, P. Sack, K. Strauss, and P. Montesinos. SESC simulator, January 2005. http://sesc.sourceforge.net.
 
18
O. Ruwase and M. S. Lam. A practical dynamic buffer overflow detector. In Proceedings of the Network and Distributed System Security (NDSS) Symposium, pages 159--169, 2004.
 
19
 
20
Standard Performance Evaluation Corporation. SPEC Benchmarks. http://www.spec.org, 2000.
 
21
 
22
23
24


Collaborative Colleagues:
James Clause: colleagues
Ioannis Doudalis: colleagues
Alessandro Orso: colleagues
Milos Prvulovic: colleagues