符号执行技术研究与改进

来源 :南京大学 | 被引量 : 0次 | 上传用户:phoenixs
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机应用的不断发展,软件作为信息系统的实现载体,已广泛应用在现代社会的各个领域,软件中的任何安全漏洞都可能导致非常严重的后果。软件测试是保证软件正确性、完整性、安全性和质量的主要程序分析方法。而当前的软件测试方法,如模糊测试,因受制于代码覆盖率低,导致极大的限制了软件测试领域的发展。符号执行是一种应用广泛的程序分析技术,其将程序符号化执行来扩展程序的路径从而提高了程序代码覆盖率。本文主要针对符号执行技术进行研究和针对使用符号执行进行程序漏洞检测的实现与改进:(1)从符号执行基本概念出发,研究和总结了符号执行的三种基本分类;分别对符号执行的三种基本类别的定义、优缺点和应用场景进行了阐述,并列举了三种符号执行类别中最具代表性的工具。(2)总结了符号执行面临的三大难点:路径爆炸问题、符号执行精确性问题和复杂符号约束问题,研究并详细地总结了缓解这三个难点的解决方案及相关工作;总结了符号执行在自动测试用例生成、恶意软件分析、自动输入过滤器生成和软件漏洞检测这四个领域中的应用。(3)针对目前符号执行在程序漏洞检测领域的不足,提出了针对离线符号执行的三种改进:选择符号执行、改进的路径搜索算法和结合模糊测试的混合执行。其中选择符号执行策略选择通过不对库函数代码进行符号路径搜集从而缓解符号执行路径爆炸问题;改进的路径搜索算法通过引入新的测试用例打分机制来筛除由于符号执行的不精确性导致的重复执行相同路径的测试用例;结合模糊测试的混合执行通过引入三种优化措施来结合离线符号执行和模糊测试的优点。(4)实现了上述三种改进的离线符号执行工具Crashmaker。Crashmaker为基于Linux平台面向二进制代码的程序漏洞检测工具,该工具通过使用混合执行技术和约束求解器来对被检测二进制程序自动生成导致程序错误的测试用例从而检测出程序段错误和除数零错误。(5)使用Crashmaker对10个实际的程序进行了实验分析。共发现了10个段错误、3个无限循环错误和3个除数零错误;将部分结果与另一个类似的离线符号执行工具Avalanche进行了比较,并将集成不同改进方法的Crashmaker的不同版本进行了比较,实验数据表明,本文提出的针对离线符号执行的三种改进能够帮助离线符号执行工具更快地找到更多的程序漏洞。
其他文献
随着计算机软件技术和硬件设备的快速发展,近年来人机交互模式发生了巨大改变,传统的鼠标与图形界面的交互方式已无法满足人们日益增长的交互需求,各类更加自然的交互模式应
该文研究与实现的"通用计算机考试系统"是在对全国计算机等级考试、全国计算机能力考试(NIT)等大型上机考试系统仔细考查的基础上,结合作者在开发"数据结构上机考试系统"软件
随着数据库应用的不断扩展和深入,人们积累了大量的数据并希望利用这些数据进行分析和推理,为科学决策提供支持.社会的需求推动了技术的进步,数据仓库与联机分析处理(OLAP,On
该项目的研究目的就是对西气东输工程中所作用的大口径管线的焊缝进行无损检测.整个系统的软硬件设计使用了目前国际上较先进的基于相控阵的超声波检测技术及其相关数学模型.
随着软件技术的发展,程序的规模逐渐增大,复杂度也逐渐增加。在软件的开发过程中,完全依靠人力进行分析测试效率太低,而且不能保证软件质量。测试过程中的一个主要问题是生成具有
入侵检测技术是继“防火墙”、“数据加密”等传统安全保护措施后的新一代安全保障技术。它可以识别针对计算机或网络资源的恶意企图和行为,并对此作出相应的反应。入侵检测技
论文首先简介了RTP的发展和现状.在第二部分对RTP协议中的常用概念、协议规范进行了介绍和总结.在第三部分,对RTP协议相关的问题进行讨论和分析,并提出了一些补充改进建议.该
该文首先分析了互联网对信息检索技术提出的挑战,分析了传统搜索引擎的优缺点,并介绍了传统搜索引擎采用的基于Web内容分析方法的几种基本技术.基于Web结构分析的方法从Web的
随着信息化的深入发展,智能小区应运而生。智能小区的最典型的两个信息 化增值服务是卫星数字电视的接入和视频点播。数字电视比起传统的采用模拟信
软件漏洞使系统容易受到攻击,影响系统的可用性。软件漏洞中,复杂数据类型相关的漏洞占了较大的比例。在可执行程序中实现对此类漏洞有效检测,复杂数据类型的识别是关键。由