软件漏洞分析技术第9章模糊测试读书笔记。

  • 模糊测试
    • 基本原理
    • 方法实现
      • 输入数据关联分析
      • 测试用例构建
      • 测试异常分析
      • 框架
    • 实例分析
    • 典型工具
      • Peach
      • Sulley

概念

模糊测试是当前最流行的黑盒测试方法,基本步骤有:

  1. 向待测程序提供大量特殊构造的数据作为输入
  2. 监视程序的运行过程中产生的异常并且记录导致异常的输入
  3. 人工进一步定位漏洞位置

方法实现

了解程序对于数据的结构化要求,有针对性地通过变异或者生成的方式构建测试用例。
对于复杂的数据格式,使用数据块模型进行描述。
常用的测试用例构造算法有:

  1. 随机
  2. 强制性测试
  3. 预先生成测试用例
  4. 遗传算法
  5. 错误注入与模糊式启发

测试异常分析

在模糊测试过程中,首先通过分类过滤并获取程序的某些运行时信息(尤其是异常发生时的),对记录下来的信息进行重点分析。
具体的监控方法有:

  1. 系统调试接口
  2. 异常即时过滤
  3. 异常影响分析与漏洞危害判定

典型工具

Peach:代码可以重用,并且能够在使用过程中变得更加智能。
Sulley:该工具的特点有使用简单且极富弹性,日志记录丰富且可以重现测试用例,代码可重用性高,基于路径的分析,追踪、代码覆盖度和度量,错误检测和恢复。