Securing Class Initialization in Java-like Languages
Artikel i vetenskaplig tidskrift, 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

Författare

Willard Thor Rafnsson

Chalmers, Data- och informationsteknik, Programvaruteknik

K. Nakata

Tallinna Tehnikaülikool

Andrei Sabelfeld

Chalmers, Data- och informationsteknik, Programvaruteknik

IEEE Transactions on Dependable and Secure Computing

1545-5971 (ISSN)

Vol. 10 1 1-13

Ämneskategorier

Programvaruteknik

Datavetenskap (datalogi)

DOI

10.1109/tdsc.2012.73