基于静态分析的C语言缓冲区溢出漏洞检测研究

来源 :云南大学 | 被引量 : 0次 | 上传用户:jaczolo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
C语言是一种广泛流行的高级计算机语言,即使现在已经有像java这样可以检查数组越界的语言,C语言还被使用于很多的系统开发中。一方面,还存在很多用C语言实现的遗留系统;另一方面,因为C语言的性能和靠近硬件的操作能力,这是其它高级语言无法比拟的,很多新开发的系统还是会选择用C语言实现。   缓冲区溢出是计算机软件中广泛存在的安全隐患,经常被黑客和病毒利用,是目前最突出的软件漏洞之一。C语言本身不会自动检查数组越界等缓冲区溢出错误,缓冲区溢出漏洞在C语言的程序中很常见。而且,C语言有多个用于字符串操作的库函数本身就有安全问题,这使得缓冲区溢出漏洞更加严重。   本文以整数区间作为静态分析的抽象域,在整数区间构成的完全格上对源程序进行可靠的抽象解释。在整体解决方案上,本文提出在整数区间抽象解释的基础上,对源程序进行流敏感的数据流分析方法。本文着重研究了以下几个方面的问题:   首先,为了能识别缓冲区溢出漏洞,本文给出了C语言中整数变量、数组缓冲区和数组指针的整数区间表示方法。并给出C语言中整数区间上加、减、乘、除等操作符的运算规则。   然后,本文给出基于整数区间的源程序数据流分析方程,并详细叙述了用不动点理论求解数据流方程组的迭代算法、讨论了循环语句和不动点求解算法收敛性之间的关系。提出在数据流分析的结果上对源代码中缓冲区溢出漏洞进行判定的方法。   最后,基于上述理论基础,本文实现了一个识别C语言缓冲区溢出漏洞原型系统。
其他文献
随着社会的进步和发展,人们不断涉及和需要解决很多复杂的实际应用问题,图像匹配问题是数字图像处理的一个重要的领域,它广泛应用在卫星与导弹的制导与导航和机器识别等诸多领域
情感计算是智能计算兴起以来又一个研究热点,情感识别是情感理解、情感表达、情感生成等情感计算的前提和基础。继各种电子技术产生和发展之后,对音乐进行情感识别、或根据情感
视频会议系统是采用视、音频压缩技术和多媒体通信技术,支持人们远距离实时信息交流与共享、开展协同工作的应用系统。作为分布式视频会议系统最重要的组成部分,目前的视频会议
工作流的概念起源于生产组织和办公自动化领域,目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产
随着互联网的发展,新型数据与时间的联系越发紧密,而传统数据库难以有效管理数据的时态信息,并且尚无完整的时态数据库以进行时态数据管理,关于时态数据的管理课题的研究变得更为
多目标优化问题一直是科学和工程领域的一个难题和热点问题,在演化算法应用到这一领域以前,已经产生了许多传统的方法,传统的方法存在探索未知空间的能力不强,容易陷入局部极值点
随着工作流产品应用的逐渐普及、用户需求的不断提高和社会分工的细化,工作流管理系统的应用背景呈现出分布式、多任务协作等特点,给工作流任务的实施带来了新的挑战,如何利用工
IPv4地址耗竭致使全球互联网正在加紧向IPv6的过渡。但是由于IPv4应用广泛,互联网对IPv4依赖强,因而向IPv6过渡无法在短期内完成。为了在IPv4/IPv6过渡时期推动IPv6的部署发
随着个人机和计算机网络的快速发展,各种计算资源像燎原烈火一般,燃遍信息世界的每一个角落。各种应用的核心——数据,以不同的形式存储在不同的系统中,呈分布、异构和自治状态。
随着网络日益成为经济生活的基础设施,网络的规模和复杂度日益增加,为了知晓网络的运行使用情况,及时发现网络中可能存在的异常流量,需要一种行之有效的流量检测方法。这种方法应