Posts Fuzz
Post
Cancel

Fuzz

Fuzz测试是一种自动化软件测试技术,为程序的输入构造随机数据,然后监视程序执行是否会出现异常,比如崩溃,断言失败,内存泄漏,条件竞争等。

基本流程

  • 确定测试目标
  • 确定输入向量。例如文件数据、网络数据等
  • 生成模糊测试数据
  • 执行模糊测试
  • 监视异常。监视目标程序是否产生异常,记录使程序产生异常的测试数据和异常的相关信息。
  • 判断发现的漏洞是否可被利用。通过复现前面产生的异常,分析异常的原因,从而判断是否可利用。

基本要求

要实现高效的模糊测试,通常需要满足:

  • 可重现性:测试者必须能够知道使程序产生异常的测试数据,根据该数据可以复现该异常。
  • 可重用性:进行模块化开发,无需为一个新的目标程序重新开发一个模型测试器
  • 异常监视:能精确判断目标程序是否发生异常。

基本分类

  • 基于生成:通过对被测试系统进行建模,基于模型生成输入,并创建测试用例。
  • 基于变异:通过对已有的数据样本进行变异来创建测试用例。
This post is licensed under CC BY 4.0 by the author.