Annual Computer Security Applications Conference 2015

Full Program »

Evaluating the Flexibility of the Java Sandbox

Presentation
View File
pdf
957KB

The ubiquitously-installed Java Runtime Environment (JRE) provides a complex, flexible set of mechanisms that support the execution of untrusted code inside a secure sandbox. However, many recent exploits have successfully escaped the sandbox, allowing attackers to infect numerous Java hosts. We hypothesize that the Java security model affords developers more flexibility than they need or use in practice, and thus its complexity compromises security without improving practical functionality. We describe an empirical study of the ways benign open-source Java applications use and interact with the Java security manager. We found that developers regularly misunderstand or misuse Java security mechanisms, that benign programs do not use all of the vast flexibility afforded by the Java security model, and that there are clear differences between the ways benign and exploit programs interact with the security manager. We validate these results by deriving two restrictions on application behavior that restrict (1) security manager modifications and (2) privilege escalation. We demonstrate that enforcing these rules at runtime stop a representative proportion of modern Java 7 exploits without breaking backwards compatibility with benign applications. These practical rules should be enforced in the JRE to fortify the Java sandbox.

Author(s):

Zack Coker    
Carnegie Mellon University
United States

Michael Maass    
Carnegie Mellon University
United States

Tianyuan Ding    
Carnegie Mellon University
United States

Claire Le Goues    
Carnegie Mellon University
United States

Joshua Sunshine    
Carnegie Mellon University
United States

 

Powered by OpenConf®
Copyright©2002-2015 Zakon Group LLC