Computer & Information Science Department   Polytechnic University

ATTENTION: THIS WEB SITE HAS MOVED. The pages you are looking at are no longer being maintained. Please go to http://www.poly.edu/cis/ to visit the new site of the Department of Computer and Information Science at Polytechnic University.

A Conservative Algorithm for Computing the Flow of Permissions in Java Programs

TR-CIS-2001-07 (12/21/2001)
Gleb Naumovich

pdf version of this paper

Abstract
Software programs are increasingly distributed and open, which, unless designers and coders are careful, makes such programs vulnerable to attacks. Java offers a built-in security mechanism, enabling programmers to give permissions to distributed components and check these permissions at run-time. This security model is flexible, but using it is not straightforward. In this paper, we propose a data flow algorithm for automated analysis of the permissions flow in Java programs. Our algorithm produces, for a given point in the program, a set of all permissions that are checked on all possible executions to this point. These data can be used in program understanding tools or directly in checking properties that assert what permissions must always be checked before access to certain functionality is allowed. The worst-case complexity of our algorithm is low-order polynomial in the number of program statements and permission types, while comparable previous approaches have exponential costs.