基于动态污点分析的二进制程序缓冲区溢出的研究

来源 :北京工业大学 | 被引量 : 3次 | 上传用户:apple321lg
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件安全漏洞的存在及其带来巨大的危害使得软件漏洞检测技术的研究日益重要。其基本思想是通过对待测试软件程序采取不同的技术手段,分析程序的源代码、二进制代码或在对应宿主系统中运行的信息对待测程序是否存在漏洞进行检测。基于动态污点分析技术的软件漏洞检测方法近年来得到了很好的发展,然而由于动态污点分析技术检测路径单一,覆盖率较低,同时由于二进制程序无法获得更多的程序的内部结构信息,使得其检测效率较低。借助遗传算法降低测试数据的数量级、提高测试效率的测试用例生成技术已得到广泛关注。由于大多数遗传算法都以单路径或单一的路径覆盖率为目标且效率不高,很难有效应用到实际工作中,因此研究基于多路径遗传算法的路径选择算法,在提高检测覆盖率的同时改善测试的效率具有重要意义。本文通过对缓冲区溢出原理的深入分析以及对国内外漏洞检测技术进行广泛研究的基础上,提出了一种基于动态污点分析技术的检测二进制程序缓冲区堆栈溢出漏洞的方法,通过改进的启发式搜索算法作为测试用例生成的多路径选择算法,弥补动态污点分析的不足,达到提高待测程序路径覆盖率与分支覆盖率的目的,提高检测的效率。本文主要研究成果如下:1.设计并实现了一个二进制程序动态污点分析模型。通过规定明确的污点对象、污点传播方案,以及对二进制程序缓冲区溢出原理的分析,提出了基于堆栈溢出的监测模型,用于监测危险函数调用引起的相关软件缺陷行为,并提高检测方法的效率。2.设计并实现了一个智能路径选择的测试用例生成模型。通过启发式搜索算法多路径遗传算法作为路径选择算法,通过对算法的适应度函数重新设计,改进算法的选择算子,使得算法在以动态污点分析的覆盖率为目标进行测试用例的自动生成。3.基于以上两个模型设计了原型系统,通过模块间的相互作用对二进制应用程序进行漏洞检测。测试结果表明,它能改进污点分析技术的不足,并通过智能的路径选择算法在多路径数据生成中具有更好的效果。
其他文献
流感是人类历史上最重要的流行病之一,给人类牛命健康带来了很大的灾难,尤其2003年以来高致病性禽流感H5N1的频繁爆发使得流感病毒的研究再次成为热点.流感测序序列日益增加,
动态电压调度(Dynamic Voltage Scaling,DVS)是一种有效的分布式嵌入式系统的系统级低功耗技术.这种技术通过降低系统中的处理部件的频率和电压,使得处理部件的功率显著下降,
为了解决软件复杂性危机,学术界和产业界提出了自主计算的概念.自主计算的核心是使计算机系统具有自管理能力,包括自配置、自优化、自恢复和自保护.虽然自主计算描述了美好的
随着社会生产力的持续进步,人们对高性能计算的需求与日俱增,而机群已经牢牢地占据了HPC体系结构的主流地位.网络攻防技术的激烈转换,使得通过Internet共享资源的计算中心所
无线自组网由于其鲁棒性、抗毁性、适应环境能力强等特点,被广泛用在国防战备、军用通信、紧急救灾等不需要基础通信设施或者只需要临时通信的环境.随着移动通信和移动终端技
本文从Debian GNU/Linux操作系统的基本概念和设计实现出发,研究了在龙芯处理器平台上Linux发行版的开发过程和实现方案,对实现过程中软件包编译和管理环节提出了优化方案和
在目前的考试系统中,由于自然语言处理和人工智能技术的限制,具有通用性和实用性的主观题自动评分系统还没有出现。国内现有的系统对主观题的处理大多依然是通过教师的人工阅
近年来机群系统凭借良好的可扩展性、可用性以及极高的性价比成为高性能计算机和超级服务器的主流结构.然而,磁盘性能的改善远远落后于CPU处理速度、内存性能、互连网络带宽
在现代超大规模集成电路中,每个芯片中都包含上百万个晶体管和互连线,其中任何缺陷都可能导致整个芯片设计失败.在后端物理设计中,要经历综合、布图规划、布局、布线等步骤,
在"龙芯"产业化过程中,"应用软件库"不丰富是一个重要的问题,对于用c/c++等平台相关语言编写的应用程序,移植和维护都需要大量的人力物力,只要"龙芯"产品投入市场,移植和维护