ACM Home Page
Please provide us with feedback. Feedback
MECA: an extensible, expressive system and language for statically checking security properties
Full text PdfPdf (344 KB)
Source Conference on Computer and Communications Security archive
Proceedings of the 10th ACM conference on Computer and communications security table of contents
Washington D.C., USA
SESSION: Analysis and verification table of contents
Pages: 321 - 334  
Year of Publication: 2003
ISBN:1-58113-738-9
Authors
Junfeng Yang  Stanford University, Stanford, CA
Ted Kremenek  Stanford University, Stanford, CA
Yichen Xie  Stanford University, Stanford, CA
Dawson Engler  Stanford University, Stanford, CA
Sponsor
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 52,   Citation Count: 9
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/948109.948153
What is a DOI?

ABSTRACT

This paper describes a system and annotation language, MECA, for checking security rules. MECA is expressive and designed for checking real systems. It provides a variety of practical constructs to effectively annotate large bodies of code. For example, it allows programmers to write programmatic annotators that automatically annotate large bodies of source code. As another example, it lets programmers use general predicates to determine if an annotation is applied; we have used this ability to easily handle kernel backdoors and other false-positive inducing constructs. Once code is annotated, MECA propagates annotations aggressively, allowing a single manual annotation to derive many additional annotations (e.g., over one hundred in our experiments) freeing programmers from the heavy manual effort required by most past systems.MECA is effective. Our most thorough case study was a user-pointer checker that used 75 annotations to check thousands of declarations in millions of lines of code in the Linux system. It found over forty errors, many of which were serious, while only having eight false positives.


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
M. Bishop and M. Dilger. Checking for race conditions in file accesses. Computing systems, pages 131--152, Spring 1996.
3
 
4
5
 
6
7
8
 
9
10
 
11
12
 
13
D. Freedman, R. Pisani, and R. Purves. Statistics. W.W. Norton, third edition edition, 1998.
 
14
T. Kremenek and D. Engler. Z-ranking: Using statistical analysis to counter the impact of static analysis approximations. In 10th Annual International Static Analysis Symposium, 2003.
 
15
D. Larochelle and D. Evans. Statically detecting likely buffer overflow vulnerabilities. In USENIX Security Symposium, Washington, D. C., Aug. 2001.
 
16
K. R. M. Leino, G. Nelson, and J. Saxe. ESC/Java user's manual. Technical note 2000-002, Compaq Systems Research Center, Oct. 2001.
17
 
18
J. Pincus. Personal communication. Developing a buffer overflow checker in PREfast (a version of of PREfix)., Oct. 2001.
 
19
S. M. Ross. Probability Models. Academic Press, London, UK, sixth edition, 1997.
 
20
 
21
 
22
D. Wagner, J. Foster, E. Brewer, and A. Aiken. A first step towards automated detection of buffer overrun vulnerabilities. In The 2000 Network and Distributed Systems Security Conference. San Diego, CA, Feb. 2000.
 
23

CITED BY  9

Collaborative Colleagues:
Junfeng Yang: colleagues
Ted Kremenek: colleagues
Yichen Xie: colleagues
Dawson Engler: colleagues