模糊测试框架 Sulley 使用手记 (一)_第1页
模糊测试框架 Sulley 使用手记 (一)_第2页
模糊测试框架 Sulley 使用手记 (一)_第3页
模糊测试框架 Sulley 使用手记 (一)_第4页
全文预览已结束

下载本文档

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

文档简介

第第页模糊测试框架Sulley使用手记(一)模糊测试框架Sulley使用手记(一)

发表于:2023-04-09来源:Csdn:superqa点击数:标签:Sulley

在最近项目的测试中,我们引入了模糊测试(Fuzztesting)。在这个过程中,接触到了Sulley,一款用Python实现的用于网络协议fuzztesting的开源测试框架。跟其他的开源工具比起来,使用上比较灵活,而且也很方便。

在最近项目的(测试)中,我们引入了模糊(测试)(Fuzztesting)。在这个过程中,接触到了Sulley,一款用Python实现的用于网络协议fuzztesting的开源测试框架。跟其他的(开源)工具比起来,使用上比较灵活,而且也很方便。

举例来说,在测试过程中如果出现了目标程序crashing的情况,会导致后续的测试无法继续进行下去。针对这种情况,Sulley提供了一个用Python实现的进程监控的Agent(process_monitor.py),它的功能就是类似于watchdog,一旦检测到程序崩溃,会自动重启目标程序,使后续测试能顺利进行下去。如果程序的内部数据,比如某些配置已经由于之前的Fuzztesting被破坏掉了,只是简单重启目标程序还不足以让后续的测试正常的进行,可以选择在测试之初,直接把目标程序装在vmware虚拟机上,同样的,Sulley也提供了一个用来控制vmware虚拟机的Agent(vmcontrol.py),可以完成对虚拟机及snapshot的操作。有个这个Agent的协助,我们可以在目标程序环境准备好之后但是测试开始之前,对虚拟机做个vsnapshot,然后在测试开始之后,一旦发现crash,可以利用这个Agent直接把虚拟机rollback到之前预存好的snapshot状态,然后测试继续,够直接吧,呵呵。

网上关于Sulley的(资料)不多,在这里做点笔记,供大家参考。

什么是模糊测试(Fuzztesting)

模糊测试(Fuzztesting),根据WiKi上给出的定义,就是指一种(软件测试)方法:通过给程序提供不合法的,没有考虑到的,随机的输入,一旦程序出错了(比如crashing,或断言失败),则Bug被发现。根据程序输入的不同,模糊测试可以应用在很多方面,比如文件格式,网络协议,环境变量,键盘,鼠标事件,数据库,共享内存等,当然最常见的还是文件格式和网络协议。

根据这个定义,要成功实施Fuzztesting找出程序中的(bug),在测试过程中我们需要解决以下2个问题:

-如何生成随机但有效的输入

-何能够对目标程序监控以保证及时地发现,定位目标程序错误

而这也正是模糊测试工具力图解决的问题。

什么是Sulley

'工欲善其实,必先利其器",为了能更方便地进行Fuzztesting,工具自然是少不了的。Sulley,正是一款用Python实现的开源Fuzztesting框架,主要应用于网络协议方面的测试.目前现在关于这方面的(测试工具)也挺不少,不管是开源的(比如历史悠久的SPIKE,或者是本文介绍的Sulley)还是商业的(比如MuDynamics公司的产品),更多可以看这里.

事实上,在Sulley出来之前,这方面的工具已经有一些了,但是为什么Sulley的还要选择重新造轮子呢?根据Sulley的文档,他这么做的理由是,当时已有的工具主要是专注在'数据生成"部分,而仅仅做到这一步对Sulley是不够的,因为Sulley设计的目标是:不仅要简化数据生成,同样要简化与目标系统的之间的数据传输,以及目标系统的监控。因此我们可以把刚才这段话理解成,Sulley要做的是一个能支持fuzztesting的整个测试流程的框架。在这一点上,显然Sulley的定位比起之前的工具高出了很多。而且事实上,Sulley的也不算是在造一个全新的轮子,比如在具体实现Sulley的时候,他也借鉴了一些当时已经成熟很成熟的Fuzz框架(SPIKE)的经验,比如用"块'结构的方式来构造数据,这点从Sulley构造Request所用的API接口就可以看出来,包括对于特定数据类型所用到的fuzzlibrary也都直接从SPIKE拿过来,这些内容,我们会在后面的文章

温馨提示

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

评论

0/150

提交评论