首页> 外文会议>International Conference on Software Engineering >SafeCheck: Safety Enhancement of Java Unsafe API
【24h】

SafeCheck: Safety Enhancement of Java Unsafe API

机译:SafeCheck:Java Unsafe API的安全性增强

获取原文
获取外文期刊封面目录资料

摘要

Java is a safe programming language by providing bytecode verification and enforcing memory protection. For instance, programmers cannot directly access the memory but have to use object references. Yet, the Java runtime provides an Unsafe API as a backdoor for the developers to access the low- level system code. Whereas the Unsafe API is designed to be used by the Java core library, a growing community of third-party libraries use it to achieve high performance. The Unsafe API is powerful, but dangerous, which leads to data corruption, resource leaks and difficult-to-diagnose JVM crash if used improperly. In this work, we study the Unsafe crash patterns and propose a memory checker to enforce memory safety, thus avoiding the JVM crash caused by the misuse of the Unsafe API at the bytecode level. We evaluate our technique on real crash cases from the openJDK bug system and real-world applications from AJDK. Our tool reduces the efforts from several days to a few minutes for the developers to diagnose the Unsafe related crashes. We also evaluate the runtime overhead of our tool on projects using intensive Unsafe operations, and the result shows that our tool causes a negligible perturbation to the execution of the applications.
机译:通过提供字节码验证和强制执行内存保护,Java是一种安全的编程语言。例如,程序员不能直接访问内存,而必须使用对象引用。但是,Java运行时提供了Unsafe API作为开发人员访问低级系统代码的后门。尽管Unsafe API旨在供Java核心库使用,但越来越多的第三方库社区使用它来实现高性能。如果使用不当,Unsafe API功能强大,但很危险,这会导致数据损坏,资源泄漏和难以诊断的JVM崩溃。在这项工作中,我们研究了Unsafe崩溃模式,并提出了一个内存检查器来强制执行内存安全性,从而避免了由于在字节码级别上滥用Unsafe API而导致的JVM崩溃。我们评估来自openJDK错误系统的真实崩溃案例和来自AJDK的真实应用程序的技术。我们的工具将开发人员诊断与Unsafe相关的崩溃所需的时间从几天减少到几分钟。我们还使用大量的不安全操作评估了该工具在项目上的运行时开销,结果表明,该工具对应用程序的执行产生了微不足道的干扰。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号