基于Linux的地址空间随机化的研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:yx5813399
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
基于内存的安全漏洞一直是计算机主机系统安全的主要原因。在过去的十年中出现了许多用于防御基于内存安全漏洞攻击的技术。主要可以分为两类,一类是针对代码本身的静态方法,主要基于用户代码分析技术;另一类是针对代码运行环境的动态方法,主要有不可执行堆栈技术,栈溢出防护技术,控制流完整性技术等。这些技术或者不具备较好的实用性,或者只能针对某些特定的攻击手段。   地址空间随机化技术解决了这两个问题。首先地址空间随机化是一种动态的防御技术,能够较容易地在现有的系统中实施;其次随机化技术具有广泛的防御类型,对几乎全部的基于内存漏洞的攻击都有防护作用。地址空间随机化技术的思想是基于这样一个现象:基于内存漏洞的攻击普遍依赖一个必要条件,即需要在攻击时确定若干个地址空间对象的地址。地址随机化技术通过将这些地址空间对象随机地排布,增加了攻击者获得其地址的难度,也就增加了攻击成功实施的难度。   由于能够有效地进行安全防御,因此主流的操作系统都应用了地址空间随机化技术。现有的地址空间随机化技术可以随机地排布包括用户栈、堆、代码、静态数据、动态共享库等地址空间对象。但是现有的地址空间随机化技术具有随机化时机固定,抗暴力攻击能力弱的缺点。本文提出的运行时刻再次随机化技术,在运行时刻能够根据需要再次随机化某些特定类型的动态共享库,不但解决了现有随机化技术随机化时机固定的问题,对暴力攻击也具有较好的抵御能力,将攻击难度从D(pT)提高到D(pT2)。   本文实现的运行时刻再次随机化技术主要有两个方面。首先是实现了不绑定的符号解析机制。通过不绑定符号解析的结果,使得每次符号访问都要经过动态连接器代码,这样就为目标对象的随机化创造了条件。其次是实现了运行时刻的再次随机化。即使目标对象中的函数正在被调用,重新排布对象所在的地址空间位置也不会影响函数的正确运行。运行时刻再次随机化技术具有实施简单,应用灵活的特点。运行时刻随机化技术只修改动态连接器,不需要修改诸如内核之类的其它环境,也不需要进行复杂的二进制文件分析;运行时刻随机化技术可以根据使用者的需要灵活配置,在安全性和运行效率之间达到平衡。
其他文献
当前集群系统已经成为高性能计算体系结构发展的趋势,它极大地提高了高性能计算的发展,并逐渐从科学研究发展到其它各领域。在实际应用中,集群的软硬件资源相当丰富,这些资源
快速发展的3D应用技术给相关产业提供了难得的发展机遇,同时也提出了不少挑战性的问题。其中如三维重建一直是计算机图形学领域的一个研究热点,但鲜有研究试图重建物体的语义信
近年来,由于社交网络,即时通讯工具的普及,大量的文本数据涌入我们的生活。如何利用文本挖掘技术,从海量“堆积如山”的文本数据中更快速寻找到有价值的信息,成为各行各业的需求。
互联网和计算机网络正在为企业的全球化和集中化发挥着推动作用。尽管互联网和计算机网络在许多方面取得成功,但是在许多领域也存在着效率低下的问题。其中最严重,同时也是研究
由于软件规模的不断扩大和运行环境的逐渐复杂,软件安全漏洞问题正日益加剧,并不断威胁到政治、经济、国防和社会安全等重要领域。软件安全漏洞检测是对软件安全漏洞进行预防和
关于产品质量问题的研究由来已久,可靠性是产品质量的固有特性之一,是产品质量的重要方面。无论是硬件产品、软件产品还是软硬件结合的复杂系统产品,正确评估产品的可靠性是评估
搜索算法是逻辑证明中的经典方法,广泛用于直觉主义逻辑,古典逻辑等多种逻辑系统。Kripke模型是一个非常简单而有效的模型,它能对解释直觉主义逻辑的语义给予合理的解释。  
如今,Web已经成为信息量最大、应用范围最广的传播媒体。但面对着Web中的海量数据,人们依然无法解决知识匮乏的问题。Web新闻的主题检测研究为人们提供了一种由数据管理向知识
海量音频数据检索技术的迅速发展,对已有的特征选择算法提出了严峻的挑战。迫切需要适应音乐数据集的准确性和运行效率等综合性能较好的特征选择算法以及机器学习方法。本文
安全操作系统的设计和实现过程中对形式化方法有很高的要求。在各种形式化验证方法中,模型检验以其自动化程度高并且能够提供验证反例帮助纠错而受到人们的关注。如何定义和选