Static Use-Based Object Confinement - CiteSeerX

9 downloads 5265 Views 146KB Size Report
means that security checks on an object are performed when it is ... domains. ³ ¾ ¾Б interfaces. ±. С´Ьµ. ¼. Т method lists. У. ±℄ ¡ Р core objects. У. У ¡³ Ы ´Уµ .... We require that for any ³ and , the method names ³´ µ .... Ь not free in. ½ ¾ ¸ Р Ш ...
Static Use-Based Object Confinement Christian Skalka The Johns Hopkins University [email protected]

Abstract

Scott Smith The Johns Hopkins University [email protected]

of security; the private and protected modifiers in Java are an example of this. Types improve the hardThe confinement of object references is a significant se- ening mechanisms of capability systems, by providing a curity concern for modern programming languages. We declarative statement of security policies, as well as imdefine a language that serves as a uniform model for a va- proving run-time efficiency through static, rather than dyriety of confined object reference systems. A use-based namic, enforcement of security. Our language model and approach to confinement is adopted, which we argue is static type analysis focuses on capability hardening, with more expressive than previous communication-based ap- enough generality to be applicable to a variety of systems, proaches. We then develop a readable, expressive type and serves as a foundation for studying object protection system for static analysis of the language, along with a in OO lanaguages. type safety result demonstrating that run-time checks can be eliminated. The language and type system thus serve as a reliable, declarative and efficient foundation for secure 2 Overview of the pop system capability-based programming and object confinement. In this section, we informally describe some of the ideas and features of our language, called pop, and show how they improve upon previous systems. As will be demon1 Introduction strated in Sect. 5, pop is sufficient to implement various The confinement of object references is a significant secu- OO language features, e.g. classes with methods and inrity concern in languages such as Java. Aliasing and other stance variables, but with stricter and more reliable secufeatures of OO languages can make this a difficult task; re- rity. cent work [21, 4] has focused on the development of type systems for enforcing various containment policies in the 2.0.1 Use vs. communication-based security presence of these features. In this extended abstract, we describe a new language and type system for the imple- Our approach to object confinement is related to previous mentation of object confinement mechanisms that is more work on containment mechanisms [2, 4, 21], but has a difgeneral than previous systems, and which is based on a ferent basis. Specifically, these containment mechanisms different notion of security enforcement. rely on a communication-based approach to security; some Object confimement is closely related to capability- form of barriers between objects, or domain boundaries, based security, utilized in several operating systems such are specified, and security is concerned with communicaas EROS [16], and also in programming language (PL) ar- tion of objects (or object references) across those boundchitectures such as J-Kernel [6], E [5], and Secure Network aries. In our use-based approach, we also specify domain Objects [20]. A capability can be defined as a reference to boundaries, but security is concerned with how objects are a data segment, along with a set of access rights to the seg- used within these boundaries. Practically speaking, this ment [8]. An important property of capabilities is that they means that security checks on an object are performed are unforgeable: it cannot be faked or reconstructed from when it is used (selected), rather than communicated. partial information. In Java, object references are likewise The main advantage of the use-based approach is that unforgeable, a property enforced by the type sytem; thus, security specifications may be more fine-grained; in a comJava can also be considered a statically enforced capability munication based approach we are restricted to a wholesystem. object “what-goes-where” security model, while with a So-called pure capability systems rely on their high use-based approach we may be more precise in specifylevel design for safety, without any additional system-level ing what methods of an object may be used within various mechanisms for enforcing security. Other systems harden domains. Our use-based security model also allows “tunthe pure model by layering other mechanisms over pure neling” of objects, supporting the multitude of protocols capabilities, to provide stronger system-level enforcement which rely on an intermediary that is not fully trusted.

m; x; &; set; get 2 ID ;   ID l 2 Lo d 2 D; D  D ' 2 D ! 2ID % ::= mi (x) = ei 0