论文部分内容阅读
随着计算机技术和网络技术的飞速发展,信息网络已经成为社会发展的重要保证,随之而来的网络安全问题逐渐成为信息化时代人们面临的最为严峻的问题之一。理论分析表明,各类网络攻击行为之所以能够对计算机系统产生巨大的威胁,其主要原因在于计算机及软件系统在设计、开发、维护过程中存在安全漏洞。长期以来,缓冲区溢出漏洞是各种安全漏洞中最为常见的一种。缓冲区溢出漏洞非常的普遍,广泛存在于各种操作系统、应用软件之中。CERT声称约50%以上的网络攻击都是利用缓冲区溢出漏洞进行的。如何有效的检测和防护缓冲区溢出这一类网络攻击是有待人们急需解决的问题。在网络攻击及漏洞检测方面,国内外已经有一些较为深入的研究工作。然而已有的手段相对落后,静态分析方法不能很好的解决程序运行时的攻击防护和对未知攻击的检测等问题,而动态分析方法大多需要目标程序源代码,不利于保护商业软件和推广应用。在对缓冲区溢出漏洞及检测方法进行了深入研究之后,本文提出了一种新型的网络攻击检测方法——基于信息流的动态污点分析方法。这是一种主要针对缓冲区溢出漏洞攻击的检测技术,具有实时性,在客户程序动态执行时完成监控检测任务,不需要客户程序源代码,误报率低等特点。本文首先阐述了研究背景及意义,缓冲区溢出攻击技术及检测技术等相关背景知识,然后主要研究了动态污点分析技术的两个重要分析方法——数据流分析和控制流分析。数据流分析方法主要通过指令分析来识别和标记外部污点数据,跟踪污点数据通过算术类和移动类指令造成的显式信息传播,检测污点数据被用作跳转对象地址、格式化字符串参数等可疑情况并作出攻击报警提出。控制流分析通过控制流图和辅助栈来帮助分析污点数据通过分支节点造成的隐式信息流传播,以减小误报率。接着基于动态污点分析技术构建了原型系统,展示了系统设计思路及相关实现细节。最后对系统进行了实验评估,从功能上和性能上对系统进行了测试。实验表明动态污点分析技术能很好的完成针对缓冲区溢出攻击的检测任务,但是性能还需提升。