基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究_第1页
基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究_第2页
基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究_第3页
基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究_第4页
基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究基于启发式搜索和分类树的网络协议模糊测试用例生成方法研究引言随着现代软件产业的开展,软件规模不断扩大,其内部逻辑也变得更加复杂1。为了保证软件的质量,软件测试环节在软件生命周期中占据非常重要的地位,但仍然不可能彻底消灭软件中所有的逻辑缺陷。模糊测试通过向目的系统提供非预期的输入并异常监视结果发现软件破绽,是平安检测和破绽挖掘的有效方法,也是近年来信息平安领域的研究热点之一。网络协议模糊测试发现的破绽通常具有非常高的危险程度,所以被认为是多数平安研究者最感兴趣的模糊测试类型2。在模糊测试的过程中,模糊测试数据生成和异常监视这两个关键环节需要

2、研究者给予特别关注。本文对网络协议模糊测试用例生成方法3进展研究。1启发式网络协议模糊测试用例生成方法1.1网络协议分类树的构建过程一棵网络协议分类树可以用五元组PT=P,F,A,V,R表示。其中根节点P代本文由论文联盟搜集整理表测试目的网络协议;F代表目的网络协议的协议域,F=field1,field2,field3,fieldn;A代表协议域互不相交的属性,A=A1?A2?An=attribute11,attribute12,attribute11,attributen1,attributen2,attributenn;V代表协议域的属性值,V=V11V12V11V21V22Vn1Vn2V

3、nn=valuevalueVij且i=1,2,n,j=1,2,i;R代表协议分类树中父节点和子节点之间的关系,包括目的协议P与协议域F之间的关系、协议域F与属性A之间的关系、属性A与属性值V之间的关系等,R=relatin1,relatin2,relatin3,其中relatin1=p,fieldi1in,relatin2=fieldi,attributEij1in,1ji,relatin3=attributeij,valuek1in,1ji,kN*。1.2网络协议模糊测试数据生成过程基于分类树的网络协议模糊测试数据生成过程可以概括为四个步骤:1选定测试目的网络协议P,并根据其标准划分得到协议

4、域集合F=field1,field2,field3,fieldn,该目的协议可以用n元序组field1,field2,field3,fieldn表示。2针对步骤1中得到的每个协议域的属性进展分类,得到描绘协议域fieldi的属性集合Ai=attributei1,attributei2,attributeii,其中每个属性attributeij分别在离散的属性值集合Vij中取值1in,1ji。3对每个协议域fieldi不同属性的属性值进展互相组合,得到面向该协议域的测试数据集合Si=Vi1Vi2Vii1in。4依次从面向协议域fieldi的测试数据集合Si中取值,对描绘目的协议的n元序组fiel

5、d1,field2,field3,fieldn进展展开,得到面向目的网络协议的测试用例。1.3启发算子在网络协议分类树中的引入启发式网络协议模糊测试用例生成方法基于分类树的网络协议模糊测试数据生成过程中参加了启发算子的定义,利用启发算子演变得到启发式规那么,用于指导每个协议域的测试数据生成过程4。结合文中给出的基于分类树的网络协议模糊测试数据生成的详细过程,需要在步骤2中增加获取启发算子的操作,用于对协议域属性值集合Vij的精简。由于应用启发算子后并未对步骤1产生影响,而且该步骤的实现难度比拟小,通常只需要对协议标准进展解读便可以获取用于描绘目的协议的n元序组field1,field2,fie

6、ld3,fieldn。启发算子Heuristiperatr的定义可以用映射关系fh:VijV*ij描绘。启发算子的定义可以源于协议分类树中父节点与子节点之间的关系集合R,也可以源于对目的网络协议的协议标准分析,或者可以借助第三方工具进展提取5。1.4启发式网络协议模糊测试用例生成过程启发式网络协议模糊测试用例生成过程需要利用启发算子h实现协议域属性值集合的精简,为了方便详细的实现过程,可以把启发算子写入相应的配置文件6。在配置文件启发算子定义的根底上可以演变得到形如if,then的启发规那么,用于剔除属性值集合Vij中的无效值,从而得到精简的属性值集合V*ij。面向协议域fieldi的测试数据

7、集合Si的生成过程可以视作协议域的属性值集合,进展笛卡尔乘积运算的过程,即Si=Vi1Vi2Vii1in。属性值集合在应用启发算子进展精简之后元素个数减少,即V*ijVij1in,1ji。那么不难得出,精简后面向协议域fieldi的测试数据集合满足S*isi。br=任取i元序组utatedvalue1,utatedvalue2,utatedvalue1=S*i,对n元序组field1,field2,field3,fieldn中的协议域fieldi进展交换,得到面向目的协议的一个测试用例,直至遍历完每个协议域的测试数据集合。至此,得到面向测试目的网络协议的测试用例的总数为PT=1nS*i=S*1

8、+S*2+S*3?+S*n。2模糊测试用例生成方法的实现2.1验证平台网络协议模糊器的选取根据各网络协议模糊器与验证平台选取标准的匹配结果可知,模糊器Peah和Sulley相对于SPIKE而言,更加符合本文对验证平台的选取标准。考虑到模糊器Peah相对于Sulley而言对测试执行前的准备工作要求更为简单,而其维护更新情况更加频繁,最终选取模糊器Peah作为启发式网络协议模糊测试用例生成方法的验证平台。2.2启发式网络协议模糊测试用例生成2.2.1目的协议与施行方案的选取根据每个恳求与之前的恳求是否相关,可以把网络协议分为无状态协议StatelessPrtl和有状态协议StatefulPrtl7

9、。无状态协议是指网络协议的相邻数据包之间没有上下文的关联性;有状态协议是指相邻的数据包之间具有上下文的关联性。在实际运用中,有状态协议比无状态协议的应用更加普遍。本文选取有状态协议的典型代表FTP协议作为目的协议,对启发式模糊测试用例生成方法进展实例验证。FTP协议采用客户端/效劳器的工作形式,在现实世界具有极为广泛的应用,选取FTP作为模糊测试目的协议不仅具有普遍的现实意义,同时还能与本文对启发式模糊测试用例生成方法的描绘结合起来,防止出现针对一样步骤的屡次重复分析8。从客户端连接远程FTP效劳程序的过程可以分为建立连接、传送数据、释放连接三个阶段,详细的通信过程可以描绘为:1首先建立TP连

10、接,客户端向FTP效劳器发送USER命令说明身份;2然后效劳器要求客户端输入密码,客户端发送PASS命令将密码发送给效劳器,效劳器对客户端进展身份认证;3身份认证通过后客户端可以传输其他FTP命令进展文件操作,需要完毕此次连接时用QUIT命令退出。FTP客户端与FTP效劳器进展通信的过程中,首先生成一个TP虚拟连接用于验证控制信息,然后再生成一个单独的TP连接用于数据传输。详细如图1所示。图1FTP通信使用的两个TP连接2.2.2目的协议分类树的构建FTP命令可以表示为三元序组field1,field2,field3,协议域集合FFTP=field1,field2,field3。为了简化处理过

11、程,本文不再针对FTP命令三个协议域的各自特点进展研究,在划分过程中做一样处理,得到内容和长度两个属性,即三个协议域field1,field2,field3均可以用二元组内容,长度进展描绘。也就是说,attribute11=attribute21=attribute31=内容,attribute12=attribute22=attribute32=长度,那么不难得到三个协议域的属性集合A1=A2=A3=属性,长度。2.2.3启发算子的抽取与启发规那么的定义文中选取FTP作为目的协议对启发式网络协议模糊测试用例生成方法进展验证,实现启发算子的提取和定义之前,需要首先对FTP协议传输过程中的数据单

12、位信息有所理解9。在计算机网络中,对等层之间传递的数据单位称为协议数据单元PrtlDataUnit,PDU,SI七层参考模型中的各层协议数据单元详细如表1所示。目的协议FTP属于SI七层参考模型中的应用层协议,其协议数据单元是数据Data,针对FTP协议的测试需要依托利用FTP协议进展通信的程序完成。本文借助IDAPr工具实现针对测试目的程序的启发算子的提龋利用IDAPr工具提取启发算子的详细操作步骤示意图如图2所示。2.2.4利用启发算子指导测试数据的生成启发式网络协议模糊测试用例生成方法中,启发算子的引入是为了减小测试用例生成过程的搜索空间,实现网络协议模糊测试用例生成过程的优化10。启发

13、算子配置文件nstantList.nf和funList.nf与详细的启发规那么之间的关系如图3所示。e:2022年第21期2022年21期iage03t3.tif图3启发算子及其配置文件与启发规那么的关系示意图在验证平台模糊器Peah完成对启发算子配置文件的处理之后,就可以开场利用详细的启发规那么指导协议域测试数据的详细生成过程。启发式的协议域测试数据由格式化字符串、普通字符串、整型值、不同编码方式的字符串四个局部组成。3网络协议模糊测试用例生成方法的验证3.1模糊测试方案与环境要求启发式网络协议模糊测试用例生成方法的实例验证过程在inds操作系统环境下进展。利用模糊器Peah2.3.8源码在

14、inds平台下执行模糊测试所依赖的工具或者库,主要包括网络封包抓取工具inpap、调试工具indbg、Pythn扩展等,要求在测试开场之前完成相应的安装准备工作。测试施行方案示意图如图4所示。从图4中可知,模糊器Peah扮演客户端的角色对FTP效劳端程序的平安性进展测试,而模糊器所集成的监控模块在测试过程中用于搜集测试目的的行为并分析判断测试目的是否出现异常。鉴于pen?FTPD1.2存在的平安破绽,更合适作为模糊测试效果实例验证的测试目的程序。采用该FTP效劳端程序作为测试目的程序,在模糊器Peah的平台上对启发式网络协议模糊测试用例生成方法的有效性进展验证。考虑到模糊测试的执行时间,实例验

15、证过程只选择FTP命令中最常用的USER命令进展测试,以简化测试环节的处理。利用模糊器Peah开场测试前,首先需要针对FTP效劳端程序pen?FTPD定义相应的Pit文件penftp.xl,从而构造出完好的模糊器。Pit文件中Datadel元素用于对数据模型进展定义,包括数据构造和数据关系等,一个Pit文件中可以定义多个数据模型。Pit文件中的Test元素用于定义测试配置信息,用于指定测试中所用的状态模型Statedel,Publisher等信息。其中状态模型用于描绘如何与目的程序进展通信,而Publisher用于定义模糊器Peah的I/连接,构造网络协议数据流或者文件流等。Pit文件中的Ag

16、ent元素用于定义代理和监视器信息,指定模糊器Peah在测试执行过程中用于监视测试目的程序异常的调试器。每个Pit文件中可以定义多个Agent元素,每个Agent元素中可以定义多个nitr。3.2实验验证与结果分析3.2.1模糊测试效率分析利用模糊器Peah的语法命令peah?peah_xl_filerun_nae分别对应用启发式模糊测试用例生成方法前后所生成的测试用例数量进展计算。根据运行结果可知,改良前的测试用例为12966个,而改良后的数量减少到2532个,仅为原有测试用例总数的19.5%,证明启发式模糊测试用例生成方法有效地减少了用例生成的总数量。模糊测试通过向目的程序注入大量的畸形数

17、据试图发现测试目的中存在的破绽,测试用例的数量直接关系到模糊测试的执行时间,亦即模糊测试的效率。根据实验结果可知,改良前的测试执行时间为10小时16分钟28秒,而改良后的执行时间降低到22分钟16秒,仅为改良前的测试执行时间的约3.6%,显著提升了模糊测试的效率。3.2.2发现破绽才能分析针对penFTPD1.2执行模糊测试在应用启发式模糊测试用例生成方法前后,均捕获到的破绽包括TaintedDatantrlsBranhSeletin和TaintedDataPassedTFuntin两种类型,证明改良后的测试用例的有效性并没有因为总数量的减少而削弱。在可以触发测试目的程序异常的模糊测试用例数量

18、方面,应用启发式模糊测试用例生成方法前模糊器Peah触发TaintedDatantrlsBranhSeletin异常的用例数量为2个,触发TaintedDataPassedTFuntin异常的用例数量为18个。应用启发式模糊测试用例生成方法前模糊器Peah触发TaintedDatantrlsBranhSeletin异常的用例数量为12个,触发TaintedDataPassedTFuntin异常的用例数量为22个。改良前触发测试目的程序异常的测试用例总数为20个,占测试用例总数量的比例为20229660.15%;改良后触发测试目的程序异常的测试用例总数为34个,占测试用例总数量的比例为3425321.34%,有效测试用例的比例约为

温馨提示

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

评论

0/150

提交评论