北京邮电大学-开题报告.docx_第1页
北京邮电大学-开题报告.docx_第2页
北京邮电大学-开题报告.docx_第3页
北京邮电大学-开题报告.docx_第4页
北京邮电大学-开题报告.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京邮电大学硕士研究生学位论文开题报告学 号: 姓 名: 学 院: 专业(领域): 研究方向: 导师姓名: 攻 读 学 位: 年月日北京邮电大学硕士研究生学位论文开题报告论文题目选题来源其他论文类型应用研究开题日期开题地点一、立题依据(包括研究目的、意义、国内外研究现状和发展趋势,需结合科学研究发展趋势来论述科学意义;或结合国民经济和社会发展中迫切需要解决的关键科技问题来论述其应用前景。附主要参考文献目录)(不少于800字)研究目的随着软件越来越复杂和重要,对软件的安全性要求也越来越高,而软件不可避免的存在漏洞。基于Fuzz testing的漏洞挖掘技术必将成为未来软件安全领域的主要趋势。Peach就是一个基于Fuzz testing的优秀开源项目,Peach通过Fuzz testing可以挖掘软件的安全漏洞,例如拒绝服务、缓冲区溢出和格式化字符串等多种重要漏洞。然而使用Peach挖掘软件漏洞需要很长的时间,本文就基于Peach的Fuzz测试策略进行优化研究与实现,以加快Fuzz testing的速度。研究意义此项技术的研究与实现,紧跟当前Fuzz testing技术发展的浪潮,对于快速挖掘软件漏洞,具有极其重大的研究价值和实际应用价值。国内外研究现状和发展趋势Fuzz testing技术源于软件测试中的黑盒测试技术。关于Fuzz testing技术,最杰出的的研究成果主要有以下几个方面:1990年Miller发现,通过简单的Fuzz testing可以使运行于UNIX系统上的多于25的程序崩溃;2002年Aitel通过自己设计实现的Fuzz testing工具SPIKE成功地发现了多个未知漏洞;2008年Godefroid等人利用Fuzz testing工具SAGE发现大型Windows应用程序中二十多个未知漏洞。Peach作为比较成熟的Fuzz testing的开源项目,自动化程度高,无须在逆向工程过程中大量的人工参与。因此,Peach在许多领域受到欢迎,许多公司和组织用其来提高软件质量,漏洞分析者使用它发现和报告漏洞,黑客使用它发现并秘密利用漏洞。目前,国内对Fuzz testing技术有了初步的研究和简单的应用。特别地,对于Peach的研究和优化称为Fuzz testing领域的热点。主要参考文献1 Rune Hammersland, EinarSnekkenes. Fuzz testing of web applications. Faculty of Computer Science and Media Technology ,Gjvik University College, Norway.2 Hao Wang, Qiaoyan Wen, Zhao Zhang. Improvement of Peach Platform to support GUI-based Protocol State Modeling. State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications.3 Patrice Godefroid. Automated Whitebox Fuzz Testing. Microsoft (Research).4 李伟明. 网络协议的自动化模糊测试漏洞挖掘方法. 华中科技大学计算机学院, 2011.5 吴志勇. Fuzzing技术综述 A. 解放军电子工程学院网络工程系, 2010.6 郭瑞杰. 软件安全性测试技术研究. 北京邮电大学网络与技术研究院, 2009.郑叔芳. 随机模糊测试的确定性. 南京航空航天大学5 系, 1993.二、研究内容和目标(说明课题的具体研究内容,研究目标和效果,以及拟解决的关键科学问题。此部分为重点阐述内容)(不少于2500字)基于Peach的Fuzz策略优化研究与实现这个课题主要就是为了加快Peach fuzz速度和准确性而提出的。它通过提出新的Fuzz策略Combination和抽样测试,意在提出一种方便、快速、功能完善的Fuzz策略。课题主要研究内容1、提出Peach Fuzz Combination策略以解决Random策略无限测试的问题Peach支持三种Fuzz策略:RandomDeterministic,Sequential和Random,其中前两种策略都是有限的测试,而Random则是随机选取字段,每个字段随机选取变异方法,每个变异方法随机选取值组合进行测试。Random策略中有很多重复的测试用例,如果将重复的测试用例移除,可以节省很多时间,减少Fuzz testing开销,从而快速地定位漏洞。重复测试用例的定义:如果用例1和用例2选取的字段相同,用例1中每个字段和用例2中对应的字段选取的变法方法相同,用例1中每个字段的变异方法选取的值和用例2中每个字段的变异方法选取的值相同,那么用例1和用例2就是重复测试用例。下面就描述Random策略的实现:Random策略先遍历字段,再对每个字段遍历变异方法,再对每个变异方法遍历取值。伪代码如下所示:for(字段1 到字段n)随机选取字段i1,字段i2,直到字段ii for(字段i1到字段ii) for(变异方法1 到变异方法m) 随机选取变异方法j for(值1 到值p) 随机选取值k 经过上面遍历生成测试用例 = 字段i1,变异方法j1,值k1字段i2,变异方法j2,值k2 字段ii,变异方法ji,值ki ;其特征矩阵为:i1, j1, k1i2, j2, k2., ., .ii, ji, ki如果测试用例1和测试用2的特征矩阵相同,则认为用例1和用例2是重复测试用例,应该移除。为了解决Random策略无限测试的问题,提出了Combination测试,该策略依次选取字段组合,对每一个字段再依次选取变异方法,对每一个变异方法再依次选取值。该策略的测试用例不会出现Random策略中的大量重复,节省了测试时间。下面就描述Combination策略的实现,伪代码如下所示:for(字段1 到字段n)/依次计算每个字段的测试用例数字段i测试用例数= 变异方法i1的取值数 +变异方法i2的取值数+变异方法im的取值数Combination策略生成的测试用例 = 字段1,变异方法1,值1字段1,变异方法1,值2字段1,变异方法1,值n字段i2,变异方法j2,值k1 字段i2,变异方法ji,值kn 字段ii,变异方法ji,值kn ;根据Combination策略限定的最大字段组合数max,进行组合。选取1个字段组合的测试用例数(相当于没有组合,等价于Sequential策略),选取2个字段组合的测试用例数,直到选取max个字段的组合数。Combination策略就是这样依次进行遍历,从而移除了Random策略的重复测试用例,并且不是无限测试。相比Sequential和RandomDeterministic策略添加了更多的测试情形。2、分析当前Peach支持的Fuzz策略模型Peach支持三种Fuzz策略:RandomDeterministic,Sequential和Random。RandomDeterministic:默认的Fuzz策略,每一个字段都会依次使用所有的变异方法进行变异,该策略是确定性的,可以计算出所有的测试用例的个数。测试的顺序是随机改变的。Sequential:每一个字段都会依次使用所有的变异方法进行变异,该策略是确定性的,可以计算出所有的测试用例的个数。Random:该策略随机选取1到5个字段,每一个字段随机选取一个变异方法,该变异方法随机选取值,该策略将会产生无限的测试用例。RandomDeterministic,Sequential策略实际的测试用例是相同的,只不过执行测试用例的顺序不同;Random策略测试用例的数目是无限大的,永远都测试不完,只能人为终止。Combination策略参考了Sequential和Random策略,采用依次遍历,解决了Random策略具有大量重复测试用例以及无限测试的问题。3、研究Peach Combination策略所需关键技术Random策略限定组合字段的范围是15,那么Combination策略是否应该限定组合字段的范围呢?如果应该,那么限定的范围是多少呢?假设共有n个字段,每个字段都由m个变异方法,每个变异方法都由p个取值。定义i个字段组合的测试用例数:f(i)=ni(mp)iCombination策略的总的测试用例数:sum=i=1nf(i)即sum=i=1cni(mp)i其中c为,组合的最大字段数。由此可见Combination策略的测试用例的总数随c,n,m,p的值呈指数递增,因为该策略也需要限定组合字段范围。Combination策略的组合字段范围是1c,当c=1时,该策略与Sequential策略相同,c的取值取决于n,m,p的大小,即:c=f(n,m,p)c的取值与m*p成反比,具体如何取值,需要深入实验得出结论,暂时与Random策略一样定为15。4、提出Peach抽样选取测试用例的方案如果字段,变异方法和变异方法取值数目较大,即使Sequential策略也需要较长的时间才能完成测试,如何才能加快Fuzz的速度呢?提出抽样选取测试用例的方案,用户可以自定义字段覆盖率、变异方法覆盖率和变异方法取值覆盖率。通过抽样可以有效的减少Peach测试的时间,代价是不能遍历所有的测试用例。该方案普遍使用于RandomDeterministic,Sequential,和Combination策略,实现方方案为:在开始测试之前,确定要fuzz的部分字段,确定使用的部分变异方法,确定要使用的部分变异方法的取值。之后再按照每个策略方式进行变异。5、分析不采用抽样方案和采用抽样方案的测试用例的总数Sequential和RandomDeterministic的测试用例的总数是相等的,Random策略的测试用例的总数是无限的,所以Random策略采用抽样与否测试用例的总数都是无限的。假设共有n个字段,每个字段都由m个变异方法,每个变异方法都由p个取值;字段的覆盖率为a%,变异方法的覆盖率为b%,变异方法的取值的覆盖率为c%。Sequential和RandomDeterministic测试用例总数:不采用抽样:sum=nmp采用抽样:sum=(a%*b%*c%)nmpCombination测试用例总数:不采用抽样:sum=i=1cni(mp)i采用抽样:sum=i=1ca%*ni(b%*c%*mp)i由此可见对于Sequential,RandomDeterministic和Combination策略采用抽样可以有效的减少测试用例总数,进而加快测试速度,当a=b=c=100时,就是不采用抽样的方案,因此采用抽样的方案给用户更多的选择。6、研究抽样选取测试用例所需关键技术采用抽样选取测试用例的方案可以减少总的测试用例数目,加速了测试速度。为了在速度与测试覆盖之间寻找一个较好的方案,需要选择合适的抽样值。如何选取合适的字段覆盖率、变异方法覆盖率以及变异方法取值覆盖率呢?假设共有n个字段,每个字段都由m个变异方法,每个变异方法都由p个取值;字段的覆盖率为a%,变异方法的覆盖率为b%,变异方法的取值的覆盖率为c%。Peach中的变异方法有24种,即m=24,p的取值则普遍比较大,因此如果字段较多,即n比较大,则令a取比较小的值,如果字段较少,则令a去比较大的值;b取值适中即可;c可以去比较小的值。课题研究目标和效果本课题意在从实际应用提出一种更快速、更高效的Peach Fuzz策略和方案,并对优化策略采用的关键技术进行研究和综合分析。改善目前Peach Fuzz Random策略时间过长、无限测试的现状,以及Sequential和RandomDeterministic效果不明显的问题,为用户提供更多的灵活选择,可配置地使用Peach,从而更快速更准确的挖掘软件漏洞,提高软件安全防护能力。预期发表EI论文1篇。三、研究方案设计及可行性分析(包括:研究方法,技术路线,理论分析、计算、实验方法和步骤及其可行性等)(不少于800字)研究方案设计在老师的认真帮助和指导下,结合自身学习经验和广泛深入的调研,确定了以下研究方法。1.研究方法针对本课题的研究内容和特性,达到研究目标和完成毕业论文,采用如下的研究方法:(1)理论知识准备:采用文献调查法,利用学校图书馆、网上相关学术数据库等资源,查看Peach fuzz网站及其论坛;(2)Peach改进技术及主要研究点确定:提出Peach Fuzz策略Combination,并对Fuzz策略采用抽样的方法进行测试;(3)技术调研:对课题中涉及的基本原理进行研究和学习,然后针对具体的技术方案进行技术调研,确定实现方式,阅读peach-3.0.202-source,学习C#语言,查看其它Fuzz testing工具;(4)设计技术方案:在理论准备和技术调研的基础上,结合需求分析的结构,设计出本课题详细的完整的技术方案;(5)实现并测试:理论与实践想结合,根据已设计出的技术方案,对需要改进的关键部分进行仿真,验证Peach Combination策略、抽样测试的可行性,然后利用已搭建好的环境进行集成测试,并记录实验数据,进行深入分析,推断;(6)完成论文:整理文献资料、代码和数据等,完成论文。2、技术路线(1)分析目前软件漏洞原理,如拒绝服务、缓冲区溢出和格式化字符串等原理;(2)分析提高Fuzzing产生数据的有效性方案;(3)运用当前Peach Fuzz策略,分析多种情况下,挖掘漏洞的实验数据;(4)提出Peach在Combination策略下挖掘漏洞的实验数据,并与Peach已有的三种策略进行综合对比分析;(5)分析抽样测试的实际作用,以及最佳的抽样值;总的来说,就是在理解Peach源码的基础上,添加Combination策略,抽样测试,进行实验与研究。可行性分析在当今软件安全研究热潮高涨的趋势下,软件漏洞挖掘得到了广泛研究。其中Fuzz testing是漏洞挖掘的重要手段,为本课题的研究奠定了坚实的理论背景。其中Peach作为Fuzz testing的优秀工具,已经发现了众多缓冲区溢出和拒绝服务等软件漏洞,国内也开始了对Peach的研究,然而Peach有许多地方需要改进以提高Fuzz testing的效率,为我们改进Peach提供了实验基础和理论基础。另外,本课题的技术路线已成功提高了Peach Fuzz testing的效率,并且经过实践证明是切实可行的。四、本研究课题可能的创新之处(不少于500字)随着软件行业的蓬勃发展,出现了越来越多的软件安全问题。漏洞挖掘技术也应运而生,其中Peach作为Fuzz testing的优秀工具,被广泛使用。但是Peach Fuzz 策略时间比较长,具有巨大胡测试用例总数,而且具有冗余的测试用例,所以Peach Fuzz策略的优化研究与实现就是为了提高Peach Fuzz效率而提出的。本课题为实现此目标,在策略思想和关键技术上的创新点主要有以下几点。1、基于Peach支持的Fuzz策略,提出Peach Combination策略以解决Random策略无限测试的问题。Peach支持三种Fuzz策略:RandomDeterministic,Sequential和Random,其中前两种策略都是有限的测试,而Random则是随机选取字段,每个字段随机选取变异方法,每个变异方法随机选取值组合进行的测试。Random策略中有很多重复的测试用例,如果将重复的测试用例移除,可以节省很多时间,减少Peach开销,从而快速地定位漏洞。因而提出了Combination策略,去除重复测试用例,在有限时间内完成最大覆盖的测试用例,提高Peach Fuzz效率。2、提出Peach抽样选取测试用例的方案提出抽样选取测试用例的方案,用户可以自定义字段覆盖率、变异方法覆盖率和变异方法取值覆盖率。通过抽样可以非常明显的减少测试用例总数,有效的减少Peach测试的时间。所以,Peach改进Fuzz策略后,不但支持以前的Fuzz策略,又支持新的Combination策略和抽样测试。既提高了Peach Fuzz效率又提供给用户更多的选择。五、研究基础与工作条件(1.与本项目相关的研究工作积累基础 2.包括已具备的实验条件,尚缺少的实验条件和拟解决途径)(不少于500字)1、研究工作积累基础本人所在实验室组织有工业控制讨论班,每两周组织一次工业控制主题讨论,在我学习工业控制过程中起到了很大的促进作用,通过半年多的理论和实践学习,我加深了对工业控制的概念以及该领域的核心技术的理解,另外由于个人对漏洞挖掘前沿信息的关注,了解到将Fuzz testing应用到安全领域正成为当前漏洞挖掘的必然趋势。本人决定通过继续的深入的学习研究,提出Peach Fuzz策略优化的研究与实现。在本课题提出之前我们阅读了大量的关于漏洞挖掘,Fuzz testing和Peach实现的技术论文,也分析Peach源码,使用Peach进行漏洞挖掘,还对Peach源码进行了修改,已达到更好的效率,基于此才提出了Peach Fuzz策略优化的研究与实现。另外本人也学习思考了当今软件漏洞挖掘的前沿技术,体会到Fuzz testing在漏洞挖掘中取得了巨大的成功。现有Peach Fuzz策略,不是未能充分利用已有的资源就是耗费大量的时间和人力,降低了软件漏洞挖掘的效率。所以,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论