Securing Class Initialization in Java-like Languages
Journal article, 2013

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.

program analysis

programs

bytecode verification

Information flow control

noninterference

information-flow

Author

Willard Thor Rafnsson

Chalmers, Computer Science and Engineering (Chalmers), Software Technology (Chalmers)

K. Nakata

Tallinn University of Technology (TalTech)

Andrei Sabelfeld

Chalmers, Computer Science and Engineering (Chalmers), Software Technology (Chalmers)

IEEE Transactions on Dependable and Secure Computing

1545-5971 (ISSN) 19410018 (eISSN)

Vol. 10 1 1-13 6275445

Subject Categories

Software Engineering

Computer Science

DOI

10.1109/tdsc.2012.73

More information

Latest update

4/5/2022 6