论文标题

变态:脚本引擎中的细粒度信息泄漏检测

Detile: Fine-Grained Information Leak Detection in Script Engines

论文作者

Gawlik, Robert, Koppe, Philipp, Kollenda, Benjamin, Pawlowski, Andre, Garmany, Behrad, Holz, Thorsten

论文摘要

内存披露攻击在剥削内存腐败漏洞中起着重要作用。通过分析最近的研究,我们观察到,强制执行控制流程或试图检测面向返回的编程的防御解决方案的绕过需要内存披露攻击作为基本的第一步。但是,研究落后于检测此类信息泄漏。 在本文中,我们解决了这个问题,并提出了一种用于对脚本发动机的记忆披露攻击的精细元素,自动检测的系统。基本洞察力如下:严格打磨了脚本语言,例如Web浏览器中的JavaScript。他们不得在上下文中提供有关内存布局的任何见解。实际上,任何此类信息都可能代表持续的内存披露攻击。因此,为了检测信息泄漏,我们的系统通过重新传递的内存布局创建了脚本引擎过程的克隆。仪器将克隆与原始过程同步。当进行内存披露以泄漏有关内存布局的信息时,将出现两个过程脚本上下文中的任何不一致。基于这种检测方法,我们设计并实现了\ useverline {i} nformation \ usefline \ lisepline {le} aks)的变态(\下划线{det},这是Microsoft Internet Explorer在Windows 8.0/8.1上的Internet Explorer 10/11中的JavaScript引擎的原型。经验评估表明,即使针对此专有软件,我们的工具也可以成功地检测出内存披露攻击。

Memory disclosure attacks play an important role in the exploitation of memory corruption vulnerabilities. By analyzing recent research, we observe that bypasses of defensive solutions that enforce control-flow integrity or attempt to detect return-oriented programming require memory disclosure attacks as a fundamental first step. However, research lags behind in detecting such information leaks. In this paper, we tackle this problem and present a system for fine-grained, automated detection of memory disclosure attacks against scripting engines. The basic insight is as follows: scripting languages, such as JavaScript in web browsers, are strictly sandboxed. They must not provide any insights about the memory layout in their contexts. In fact, any such information potentially represents an ongoing memory disclosure attack. Hence, to detect information leaks, our system creates a clone of the scripting engine process with a re-randomized memory layout. The clone is instrumented to be synchronized with the original process. Any inconsistency in the script contexts of both processes appears when a memory disclosure was conducted to leak information about the memory layout. Based on this detection approach, we have designed and implemented Detile (\underline{det}ection of \underline{i}nformation \underline{le}aks), a prototype for the JavaScript engine in Microsoft's Internet Explorer 10/11 on Windows 8.0/8.1. An empirical evaluation shows that our tool can successfully detect memory disclosure attacks even against this proprietary software.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源