Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1111037.1111046acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

A logic for information flow in object-oriented programs

Published: 11 January 2006 Publication History

Abstract

This paper specifies, via a Hoare-like logic, an interprocedural and flow sensitive (but termination insensitive) information flow analysis for object-oriented programs. Pointer aliasing is ubiquitous in such programs, and can potentially leak confidential information. Thus the logic employs independence assertions to describe the noninterference property that formalizes confidentiality, and employs region assertions to describe possible aliasing. Programmer assertions, in the style of JML, are also allowed, thereby permitting a more fine-grained specification of information flow policy.The logic supports local reasoning about state in the style of separation logic. Small specifications are used; they mention only the variables and addresses relevant to a command. Specifications are combined using a frame rule. An algorithm for the computation of postconditions is described: under certain assumptions, there exists a strongest postcondition which the algorithm computes.

References

[1]
T. Amtoft, S. Bandhakavi, and A. Banerjee. A logic for information flow analysis of pointer programs. Technical Report CIS TR 2005-1, Kansas State University, July 2005.]]
[2]
T. Amtoft and A. Banerjee. Information flow analysis in logical form. In SAS, LNCS 3148, pages 100--115. Springer-Verlag, 2004.]]
[3]
T. Amtoft and A. Banerjee. A logic for information flow analysis with an application to forward slicing of simple imperative programs. Science of Computer Programming, special issue of SAS 2004. To appear.]]
[4]
A. Askarov. Secure Implementation of cryptographic protocols: A case study of mutual distrust. Master's dissertation, Chalmers University of Technology, April 2005.]]
[5]
A. Askarov and A. Sabelfeld. Security-typed languages for implementation of cryptographic protocols: A case study. In ESORICS, LNCS 3679, pages 197--221. Springer-Verlag, 2005.]]
[6]
A. Banerjee and D. A. Naumann. Stack-based access control and secure information flow. JFP 15(2):131--177, Mar. 2005.]]
[7]
M. Barnett, D. A. Naumann, W. Schulte, and Q. Sun. 99.44% pure: Useful abstractions in specifications. In ECOOP workshop on Formal Techniques for Java-like Programs (FTfJP), 2004.]]
[8]
D. Bell and L. LaPadula. Secure computer systems: Mathematical foundations. Technical Report MTR-2547, MITRE Corp., 1973.]]
[9]
M. Berndl, O. Lhoták, F. Qian, L. J. Hendren, and N. Umanee. Points-to analysis using BDDs. In PLDI, pages 103--114, 2003.]]
[10]
M. Bishop. Computer Security: Art and Science. Addison-Wesley, 2003.]]
[11]
A. Borgida, J. Mylopoulos, and R. Reiter. On the frame problem in procedure specifications. IEEE Transactions on Software Engineering 21(10):785--798, 1995.]]
[12]
L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll. An overview of JML tools and applications. Electr. Notes Theor. Comput. Sci., 80, 2003.]]
[13]
D. R. Chase, M. N. Wegman, and F. K. Zadeck. Analysis of pointers and structures (with retrospective). In Best of PLDI, pages 343--359, 1990.]]
[14]
E. S. Cohen. Information transmission in sequential programs. In Foundations of Secure Computation, pages 297--335. Academic Press, 1978.]]
[15]
D. Denning and P. Denning. Certification of programs for secure information flow. CACM 20(7):504--513, 1977.]]
[16]
C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for Java. In PLDI, pages 234--245, 2002.]]
[17]
J. Goguen and J. Meseguer. Security policies and security models. In Proc. IEEE Symp. on Security and Privacy, pages 11--20, 1982.]]
[18]
S. Hunt and D. Sands. On flow-sensitive security types. In POPL 2006. To appear.]]
[19]
A. C. Myers. JFlow: Practical mostly-static information flow control. In POPL, pages 228--241, 1999.]]
[20]
F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer-Verlag, 1999.]]
[21]
P. O'Hearn, J. Reynolds, and H. Yang. Local reasoning about programs that alter data structures. In CSL, LNCS 2142, pages 1--19. Springer-Verlag, 2001.]]
[22]
F. Pottier and V. Simonet. Information flow inference for ML. TOPLAS 25(1):117--158, Jan. 2003.]]
[23]
J. C. Reynolds. Separation logic: a logic for shared mutable data structures. In LICS, pages 55--74. 2002.]]
[24]
A. Sabelfeld and A. C. Myers. Language-based information-flow security. IEEE J. Selected Areas in Communications, 21(1):5--19, Jan. 2003.]]
[25]
Q. Sun, A. Banerjee, and D. A. Naumann. Modular and constraint-based information flow inference for an object-oriented language. In SAS, LNCS 3148, pages 84--99. Springer-Verlag, 2004.]]
[26]
D. Volpano, G. Smith, and C. Irvine. A sound type system for secure flow analysis. Journal of Computer Security, 4(2/3):167--188, 1996.]]

Cited By

View all
  • (2023)A Relational Program Logic with Data Abstraction and Dynamic FramingACM Transactions on Programming Languages and Systems10.1145/355149744:4(1-136)Online publication date: 10-Jan-2023
  • (2023)Symbolic Abstract Heaps for Polymorphic Information-Flow Guard InferenceVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_4(66-90)Online publication date: 16-Jan-2023
  • (2021)Co-Inflow: Coarse-grained Information Flow Control for Java-like Languages2021 IEEE Symposium on Security and Privacy (SP)10.1109/SP40001.2021.00002(18-35)Online publication date: May-2021
  • Show More Cited By

Index Terms

  1. A logic for information flow in object-oriented programs

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
      January 2006
      432 pages
      ISBN:1595930272
      DOI:10.1145/1111037
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 41, Issue 1
        Proceedings of the 2006 POPL Conference
        January 2006
        421 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1111320
        Issue’s Table of Contents
      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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 11 January 2006

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. aliasing
      2. confidentiality
      3. information flow

      Qualifiers

      • Article

      Conference

      POPL06

      Acceptance Rates

      Overall Acceptance Rate 824 of 4,130 submissions, 20%

      Upcoming Conference

      POPL '25

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)13
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 28 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)A Relational Program Logic with Data Abstraction and Dynamic FramingACM Transactions on Programming Languages and Systems10.1145/355149744:4(1-136)Online publication date: 10-Jan-2023
      • (2023)Symbolic Abstract Heaps for Polymorphic Information-Flow Guard InferenceVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_4(66-90)Online publication date: 16-Jan-2023
      • (2021)Co-Inflow: Coarse-grained Information Flow Control for Java-like Languages2021 IEEE Symposium on Security and Privacy (SP)10.1109/SP40001.2021.00002(18-35)Online publication date: May-2021
      • (2021)A Field-Sensitive Security Monitor for Object-Oriented ProgramsComputers and Security10.1016/j.cose.2021.102349108:COnline publication date: 1-Sep-2021
      • (2020)VERONICA: Expressive and Precise Concurrent Information Flow Security2020 IEEE 33rd Computer Security Foundations Symposium (CSF)10.1109/CSF49147.2020.00014(79-94)Online publication date: Jul-2020
      • (2020)Verification supported refactoring of embedded sqlSoftware Quality Journal10.1007/s11219-020-09517-yOnline publication date: 18-Jun-2020
      • (2019)Verifying Relational Properties using Trace Logic2019 Formal Methods in Computer Aided Design (FMCAD)10.23919/FMCAD.2019.8894277(170-178)Online publication date: Oct-2019
      • (2018)Cross-Language Interoperability in a Multi-Language RuntimeACM Transactions on Programming Languages and Systems10.1145/320189840:2(1-43)Online publication date: 28-May-2018
      • (2018)Program Synthesis for Program AnalysisACM Transactions on Programming Languages and Systems10.1145/317480240:2(1-45)Online publication date: 28-May-2018
      • (2018)A Logical Analysis of Framing for Specifications with Pure Method CallsACM Transactions on Programming Languages and Systems10.1145/317480140:2(1-90)Online publication date: 28-May-2018
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media