TY - JOUR
T1 - Bringing Java's wild native world under control
AU - Sun, Mengtao
AU - Tan, Gang
AU - Siefers, Joseph
AU - Zeng, Bin
AU - Morrisett, Greg
N1 - Copyright:
Copyright 2014 Elsevier B.V., All rights reserved.
PY - 2013/11
Y1 - 2013/11
N2 - For performance and for incorporating legacy libraries, many Java applications contain native-code components written in unsafe languages such as C and C++. Native-code components interoperate with Java components through the Java Native Interface (JNI). As native code is not regulated by Java's security model, it poses serious security threats to the managed Java world. We introduce a security framework that extends Java's security model and brings native code under control. Leveraging software-based fault isolation, the framework puts native code in a separate sandbox and allows the interaction between the native world and the Java world only through a carefully designed pathway. Two different implementations were built. In one implementation, the security framework is integrated into a Java Virtual Machine (JVM). In the second implementation, the framework is built outside of the JVM and takes advantage of JVM-independent interfaces. The second implementation provides JVM portability, at the expense of some performance degradation. Evaluation of our framework demonstrates that it incurs modest runtime overhead while significantly enhancing the security of Java applications.
AB - For performance and for incorporating legacy libraries, many Java applications contain native-code components written in unsafe languages such as C and C++. Native-code components interoperate with Java components through the Java Native Interface (JNI). As native code is not regulated by Java's security model, it poses serious security threats to the managed Java world. We introduce a security framework that extends Java's security model and brings native code under control. Leveraging software-based fault isolation, the framework puts native code in a separate sandbox and allows the interaction between the native world and the Java world only through a carefully designed pathway. Two different implementations were built. In one implementation, the security framework is integrated into a Java Virtual Machine (JVM). In the second implementation, the framework is built outside of the JVM and takes advantage of JVM-independent interfaces. The second implementation provides JVM portability, at the expense of some performance degradation. Evaluation of our framework demonstrates that it incurs modest runtime overhead while significantly enhancing the security of Java applications.
UR - http://www.scopus.com/inward/record.url?scp=84890392640&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84890392640&partnerID=8YFLogxK
U2 - 10.1145/2535505
DO - 10.1145/2535505
M3 - Article
AN - SCOPUS:84890392640
VL - 16
JO - ACM Transactions on Information and System Security
JF - ACM Transactions on Information and System Security
SN - 1094-9224
IS - 3
M1 - 9
ER -