Static And Dynamic Information Flow In A Java Virtual Machine

Michael Franz
University of California, Irvine
USA

Deepak Chandra
University of California, Irvine
USA

We have implemented an information flow framework for the Java Virtual Machine that combines static and dynamic techniques to capture not only explicit flows, but also implicit ones resulting from control flow. Ahead of execution, we run a static analysis that annotates an executable. During execution, we then dynamically track information flows while using the annotations to safely update the labels of variables that lie in alternative paths of execution. Our framework doesn't require access to source code and is fully backward-compatible with existing Java class files. Preliminary benchmark results suggest that the run-time overhead of information flow techniques such as ours is well within acceptable range for many application domains.

Keywords: information flow, java virtual machine

Read Paper Read Paper (in PDF)