论文部分内容阅读
缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击。缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,会导致程序运行失败、系统当机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出漏洞,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。因此,缓冲区溢出攻击防御方法的研究一直受到关注。本文对缓冲区溢出攻击防御展开研究,主要贡献如下:
(1)结合缓冲区溢出攻击防御的最新研究情况,对缓冲区溢出攻击检测与防御技术进行系统分析和研究,对不同检测与防御方法进行比较,为今后进一步研究缓冲区溢出攻击防御打下理论基础。
(2)以全面抵御缓冲区溢出攻击为目标,引入随机化技术,系统的整理了现有的三大类随机化方法,分析了这三类随机化方法的优缺点和针对这些随机化方法的攻击,提出了改进随机化技术的方法。
(3)利用随机化技术对缓冲区溢出攻击进行防御,可以在一定程度上阻止缓冲区溢出攻击的发生。在这个工作的前提下,提出了一种基于数据随机化的防御缓冲区溢出攻击方法。针对缓冲区溢出攻击目标进行随机化加密保护,使得内存中所存储的缓冲区溢出攻击目标的数据都是加密后的值,不能顺利转向攻击代码。所给方法能够有效防御各种缓冲区溢出攻击,且性能损耗和内存空间损耗较少。
(4)分析各种随机化方法,对其中针对缓冲区溢出攻击进行防御的方法进行比较,使用利用控制流数据随机化技术和地址空间随机化技术相结合的方式,提出了一种新的随机化技术用以抵御缓冲区溢出攻击。在控制流数据随机化方法的基础上,对程序控制流数据再加一层保护,利用地址空间随机化技术对加密密钥和控制数据副本的存放地址进行偏移,在性能损耗较少的情况下有效的增加缓冲区溢出攻击防御强度。