This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Securing Class Initialization in Java-like Languages
Jan.-Feb. 2013 (vol. 10 no. 1)
pp. 1-13
Willard Rafnsson, Chalmers University of Technology, Göteborg
Keiko Nakata, Tallinn University of Technology, Tallinn
Andrei Sabelfeld, Chalmers University of Technology, Göteborg
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 paper turns the spotlight on security implications of class initialization. We reveal the subtleties of information propagation when classes are initialized, and demonstrate how these flows can be exploited to leak information through error recovery. Our main contribution is a type-and-effect system which tracks these information flows. The type system is parameterized by an arbitrary lattice of security levels. Flows through the class hierarchy and dependencies in field initializers are tracked by typing class initializers wherever they could be executed. The contexts in which each class can be initialized are tracked to prevent insecure flows of out-of-scope contextual information through class initialization statuses and error recovery. We show that the type system enforces termination-insensitive noninterference.
Index Terms:
Security,Java,Context,Lattices,Loading,Syntactics,Semantics,program analysis,Information flow control
Citation:
Willard Rafnsson, Keiko Nakata, Andrei Sabelfeld, "Securing Class Initialization in Java-like Languages," IEEE Transactions on Dependable and Secure Computing, vol. 10, no. 1, pp. 1-13, Jan.-Feb. 2013, doi:10.1109/TDSC.2012.73
Usage of this product signifies your acceptance of the Terms of Use.