1、计算机科学与技术专业毕业论文 精品论文 基于模拟器的缓冲区溢出漏洞动态检测技术研究关键词:缓冲区溢出漏洞 软件安全 网络漏洞 源代码 多路径测试 动态检测技术摘要:缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高
2、。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包
3、括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统
4、模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。正文内容缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但
5、结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点
6、研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索
7、,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检
8、测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获
9、取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯
10、确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢
11、出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。
12、主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传
13、播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻
14、击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全
15、系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前
16、动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取
17、或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研
18、究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻
19、辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见
20、的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。
21、本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形
22、式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu
23、Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现
24、象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令
25、分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实
26、例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱
27、源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了
28、良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型
29、系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报
30、率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在
31、环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于
32、Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。缓冲区溢出漏洞是常见的软件安全漏洞,恶意用户可利用程序中的溢出漏洞攻击目标主机系统,窃取或破坏重要数据,甚至控制该系统攻击其它主机。在每年近十万次网络漏洞攻击中,近 50与缓冲区溢出相关,造成的经济损失超过百亿美元。缓冲区溢出漏洞已成为一种最危险、最常见的软件安全漏洞。 现有缓冲区溢出漏洞检测方法分静态和动态两类。静态检测方法对源代码检测,速度快
33、检出率高,但结果中存在较多误报;动态检测方法运行时监控程序行为,误报率较低且检测精度较高。但现有动态方法也存在明显的不足:1.未完全摆脱源代码;2.只能针对应用程序检测,对操作系统无能为力;3.发现溢出现象却难以确定漏洞位置;4.对测试输入依赖较高,代码覆盖率难以保证。 本文以现有缓冲区溢出漏洞检测方法中存在的问题和不足为切入点,在充分研究、分析和比较现有动态方法的基础上,提出了一种面向可执行代码,利用全系统模拟器作为执行环境,通过动态路径追踪方法检测溢出漏洞的有效方法。主要工作和创新包括: 1)针对当前动态方法执行环境控制力较弱,信息获取不充分的问题,提出了基于全系统模拟器的动态检测环境构建
34、方法,并重点研究了模拟器的控制技术。该技术使目标程序完全受控地运行在环境内,可随时获取包括硬件状态在内的各层次系统信息,为漏洞检测提供了良好的基础平台。 2)针对可执行代码抽象难读的问题以及动态追踪对指令分析的需求,提出了指令的动态解释方法。该方法将可执行代码动态转换成形式统一、便于分析追踪的元指令表示形式。该方法不仅改善了后端路径追踪逻辑的目标指令系统,同时也便于前端执行环境向多平台扩展。 3)针对当前动态方法在漏洞定位与代码覆盖率问题上存在的不足,提出了基于动态污点传播思想的动态路径追踪方法。该方法分析并构造了溢出漏洞的判定规则,回溯确定漏洞位置,归纳溢出形成条件,并结合系统状态回退完成多
35、路径漏洞搜索,提高代码检测覆盖率。 4)在上述研究成果基础上,基于 Simics 全系统模拟器设计并实现了缓冲区溢出漏洞动态检测系统原型系统 SimDDBO。 5)对 SimDDBO 系统进行基准测试和实例测试,验证了系统的有效性,初步尝试了新漏洞挖掘,发现 Baidu Hi 中两个新漏洞并获得 BugTraq 确认。特别提醒 :正文内容由 PDF 文件转码生成,如您电脑未有相应转换码,则无法显示正文内容,请您下载相应软件,下载地址为 http:/ 。如还不能显示,可以联系我 q q 1627550258 ,提供原格式文档。“垐垯櫃 换烫梯葺铑?endstreamendobj2x 滌?U 閩
36、AZ箾 FTP 鈦X 飼?狛P? 燚?琯嫼 b?袍*甒?颙嫯?4)=r 宵?i?j 彺帖 B3 锝檡骹笪 yLrQ#?0 鯖 l 壛枒l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛枒 l 壛渓?擗#?“?# 綫 G 刿#K 芿$?7. 耟?Wa 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 皗 E|?pDb 癳$Fb 癳$Fb癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$Fb 癳$F?責鯻 0 橔 C,f 薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵薍秾腵秾腵薍秾腵%?秾腵薍秾腵薍秾腵薍