欢迎访问中国科学院大学学报,今天是

中国科学院大学学报 ›› 2014, Vol. 31 ›› Issue (2): 267-275.DOI: 10.7523/jssn.2095-6134.2014.02.018

• 计算机科学 • 上一篇    下一篇

Ares:一个稳健的实时编译引擎保护系统

朱若宇1, 张玉清1,2, 燕敬博1   

  1. 1. 西安电子科技大学综合业务网理论及关键技术国家重点实验室, 西安 710071;
    2. 中国科学院大学国家计算机网络入侵防范中心, 北京 100049
  • 收稿日期:2013-02-01 修回日期:2013-05-24 发布日期:2014-03-15
  • 通讯作者: 张玉清,E-mail:zhangyq@nipc.org.cn
  • 基金资助:

    Supported by National Natural Science Foundation of China(61272481) and National Natural Science Foundation of Beijing(4122089)

Ares:a robust protection system for just-in-time engines

ZHU Ruoyu1, ZHANG Yuqing1,2, YAN Jingbo1   

  1. 1. Key Lab of Computer Networks and Information Security of Ministry of Education, Xidian University, Xi'an 710071, China;
    2. National Computer Network Intrusion Protection Center, University of Chinese Academy of Sciences, Beijing 100049, China
  • Received:2013-02-01 Revised:2013-05-24 Published:2014-03-15
  • Supported by:

    Supported by National Natural Science Foundation of China(61272481) and National Natural Science Foundation of Beijing(4122089)

摘要:

JIT(实时)编译技术可以大大提高代码执行效率. 目前大部分浏览器以及 Java,Perl,Ruby,Flash都采用JIT技术提高性能. 但是,JIT引擎为了达到较高的执行效率,将具有读写可执行权限的对象分配到可预期的偏移位置. 这违背了数据执行保护以及随机地址分配的保护措施. 我们分析了两个现有的JIT引擎保护工具. 基于本文的分析,设计与实现了JIT引擎保护工具Ares. Ares不需要修改JIT引擎源码,使JIT引擎免受现有各种针对JIT引擎的攻击. 实验证明其时间与内存开销在可接受范围内.

关键词: 实时编译引擎, 随机地址分配, 数据执行保护, 防范工具

Abstract:

JIT(just-in-time) compilation technique improves the efficiency of code execution. In almost all web browsers as well as Java, Perl, Python, Ruby and Flash, JIT is implemented into their already complex code base. However, for high effectiveness, JIT engines allocate memory with RWX (readable, writable, and executable) permissions to predictable offsets, which goes against DEP (data execution prevention) and ASLR (address space layout randomization). We first analyze two existed JIT defense tools and show the defects of them. Based on our analysis, we design and implement an approach named Ares to protect JIT engines from normal JIT-based attack without modifying JIT engines' source code. Experiments show that our approach guarantees the safety of JIT compilation and the overhead is acceptable.

Key words: JIT (just-in-time) compilation engine, ASLR, DEP, defense tools

中图分类号: