基于符号执行的软件脆弱性测试技术

来源 :电子科技大学 | 被引量 : 2次 | 上传用户:xxxmmm1236
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,计算机安全问题一直受到人们的密切关注,这些问题的根源在于应用软件存在脆弱性,软件的脆弱性是指软件有潜在的异常或漏洞。目前,软件的脆弱性测试方法主要有手工分析,静态自动测试和动态自动测试。手工分析依赖大量人工操作,静态自动测试需要获得软件源代码,而且推理能力有限,所以这两种方法不适合现在越来越复杂和功能多样的软件。动态自动测试目前的主流方法主要是模糊测试,但是模糊测试本身存在着一些缺陷使得其难以发现某些漏洞。符号执行是一种动态测试方法,其动态的监视程序的执行流程,获得路径约束条件信息,并根据精确求解得到程序的下一步输入,通过有目的性的构造测试用例,符号执行既可以达到很高的测试代码覆盖率,又可以有针对性的去触发某些异常或漏洞。更重要的一点是,符号执行不需要获得程序的源代码和内部结构,使其适用于非开源和复杂的商用软件。本文综述了目前软件脆弱性测试和符号执行的现状,介绍了符号执行的基本概念和相关工具,描述了符号执行的主要过程,研究了目前符号执行所遇到的一些问题和解决方法,展望了符号执行以后在软件脆弱性测试领域的一些新的发展方向。实现了基于符号执行的软件脆弱性测试系统,相对于传统符号执行,提出了一些新的改进方法,最后通过测试证实了该系统的进步之处。研究的主要内容包括:动态捕捉程序输入并对其进行符号化;建立内存符号表用以维护输入数据与符号变量的映射关系;对符号在程序运行时的传播进行跟踪记录;路径约束条件的有效收集,包括求解所需要的重要信息;提出了简洁高效的中间语言;求解器的研究与选择;提出循环识别算法简化程序流程图;路径搜索算法的研究,新的路径搜索算法的提出;结合新路径搜索算法的智能的选择测试用例方法。通过对符号执行目前所存在的一些问题的研究,论文提出了相应的一些方案对其改进和缓解,尤其是对路径爆炸问题的缓解,使得符号执行的实际应用变得更加可行,也对符号执行在软件脆弱性测试方向的发展有一定的推动作用和积极意义。
其他文献
随着计算机处理能力的提高、高速网络技术的发展、各种数字音频视频设备以及数据压缩技术的不断出现,视频点播(VOD,video-on-demand)等交互式视频服务受到了越来越多的关注。
该文在研究Java2安全体系结构的基础上实现了Applet安全策略的定制,为在网络中文平台上采用代理和负载均衡提供了可能性,并针对该平台的代理和负载均衡所涉及到的一些关键问
近年来,国内外的单片机控制系统产业发展都极为迅速,己经广泛地用于军事、工业、农业、化工、医疗、实验室等各种领域。其中温度是最常见的控制研究对象,在生物技术上、科学研究
针对异常检测模式学习,该文所做的工作及贡献主要有:第一,该文基于正常行为与异常行为概率分布特点的不同,提出一种新的异常行为检测标准-正常度,并在此基础上设计实现了一个
本文对高效应用服务器系统中业务对象管理的索引机制进行了研究。在传统的磁盘数据库中采用的索引结构通常是B树或B树的变种,其目的是减少树的层次,从而减少磁盘I/O的开销。但是
人们往往认为“眼见为实”。在数字时代,数字图像通常可以作为新闻媒体可信的佐证材料。然而,随着图像处理软件(如Adobe Photoshop、CorelDraw、Gimp等)的快速发展,大多数人都可以
随着P2P流媒体的迅速发展,要求P2P应用层组播提供高效的服务质量(QoS)。近几年的研究表明应用层组播路由的QoS对P2P流媒体QoS有非常关键的作用,因此应用层组播的路由的QoS问题
随着空间数据库的快速增长和广泛使用,如何从空间数据中自动地发现空间知识变得越来越重要。本文首先对空间数据挖掘的现状做了一个简要的介绍,展示了几种主要的空间数据挖掘系
亲爱的读者朋友们,春节快乐!千百杂志中我慎重而坚定的选择现代营销信息版,历经数年,一路走来,编读情深,风雨兼程。在全国几千家杂志中率先举办读者节,创业周,于是我们读者有
AIM: To investigate the impact of preoperative acute pancreatitis(PAP) on the surgical management of periampullary tumors.METHODS: Fifty-eight patients with per