基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文

上传人:人*** 文档编号:563490750 上传时间:2022-09-21 格式:DOC 页数:64 大小:799KB
返回 下载 相关 举报
基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文_第1页
第1页 / 共64页
基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文_第2页
第2页 / 共64页
基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文_第3页
第3页 / 共64页
基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文_第4页
第4页 / 共64页
基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文》由会员分享,可在线阅读,更多相关《基于模糊测试的ActiveX控件 漏洞挖掘研究——硕士论文(64页珍藏版)》请在金锄头文库上搜索。

1、硕士学位论文基于模糊测试的ActiveX控件漏洞挖掘研究 专 业 名 称: 软 件 工 程 研究生姓名: 导 师 姓 名: 校外导师姓名: 摘要摘要关键字:IIABSTRACTABSTRACTKey Words: 目 录摘要IABSTRACT II第一章 绪论11.1 研究背景11.2 相关研究现状11.2.1 ActiveX控件技术的发展11.2.2 模糊测试技术的研究现状21.2.3 缓冲区溢出漏洞研究现状21.3 研究目的和意义31.4 主要工作与创新点31.5 本文的章节安排4第二章ACTIVEX控件安全性分析与模糊测试技术52.1 ActiveX控件原理分析52.1.1 Active

2、X控件加载原理52.1.2 ActiveX控件的加载条件52.2 ActiveX控件漏洞形成分析62.2.1 软件漏洞的定义62.2.2 软件漏洞的原理与分类62.2.3 ActiveX控件的漏洞的特点与形成原因102.3 模糊测试技术122.3.1 传统的漏洞挖掘方法122.3.2 模糊测试的定义132.3.3 模糊测试技术的原理132.3.4 模糊测试的优点和缺点142.3.5 进化模糊测试思想152.4 本章小结16第三章 漏洞分析相关技术173.1 调试器原理173.2关键调试技术分析183.2.1 调试技术基础183.2.2 调试相关的API203.3 自动化动态分析技术203.4

3、静态分析技术223.4.1 IDA Pro及其插件开发223.4.2 利用IDA Pro实现静态代码分析223.5 本章小结23第四章 ACTIVEX控件漏洞挖掘分析系统244.1 系统总体设计244.2 漏洞挖掘模块244.2.1 ActiveX控件分析子模块254.2.2启发式静态分析子模块284.2.3二进制代码覆盖率分析子模块294.2.4 测试数据生成子模块314.2.5 模糊测试执行子模块324.3 漏洞分析模块324.3.1 调试器子模块334.3.2 反汇编子模块354.3.3 溢出检测与定位子模块364.3.4 单步跟踪子模块414.3.5 漏洞代码分析子模块434.5 本章

4、小结43第五章 ACTIVEX控件漏洞挖掘分析系统44实验验证及结果分析445.1 实验验证445.1.1 实验环境445.1.2 存在漏洞的控件445.2 漏洞分析445.2.1 SetList(栈溢出漏洞)445.2.2 SetLogInfo2(堆溢出漏洞)485.3 漏洞自动挖掘系统的优缺点525.3.1 系统优点525.3.2系统缺点525.4本章小结53第六章 总结与展望546.1 本文工作总结546.2未来研究展望54致谢55参考文献56 第一章 绪论1.1 研究背景自从万维网诞生以来,针对浏览器的攻击就愈演愈烈,一刻也不曾停歇过。浏览器作为广大网民接触网络的主要工具,是网民踏入互

5、联网世界的主要入口之一。一旦这个入口受到恶意攻击,将有大量电脑沦为黑客的“肉鸡”,轻则电脑运行缓慢、不断弹出广告页面,重则帐号、金钱被盗,重要资料失窃等等。随着软件工程理论和软件工业的发展,愈来愈多的软件漏洞被发现,软件安全问题日益严重。由于利益的关系,越来越多的黑客将注意力转移到了浏览器软件领域,致使不断出现浏览器的安全漏洞。作为Windows自带的浏览器,IE到目前为止依然占有超过50%的市场份额。这一数字使得大量黑客在不断寻找IE浏览器的漏洞,而随着IE的诸多新版本推出,寻找并利用新漏洞的难度也越来越大。作为IE浏览器唯一支持的插件形式,ActiveX控件的安全性一直受到很大的关注。由于

6、ActiveX控件一般会带有自身的类型库信息,而类型库中包含了控件所能提供的所有方法和属性,以及它们的参数信息,因此这些方法和属性成为了优良的模糊测试的对象。黑客借助于Comraider、Axman等工具可以轻易发现ActiveX控件中存在的漏洞,从而利用这些漏洞达到破坏、窃取信息以及非法牟利的目的。经历了2007、2008年ActiveX控件漏洞出现高峰之后,各个厂商都开始注重ActvieX控件的安全问题,由于没有判断输入参数长度而导致的缓冲区溢出漏洞也大大减少。但是,如Comraider这种半自动化工具已越来越难以满足漏洞挖掘的需要,而且,对于一些隐藏的漏洞也无能为力。1.2 相关研究现状

7、1.2.1 ActiveX控件技术的发展ActiveX是微软公司1996年提出的基于COM组件和OLE技术的一种通用的开放程序接口,使用该技术开发的ActiveX控件可以直接集成到IE浏览器或其它第三方程序中1。由于ActiveX控件可以方便地扩展浏览器功能,因此许多软件厂商都喜欢开发自己的ActiveX控件。例如,各大网银为了保证自己的登录和交易安全,都会让用户安装自己的ActiveX控件登录;一些电子商务网站,如淘宝,也会建议用户安装登录安全控件。此外,网络视频软件、在线杀毒软件等也都会安装自己的ActiveX控件。这些控件一旦出现安全问题,黑客便可以构造恶意页面,诱使用户访问,而用户一旦

8、访问,黑客就可以轻易植入木马和病毒,盗取用户银行账户,对企业和个人造成重大损失。1.2.2 模糊测试技术的研究现状模糊测试的思想最早产生于1989年美国威斯康星大学的一个研究计划,Barton Miller教授(被成为模糊测试之父)最初是用来测试UNIX应用程序的健壮性2。1999年,芬兰Oulu大学开始研发基于Fuzzing的网络协议测试工具PROTOS,并于2002年发布了用于SNMP测试的版本。PROTOS综合了黑盒测试和白盒测试的特点,是模糊测试发展过程中的一个里程碑3。2002年,Dave Aitel发布了一个开放源代码的模糊测试工具SPIKE5,它使用了基于块的模糊处理器,用于测试

9、基于网络的应用程序。作为第一个可以实现自定制的模糊测试器框架,SPIKE的发布标志着模糊测试一个新的里程碑4。2004年,File Fuzzing开始出现。Mu Dynamics(原Mu Security)公司开始开发一种硬件模糊装置,其目的是让网络中传输的协议数据发生变异。这个商业产品供应商的出现,恰好吻合当前人们关注Fuzzing的潮流3。同年,两个类似SPIKE的基于块的Fuzzer工具发布:Peach和smudge。这两个工具都是使用python开发,从而提供了易于使用的快速开发框架。Peach是近年来较受外界关注的模糊测试框架,适用于多个平台。Peach要先对测试的协议或文件格式进行

10、建模,并用XML语言描述出这种数据模型,然后数据生成引擎通过解析XML文件来构造测试数据集5。2006年,ActiveX控件的Fuzzing开始流行,David Zimmer发布了COMRaider,H.D.Morre发布了AxMan16。ActiveX控件由于其中接口、函数原型的公开性,是一种优秀的模糊测试目标,允许对其实施自动化的智能测试。这使得ActiveX控件漏洞的挖掘一时间风靡整个黑客界,不断会爆出某些软件的0day漏洞。比如2007年底迅雷5的PPLAYER.DLL控件中溢出漏洞;2008年初的联众GLChat.ocx 控件溢出漏洞;2009年的暴风影音mps.dll控件远程栈溢出

11、漏洞;2011年的QQ旋风中QQIEHelper.dll控件的远程栈溢出漏洞;2011年的淘宝阿里旺旺中imageMan.dll控件的远程栈溢出漏洞等等。国外对模糊测试的研究较早也较深,有多款成熟的模糊测试框架推出,相对于此,国内对模糊测试的研究起步较晚,尚未出现成熟的测试框架。文献9介绍了使用模糊测试挖掘MP3播放软件中的漏洞,文献10介绍了使用模糊测试挖掘Word软件中的漏洞,文献11介绍了使用模糊测试挖掘PNG格式解析软件的漏洞,以上三种都属于文件Fuzzing的范畴,而文献12介绍了使用模糊测试挖掘TFTP中的漏洞,这是种网络协议的模糊测试。1.2.3 缓冲区溢出漏洞研究现状缓冲区溢出

12、攻击起源于1996年的一篇文章 “Smashing The Stack For Fun And Profit”14,这篇文章清楚地阐述了缓冲区溢出攻击的原理。这使得缓冲区溢出攻击不断被世人所了解。1998年来自“Cult of the Dead cow”的Dildog详细介绍了如何利用Windows的溢出15,这篇文章的最大贡献在于提出了利用栈指针的方法来完成跳转,避免了因进程、线程的不同造成的栈位置不固定。1999年,Dark Spyrit提出使用系统核心DLL中的Jmp ESP指令完成跳转16。同年,w00w00安全小组的Matt Conover写了基于堆的缓冲区溢出的专著17,从而使人们

13、意识到堆溢出的危害性。与此同时,缓冲区溢出保护技术也在不断发展。2000年,Arash Baratloo和Tzi-cker Chiueh等实现的StackShield原型系统通过保留返回地址的副本来检测溢出的发生18。同年,Hiroaki Etoh和Kunikazu Yoda提出Etoh和Yoda技术,使用随机数保护和栈中的数组重定位技术来防止对局部变量的溢出19。2002年12月,Chew和Song对栈的基地址、系统调用表和库函数入口指针进行了随机化,并达到了破坏溢出利用可靠性的目的20。2003年5月,Xu,Kalbarczyk和lyer提出了透明实时随机化技术,对Linux的栈基址、堆基

14、址以及GOT进行了随机化21。Windows也从XP SP2开始引入随机化PEB基址、SEH保护、堆栈Cookie保护等技术。这些技术的引进会增大缓冲区溢出攻击利用的难度,但是并不能从本质上消除缓冲区溢出的出现。正如黑客技术与反黑客技术一样,溢出研究与溢出保护研究也在对抗之中不断发展与前进。1.3 研究目的和意义本文的研究目的主要有以下三点:1、寻找到一种智能、高效的基于模糊测试的漏洞挖掘方法,能够挖掘出ActiveX控件中的缓冲区溢出漏洞2、研究出一种动态分析与静态分析相结合的漏洞分析方法,对漏洞进行高效、准确的分析,获取到漏洞形成的相关信息3、实现一套基于模糊测试的自动化ActiveX控件

15、的漏洞挖掘分析系统,以完成从控件接口分析到漏洞挖掘到漏洞分析的自动化过程本文的研究意义主要有:1、通过对ActiveX控件进行自动化漏洞挖掘和分析,以帮助软件开发者或安全人员尽早地发现、定位和分析漏洞,减少已发布软件中漏洞的数量及生存期,从而避免漏洞对企业和个人造成重大的损失。2、通过对ActiveX控件的漏洞挖掘研究,掌握漏洞挖掘过程的技巧和方法,以应用到其它类型的软件安全漏洞挖掘中去。1.4 主要工作与创新点本文的主要工作与创新点主要有以下三点:1、使用本人独立开发的调试器,研究并实现了一套高效的自动化单步跟踪算法,大大减少了普通单步调式造成的性能影响,并在此基础上实现了计算二进制代码覆盖率的方法。2、研究了基于遗传算法的智能模糊测试技术,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号