论文部分内容阅读
系统、软件及程序在运行过程中,都有可能由于缓冲区溢出的问题导致程序行为异常。恶意用户利用服务程序中的缓冲区溢出漏洞,攻击目标信息系统,破坏、修改、窃取信息系统中的敏感信息,甚至控制系统继续延伸攻击范围。2009年至今,国内外提出了很多关于缓冲区溢出防范的分析与工具,但缓冲区溢出攻击依然是一种常见的攻击手段,它严重威胁着计算机安全。
本论文引入形式化的分析方法描述缓冲区溢出攻击,对缓冲区溢出攻击进行检测和防护。主要研究内容包括以下几个方面:
首先,本文全面介绍了缓冲区溢出漏洞的发展历史,简单介绍了缓冲区溢出漏洞检查和防护的最新研究成果。
其次,详细探讨了Linux平台下缓冲区溢出攻击的手段,包括堆栈溢出、堆溢出、单字节溢出和基于整数溢出等常见的缓冲区溢出攻击。
再次,针对目前缓冲区溢出防范的单一性、高误报率和高漏报率的缺陷,提出了基于完整性的缓冲区溢出检测模型。在借鉴Biba模型的基础上,从源代码级和进程级两个层次描述了本模型的实施细节。对于源代码级的完整性检测模型的构建,本文通过引入形式化的方法,描述C/C++源代码程序,提供精确的数学描述,简化分析过程;对于进程级的完整性检测模型,本文通过定义控制性客体数据、参数型客体数据以及系统环境客体数据的平行结构描述缓冲区溢出攻击,从而有效的防护缓冲区溢出攻击的shellcode的注入、控制流改变和shellcode的执行等三方面检测和防护缓冲区溢出攻击,降低检测和防护的误报率和漏报率。
最后,引入非传递无干扰的安全性质扩展无干扰模型,以安全策略的完备性作为程序运行的关键要素之一,使得程序行为是可预期、可控制的。本文从输入可验证,信息流是非传递无干扰,控制指令保持完整性构建扩展无干扰模型的安全策略。通过安全策略控制程序运行,进而检测和防护缓冲区攻击。新模型更便于在系统实施中进行量化控制。