基于LLVM框架的非控制数据保护

来源 :南京大学 | 被引量 : 0次 | 上传用户:lkzhlk
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
内存错误漏洞引起的安全问题,一直以来都困扰着工业界的开发者和学术界的研究者。在现实生活中,它不仅仅对软件有极大地危害,甚至进一步的会对社会产生安全问题,造成重大的经济损失以及个人隐私的泄漏。虽然近几十年来,在内存漏洞上的防护已经做了很多的研究,提出了很多保护的机制,很多好的保护机制也已经使用起来,但是每年发现的新的漏洞仍然没有显著减少;而该类漏洞所造成的损失(不仅仅是经济损失)却随着互联网经济的蓬勃发展越来越大。内存错误漏洞整个课题过于庞大,一篇论文无法述说清楚。本文也不准备对所有的内存错误漏洞进行保护,仅仅针对内存漏洞中的对非控制数据攻击这一方而进行论述。本文根据攻击日标的区分分为对控制数据的攻击,比如函数指针,返回地址等,对这类数据的篡改能很直观的看到控制流的改变;和对非控制数据进行的攻击,对这些数据的攻击并非像想想中那么无关紧要。这类数据的攻击同样可以达到篡改控制数据同样的效果,改变程序的控制流,获得更高的权限等。对于控制流的数据保护已经有相当多的文章提出有效的方案,比如StackGuard就是对调用栈上的返回地址等信息的保护。但是对非控制数据保护的重视一直以来都未提高到与其危害相对应的该有的高度上来。本文所研究的重点就是对非控制数据攻击的防护。本文提出的保护机制的基本思想是对内存中的数据进行随机化。通过对程序的修改,插装新的指令,使得保存到内存上的数据随机化。这种方式就能有效的阻止非控制数据的破坏,甚至起到一定效果的内存数据隐私保护。本文基于开源的LLVM编译器系统平台,实现了一个编译优化Pass模块,在能获取源文件时经过该Pass模块优化后生成的可执行程序能够免受非控制数据攻击的危害。加入开源的QEMU-LLVM项目所实现x86指令转LLVM指令的功能,在无法提供源文件时也能动态的转译可执行文件成Pass所能处理的LLVM指令,添加对非控制数据的保护。进一步的扩大了保护软件的范围。
其他文献
论文工作的主要目的是要找到一条适合CAD领域的协同之路.绪论部分阐述了计算机支持的协同工作(CSCW)的定义、发展历史、应用背景、应用领域及研究的必要性和意义.第二章介绍
该论文介绍了SAQ系统概念获取的思想核心以及获取方法的发展过程.在原有工作的基础上,该文试图较深入地对人机交互概念获取的过程分析研究.针对人和机器各自的特点,对其进行
随着网络和通信技术的快速发展,全球范围内的信息化改变了人们的生活方式。互联网的出现,带我们走进了一个信息大爆炸的时代。面对大量的信息,人们往往也会感到无所适从,很难
句法分析是自然语言处理的一个重要研究内容之一,给定输入句子,句法分析的任务就是生成一棵带有句法功能标记的短语结构树,它能指明短语的构成成分及其之间的相互关系.英语句
ISAPI(Internet服务器应用程序接口)技术是Microsoft公司开发的一种Web数据库技术.ISAPI的应用程序以动态链接库的形式参与Web服务器的运作,相当于服务器的一个函数,且以线程
该文首先介绍了固态盘技术的发展,以及固态盘所广泛采用的Flash芯片的特点,并对固态盘Cache设计中的主要考虑因素与策略做了分析与总结.然后,对与固态盘性能密切相关的地址映
该课题对三菱Q4AR双机热备程控器的原理和实现机制以及系统的构成进行了深入研究,并依据此原理构建自己的冗余系统.同时,对系统中应用的三菱MELSECNET数据链路系统的组成、结
该文主要介绍了一个基于WWW的微处理器模拟系统---"支持微处理器设计的青鸟模拟环境(简称JBSim)",重点描述JBSim系统总体结构及其系统集成机制的设计与实现.
随着网络技术的出现和快速发展,人们对信息安全要求越来越强烈.传统的秘密钥密码系统需要保密信道传送密钥,而且不提供用户身份认证的功能.Diffie和Hellman在1976年提出公共
TELNET协议创始于美国,它的目标是平等地对待连接的两端,把用户使用的终端变成远程主机的仿真终端,从而实现了远程登录.该论文与远程通讯系统和电力收费系统为应用对象,把Win