skip to main content
10.1145/2786536.2786544acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

Regression verification for Java using a secure information flow calculus

Published:07 July 2015Publication History

ABSTRACT

Regression verification and checking for illicit information flow in programs are probably the two most prominent instances of so-called relational program reasoning. Regression verification is concerned with proving that two programs behave either equally or differently in a formally specified manner; information-flow checking aims to establish that an attacker cannot distinguish executions of a program that vary in a part of the initial state designated as secret. While the theoretical connections between the two problems are well understood, there are also subtle but significant pragmatic differences. This paper reports the results of an experiment to adapt a state-of-the-art deductive information-flow verification system for Java to the problem of regression verification.

References

  1. Ammann, P., and Offutt, J. Introduction to Software Testing, first ed. Cambridge University Press, New York, NY, USA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Barthe, G., Crespo, J. M., and Kunz, C. Relational verification using product programs. In FM 2011 (2011), vol. 6664 of LNCS, Springer, pp. 200--214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Barthe, G., D'Argenio, P. R., and Rezk, T. Secure information flow by self-composition. CSFW '04, IEEE CS, pp. 100--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Beckert, B., Bruns, D., Klebanov, V., Scheben, C., Schmitt, P. H., and Ulbrich, M. Information flow in object-oriented software. In LOPSTR 2013, Revised Selected Papers (2014), vol. 8901 of LNCS, Springer, pp. 19--37.Google ScholarGoogle ScholarCross RefCross Ref
  5. Beckert, B., Hähnle, R., and Schmitt, P. H., Eds. Verification of Object-Oriented Software: The KeY Approach, vol. 4334 of LNCS. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bubel, R., Hähnle, R., and Weiss, B. Abstract interpretation of symbolic execution with explicit state updates. In FMCO (2008), pp. 247--277.Google ScholarGoogle Scholar
  7. Darvas, Á., Hähnle, R., and Sands, D. A theorem proving approach to analysis of secure information flow. In SPC 2005 (2005), vol. 3450 of LNCS, Springer, pp. 193--209. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Felsing, D., Grebing, S., Klebanov, V., Rümmer, P., and Ulbrich, M. Automating regression verification. In ASE 2014 (2014), ACM, pp. 349--360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Godlin, B., and Strichman, O. Regression verification: proving the equivalence of similar programs. JSTVR 23, 3 (2013), 241--258.Google ScholarGoogle Scholar
  10. Hammer, C., Krinke, J., and Snelting, G. Information flow control for Java based on path conditions in dependence graphs. In ISSSE (March 2006), IEEE, pp. 87--96.Google ScholarGoogle Scholar
  11. Harel, D., Kozen, D., and Tiuryn, J. Dynamic Logic. MIT Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hawblitzel, C., Kawaguchi, M., Lahiri, S. K., and Rebêlo, H. Towards modularly comparing programs using automated theorem provers. In CADE-24 (2013), vol. 7898 of LNCS, Springer, pp. 282--299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hoare, C. A. R. An axiomatic basis for computer programming. Communications of the ACM 12, 10 (Oct. 1969), 576--580. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Klebanov, V. Precise quantitative information flow analysis -- a symbolic approach. Theoretical Computer Science 538, 0 (2014), 124--139.Google ScholarGoogle ScholarCross RefCross Ref
  15. Leavens, G. T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Müller, P., Kiniry, J., Chalin, P., Zimmerman, D. M., and Dietl, W. JML Reference Manual, 2008.Google ScholarGoogle Scholar
  16. Myers, A. C. JFlow: Practical mostly-static information flow control. In POPL (1999), pp. 228--241. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Nanevski, A., Banerjee, A., and Garg, D. Verification of information flow and access control policies with dependent types. In SP (2011), pp. 165--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sabelfeld, A., and Myers, A. C. Language-based information-flow security. IEEE J. Sel. Areas Commun. 21, 1 (2003), 5--19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Scheben, C. Program-level Specification and Deductive Verification of Security Properties. PhD thesis, Karlsruhe Institute of Technology, 2014.Google ScholarGoogle Scholar
  20. Scheben, C., and Schmitt, P. H. Verification of information flow properties of Java programs without approximations. In FoVeOOS 2011, Revised Selected Papers (2011), vol. 7421 of LNCS, Springer, pp. 232--249. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Scheben, C., and Schmitt, P. H. Efficient self-composition for weakest precondition calculi. In FM 2014 (2014), vol. 8442 of LNCS, Springer, pp. 579--594.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Verdoolaege, S., Janssens, G., and Bruynooghe, M. Equivalence checking of static affine programs using widening to handle recurrences. In CAV 2009 (2009), vol. 5643 of LNCS, Springer, pp. 599--613. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Welsch, Y., and Poetzsch-Heffter, A. Verifying backwards compatibility of object-oriented libraries using Boogie. In FTfJP 14 (2012), FTfJP '12, ACM, pp. 35--41. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Regression verification for Java using a secure information flow calculus

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Other conferences
                FTfJP '15: Proceedings of the 17th Workshop on Formal Techniques for Java-like Programs
                July 2015
                49 pages
                ISBN:9781450336567
                DOI:10.1145/2786536

                Copyright © 2015 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 7 July 2015

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                FTfJP '15 Paper Acceptance Rate9of14submissions,64%Overall Acceptance Rate51of75submissions,68%

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader