基于程序执行轨迹监控的缓冲区溢出防范方法研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:inksong000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,随着信息技术的快速发展,网络互连和资源共享在方便了人们的工作和生活的同时也造成了各种安全隐患。各种利用软件的漏洞、安全弱点的恶意攻击手段层出不穷。每年,由于软件安全弱点造成世界范围的安全事件不计其数,使人们的正常生活蒙受巨大损失。 通过我们收集的各种统计信息,包括诸如CERT(Coodinatoin Center)这样的安全问题研究机构发布的安全分析报告中可以发现,目前各式各样的攻击仍频频地发生,甚至有不断增加的趋势。而在这些众多威胁软件安全的攻击方式中,缓冲区溢出这种系统攻击方式一直占了极大的比重。David Wagner等人在2000年的“网络与分布式系统安全性”会议(NDSS2000)上发表的一篇论文中就指出:当今被广泛利用的漏洞中多达百分之五十都是缓冲区溢出,而且这一比例正随着时间而不断上升。同时,在目前很多的攻击报告中显示,有很大部分的攻击都是直接或间接的通过利用软件中的缓冲区溢出漏洞来实施的,比如在2003年频频发作的振荡波攻击就是利用windows远程过程调用功能中的缓冲区溢出漏洞实施攻击的典型例子。 鉴于此,为消除缓冲区溢出对软件安全带来的威胁,国内外的研究人员在缓冲区溢出的防范做了大量的工作,也取得了很多的研究成果。然而,由于缓冲区溢出漏洞广泛地存在于目前已有的软件中,而且其攻击方式多种多样,所以它的彻底防范十分困难。就目前已有的方法而言,它们都有着各自的缺陷,没有一种可以完美地解决缓冲区溢出的问题,这致使这种攻击仍然不断地出现。在我们为增强软件安全而进行的研究工作中,我们也把目光投向了缓冲区溢出的防范,希望能够找到一种较好的方法,克服已有防范方法的缺陷,比较彻底地解决缓冲区溢出问题。 通过我们对缓冲区溢出原理和各种攻击方式的仔细研究,我们发现目前的各种攻击方式一个共同的特定就是“会改变程序的执行轨迹”。基于这个特点,我们结合目前已有的研究成果,首先设计了一套linux平台下的“程序执行轨迹的监控机制”,它可以对程序的执行轨迹进行较为细粒度的监控。接着,通过利用这套机制,我们设计了两个缓冲区溢出的防范方法。一个是针对栈溢出的防范方法,设计这个方法是因为栈溢出仍然目前是最为常见的攻击方式,通过对它的防范可以杜绝大部分的攻击。另一个方法通过对程序广义函数调用进行监控来实施防范,所谓广义函数调用就是程序中发起类似普通函数调用功能的操作,比如函数指针调用,setjmp,longjmp等。 实验表明,两种防范方法都有具有较好的防范效果。第一种方法较好地解决栈溢出的问题。第二种方法通过目前普遍使用的,由John Wilander[WIL02]提供的攻击平台进行测试,它对目前所有的攻击方式,如栈溢出,格式化字符串溢出,堆溢出和函数指针溢出等都有明显的防范效果。 此外,值得一提的是,在我们第二种方法的设计过程,我们没有针对特定的攻击方式。它良好的实验效果让我们有理由相信它对未来可能的攻击方式也有较好的防范能力。
其他文献
电子邮件(Email)是人们通过Internet进行信息交流的主要手段。本文对集群邮件系统进行了深入研究,在分析现有集群邮件系统不足的基础上,提出了一种新的分布式集群邮件服务系统:D
  本文基于多Agent对语义Web知识推理技术进行了研究,介绍了语义Web推理和多Agent协同的基础理论。在此基础上提出了一个基于MAS的语义Web知识推理框架Mabswif;研究了Mabswif
随着信息技术的普及,网络技术的高速发展,教育的网络化、信息化已成为不争的事实。如何充分发挥网上学习的优势,设计开发适合远程开放教育模式下的学习支持服务系统是远程开放教
提高软件质量是计算机软件行业的重要课题,而软件测试则是保障软件质量的重要手段。随着软件工程和面向对象技术的发展,软件建模越来越受到重视,因此也给软件测试带来了新的研究
作为宇宙间所有事物具有的一种属性,时间一直贯穿着事物的发展过程。人们不仅仅关注数据和信息本身,同时也考虑事务处理的时序、有效性等时态问题。本文目的在于应用面向对象的
随着企业对复杂商业流程的协调和自动化需求的增加,数量和规模日益增长的工作流系统得到越来越广泛的应用。随着规模不断扩大,对系统的可用性、可扩展性、容错性、可备份恢复等
建模是软件过程中的基本活动,可以帮助我们更好的理解和构造系统,还可以提供简化和复用的机会。随着软件系统的规模和复杂性的日趋增大,各部件之间的交互活动已成为系统开发过程
随着Internet技术和Web应用技术不断发展,Web开发框架应运而生,Web开发框架提供的不是一组功能性组件,恰好相反,它提供了一种工作方式和一个体系结构。Web开发框架的使用人员可以
在现代操作系统中,内核作为整个系统的可信基运行在最高特权层,为上层应用程序提供系统服务。同时内核中存在着大量的漏洞和错误,它们经常被攻击者利用来对内核进行恶意操作
移动学习是移动通信网络技术与现代教育有机结合的产物,也是现代教育技术的前沿成果。随着无线网络技术不断发展和无线平台开发技术的广泛应用,特别是3G的提出和应用,移动学