首页> 中文学位 >模糊测试应用于二进制程序的漏洞发现方法研究
【6h】

模糊测试应用于二进制程序的漏洞发现方法研究

代理获取

目录

声明

摘要

第一章 绪论

1.1 背景

1.2 技术发展现状

1.2.1 静态分析

1.2.2 渗透测试

1.2.3 模糊测试Fuzzing

1.3 主要工作及意义

1.4 论文组织结构

第二章 模糊测试应用于程序漏洞发现

2.1 基本思想

2.2 一般过程

2.3 依据输入源的分类

2.3.1 命令行参数和环境变量模糊测试

2.3.2 文件模糊测试

2.3.3 网络协议模糊测试

2.4 两个关键问题

2.4.1 问题说明

2.4.2 已有尝试解决方案

2.4.3 仍存在的问题

2.5 本章小结

第三章 动态污点分析和动态符号执行

3.1 问题归约

3.2 中间语言BIL

3.2.1 概述

3.2.2 操作语义

3.3 动态符号执行

3.3.1 之于问题

3.3.2 一般解释

3.3.3 分类

3.3.4 两个其他要素

3.3.5 符号执行难点

3.4 动态污点分析

3.4.1 污点分析策略

3.4.2 问题

3.4.3 之于问题

3.5 本章小结

第四章 动态符号执行引擎设计

4.1 技术依赖

4.1.1 Pin

4.1.2 Protocol Buffers和Piqi

4.1.3 Z3

4.2 总体设计

4.2.1 总体架构设计

4.2.2 总体流程设计

4.3 TLET设计

4.3.1 轨迹模型设计

4.3.2 序列化容器设计

4.3.3 污点分析策略

4.3.4 插装例程和分析例程

4.4 DSEE设计

4.4.1 总体架构设计

4.4.2 总体流程设计

4.4.3 翻译成BIL程序

4.4.4 演算器Evalutor

4.4.5 搜索策略

4.4.6 性能优化

4.5 本章小结

第五章 测试和验证

5.1 DSEE正确性验证

5.2 改进的搜索算法效果

5.3 DSEE性能优化措施效果

5.4 DSEE应用于栈溢出漏洞利用自动生成

5.4.1 栈缓冲区溢出漏洞

5.4.2 问题归约

5.4.3 测试

5.5 本章小结

第六章 总结和展望

6.1 总结

6.2 展望

参考文献

攻硕期间取得的成果

致谢

展开▼

摘要

程序漏洞是网络安全的根源问题之一,如何快速发现程序漏洞是目前安全领域的一个研究热点,特别是基于二进制程序的漏洞发现技术研究由于其广泛的适用性和难度更是目前研究的前沿领域。目前,已有的程序发现技术包括静态分析技术、动态分析技术和渗透测试技术,其中动态分析技术中的模糊测试方法因为其高性价比:简单的思想、出色的漏洞发现数量,成为安全研究人员和黑客使用最广泛的漏洞发现技术。然而,传统的模糊测试存在两个关键问题:(1)生成的测试数据质量不高,表现为测试深度和广度不够(2)漏洞确认阶段需要大量的人工参与。
  针对模糊测试的数据生成问题,本文将其归约为逻辑领域的公式可满足性问题,使用动态符号执行作为归约实现手段。本文基于中间语言BIL介绍了动态符号执行用于测试数据生成的基本理论和作为动态符号执行重要性能优化措施的动态污点分析理论,包括符号引入、符号演算、搜索策略、SMT求解器、污点分析策略和主要的难题。在此基础上,本文设计并实现了一个离线动态符号执行引擎DSEE,DSEE首先将主体是汇编指令序列的轨迹翻译成BIL程序,然后基于BIL程序做符号执行,其间,由原是系统调用帧和污点引入帧翻译过来的BIL语句引入初始符号变量,依据BIL语句和表达式操作语义进行符号演算,生成由BIL表达式描述的路径公式,之后该公式被翻译成SMT求解器Z3支持的SMT2格式并被求解,该解将作为一个新的输入被继续测试,而关于下一个测试输入的选择问题则使用了改进的分代搜索算法。另外,本文还设计并实现了一个带污点分析的轨迹记录引擎TLET,设计内容包括:参照动画模型的轨迹模型设计、随机读取轨迹帧的序列化容器设计、会引入污点的linux系统调用建模、基于数据依赖的污点传播规则建模。本文对DSEE和TLET进行了实验测试和验证,结果显示,两者能达到之前的设计要求。针对漏洞确认问题,本文通过将栈溢出漏洞利用生成归约为逻辑公式可满足性求解实现了栈溢出漏洞的自动确认和利用自动生成。
  本文的主要贡献有:(1)设计实现了离线符号执行引擎DSEE和作为其基础的轨迹记录引擎TLET,实验证明两者能正确工作,这两者将是该领域后续继续研究工作的平台基础;(2)改进了分代搜索算法,加入启发因子,以期使搜索尽快朝高代码覆盖率方向前进,测试分析显示,改进后的算法能达到预期的目的;(3)使用动态污点分析和死码移除作为DSEE的性能优化措施,结果显示,能很大程度上减少需要符号执行的BIL语句数量,从而很大程度上减小了路径公式尺寸,是有效的优化措施;(4)将栈溢出漏洞归约为逻辑公式的可满足性问题,使用DSEE实现了该类漏洞的利用自动生成。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号