首页> 中文学位 >一种基于代码和数据分离的代码复用攻击防御方法
【6h】

一种基于代码和数据分离的代码复用攻击防御方法

代理获取

摘要

代码复用攻击是一种不需要引入外部代码,利用库函数或程序自身代码达到攻击目的的攻击方式。它具备图灵完全计算能力,同时极具威胁性和隐蔽性。虽然如今主流的操作系统通过使用DEP(Data Execution Prevention)和ASLR(Address Space Layout Randomization)等防御策略,能够阻止传统的代码注入攻击和静态的代码复用攻击。但是动态代码复用攻击的出现打破了DEP和ASLR筑建的防护壁垒,向计算机系统安全发起了新的挑战。
  针对代码复用攻击需要“扫描”内存来构造具有攻击力的gadget(代码复用片段)链这一特征,提出了一种基于代码和数据分离的代码复用攻击防御方法。该方法在虚拟机管理器层,利用虚拟多TLB机制分离代码的读和执行,阻止攻击者构造gadget链,从而达到防御代码复用攻击的目的。虚拟多TLB机制是指对现有虚拟机的内存管理单元进行扩充(即新增一个与TLB具有相似结构和功能的DTLB)。为了改变以前代码同时具有可读可执行的混合权限,将代码和数据分别保存到只读和只可执行的内存区域,然后利用TLB和DTLB分别对代码和数据进行访问。
  以开源虚拟机QEMU为开发平台,构建了基于代码和数据分离的代码复用攻击防御系统。整个防御过程分成预处理、页面加载和页面访问三个阶段。其中,预处理阶段分离出代码中的数据并将它们作为一个新段保存到可执行文件中,页面加载时将代码和数据加载到不同属性的内存区域,页面访问实现代码的读和执行的分离。
  经过测试,原型系统能够有效地隐藏gadget(如msvcr7.dll中可利用的gadget数目从3146下降到4)并能够准确地防御利用CVE-2012-1876和CVE-2012-1889漏洞构造的代码复用攻击;系统的性能损耗率为58.4%。实验结果证明在虚拟机系统中实现所提出的基于代码和数据分离的代码复用攻击防御方法是有效的、可行的。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号