A survey on language-based information-flow security contains an overview of the area. Most related to ours is work on tracking information flow in object-oriented languages and on information-flow controls in the presence of exceptions. Language-based concepts and techniques are becoming increasingly popular in the context of security , because they provide an appropriate level of abstraction for specifying and enforcing application and language-sensitive security policies. Popular examples include: 1) Java stack inspection , which enforces a stack-based access-control discipline, 2) Java bytecode verification , which traverses bytecode to verify type safety, and 3) web languages such as Caja , ADsafe , and FBJS, which use program transformation and language subsets to enforce sandboxing and separation properties. It is surprising that the impact of class initialization, being an important aspect of objectoriented programs, has received scarce attention in the context of security. In a language like Java, class initialization is lazy: classes are loaded as they are first used. This introduces challenges for information-flow tracking, in particular when class initialization may trigger initialization of other classes, which, for example, may include superclasses. Additional complexity is introduced by exceptions raised during initialization, as these can be exploited to leak secret information. Language-based information-flow security is concerned with specifying and enforcing security policies for information flow via language constructs. Although much progress has been made on understanding information flow in object-oriented programs, little attention has been given to the impact of class initialization on information flow. This turns the spotlight on security implications of class initialization.
You are here: Home / ieee projects 2013 / The type system is parameterized by an arbitrary lattice of security levels