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

基于符号化执行的Fuzzing测试集动态生成技术研究

作 者: 陈建敏
导 师: 舒辉
学 校: 解放军信息工程大学
专 业: 计算机软件与理论
关键词: Fuzzing测试 符号化执行 动态二进制插桩 动态污点分析 程序切片 路径遍历
分类号: TP393.08
类 型: 硕士论文
年 份: 2009年
下 载: 145次
引 用: 3次
阅 读: 论文下载
 

内容摘要


软件安全漏洞是当前网络信息安全中研究的核心问题之一,Fuzzing测试作为一种重要的软件安全漏洞检测方法,研究提高其测试过程中的代码覆盖率具有重要意义。论文将符号化执行和Fuzzing测试相结合,用以提高测试过程中的代码覆盖率。论文首先总结了Fuzzing测试的一般流程及现有的Fuzzing测试集生成方法,分析了符号化执行的原理及相关应用,并在此基础上阐述了一种基于符号化执行的Fuzzing测试思想。通过对现有的针对可执行程序的分析方法进行比较,采用基于动态二进制插桩的动态分析方法对目标程序进行分析。在动态分析过程中,为了确定指令的输入依赖关系,提出了基于多重标记的动态污点分析方法,并将其应用于目标条件分支的选择和程序切片的精简。针对路径约束规模过大的问题,提出了精简程序切片算法对影响条件分支选择的指令进行抽取,并通过关键输入对路径约束进行简化。研究实现了基于STP的路径约束求解,对路径约束进行求解构造生成新输入测试数据。为了最大化代码覆盖率,研究实现了一种基于代的路径遍历算法并依据路径选择策略选择新输入测试数据。论文设计并实现了一个基于符号化执行的Fuzzing测试集动态生成原型系统,并对原型系统进行了测试,给出了结果分析。测试结果表明:基于符号化执行的Fuzzing测试方法能够有效提高测试过程中的代码覆盖率,对于提高软件漏洞的检测效率有着很好的应用价值。

全文目录


表目录  7-8
图目录  8-10
摘要  10-11
ABSTRACT  11-12
第一章 绪论  12-18
  1.1 课题背景  12
  1.2 课题研究意义  12-13
  1.3 国内外研究现状  13-15
    1.3.1 Fuzzing 测试技术  13-14
    1.3.2 符号化执行测试技术  14-15
  1.4 论文研究内容  15-16
  1.5 论文结构及章节安排  16-18
第二章 基于符号化执行的Fuzzing 测试  18-23
  2.1 Fuzzing 测试  18-20
    2.1.1 Fuzzing 测试概述  18-19
    2.1.2 Fuzzing 测试方法及分析  19-20
  2.2 符号化执行  20-21
    2.2.1 符号化执行概述  20-21
    2.2.2 基于符号化执行的测试技术  21
  2.3 基于符号化执行的Fuzzing 测试技术  21-22
  2.4 本章小结  22-23
第三章 基于符号化执行的Fuzzing 测试方法关键技术  23-54
  3.1 基于代码插桩的动态二进制分析  23-31
    3.1.1 可执行程序分析方法比较  24-25
    3.1.2 动态二进制插桩技术  25
    3.1.3 动态二进制插桩平台Valgrind  25-27
    3.1.4 VEX 中间表示  27-30
    3.1.5 基于中间表示的代码插桩  30-31
  3.2 基于动态污点传播的输入依赖分析  31-36
    3.2.1 污点传播概述  31-32
    3.2.2 基于多重标记的动态污点数据流跟踪  32-36
    3.2.3 基于动态污点分析的示例  36
  3.3 基于精简程序切片的路径约束生成  36-45
    3.3.1 程序切片技术概述  37-38
    3.3.2 一种基于前向分析的动态程序切片算法  38-41
    3.3.3 基于输入依赖的程序切片精简  41-43
    3.3.4 基于关键输入的路径约束简化  43-45
  3.4 基于STP 的路径约束求解  45-51
    3.4.1 约束满足问题  45-46
    3.4.2 路径约束求解  46-51
  3.5 路径遍历及选路策略  51-53
    3.5.1 基于代的路径遍历算法  51-52
    3.5.2 基于最大化代码覆盖的路径选择策略  52-53
  3.6 本章小结  53-54
第四章 原型系统的设计与实现  54-68
  4.1 原型系统总体设计  54-55
    4.1.1 原型系统工作原理  54
    4.1.2 原型系统组成框架  54-55
    4.1.3 原型系统工作方式  55
  4.2 动态二进制分析模块的设计与实现  55-65
    4.2.1 基于中间表示的代码插桩实现  56-58
    4.2.2 动态污点分析实现  58-64
    4.2.3 路径约束动态生成实现  64-65
  4.3 路径覆盖模块的设计与实现  65-67
    4.3.1 基于路径约束求解的输入数据生成  66
    4.3.2 输入数据权值计算  66-67
  4.4 本章小结  67-68
第五章 原型系统的测试与分析  68-78
  5.1 测试概述  68-69
    5.1.1 测试环境  68
    5.1.2 测试对象及测试用例  68
    5.1.3 测试内容及目的  68-69
  5.2 功能测试  69-72
    5.2.1 分支结构程序测试  69-71
    5.2.2 循环结构程序测试  71-72
  5.3 性能测试  72-76
    5.3.1 执行效率测试  73-75
    5.3.2 优化效果测试  75-76
    5.3.3 符号化执行测试  76
  5.4 比较测试  76-77
  5.5 本章小结  77-78
结束语  78-80
参考文献  80-83
作者简历 攻读硕士学位期间完成的主要工作  83-84
致谢  84

相似论文

  1. 基于程序切片的电子海图系统软件测试技术研究,TP311.53
  2. 基于隔离环境的恶意软件网络行为监测与分析,TP393.08
  3. 基于动态二进制分析平台的协议逆向解析技术研究,TP393.08
  4. Fuzzing漏洞挖掘与溢出利用分析技术研究,TP393.08
  5. 基于动态污点分析的状态协议实现软件模糊测试方法研究,TP311.52
  6. 政府网站日志挖掘的研究与实践,TP393.092
  7. 对象级粗粒度切片方法研究,TP311.5
  8. 基于面向对象程序切片技术的耦合和内聚度量,TP311.52
  9. 基于程序切片的Web服务安全分析工具设计及实现,TP393.09
  10. 基于搜索的程序切片方法及其应用,TP311.1
  11. 软件脆弱性模型检查与测试技术研究,TP311.53
  12. 异构分布并行环境下蛋白质折叠结构预测优化算法研究,Q51
  13. 基于程序切片的数据库变更影响分析系统的设计与实现,TP311.13
  14. 通过切片过滤改进聚类测试选择技术,TP311.53
  15. 基于切片的二进制代码可视化分析的研究,TP311.5
  16. 基于符号执行的软件脆弱性分析技术研究,TP311.53
  17. 程序切片技术在软件重用中的应用,TP311.52
  18. 详细级软件FMEA方法和工具研究,TP311.52
  19. 一种基于程序切片的测试用例集约简方法研究,TP311.52
  20. 基于Fuzzing的IE浏览器控件安全漏洞发掘技术研究,TP393.092

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