ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Efficient path conditions in dependence graphs for software safety analysis
Full text PdfPdf (602 KB)
Source ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 15 ,  Issue 4  (October 2006) table of contents
Pages: 410 - 457  
Year of Publication: 2006
ISSN:1049-331X
Authors
Gregor Snelting  Universität Passau, Passau, Germany
Torsten Robschink  Universität Passau, Passau, Germany
Jens Krinke  Universität Passau, Passau, Germany
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 157,   Citation Count: 12
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/1178625.1178628
What is a DOI?

ABSTRACT

A new method for software safety analysis is presented which uses program slicing and constraint solving to construct and analyze path conditions, conditions defined on a program's input variables which must hold for information flow between two points in a program. Path conditions are constructed from subgraphs of a program's dependence graph, specifically, slices and chops. The article describes how constraint solvers can be used to determine if a path condition is satisfiable and, if so, to construct a witness for a safety violation, such as an information flow from a program point at one security level to another program point at a different security level. Such a witness can prove useful in legal matters.The article reviews previous research on path conditions in program dependence graphs; presents new extensions of path conditions for arrays, pointers, abstract data types, and multithreaded programs; presents new decomposition formulae for path conditions; demonstrates how interval analysis and BDDs (binary decision diagrams) can be used to reduce the scalability problem for path conditions; and presents case studies illustrating the use of path conditions in safety analysis. Applying interval analysis and BDDs is shown to overcome the combinatorial explosion that can occur in constructing path conditions. Case studies and empirical data demonstrate the usefulness of path conditions for analyzing practical programs, in particular, how illegal influences on safety-critical programs can be discovered and analyzed.


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
 
4
Bell, D. and La Padula, L. 1973. Secure computer systems: Mathematical foundations. MITRE Tech. rep. 2547.
 
5
 
6
Bent, L., Atkinson, D. C., and Griswold, W. G. 2000. A comparative study of two whole program slicers for C. Tech. rep. CS2000-0643, Department of Computer Science and Engineering. University of California, San Diego, CA.
7
 
8
 
9
Burke, M., Carini, P., Choi, J.-D., and Hind, M. 1995. Flow-insensitive interprocedural alias analysis in the presence of pointers. Lecture Notes in Computer Science, vol. 892, D. Gelertner, A. Nicolau, and D. Padua, Eds. Springer-Verlag, Berlin, Germany.
 
10
 
11
Canfora, G., Cimitile, A., a. De Lucia, and Lucca, G. 1998. Conditioned program slicing. Inform. Softw. Techn. 40, (Special Issue on Program Slicing). 595--607.
 
12
Common Criteria Project Sponsoring Organizations. 2004. Common criteria for information technology security evaluation. CCIMB-2004-01-001, Version 2.2, Revision 2561 (Jan.).
13
14
 
15
16
17
18
19
20
 
21
Goguen, J. and Meseguer, J. 1984. Interference control and unwinding. In Proceedings of the Symposium on Security and Privacy. IEEE, 75--86.
22
23
24
25
26
27
 
28
 
29
Krinke, J. 2003a. Advanced slicing of sequential and concurrent programs. Ph.D. thesis, Universität Passau.
30
 
31
 
32
Krinke, J. and Snelting, G. 1998. Validation of measurement software as an application of slicing and constraint solving. Infor. Softw. Techn. (Special issue on Program Slicing). 661--675.
33
 
34
 
35
Lind-Nielsen, J. 2001. BuDDy---A binary decision diagram package. Tech. rep., University of Copenhagen. http://www.itu.dk/reserach/buddy.
 
36
Mantel, H., Stephan, W., Ullmann, M., and Vogt, R. 2000. Leitfaden für die Erstellung und Prüfung formaler Sicherheitsmodelle im Rahmen von ITSEC und Common Criteria. Tech. rep., Bundesamt für Sicherheit in der Informationstechnik und Deutsches Forschungszentrum für Künstliche Intelligenz. Version 0.8.
 
37
Marriott, K. and Stuckey, P. 1998. Programming with Constraints. MIT Press, Cambridge, MA.
 
38
Martin, F. 1998. PAG---An efficient program analyzer generator. Int. J. Softw. Tools Techn. Transfer 2, 1, 46--67.
39
40
41
42
43
 
44
Quine, W. 1955. A way to simplify truth functions. Amer. Mathemat. Soc. 62, 627--631.
45
 
46
Reps, T. 1998. Program analysis via graph reachability. Inform. Softw. Techn. (Special issue on program slicing). 701--726.
47
48
49
 
50
Robschink, T. 2005. Pfadbedingungen in Abhängigkeitsgraphen und ihre Anwendung in der Softwaresicherheitstechnik. Ph.D. thesis, Universität Passau.
51
 
52
 
53
Sabelfeld, A. and Myers, A. 2003. Language-based information-flow security. IEEE J. Select. Areas Comm 21, 1 (Jan.).
54
 
55
56
 
57
 
58
Tarjan, R. E. 1974. Testing flow graph reducibility. J. Comput. Syst. Science 9, 355--365.
 
59
Teitelbaum, T. 2001. Code surfer user guide and reference. Tech. rep., Gramma Tech Product Documentation. http://www.grammatech.com/csurf-doc/manual.html.
 
60
Tip, F. 1995. A survey of program slicing techniques. J. Program. Lang. 3, 3 (Sept.) 121--189.
 
61
Weiser, M. 1984. Program slicing. IEEE Trans. Softw. Eng. 10, 4 (July), 352--357. (Republished in Berzins 1995).
 
62
63
 
64

CITED BY  12

Collaborative Colleagues:
Gregor Snelting: colleagues
Torsten Robschink: colleagues
Jens Krinke: colleagues