skip to main content
10.1145/1814217.1814220acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Permissive dynamic information flow analysis

Published:10 June 2010Publication History

ABSTRACT

A key challenge in dynamic information flow analysis is handling implicit flows, where code conditional on a private variable updates a public variable x. The naive approach of upgrading x to private results in x being partially leaked, where its value contains private data but its label might remain public on an alternative execution (where the conditional update was not performed). Prior work proposed the no-sensitive-upgrade check, which handles implicit flows by prohibiting partially leaked data, but attempts to update a public variable from a private context causes execution to get stuck.

To overcome this limitation, we develop a sound yet flexible permissive-upgrade strategy. To prevent information leaks, partially leaked data is permitted but carefully tracked to ensure that it is never totally leaked. This permissive-upgrade strategy is more flexible than the prior approaches such as the no-sensitive-upgrade check.

Under the permissive-upgrade strategy, partially leaked data must be marked as private before being used in a conditional test, thereby ensuring that it is private for both the current execution as well as alternate execution paths. This paper also presents a dynamic analysis technique for inferring these privatization operations and inserting them into the program source code. The combination of these techniques allows more programs to run to completion, while still guaranteeing termination-insensitive non-interference in a purely dynamic manner.

References

  1. A. Askarov, S. Hunt, A. Sabelfeld, and D. Sands. Termination-insensitive noninterference leaks more than just a bit. In ESORICS '08: Proceedings of the 13th European Symposium on Research in Computer Security, pages 333--348, Berlin, Heidelberg, 2008. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Askarov and A. Sabelfeld. Catch me if you can: permissive yet secure error handling. In PLAS '09: Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security, pages 45--57, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Askarov and A. Sabelfeld. Tight enforcement of information-release policies for dynamic languages. In IEEE Computer Security Foundations Symposium, pages 43--59, Washington, DC, USA, 2009. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. H. Austin and C. Flanagan. Efficient purely-dynamic information flow analysis. In PLAS '09: Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security, pages 113--124, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. T. H. Austin and C. Flanagan. Permissive dynamic information flow analysis. Technical Report UCSC-SOE-09-34, The University of California at Santa Cruz, 2009.Google ScholarGoogle Scholar
  6. A. Banerjee and D. A. Naumann. Secure information flow and pointer confinement in a java-like language. In IEEE Computer Security Foundations Workshop, pages 253--267. IEEE Computer Society, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Chandra and M. Franz. Fine-grained information flow analysis and enforcement in a java virtual machine. In ACSAC, pages 463--475. IEEE Computer Society, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  8. A. Chaudhuri, P. Naldurg, and S. K. Rajamani. A type system for data-flow integrity on windows vista. In Ú. Erlingsson and M. Pistoia, editors, PLAS, pages 89--100. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Chong and A. C. Myers. Security policies for downgrading. In CCS '04: Proceedings of the 11th ACM conference on Computer and communications security, pages 198--209, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Chudnov and D. A. Naumann. Information flow monitor inlining. In IEEE Computer Security Foundations Symposium. IEEE Computer Society, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Chugh, J. A. Meister, R. Jhala, and S. Lerner. Staged information flow for javascript. In PLDI '09: Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, pages 50--62, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. E. Denning. A lattice model of secure information flow. Communications of the ACM, 19(5):236--243, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. E. Denning and P. J. Denning. Certification of programs for secure information flow. Communications of the ACM, 20(7):504--513, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. B. Eich. Mozilla FlowSafe: Information flow security for the browser. https://wiki.mozilla.org/FlowSafe, accessed October 2009.Google ScholarGoogle Scholar
  15. Developer's wiki: FBJS. http://wiki.developers.facebook.com/index.php/FBJS, accessed January 2010.Google ScholarGoogle Scholar
  16. C. Fournet and T. Rezk. Cryptographically sound implementations for typed information-flow security. In Symposium on Principles of Programming Languages, pages 323--335, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Gal, B. Eich, M. Shaver, D. Anderson, B. Kaplan, G. Hoare, D. Mandelin, B. Zbarsky, J. Orendorff, M. Bebenita, M. Chang, M. Franz, E. Smith, R. Reitmaier, and M. Haghighat. Trace-based just-in-time type specialization for dynamic languages. In Conference on Programming Language Design and Implementation, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Caja. http://code.google.com/p/google-caja/, accessed December 2009.Google ScholarGoogle Scholar
  19. C. Hammer and G. Snelting. Flow-sensitive, context-sensitive, and object-sensitive information flow control based on program dependence graphs. International Journal of Information Security, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. N. Heintze and J. G. Riecke. The slam calculus: Programming with secrecy and integrity. In Symposium on Principles of Programming Languages, pages 365--377, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Hunt and D. Sands. On flow-sensitive security types. In J. G. Morrisett and S. L. P. Jones, editors, POPL, pages 79--90. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Jif homepage. http://www.cs.cornell.edu/jif/, accessed October 2009.Google ScholarGoogle Scholar
  23. D. King, B. Hicks, M. Hicks, and T. Jaeger. Implicit flows: Can't live with 'em, can't live without 'em. In International Conference on Information Systems Security, pages 56--70, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. G. Le Guernic, A. Banerjee, T. P. Jensen, and D. A. Schmidt. Automata-based confidentiality monitoring. In M. Okada and I. Satoh, editors, ASIAN, volume 4435 of Lecture Notes in Computer Science, pages 75--89. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. V. B. Livshits, A. V. Nori, S. K. Rajamani, and A. Banerjee. Merlin: specification inference for explicit information flow problems. In M. Hind and A. Diwan, editors, PLDI, pages 75--86. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Magazinius, A. Askarov, and A. Sabelfeld. A lattice-based approach to mashup security. In Proceedings of the ACM Symposium on Information Computer and Communications Security, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Internet explorer security zones. http://technet.microsoft.com/en-us/library/dd361896.aspx, accessed December 2009.Google ScholarGoogle Scholar
  28. JavaScript security in Mozilla. http://www.mozilla.org/projects/security/components/jssec.html, accessed January 2009.Google ScholarGoogle Scholar
  29. Same origin policy for JavaScript. https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript, accessed January 2010.Google ScholarGoogle Scholar
  30. A. C. Myers. Jflow: Practical mostly-static information flow control. In Symposium on Principles of Programming Languages, pages 228--241, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. F. Pottier and V. Simonet. Information flow inference for ML. Transactions on Programming Languages and Systems, 25(1):117--158, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. A. Russo and A. Sabelfeld. Securing timeout instructions in web applications. In IEEE Computer Security Foundations Symposium, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. Russo and A. Sabelfeld. Dynamic vs. static flow-sensitive security analysis. In IEEE Computer Security Foundations Symposium. IEEE Computer Society, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Russo, A. Sabelfeld, and A. Chudnov. Tracking information flow in dynamic tree structures. In M. Backes and P. Ning, editors, ESORICS, volume 5789 of Lecture Notes in Computer Science, pages 86--103. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. Sabelfeld and A. C. Myers. Language-based information-flow security. Selected Areas in Communications, IEEE Journal on, 21(1):5--19, Jan 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. A. Sabelfeld and A. Russo. From dynamic to static and back: Riding the roller coaster of information-flow control research. In Perspectives of System Informatics, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. A. Shinnar, M. Pistoia, and A. Banerjee. A language for information flow: dynamic tracking in multiple interdependent dimensions. In S. Chong and D. A. Naumann, editors, PLAS, pages 125--131. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. P. Shroff, S. F. Smith, and M. Thober. Dynamic dependency monitoring to secure information flow. In CSF, pages 203--217. IEEE Computer Society, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. V. N. Venkatakrishnan, W. Xu, D. C. DuVarney, and R. Sekar. Provably correct runtime enforcement of non-interference properties. In Information and Communications Security, pages 332--351, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. P. Vogt, F. Nentwich, N. Jovanovic, E. Kirda, C. Krügel, and G. Vigna. Cross site scripting prevention with dynamic data tainting and static analysis. In NDSS. The Internet Society, 2007.Google ScholarGoogle Scholar
  41. D. Volpano, C. Irvine, and G. Smith. A sound type system for secure flow analysis. Journal of Computer Security, 4(2--3):167--187, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. S. A. Zdancewic. Programming languages for information security. PhD thesis, Cornell University, Ithaca, NY, USA, 2002. Chair-Myers, Andrew. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Permissive dynamic information flow analysis

        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 Conferences
          PLAS '10: Proceedings of the 5th ACM SIGPLAN Workshop on Programming Languages and Analysis for Security
          June 2010
          77 pages
          ISBN:9781605588278
          DOI:10.1145/1814217

          Copyright © 2010 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: 10 June 2010

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate43of77submissions,56%

          Upcoming Conference

          PLDI '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader