COM组件栈缓冲区溢出漏洞检测技术研究_论文

上传人:hs****ma 文档编号:497948771 上传时间:2024-03-03 格式:DOC 页数:78 大小:2.57MB
返回 下载 相关 举报
COM组件栈缓冲区溢出漏洞检测技术研究_论文_第1页
第1页 / 共78页
COM组件栈缓冲区溢出漏洞检测技术研究_论文_第2页
第2页 / 共78页
COM组件栈缓冲区溢出漏洞检测技术研究_论文_第3页
第3页 / 共78页
COM组件栈缓冲区溢出漏洞检测技术研究_论文_第4页
第4页 / 共78页
COM组件栈缓冲区溢出漏洞检测技术研究_论文_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《COM组件栈缓冲区溢出漏洞检测技术研究_论文》由会员分享,可在线阅读,更多相关《COM组件栈缓冲区溢出漏洞检测技术研究_论文(78页珍藏版)》请在金锄头文库上搜索。

1、硕士学位论文COM组件栈缓冲区溢出漏洞检测技术研究学位申请人: 学科专业: 计算机软件与理论指导教师: 答辩日期: / A Dissertation Submitted to HuazhongUniversity of Science andTechnology for the Degree of Master of EngineeringThe Research on stack buffer overflow detection of COM componentCandidate: Zhang Chao Major: Computer Software and TheorySupervis

2、or: Prof. Lu YanshengHuazhongUniversity of Science and TechnologyWuhan 430074, P.R.C.January, 2007独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作与取得的研究成果。尽我所知,除文中已经标明引用的容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学

3、校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本论文属于 ,在_年解密后适用本授权书。不。(请在以上方框打“”)学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日摘 要为了解决软件复用,缩短软件开发时间,降低维护成本和实现程序动态升级,软件设计领域产生了组件化程序设计结构,并且日益成为发展趋势。微软的COM组件对象模型是当今比较成熟的软件组件模型之一,被广泛应用于Windows操作系统和应用程序中。随着COM

4、组件技术的大量使用,COM组件暴露出越来越多的安全问题,其中,缓冲区溢出安全问题占了很大比例。缓冲区溢出漏洞一直是安全漏洞最常见的一种形式。缓冲区溢出问题主要出现在C/C+这类非类型安全语言中,而在新一代的编程语言,例如Java、C#中不存在。一个重要的原因就是C/C+允许通过指针进行间接存访问但没有缓冲区边界检查和提供了大量对缓冲区可能存在不安全操作的库函数,在Windows操作系统中也存在类似的函数。因此,如果能采用有效的手段对COM组件的缓冲区溢出漏洞进行检测,将能极提高组件软件的安全性。根据COM组件多数情况下源代码未可知的测试特点,基于COM组件的二进制代码实现对其可能存在的栈缓冲区

5、溢出漏洞的检测。检测方法是将检测缓冲区溢出问题转化为整数围分析问题。建立适用COM组件的危险函数库,在汇编代码中识别危险函数的调用位置,然后根据危险函数参数的类型通过扫描识别不同的缓冲区,将声明的缓冲区大小和使用的缓冲区大小等价为整数围,依据制定的缓冲区溢出标准检测溢出漏洞。根据COM组件使用虚表定位函数的结构特点,实现了COM组件中用户函数的精确定位;同时利用IDC脚本语言提取了COM组件中的函数依赖关系图。基于以上工作,实现了一个COM组件栈缓冲区溢出漏洞检测原型系统。关键词:缓冲区溢出,静态分析,二进制代码,COM组件,危险函数AbstractIn order to solve the

6、problem of software reuse, shorten software developing period, reduce maintenance cost and realize software automatic updating, component software design is put forward and has become an inevitable developmental trend. Microsofts Component Object Model (COM) is a relatively mature one of software co

7、mponent models, which is widely used in Windows operating system and application programs. Along with the prevalence of COM, more and more security problems are exposed, of which buffer overflow constitutes a high proportion.Buffer overflow has been one of the commonest forms of security holes. It m

8、ainly exists in the non type-safe languages, such as C and C+. However, new generation languages, such as Java and C#, do not have this problem. One of the most important reasons is that Callow indirect memory access by pointer without boundary check and provide many unsafe functions which may cause

9、 buffer overflow. Meanwhile, there are such functions in Windows operating system. Therefore, if effective means can be adopted to detect buffer overflow, security of component software will be greatly enhanced.Buffer overflow detection based on binary code is thoroughly studied in this thesis becau

10、se in most cases the source code of COM is unknown. A detection algorithm is proposed by modeling the buffer overflow problem and transform it to ranges comparison of integers. First, establish an unsafe function library of COM and use it to distinguish unsafe function calls in assembly code. Second

11、,according to types of arguments passed to unsafe functions, different buffers are distinguished. Third, obtain ranges of integers based on the size of declared buffers and allocated ones. Last, use buffer overflow detection criterion made by this thesis to detect buffer overflow. COM uses virtual t

12、able to locate functions. According to this structural characteristics, this thesis realise accurate positioning of user functions and extract their dependence relations by means of IDC script language. Based on the work mentioned above, a prototype system that can detch stack buffer overflow of COM

13、 is realised.Keywords: buffer overflow,static analysis, binary code, COM component,unsafe function目 录摘 要IABSTRACTII1 绪 论1.1 课题背景(1)1.2 国外概况(2)1.3 论文主要研究工作(4)1.4 论文结构(5)2 COM组件与栈缓冲区溢出漏洞检测方法基础2.1 COM组件(6)2.2 缓冲区溢出原理(8)2.3 栈缓冲区溢出检测技术(11)2.4 小结(19)3 COM组件栈缓冲区溢出漏洞检测技术3.1 函数的识别(21)3.2 参数的识别(25)3.3 函数的返回值(

14、25)3.4 变量的识别(27)3.5 COM组件危险函数库建立(30)3.6 小结(34)4 COM组件栈缓冲区溢出漏洞检测系统设计与实现4.1 模块结构和功能(35)4.2 主要数据结构(36)4.3 函数定位模块实现(37)4.4 栈溢出静态分析模块实现(38)4.5 结果输出模块实现(47)4.6 与CSTS的接口(49)4.7 小结(50)5 实验与测试5.1 实验目的(51)5.2 实验环境(51)5.3 测试用例(52)5.4 测试结果(53)6 总结与展望6.1 工作总结(59)6.2 工作展望(60)致(61)参考文献(62)附录 攻读学位期间参与的科研项目(67)1 绪论1

15、.1 课题背景继面向对象的软件设计方法之后,基于组件的软件设计方在逐渐成为新的趋势1。按照组件化程序设计的思想,复杂的应用程序被设计成一些小的、功能单一的组件模块,这些模块可以运行在同一机器上,也可以运行在不同的机器上,每台机器的运行环境可以不同,甚至可以是不同的操作系统。为了实现这样的应用软件,组件需要一些细致的规,只有组件程序遵守这些共同的规,组件软件才能正常运行。目前流行的组件规有三种,它们是OMG(Object Management Group)提出的CORBA(Common Object Request Breaker Architecture);微软提出的COM(Component Object Model);还有SUN公司提出的E(Enterprise Java Bean)。Ca

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

当前位置:首页 > 商业/管理/HR > 商业计划书

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