Retrofitting legacy code for authorization policy enforcement
Vinod Ganapathy, Trent Jaeger, and Somesh Jha.
Technical Report #1544, Computer Sciences Department, University of Wisconsin.
Madison, Wisconsin, November 2005.
Researchers have long argued that the best way to construct a secure system is to proactively integrate security into the design of the system. However, this tenet is rarely followed because of economic and practical considerations. Instead, security mechanisms are added as the need arises, by retrofitting legacy code. Unfortunately, existing techniques to do so are manual and ad hoc, and often result in security holes in the retrofitted code.
We show that program analysis techniques can be used to securely, and largely automatically, retrofit legacy code for authorization policy enforcement. Our techniques are applicable to a large class of legacy servers, namely those that simultaneously manage multiple clients, possibly with different security labels. It is important for such servers to ensure that client interaction is governed by an authorization policy.
We demonstrate our ideas using two program analysis tools we built, AID and ALPEN, which work together to automate the process of retrofitting legacy srevers with mechanisms for authorization policy enforcement. We show that an X server retrofitted using these tools securely enforces authorization policies on its X clients.
An alternate version of this paper appeared as a conference publication.