基于静态分析的栈缓冲溢出漏洞自动发掘模型研究

来源 :电子科技大学 | 被引量 : 0次 | 上传用户:eyeryonecheat
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
缓冲区溢出漏洞一直是安全漏洞的最常见的一种形式。近年来,在CERT/CC(Computer Emergency Response Team/ Coordination Center)发布的公告中,关于缓冲区溢出漏洞的占50%以上。缓冲区溢出问题主要出现在C/C++这类老牌的编程语言中,而在新一代的编程语言,例如Java、C#中不存在。一个最重要的原因就是C/C++允许通过指针进行间接内存访问但没有缓冲区边界检查和提供了大量对缓冲区可能存在不安全操作的库函数,在Windows操作系统中也存在类似的函数。因此,如果能采用有效的手段对缓冲区溢出漏洞进行检测,将能极大地提高软件系统的安全性。从一个程序中检测出可能的安全漏洞是一件非常困难和耗时的事情。目前针对缓冲区溢出漏洞的检测主要分为两类:静态检测的方法和动态检测的方法。通过使用静态和动态分析工具,可以从一定程度上减轻漏洞检测的困难。本文研究分析了与缓冲区溢出相关的基本原理并分析了国内外缓冲区溢出检测的典型技术和工具。通过分析目前几个开源的源代码扫描工具,以及参与的一个源代码静态扫描工具的开发,本文提出一种对二进制代码的静态检测方法:对二进制代码的反汇编代码进行操作语义的分析,提取与缓冲区溢出相关的语法成分,然后以C库和Windows操作系统中不安全函数为出发点进行缓冲区溢出的分析,并基于此方法实现了一个原型系统。实验证明,该原型系统能够检测出一些栈缓冲溢出的情况。但由于完全实现的工作量太大,因此没有考虑复杂的数据结构和控制流等情况。本文提出的静态检测方法是基于对二进制代码反汇编后的代码,实质上也可以认为是一种基于源代码的静态检测技术。这方面的研究是对主流技术的一种重要补充,在得不到源代码的情况下,可以作为一种备用手段使用。
其他文献
网络教育是一种基于互联网的传播手段进行学习与教育的一种新型的教育培训方式。当前商业化的网络教育平台大多数是基于B/S、C/S模式的,这种模式最主要的缺点是交互性差、实时性
质量控制是企业生产中最重要的一环,质量控制方法一直都是制造业研究的热点。目前基于数据挖掘的质量控制方法是研究的热点,有不少研究人员围绕数据挖掘提出了各种不同的质量控
随着信息技术和互联网的迅速发展,网络信息安全问题已经成为当今倍受关注的问题,对网络通信中的信息安全问题的研究是当前信息时代的迫切需要。本文设计并实现了一个安全通信系
通过在单个芯片上集成成千上万个简单处理核来获得高性能和高吞吐量,已成为目前计算机体系结构研究的热点。虽然众核芯片上的单个简单处理核不具备复杂控制逻辑,在开发指令级
近些年来,由于移动通信和蜂窝电话的发展趋势非常迅速,无线设备网络容量的需求与频率资源的受限已在实际网络运营中日益暴露,并严重困扰着各个移动通信运营商。合理的网络规划和
随着计算机技术的不断发展,特别是网络技术的不断发展,企业信息系统和以往相比,也有了巨大的进步。企业级的应用不再满足于单机系统和简单的客户/服务器系统,而是向着三层或
数据挖掘中的分类与聚类问题一直都是研究的热点,因为它们贴近实际生活,能为人们提供各种应用模型。近年来对分类和聚类的研究也从纵向研究逐渐转变为横向研究,即与其他算法进行
随着高性能计算机技术的迅猛发展,高性能计算机逐渐在很多行业的得到应用。网格技术的迅猛发展更是促进了高性能计算机的使用。要充分发挥高性能计算的效能,要有与之相适应的软
随着互联网络的普及,网络安全问题日益严重,单一的安全软件或安全设备已经不能满足对于安全状况的需求,因此,网络安全管理平台应运而生。一个完整的网络安全管理平台能够集成多种
分布式虚拟环境(Distributed Virtual Environment,以下简称DVE)就是工作在各自工作站的多个用户进行交互的一个共享的虚拟环境。一部分工作站(基础系统,Basic System,简称BS