学位论文 > 优秀研究生学位论文题录展示

基于动态符号执行的二进制代码漏洞挖掘系统研究与设计

作 者: 国鹏飞
导 师: 崔宝江
学 校: 北京邮电大学
专 业: 信号与信息处理
关键词: 漏洞挖掘 虚拟执行 符号执行 智能模糊测试
分类号: TP309
类 型: 硕士论文
年 份: 2011年
下 载: 213次
引 用: 1次
阅 读: 论文下载
 

内容摘要


漏洞是计算机系统在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷和不足。漏洞广泛存在于各种软件中,危害严重。大量的病毒、木马、蠕虫利用计算机的漏洞进行广。泛的传播,造成了严重的经济损失和社会危害。由于漏洞引起问题的严重性,漏洞挖掘工作的重要性也就不言而喻了。漏洞挖掘技术可分为针对源代码和可执行代码两大类。其中针对源码的漏洞挖掘技术已经比较成熟;而针对可执行代码进行分析涉及编译器、指令系统、可执行文件格式等多方面的知识,难度很大,目前还处于研究探索阶段,国内外都没有开发出非常成熟实用的产品。有鉴于此,针对可执行代码的漏洞挖掘技术已经成为软件漏洞挖掘领域的一个重要的研究方向。在可执行代码的漏洞挖掘中最普遍的方法是Fuzzing(模糊测试),该方法的缺点是由于缺乏对程序的理解,测试是完全随机且盲目的,难以保证效率。基于源码的分析有一种符号执行技术,该技术可以用于对程序流程的理解,但是由于其自身的性质和二进制代码与源代码环境差异,使得这种技术较难应用于二进制代码的分析。如果能在二进制环境下应用,与Fuzzing技术结合,形成一种智能Fuzzing方法,将会极大的提高二进制代码漏洞挖掘中Fuzzing测试的效率。本课题研究如何解决符号执行应用于二进制代码漏洞挖掘的难点,提出一种基于动态调试结合虚拟执行的符号执行技术,应用于二进制代码分析中,并结合传统的Fuzzing测试技术形成一种智能Fuzzing测试方法,并开发了相应的原型系统。系统包括五个功能模块:调试器模块、输入点定位模块、反汇编模块、符号执行模块和智能FUZZ测试模块。该系统以Windows环境下可执行PE文件(包括可执行文件EXE及其加载的动态链接库DLL文件)为检测对象,通过调试器加载被测可执行程序获得二进制代码,对二进制代码进行中间表达的转化,出于效率考虑,将单纯的动态单步跟踪改为虚拟执行,进行虚拟符号执行,分析程序执行路径和外部输入的对应关系,提取出路径条件集合,然后通过有规律的改变路径条件,生成能够覆盖不同路径的测试用例,从而进行高效的基于路径覆盖的智能Fuzzing测试。从而提高漏洞挖掘的效率。由于有符号执行提供的关于程序流程的信息,在定位漏洞的同时,还能提供输入数据的传播路径及其它有关漏洞成因的重要信息,帮助分析人员快速的分析漏洞的成因,以便提出相应的补救办法。本文设计并实现了一种基于动态调试和虚拟执行的二进制符号执行系统,并通过实验验证了该系统的正确性。然后将该方法与传统的Fuzzing技术结合,形成了一种新的智能Fuzzing方法,用于可执行程序的漏洞挖掘。

全文目录


摘要  4-6
ABSTRACT  6-10
第一章 引言  10-14
  1.1 课题背景  10-11
  1.2 国内外发展动态  11-13
  1.3 论文结构  13-14
第二章 漏洞和漏洞挖掘技术  14-21
  2.1 软件漏洞简介  14-19
    2.1.1 软件漏洞的定义  14
    2.1.2 软件漏洞的特点  14-15
    2.1.3 软件漏洞的分类  15-19
  2.2 漏洞挖掘技术  19-21
第三章 符号执行技术  21-26
  3.1 符号执行的原理与应用  21-22
  3.2 符号执行应用于二进制代码中的难点  22-24
  3.3 约束求解  24-26
第四章 Fuzzing技术  26-31
  4.1 Fuzzing测试流程  26-28
  4.2 Fuzzing的基本要求  28-29
  4.3 Fuzzing测试的局限性  29-31
第五章 基于符号执行的二进制代码漏洞挖掘系统设计原理  31-43
  5.1 整体设计思路  31
  5.2 调试器  31-33
  5.3 输入点定位与处理  33-34
  5.4 机器指令解析  34-38
    5.4.1 反汇编  34-36
    5.4.2 反汇编的不足  36-38
  5.5 二进制符号执行  38-41
  5.6 基于路径覆盖的智能Fuzzing  41-43
第六章 基于符号执行的二进制代码漏洞挖掘系统实现  43-57
  6.1 总体设计  43-45
  6.2 调试器模块  45-46
  6.3 输入点定位与处理模块  46-48
  6.4 机器指令解析(反汇编)模块  48-49
  6.5 符号执行模块  49-53
  6.6 智能Fuzzing模块  53
  6.7 符号执行系统正确性验证  53-57
第七章 总结与展望  57-59
  7.1 论文工作总结  57
  7.2 进一步工作展望  57-59
参考文献  59-61
致谢  61-62
攻读学位期间发表的学术论文  62

相似论文

  1. 基于遗传算法的模糊测试技术研究,TP311.53
  2. 嵌入式系统抗缓冲区溢出攻击的硬件防御机制研究,TP393.08
  3. 基于二进制代码的动态符号执行工具,TP309
  4. 基于动态符号执行的代码分析工具的研究,TP309
  5. 基于虚拟执行技术的恶意程序检测系统研究与实现,TP309
  6. Fuzzing漏洞挖掘与溢出利用分析技术研究,TP393.08
  7. CPU/GPU异构多核虚拟执行环境框架的设计与实现,TP332
  8. 二进制代码安全性分析,TP311.1
  9. 缓冲区溢出漏洞的挖掘与利用方法研究,TP393.08
  10. 基于内存数据模糊测试的漏洞挖掘机制的研究,TP393.08
  11. 一种数据库漏洞挖掘方法研究,TP311.13
  12. 面向符号执行的内存模型研究,TP333.1
  13. 基于Windows平台的软件安全漏洞发掘技术研究,TP311.53
  14. Windows平台下虚拟执行环境的研究与实现,TP391.9
  15. 基于协议分析的漏洞挖掘技术研究,TP393.08
  16. 基于符号执行与遗传算法的单元测试研究与应用,TP311.52
  17. Web服务编排语言的分析与测试,TP393.09
  18. 基于二进制程序的软件缺陷分析及其测试数据生成系统的设计与实现,TP311.52
  19. 基于函数摘要的二进制漏洞挖掘技术研究,TP309
  20. 二进制程序漏洞挖掘技术的研究与工具实现,TP309

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 一般性问题 > 安全保密
© 2012 www.xueweilunwen.com