【摘 要】
:
虚函数表劫持攻击是破坏C++程序控制流完整性的攻击手段之一,尤其在攻击现代浏览器中得到广泛应用,其攻击目标包括程序中的虚函数表和虚函数表指针。针对性的防御方法通过静
论文部分内容阅读
虚函数表劫持攻击是破坏C++程序控制流完整性的攻击手段之一,尤其在攻击现代浏览器中得到广泛应用,其攻击目标包括程序中的虚函数表和虚函数表指针。针对性的防御方法通过静态分析程序中虚函数调用点的信息来构造可访问的合法目标集合,并通过代码插桩实现运行时检查来保证程序的控制流完整性。其中,合法目标集合的准确性是评估防御方法安全性的关键因素。现有的针对源码的防御方法根据虚函数调用点的对象类型配合类的继承关系构造的合法目标集合仍然较为宽松。因此,本文以虚函数调用点的对象类型和调用的目标虚函数为依据,改善现有方法实施的限制条件,为虚函数调用点构造更为准确的合法目标集合,在支持增量编译和动态链接的条件下,提升防御方法的有效性。本文的主要研究工作如下:(1)分析总结了现有的虚函数表劫持攻击技术和防御方法。现有工作的分析证实,在可以获取对象类型和类的继承关系等信息的情况下,基于程序源码的方案构造的合法目标集合较为准确,具有防御虚函数表劫持攻击的能力,但合法目标集合仍然不能完全符合程序执行意图,存在被攻击者绕过的可能。在此基础上,本文详细分析了现有的基于源码的虚函数表保护方案的原理,重点分析了现有方案存在的合法目标集合不够精确的问题;(2)针对现有方案的不足,本方法在获得虚函数调用点的对象类型和调用的目标虚函数的基础上,根据对象类型对应的类的子类对所调用的虚函数的定义情况来选择构造合法虚函数集合或者合法虚函数表集合,以此改善现有方案构造合法目标集合的限制条件,尽可能为虚函数调用点构造更为准确的合法目标集合,提高防御方法的有效性;(3)在GCC上,设计并实现了所提方案的原型工具Shrinkharder,该原型工具支持增量编译和动态链接。并在谷歌浏览器上部署,对防御方法的有效性进行了验证。实验结果表明,Shrinkharder为谷歌浏览器构造的合法目标集合的平均大小为24.7,与Shrinkwrap构造的合法目标集合的平均大小(27)相比,缩小了将近9%。
其他文献
基于Wiki的开放式协作内容生产方式和开放式协作社区在新一代网络中日益盛行,开放式协作内容不仅在社会化媒体受到欢迎,更引起学术研究领域的极大关注。Wikipedia是最著名的W
随着云计算技术的快速发展和云服务的广泛应用,企业和个人可以通过低廉的成本按需获取云服务厂商提供的高质量云服务,而无需购买和部署高昂的硬件设备。然而各大云服务提供商
超级电容器是一种建立在界面双电层基础上的新型电化学储能电子元件,相比于传统的电容器与蓄电池,它表现出了更高的功率密度、更长的循环寿命,而且具有容量大、环境污染小、成本低等优点。2004年,石墨烯首次被发现,因其具有比表面积高以及导电性能优异等特点,被广泛应用于各种纳米材料的载体,也是理想的储能器件候选电极材料。因此本论文以石墨烯作为载体,通过对其表面功能化,负载过渡金属化合物在其表面,并与优选的基
知识社区是互联网时代人们进行资源获取和学习的重要场所。它以其开放性、快捷性吸引着越来越多人们的关注,对于很多科研学者,知识社区甚至成为他们与外界交流与沟通的主要方
血细胞形态学分析对贫血、白血病和艾滋病等血液疾病的早期诊断具有十分重要的意义。传统形态学检查都是由经过专门培训的检验科人员在显微镜下对外周或骨髓血涂片中的细胞完
随着云计算技术与大数据的兴起与发展,对数据中心操作系统的可靠性、可扩展性以及执行效率性能提出了非常严峻的考验。传统数据中心大都采用虚拟机进行资源管理,虚拟化技术将
随着机器人技术的发展,机器人应用领域更加广阔。但从当前的机器人技术来看,单机器人在采集处理信息数据和控制能力等方面都是有限的,当工作任务复杂和工作环境多变时,单机器
在当前竞争日益激烈的互联网时代下,数据的及时获取成为企业成功的关键所在。商业智能以挖掘数据中的信息为目的,以数据搜集、管理和分析为手段,使用户从数据中获得对于商业
随着科技的发展和社会的进步,现实世界中的各种系统越来越复杂,传统的数学方法已经满足不了我们现实世界复杂系统中对多目标优化问题的求解要求。进化算法作为一种模拟自然界
随着数据挖掘技术的逐渐发展,数据挖掘模型越来越复杂,使得数据挖掘可视化的需求越来越强烈。数据挖掘可视化有三个方面动机:1.帮助初学者和用户理解数据挖掘模型的工作原理;