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

基于模糊测试的软件安全漏洞发掘技术研究

作 者: 黄奕
导 师: 曾凡平
学 校: 中国科学技术大学
专 业: 计算机应用技术
关键词: 安全漏洞 漏洞发掘 Fuzzing 模糊测试 输入追踪
分类号: TP311.53
类 型: 硕士论文
年 份: 2010年
下 载: 298次
引 用: 4次
阅 读: 论文下载
 

内容摘要


随着信息化时代的到来,计算机软件被广泛应用各个领域中,而由软件安全漏洞带来的各种危害也日益严重,因此作为能有效发现并消除漏洞的软件安全漏洞发掘技术也日益受到人们的重视。本文在研究现有软件安全漏洞发掘技术的基础上,针对安全漏洞的产生机理和现有发掘技术的不足,提出并实现一种新的软件安全漏洞发掘技术,以有效提高软件安全漏洞的发掘效率。本文首先阐述了软件安全漏洞的定义和产生原因,接着总结分析了软件安全漏洞的分类、特点及其形成原理,之后研究了软件安全漏洞发掘技术的各种分类及其技术特点。根据软件安全漏洞的主要产生机理,即漏洞源自外部输入数据与内部不安全函数调用的结合,针对现有软件安全漏洞发掘技术的不足,在模糊测试技术的基础上,我们提出了一种新的软件安全漏洞发掘方法,主要包括四项关键技术:(1)不安全函数定位技术:在研究总结各类不安全函数的反汇编形式和特征的基础上,利用静态逆向分析技术来自动识别和定位可执行代码中的不安全函数调用,为有针对性地进行漏洞发掘提供了可靠依据,且可应用于使用广泛的各类无源码软件。(2)基于输入的动态跟踪技术:针对多数漏洞由外部输入数据引发的问题,通过在程序运行期间动态监控输入数据的获取和使用,来确定存在输入数据操作的函数,进而只针对存在输入数据操作和不安全函数调用的函数进行测试,从而大幅提高漏洞发掘效率。(3)基于漏洞类型和代码覆盖的数据生成技术:根据各类常见漏洞的特点建立相应的测试用例集,并通过搜索目标代码中比较指令引用的常量数据来指导模糊测试数据生成,有效增强了测试用例的针对性,提高了测试效率和代码覆盖率。(4)基于快照恢复的错误注入技术:针对一般测试用例不能通过软件校验和检查的问题,通过快照恢复方式在程序内部直接对目标函数进行测试,从而能绕过检查函数深入程序内部挖掘漏洞。此外还能有效避免程序频繁启动退出、网络延迟和干扰等影响因素,减少了系统资源和测试时间的耗费,大幅提高了模糊测试的效率。本文设计并实现了基于此方法的原型测试工具,并运用测试工具分别对两款软件进行了软件漏洞发掘实验,实验结果表明该测试工具能有效发现软件中的安全漏洞,验证了该技术方法的可行性和有效性。

全文目录


摘要  4-5
ABSTRACT  5-7
目录  7-9
图目录  9-10
表目录  10-11
第1章 绪论  11-17
  1.1 研究背景  11-12
  1.2 研究现状  12-15
  1.3 研究内容  15-16
  1.4 论文结构  16-17
第2章 软件安全漏洞发掘技术  17-35
  2.1 软件安全漏洞概述  17-18
    2.1.1 软件安全漏洞定义  17
    2.1.2 软件安全漏洞的产生原因  17-18
  2.2 软件安全漏洞的分类及原理  18-23
    2.2.1 缓冲区溢出  18-19
    2.2.2 格式化字符串  19-20
    2.2.3 整数溢出漏洞  20-21
    2.2.4 逻辑漏洞  21-23
  2.3 软件安全漏洞发掘方法  23-26
    2.3.1 静态分析方法  23-25
    2.3.2 动态分析方法  25-26
  2.4 模糊测试技术  26-34
    2.4.1 模糊测试流程  26-28
    2.4.2 模糊测试方法  28-30
    2.4.3 模糊器类型  30-32
    2.4.4 模糊测试的基本要求  32-33
    2.4.5 模糊测试的局限性  33-34
  2.5 本章小结  34-35
第3章 基于模糊测试的软件安全漏洞挖掘技术  35-49
  3.1 不安全函数定位技术  35-38
    3.1.1 不安全函数定义  35-36
    3.1.2 不安全函数的形式  36
    3.1.3 不安全函数识别  36-38
  3.2 基于输入和函数调用的动态追踪技术  38-40
  3.3 基于漏洞类型和代码覆盖的模糊数据生成技术  40-45
    3.3.1 基于漏洞类型的模糊数据生成  40-44
    3.3.2 基于代码覆盖的测试数据生成  44-45
  3.4 基于快照恢复的错误注入技术  45-47
  3.5 本章小结  47-49
第4章 测试工具的设计与实现  49-65
  4.1 总体设计方案  49-50
  4.2 静态分析模块  50-52
  4.3 动态跟踪模块  52-55
  4.4 数据生成模块  55
  4.5 错误注入模块  55-58
  4.6 异常检测模块  58-59
  4.7 实验与分析  59-64
    4.7.1 实验一  59-62
    4.7.2 实验二  62-64
  4.8 本章小结  64-65
第5章 总结与展望  65-67
  5.1 本文工作总结  65-66
  5.2 未来研究展望  66-67
参考文献  67-70
附录 测试程序server.exe 的源代码  70-73
致谢  73-74
在读期间发表的学术论文与取得的研究成果  74

相似论文

  1. 基于遗传算法的模糊测试技术研究,TP311.53
  2. DNS安全检测技术研究,TP393.08
  3. 基于状态机的安全漏洞检查机制的设计与实现,TP309
  4. 基于动态污点分析的状态协议实现软件模糊测试方法研究,TP311.52
  5. 涉密信息网络漏洞实时侦测技术研究,TP393.08
  6. 基于权值衡量网络协议的模糊测试,TP393.08
  7. 面向Web安全的漏洞检测系统的研究与实现,TP393.08
  8. JSP跨站脚本漏洞静态检测技术的研究与实现,TP311.10
  9. Java数组越界检测系统的设计与实现,TP311.5
  10. 基于程序切片的Web服务安全分析工具设计及实现,TP393.09
  11. 缓冲区溢出漏洞的挖掘与利用方法研究,TP393.08
  12. 软件脆弱性模型检查与测试技术研究,TP311.53
  13. 基于网络的漏洞扫描系统的设计与实现,TP393.08
  14. Web应用安全漏洞扫描工具的设计与实现,TP393.08
  15. Fuzzing工具的设计与实现,TP311.52
  16. 基于遗传算法的模糊测试数据生成的研究,TP311.52
  17. 基于数据块关联模型的漏洞发掘技术研究及应用,TP309
  18. 安全漏洞库中重大安全漏洞评选研究,TP393.08
  19. 跨站脚本漏洞与攻击的客户端检测方法研究,TP393.08
  20. 基于风险评估的渗透测试方案的研究与实施,TP393.08

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件维护
© 2012 www.xueweilunwen.com