于基错误注入的组件安全性测试研究--本科毕业设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《于基错误注入的组件安全性测试研究--本科毕业设计.doc》由会员分享,可在线阅读,更多相关《于基错误注入的组件安全性测试研究--本科毕业设计.doc(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、硕士学位论文基于错误注入的组件安全性测试研究A Thesis Submitted in Partial Fulfillment of the Requirementsfor the Degree of Master of EngineeringResearch on Security Testing of Software Component Based on Fault InjectionCandidate :Yuan ChanglongMajor :Computer Software and TheorySupervisor :Associate Prof. Xu LipingHuazho
2、ng University of Science and TechnologyWuhan 430074, P. R. ChinaJune, 2008独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复
3、印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密,在_年解密后适用本授权书。本论文属于不保密。(请在以上方框内打“”)学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日华 中 科 技 大 学 硕 士 学 位 论 文摘 要随着基于组件的软件开发技术的出现,组件特别是第三方组件的使用,大大提高了软件开发的效率。组件技术的基础是存在大量的组件,因此,组件的可靠性和安全性就显得尤为重要。然而有关组件的软件测试技术的研究还相对薄弱,组件的安全性测试更是软件测
4、试理论一个新的研究方向,其理论和技术的研究对于促进组件技术的发展具有重要的理论价值和现实意义。由于不同于传统的软件模块,组件以第三方复用为目的进行开发,多数情况下源代码不可见,对组件尤其是第三方组件只能采用基于“黑盒”的安全性测试方法。在当今黑盒安全性测试领域,错误注入技术作为一种模拟攻击和动态执行分析的有效技术,在软件测评和系统安全性分析方面具有明显的优势。它根据软件代码运行所产生的行为而不是简单地从其结构来研究软件的安全漏洞,这种方法有利于发现那些通过静态结构分析所无法发现的新的潜在安全漏洞来源。SDFI(Static and Dynamic Fault Injection)是一种基于错误
5、注入技术的针对组件特别是第三方组件的安全性测试方法。SDFI建立在安全漏洞分类学研究的基础之上,给出一种组件安全错误注入测试模型FIM(Fault Injection Model)。FIM针对组件运行前和运行时两个不同时机,选择两种不同的错误注入检测方法接口参数错误注入和动态环境错误注入,从而达到有针对性地高效率测试组件安全漏洞的目的。SDFI分别针对接口参数错误注入及动态环境错误注入测试用例“组合爆炸”问题,给出相应的EEC(Exceptional Elements Coverage)和DSW(Division and Sorting by Weight)测试用例约减算法。在研究项目COM组
6、件安全测试系统CSTS(Component Security Testing System)中,设计和实现了自动化错误注入子系统,并使用第三方COM组件进行测试,验证了SDFI的有效性。关键词:组件,错误注入,安全漏洞,接口错误注入,环境错误注入I华 中 科 技 大 学 硕 士 学 位 论 文AbstractAlong with the appearance of software development technology based on component, the component, especially the third party component, raised the
7、software development efficiency greatly. Component technology based on massive components, therefore the reliably and security of component are especially significant. However, the component testing is still weak, component security testing is a new research direction of the software testing, its th
8、eory and technology will have the important value and practical significance in the promotion of component technologys development.As is different from the traditional software modules, components developed for the third parties reusable purpose, in most cases the source code is not visible, the sec
9、urity testing of component especially the third party component can only be based on the black box methods. In todays black box security testing, fault injection as an effective technology of attack simulation and dynamic analysis has obvious advantages in software evaluation and analysis of system
10、security. From the running behavior rather than simply the structure of software to study security flaws, this approach is conducive to find the new potential security vulnerabilities which cannot be found by static analysis.SDFI (Static and Dynamic Fault Injection) is one kind of component security
11、 testing method based on fault injection. On the basis of the research in security vulnerabilities taxonomy, SDFI gave one kind of fault injection model-FIM (Fault Injection Model). Before running and after running, FIM respectively chose different fault injection methods interface parameter fault i
12、njection and dynamic environment fault injection, to achieve the purpose of security testing of component vulnerability with high efficiency. For the problem of “Portfolio explosion” caused by interface parameter fault injection and dynamic environment fault injection, SDFI gave the corresponding te
13、st-cases reduction algorithms EEC (Exceptional Elements Coverage) and DSW (Division and Sorting by Weight). In the project of COM component security testing system (CSTS), designed and implemented the automated fault injection subsystem, and took the typical third party COM components as testing exa
14、mples, confirmed the validity of SDFI.Keywords:Component, Fault Injection, Security Vulnerability, Interface Fault Injection, Environment Fault InjectionII华 中 科 技 大 学 硕 士 学 位 论 文目 录摘 要IAbstractII1绪 论1.1研究背景和意义(1)1.2国内外研究现状(2)1.3研究目标和方法(7)1.4本文的组织结构(7)2组件安全错误注入测试方法2.1组件安全性测试(9)2.2错误注入测试方法(13)2.3基于错误注
15、入的组件安全测试方法(17)2.4本章小结(22)3接口参数错误注入方法3.1接口参数错误注入概念(23)3.2基于Ballista的接口参数错误注入方法(24)3.3本章小结(28)4动态环境错误注入方法4.1动态环境错误注入概念(29)4.2动态环境错误注入关键问题(30)4.3基于EAI模型的动态环境错误注入方法(31)4.4本章小结(40)5CSTS中错误注入子系统实现5.1组件安全测试系统(41)5.2错误注入子系统设计(45)5.3系统实现关键技术(47)5.4本章小结(50)6COM组件测试及效果评估6.1COM组件测试(51)6.2测试效果评估(58)6.3本章小结(60)7结
16、束语7.1本文工作总结(61)7.2后续工作展望(62)致 谢(63)参考文献(64)附录 攻读学位期间参与的科研项目(69)IV1 绪 论1.1 研究背景和意义随着计算机技术的迅猛发展,计算机硬件性能越来越高,由于较少考虑硬件的局限以及人们的实际需求,相应的软件规模越来越庞大、结构也越来越复杂。传统面向过程的软件开发技术,已无法胜任软件开发过程中对效率和资源充分利用的要求。为了提高软件开发的效率,面向对象及建立在面向对象技术基础之上的组件技术得到广泛应用,已成为软件开发技术主流1。组件技术的应用引入了封装和可重用等概念,特别是第三方组件的使用,大大提高了软件开发的效率、降低了软件开发的成本,
17、但同时也增加了软件可靠性和安全性的风险。不可靠或不安全的组件往往成为软件系统中最薄弱的环节,该环节的断裂将导致整个系统的崩溃2。因此,组件的可靠性和安全性是不容忽视的重要问题,它的好坏与否将直接关系到整个系统的可靠性和安全性以及质量的优与劣。作为保证安全性的重要手段,组件安全性测试也自然成为重要的研究内容。然而,与在组件化程序分析、设计方法以及如何构筑组件系统等方面获得的丰富研究成果相比,有关组件和基于组件的软件测试技术的研究还相对薄弱3,尤其是组件的安全性测试,更是软件测试理论一个新的研究方向,其理论和技术的研究将对于促进组件化技术的发展具有重要的理论价值和现实意义。错误注入作为一种有效的安
18、全性测试技术,在评估硬件和软件领域的可靠性和安全性方面都获得了充分的肯定4,是一个强大的技术工具,可以在很大程度上改善软件的可靠性和安全性。其最大优势在于不仅可以模拟对软件应用的恶意攻击,加速待测软件故障的发生,其实施过程还可以实现自动化5。更为重要的是,错误注入从软件代码运行所产生的行为而不是简单地从其结构来研究软件的安全漏洞,这种方法有利于使测试者发现那些通过静态结构分析所无法发现的新的潜在安全漏洞来源6。因此,错误注入安全性测试方法在软件测评和系统安全性分析方面具有明显的优势,值得进一步研究将其应用到组件安全性测试当中。1.2 国内外研究现状1.2.1 组件安全性测试目前,组件安全性测试
19、模型、方法和技术,国内外只有为数不多的研究,并且没有任何已实现的组件安全性测试工具。国内,张勇2提出一种基于规格说明的组件安全性测试方法,该方法通过对组件规格的说明分析提取出组件安全性相关的属性,形成安全性测试规格说明,设计出不同的违反安全性测试规格的错误注入测试案例,从而进行安全性测试。然而,从组件规格说明当中如何提取组件安全性相关属性文中却缺乏可操作的步骤,只是简单说明需要结合测试者对组件可能存在漏洞的了解以及设计者自身的经验产生,显然,该方法的有效性依赖于人工的知识和经验,因而不是一种通用的测试方法,不利于组件安全性测试的自动化。国外,Reliable Software Technolo
20、gies公司的Anup K. Ghosh 和 Gary McGraw7提出了一种CSC(Component Security Certification,组件安全验证)管道模型:该模型包括测试计划、“白盒”测试、“黑盒”测试和验证通过后的数字签名四个顺序子管道,组成了一个全面和标准的组件安全性测试架构。其中,无论是“白盒”还是“黑盒”测试方法,进行组件的安全性测试最主要的手段都是错误注入方法,即利用错误的输入或结构作用于被测组件,观察组件在错误的情况下是否能正确运行,从而得出组件的安全性结论。然而,对组件源代码进行“白盒”测试,姑且不论组件的源代码是否可获得,基于源代码的错误注入是否对应于现实
21、的漏洞攻击也是一个关系到测试有效性的重要问题8;同样,对组件进行不知道源代码的“黑盒”测试,只对组件公开的接口注入“恶意”的输入值从而触发安全漏洞又是不充分的测试方法。因此,CSC作为一种理论模型,有一定的局限性,需要进一步的加以创新和完善。在组件安全性测试相关领域,Nimal Nissanke9等人讨论了影响组件安全的因素,利用一种简单的Sendmail安全模型,提出了一种对组件安全进行建模和分析的框架,是一种确保组件安全的形式化方法。而Khaled Md.Khan10, 11和Jun Han12, 13等人则从提高组件安全的可测性角度出发,提出对组件的安全性特征进行描述,将组件的安全需求规
22、格嵌入到组件的“功能性”需求规格当中,从而方便组件的安全性测试,但是针对不同的组件完备而规范地描述其所有应用环境下的安全属性是很困难的,尤其是对不知道使用方的第三方组件而言,因而组件的安全需求规格目前未能形成一种可行的标准。另外,Bertolino 和 Polini14将一个“间谍”类植入到待测组件之中,以便收集和比较待测组件运行时的状态和资源分配情况,从而提出了一种组件部属的集成测试框架;Jennifer M. Haddox15提出了一种在一个特定系统中观察和测试第三方组件的“Wrapper”(包裹器)方法,该方法使用包裹器来截获系统传递给组件的输入或者组件返回给系统的输出,用以检测组件的异
23、常行为并防止商业软组件的错误传播到整个系统。这些研究虽然取得了一定的成果,为组件的安全性测试提供了一些思路并带来了一定的启发意义,然而对组件安全性测试而言,仍然是路途遥远,缺乏实际可行的方法和技术。1.2.2 错误注入技术错误注入(Fault Injection)作为一种测试技术在评估硬件和软件领域的可靠性和安全性方面都获得了充分的肯定,被认为是一个强大的技术工具,可在很大程度上改善软件的可靠性和安全性16。错误注入技术是指按照特定的错误模型,用人为的、有意识的方式产生错误,并施加于待测系统中,用以加速该系统的错误和故障的发生,同时观测并反馈系统对所注入错误的响应信息,通过分析对系统进行验证和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 错误 注入 组件 安全性 测试 研究 本科 毕业设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内