基于二进制程序的缓冲区漏洞静态检测技术研究

来源 :杭州电子科技大学 | 被引量 : 0次 | 上传用户:zqszc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在层出不穷的软件漏洞中,缓冲区溢出漏洞已经成为当前危害最大、出现频率最高的漏洞,随着信息技术和网络技术的高速发展,缓冲区溢出漏洞日益变得严重。面向源码的缓冲区溢出漏洞检测技术相对比较成熟,但是在商业利益的驱动和市场经济条件下,很多软件都是以二进制程序的形式发布的,针对源码的检测方法不能有效地对二进制进行检测,使得这些软件的安全性无法得到保证。在现有的检测技术中动态分析方法居多,但是动态分析只能在运行时检测,且具有覆盖率低、运行代价较高等缺点。静态程序能够在程序运行前检测漏洞,避免造成重大损失,但是二进制程序缺少源码级别的变量、类型和程序结构信息,对其进行静态分析存在一定的难度。针对现存问题,本文提出了基于二进制程序的缓冲区溢出静态检测技术的研究,研究缓冲区溢出的概念和原理,基于逆向分析平台BinNavi,设计了一个对缓冲区溢出漏洞进行检测的工具。主要研究内容如下所示:1、基于中间语言的基础上,提出了一种基于漏洞模式的缓冲区漏洞易发点的检测方法。将不安全函数调用和循环拷贝操作导致的缓冲区溢出的漏洞形态抽象为特定的模式,在漏洞模式的基础上对缓冲区溢出漏洞点进行定位;2、为了降低上述检测方法中的误报率,基于数据依赖分析的过程内和过程间分析方法对漏洞进行筛选。过程内的分析基于逆向程序切片的算法,求解漏洞点的关键变量的数据依赖集合,并通过集合之间的关系对漏洞点进行筛选;过程间的分析基于函数摘要的方法跟踪数据来源,确定漏洞点的关键数据的最终来源,根据数据是否来自程序外部对漏洞进一步的筛选。基于BinNavi的逆向分析平台,利用上述方法设计并实现了一个二进制程序缓冲区溢出漏洞静态检测工具,选取程序对工具的功能和性能进行测试,实验结果表明,这个方法能够检测程序中的缓冲区漏洞并有效的减少检测结果中的误报情况,提高了漏洞的检测效率。
其他文献
随着普适计算技术的不断发展,人们对基于位置的服务(LBS)的需求与日俱增,而对用户进行准确的定位和跟踪则是实现LBS的关键问题。虽然现有的全球定位系统(GPS)和基于电信网络
本文构建了一种基于模型驱动的Web服务组合模型,采用Petri网对其建模,并利用Petri网的可达树性质验证了模型的有界性、可达性、活性和完整性。该组合模型通过重用已有的Web服
在体表损伤司法鉴定中,由于人体表面及其损伤的形态极不规则,目前尚无统一规范的测算方法。传统测算方法操作繁琐、结果不准确且易受主观或人为因素干扰,常导致多家法医重复鉴定
氧化铝蒸发过程是氧化铝生产中的高耗能过程,其能耗约占氧化铝生产能耗的40%~50%。为了便于分析和优化氧化铝蒸发流程中蒸汽消耗的分布,所以利用计算机对氧化铝蒸发过程进行仿
同QuickResponseCode(QRCode),DataMatrix(DM)等二维条码相比,PDF417二维条码在国际国内标准支持,以及对手机硬件配置的需求等方面具有明显的比较优势。此外,在国外尤其是美国和
本论文的主要工作是研究动态背景下的运动目标检测和跟踪。主要研究对象是视觉场景中的运动目标。首先,提出基于能量法的自适应背景更新算法,能够实时地更新背景模型,从而实
随着计算智能理论的发展,将计算智能理论用于解决工程问题已成为其研究的首要任务。而流程工业中建模与优化技术对于水泥企业具有重要的现实意义,它的不断完善和应用可以带来十
软件漏洞是软件在设计实现时由于软件功能自身的复杂性和抽象性,导致在具体实现时由于考虑不周全所引起的缺陷。软件漏洞所造成的危害严重,开发人员需要尽最大可能在软件发布之
极限学习机(Extreme Learning Machine,ELM)在机器学习领域上是一种极具竞争力的学习算法,它结构简单,学习速度很快,与传统的检测技术支持向量机(Support Vector Machine,SVM)相
学位