|
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
|
Hiralal Agrawal , Richard A. DeMillo , Eugene H. Spafford, Dynamic slicing in the presence of unconstrained pointers, Proceedings of the symposium on Testing, analysis, and verification, p.60-73, October 08-10, 1991, Victoria, British Columbia, Canada
[doi> 10.1145/120807.120813]
|
| |
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
|
James C. Corbett , Matthew B. Dwyer , John Hatcliff , Shawn Laubach , Corina S. Păsăreanu , Robby , Hongjun Zheng, Bandera: extracting finite-state models from Java source code, Proceedings of the 22nd international conference on Software engineering, p.439-448, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/337180.337234]
|
 |
14
|
|
| |
15
|
|
 |
16
|
|
 |
17
|
|
 |
18
|
|
 |
19
|
John Field , G. Ramalingam , Frank Tip, Parametric program slicing, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.379-392, January 23-25, 1995, San Francisco, California, United States
[doi> 10.1145/199448.199534]
|
 |
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
|
Allen Goldberg , T. C. Wang , David Zimmerman, Applications of feasible path analysis to program testing, Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis, p.80-94, August 17-19, 1994, Seattle, Washington, United States
[doi> 10.1145/186258.186523]
|
 |
23
|
Arnaud Gotlieb , Bernard Botella , Michel Rueher, Automatic test data generation using constraint solving techniques, Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis, p.53-62, March 02-04, 1998, Clearwater Beach, Florida, United States
|
 |
24
|
Neelam Gupta , Aditya P. Mathur , Mary Lou Soffa, Automated test data generation using an iterative relaxation method, Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering, p.231-244, November 01-05, 1998, Lake Buena Vista, Florida, United States
|
 |
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
|
Thomas Reps , Susan Horwitz , Mooly Sagiv , Genevieve Rosay, Speeding up slicing, Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, p.11-20, December 06-09, 1994, New Orleans, Louisiana, United States
|
 |
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
|
|
|