Observational Determinism for Concurrent Program Security

Observational Determinism for Concurrent Program Security

University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science June 2003 Observational Determinism for Concurrent Program Security Stephan A. Zdancewic University of Pennsylvania, [email protected] Andrew C. Myers Cornell University Follow this and additional works at: https://repository.upenn.edu/cis_papers Recommended Citation Stephan A. Zdancewic and Andrew C. Myers, "Observational Determinism for Concurrent Program Security", . June 2003. Copyright 2003 IEEE. Reprinted from Proceedings of the 16th IEEE Computer Security Foundations Workshop (CSFW 2003) pages 29-43. Publisher URL: http://ieeexplore.ieee.org/xpl/tocresult.jsp?isNumber=27273 This material is posted here with permission of the IEEE. Such permission of the IEEE does not in any way imply IEEE endorsement of any of the University of Pennsylvania's products or services. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by writing to [email protected]. By choosing to view this document, you agree to all provisions of the copyright laws protecting it. This paper is posted at ScholarlyCommons. https://repository.upenn.edu/cis_papers/53 For more information, please contact [email protected]. Observational Determinism for Concurrent Program Security Abstract Noninterference is a property of sequential programs that is useful for expressing security policies for data confidentiality and integrity. However, extending noninterference to concurrent programs has proved problematic. In this paper we present a relatively expressive secure concurrent language. This language, based on existing concurrent calculi, provides first-class channels, higher-order functions, and an unbounded number of threads. Well-typed programs obey a generalization of noninterference that ensures immunity to internal timing attacks and to attacks that exploit information about the thread scheduler. Elimination of these refinement attacks is possible because the enforced security property extends noninterference with observational determinism. Although the security property is strong, it also avoids some of the restrictiveness imposed on previous security-typed concurrent languages. Comments Copyright 2003 IEEE. Reprinted from Proceedings of the 16th IEEE Computer Security Foundations Workshop (CSFW 2003) pages 29-43. Publisher URL: http://ieeexplore.ieee.org/xpl/tocresult.jsp?isNumber=27273 This material is posted here with permission of the IEEE. Such permission of the IEEE does not in any way imply IEEE endorsement of any of the University of Pennsylvania's products or services. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by writing to [email protected]. By choosing to view this document, you agree to all provisions of the copyright laws protecting it. This conference paper is available at ScholarlyCommons: https://repository.upenn.edu/cis_papers/53 Observational Determinism for Concurrent Program Security Steve Zdancewic Andrew C. Myers Department of Computer and Information Science Computer Science Department University of Pennsylvania Cornell University [email protected] [email protected] Abstract This paper makes two contributions. First, it presents a definition of information-flow security that is appropriate for Noninterference is a property of sequential programs that concurrent systems. Second, it describes a simple but ex- is useful for expressing security policies for data confiden- pressive concurrent language with a type system that prov- tiality and integrity. However, extending noninterference to ably enforces security. concurrent programs has proved problematic. In this pa- Notions of secure information flow are usually based on per we present a relatively expressive secure concurrent lan- noninterference [15], a property only defined for determin- guage. This language, based on existing concurrent calculi, istic systems. Intuitively, noninterference requires that the provides first-class channels, higher-order functions, and an publicly visible results of a computation do not depend on unbounded number of threads. Well-typed programs obey a confidential (or secret) information. Generalizing noninter- generalization of noninterference that ensures immunity to ference to concurrent languages is problematic because these internal timing attacks and to attacks that exploit informa- languages are naturally nondeterministic: the order of execu- tion about the thread scheduler. Elimination of these refine- tion of concurrent threads is not specified by the language se- ment attacks is possible because the enforced security prop- mantics. Although this nondeterminism permits a variety of erty extends noninterference with observational determin- thread scheduler implementations, it also leads to refinement ism. Although the security property is strong, it also avoids attacks in which information is leaked through resolution of some of the restrictiveness imposed on previous security- nondeterministic choices (in this case, scheduler choices). typed concurrent languages. These attacks often exploit timing flows, covert channels that have long been considered difficult to control [20]. Several recent papers have presented type systems for se- 1 Introduction cure information flow in concurrent languages [43, 38, 41, 5, 19, 29, 36]. The type systems of these languages enforce Type systems for tracking information flow within programs secure information flow; but most of these type systems are are an attractive way to enforce security properties such as so restrictive that programming becomes impractical. data confidentiality and integrity. Recent work has proposed The secure concurrent language presented in this paper, ÈÊ a number of security-typed languages whose type systems ÈÊ , addresses both of these limitations. has been Ë Ë statically check information flow, ranging from simple cal- proved to enforce a generalization of noninterference for culi [28, 45, 17, 1, 38, 49, 41, 19, 18] to full-featured lan- concurrent systems, based on low-security observational de- guages [27, 50, 30, 4]. Many systems for which informa- terminism. Much of the restrictiveness of prior security type tion security is important are concurrent—for example, web systems for concurrent languages arises from the desire to servers, databases, operating systems—yet the problem of control timing channels; we show that some restrictiveness checking information flow in concurrent programming lan- can be avoided by distinguishing different kinds of timing guages has not yet received a satisfactory solution. channels. This approach opens up a trade-off between the This research was supported in part by DARPA Contract F30602-99-1- observational powers of an attacker and the restrictiveness 0533, monitored by USAF Rome Laboratory, by ONR Grant N00014-01-1- of the enforcement mechanism. In some situations, the more 0968, by NSF CAREER Award 0133302, by NSF Grant 0208642, and by restrictive model of the attacker may be warranted, but in a Sloan Research Fellowship. The U.S. Government is authorized to repro- other cases, the less restrictive model is acceptable. duce and distribute reprints for Government purposes, notwithstanding any copyright annotation thereon. The views and conclusions contained herein The concurrency features in most previous secure lan- ÈÊ are those of the authors and should not be interpreted as necessarily repre- guages have been limited. By contrast, provides fairly Ë senting the official policies or endorsement, either expressed or implied, of general support for concurrency: it allows an arbitrary num- the Defense Advanced Research Projects Agency (DARPA), the Air Force ber of threads, it supports both message-passing and shared- Research Laboratory, or the U.S. Government. 1 Proceedings of the 16th IEEE Computer Security Foundations Workshop (CSFW’03) 1063-6900/03 $17.00 © 2003 IEEE memory styles of programming, and communication chan- 2.1 Noninterference and nondeterminism ÈÊ nels are themselves first-class values. is not intended Ë Suppose that we have a low-equivalence relation that re- to serve as a user-level programming language (its syntax ¼ lates two program expressions and if they differ only in and type system are too unwieldy). Instead, it is intended high-security input data. Here (“zeta”) is a label that de- to serve as a model language for studying information flow fines “high-security”: high-security data is any whose label and concurrency; nevertheless, using these constructs, one Ú does not satisfy . The low observer (attacker) can see can encode (via CPS translation) other security-typed lan- only data protected by . guages [49]. Ð For example, consider pairs ,where ranges over The approach taken here is to factor the information se- some high-security data and Ð ranges over low-security data. curity analysis into two pieces: a type system that elimi- An observer with low-security access (only permitted to see nates both explicit and implicit storage channels, and a race- ØØ Ø ÛÒ ¿ the Ð component) can see that the pairs freedom analysis that eliminates timing channels. Factoring Ó ÒÓØ ØØ ¿ and

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us