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

Faceted execution of policy-agnostic programs

Published: 20 June 2013 Publication History

Abstract

It is important for applications to protect sensitive data. Even for simple confidentiality and integrity policies, it is often difficult for programmers to reason about how the policies should interact and how to enforce policies across the program. A promising approach is policy-agnostic programming, a model that allows the programmer to implement policies separately from core functionality. Yang et al. describe Jeeves, a programming language that supports information flow policies describing how to reveal sensitive values in different output channels. Jeeves uses symbolic evaluation and constraint-solving to produce outputs adhering to the policies. This strategy provides strong confidentiality guarantees but limits expressiveness and implementation feasibility.
We extend Jeeves with faceted values, which exploit the structure of sensitive values to yield both greater expressiveness and to facilitate reasoning about runtime behavior. We present a faceted semantics for Jeeves and describe a model for propagating multiple views of sensitive information through a program. We provide a proof of termination-insensitive non-interference and describe how the semantics facilitate reasoning about program behavior.

References

[1]
Scalatra: A tiny Sinatra-like web framework for Scala. http://www.scalatra.org/.
[2]
G. Antoniou. A tutorial on default logics. ACM Computing Surveys (CSUR), 31(4), 1999.
[3]
A. Askarov and A. Myers. A semantic framework for declassification and endorsement. In European Symposium on Programming (ESOP), 2010.
[4]
A. Askarov and A. Sabelfeld. Tight enforcement of informationrelease policies for dynamic languages. In IEEE Computer Security Foundations Symposium. IEEE Computer Society, 2009.
[5]
A. Askarov, S. Hunt, A. Sabelfeld, and D. Sands. Terminationinsensitive noninterference leaks more than just a bit. In ESORICS?08. Springer-Verlag, 2008.
[6]
T. H. Austin and C. Flanagan. Multiple facets for dynamic information flow. In Symposium on Principles of Programming Languages (POPL), 2012.
[7]
C. Barrett, A. Stump, and C. Tinelli. The SMT-LIB standard: Version 2.0. In SMT Workshop, 2010.
[8]
A. Birgisson, A. Russo, and A. Sabelfeld. Capabilities for information flow. In Workshop on Programming Languages and Analysis for Security (PLAS), 2011.
[9]
N. Broberg and D. Sands. Flow locks: Towards a core calculus for dynamic flow policies. In European Symposium on Programming (ESOP), 2006.
[10]
R. Capizzi, A. Longo, V. Venkatakrishnan, and A. Sistla. Preventing information leaks through shadow executions. In Annual Computer Security Applications Conference (ACSAC), dec 2008.
[11]
M. Carbin, D. Kim, S. Misailovic, and M. Rinard. Proving acceptability properties of relaxed nondeterministic approximate programs. In Conference on Programming Language Design and Implementation (PLDI), 2012.
[12]
J. Chen, R. Chugh, and N. Swamy. Type-preserving compilation of end-to-end verification of security enforcement. In Conference on Programming Language Design and Implementation (PLDI), 2010.
[13]
A. Chlipala. Static checking of dynamically-varying security policies in database-backed applications. In USENIX Conference on Operating Systems Design and Implementation (OSDI), 2012.
[14]
S. Chong and A. C. Myers. Security policies for downgrading. In Conference on Computer and Communications Security (CCS), 2004.
[15]
D. E. Denning. A lattice model of secure information flow. Commun. ACM, 19(5), 1976.
[16]
D. E. Denning and P. J. Denning. Certification of programs for secure information flow. Commun. ACM, 20(7):504--513, 1977.
[17]
D. Devriese and F. Piessens. Noninterference through secure multiexecution. IEEE Symposium on Security and Privacy, 2010.
[18]
J. Fischer, R. Majumdar, and S. Esmaeilsabzali. Engage: a deployment management system. In Conference on Programming Language Design and Implementation (PLDI), 2012.
[19]
N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. Walker. Frenetic: a network programming language. In International Conference on Functional Programming (ICFP), 2011.
[20]
G. L. Guernic,A. Banerjee, T. P. Jensen, and D. A. Schmidt. Automatabased confidentiality monitoring. In ASIAN, 2006.
[21]
M. Hanus, H. Kuchen, J. J. Moreno-Navarro, R. Aachen, and I. Ii. Curry: A truly functional logic language, 1995.
[22]
N. Heintze and J. G. Riecke. The SLam calculus: Programming with secrecy and integrity. In Symposium on Principles of Programming Languages (POPL), 1998.
[23]
S. Hunt and D. Sands. On flow-sensitive security types. In Symposium on Principles of Programming Languages (POPL), 2006.
[24]
V. Kashyap, B. Wiedermann, and B. Hardekopf. Timing- and termination-sensitive secure information flow: Exploring a new approach. In IEEE Symposium on Security and Privacy, 2011.
[25]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In ECOOP, 1997.
[26]
A. Köksal, V. Kuncak, and P. Suter. Constraints as control. In Symposium on Principles of Programming Languages (POPL), 2012.
[27]
C. Kolbitsch, B. Livshits, B. Zorn, and C. Seifert. Rozzle: De-cloaking internet malware. Technical Report MSR-TR-2011-94, Microsoft Research Technical Report, 2011
[28]
J. Liu, M. D. George, K. Vikram, X. Qi, L. Waye, and A. C. Myers. Fabric: a platform for secure distributed computation and storage. In Symposium on Operating System Principles (SOSP), 2009.
[29]
J. W. Lloyd. Programming in an integrated functional and logic language. Journal of Functional and Logic Programming, 3, 1999.
[30]
F. McSherry. Privacy integrated queries: an extensible platform for privacy-preserving data analysis. In International Conference on Management of Data (SIGMOD), 2009.
[31]
A. Milicevic, D. Rayside, K. Yessenov, and D. Jackson. Unifying execution of imperative and declarative code. In International Conference on Software Engineering (ICSE), 2011.
[32]
S.Moore, A. Askarov, and S. Chong. Precise enforcement of progresssensitive security. In ACM Conference on Computer and Communications Security, pages 881?893, 2012.
[33]
L. D. Moura and N. Björner. Z3: An efficient SMT solver. In Tools and algorithms for the construction and analysis of systems (TACAS), 2008.
[34]
A. C. Myers. JFlow: Practical mostly-static information flow control. 1999.
[35]
P. Naldurg and R. K. R. Seal: a logic programming framework for specifying and verifying access control models. In ACM Symposium on Access Control Models and Technologies, pages 83?92, 2011.
[36]
A. Nanevski, A. Banerjee, and D. Garg. Verification of information flow and access control policies with dependent types. In IEEE Symposium on Security and Privacy, 2011.
[37]
M. Odersky, P. Altherr, V. Cremet, B. Emir, S. Maneth, S. Micheloud, N. Mihaylov, M. Schinz, E. Stenman, and M. Zenger. An overview of the scala programming language. Technical report, Citeseer, 2004.
[38]
F. Pottier and V. Simonet. Information flow inference for ML. ACM Transactions on Programming Languages and Systems (TOPLAS), 25 (1), 2003.
[39]
W. Rafnsson and A. Sabelfeld. Limiting information leakage in eventbased communication. In Workshop on Programming Languages and Analysis for Security (PLAS). ACM, 2011.
[40]
A. Russo and A. Sabelfeld. Dynamic vs. static flow-sensitive security analysis. In IEEE Computer Security Foundations Symposium. IEEE Computer Society, 2010.
[41]
A. Sabelfeld and A. C. Myers. Language-based information-flow security. IEEE Journal on Selected Areas in Communications, 21(1), 2003.
[42]
P. Shroff, S. F. Smith, and M. Thober. Dynamic dependency monitoring to secure information flow. In CSF, 2007.
[43]
G. Smith. Principles of secure information flow analysis. In M. Christodorescu, S. Jha, D. Maughan, D. Song, and C. Wang, editors, Malware Detection, volume 27 of Advances in Information Security, pages 291--307. Springer, 2007. ISBN 978-0-387-32720-4.
[44]
Z. Somogyi, F. J. Henderson, and T. C. Conway. Mercury, an efficient purely declarative logic programming language. In Australian Computer Science Conference, 1995.
[45]
N. Swamy, J. Chen, C. Fournet, P.-Y. Strub, K. Bhargavan, and J. Yang. Secure distributed programming with value-dependent types. In International Conference on Functional Programming (ICFP), 2011.
[46]
J. Vaughan and S. Chong. Inference of expressive declassification policies. In IEEE Security and Privacy, 2011.
[47]
D. Volpano, C. Irvine, and G. Smith. A sound type system for secure flow analysis. Journal of Computer Security, 4(2-3), 1996.
[48]
J. Yang, K. Yessenov, and A. Solar-Lezama. A language for automatically enforcing privacy policies. In Symposium on Principles of Programming Languages (POPL), 2012.
[49]
A. Yip, X. Wang, N. Zeldovich, and M. F. Kaashoek. Improving application security with data flow assertions. In Symposium on Operating System Principles (SOSP), 2009.
[50]
S. Zdancewic. A type system for robust declassification. In 19th Mathematical Foundations of Programming Semantics Conference, 2003.
[51]
D. Zhang, A. Askarov, and A. C. Myers. Predictive mitigation of timing channels in interactive systems. In Conference on Computer and Communications Security (CCS), 2011.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLAS '13: Proceedings of the Eighth ACM SIGPLAN workshop on Programming languages and analysis for security
June 2013
96 pages
ISBN:9781450321440
DOI:10.1145/2465106
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: 20 June 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. language design
  2. privacy
  3. run-time system
  4. security

Qualifiers

  • Research-article

Conference

PLDI '13
Sponsor:

Acceptance Rates

PLAS '13 Paper Acceptance Rate 8 of 14 submissions, 57%;
Overall Acceptance Rate 43 of 77 submissions, 56%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media