两种模糊测试方法在安全测试中的评估与应用
1. 模糊测试方法概述
模糊测试是一种软件安全测试技术,主要有突变模糊测试(Mutational Fuzzing)和生成式模糊测试(Generational Fuzzing)两种方法。
1.1 突变模糊测试
突变模糊测试分为三个阶段:
1. 构建有效输入集:通过操作一组有效输入来构建测试基础。
2. 输入变异与种子测试用例生成:对输入进行变异,自动构建一组种子测试用例,每个用例用于模糊测试。
3. 运行与监控:研究目标运行新的变异数据,并监控是否发生崩溃。
选择了由Michael Sutton编写的FileFuzz作为突变模糊测试工具。该工具分三个阶段独立工作,便于对模糊测试过程进行适当的测试和分析,尤其在生成和使用测试用例时。此外,它还有图形用户界面,方便监控模糊测试进度,观察内存位置、注册表值和崩溃时出现的错误类型。
graph LR
A[有效输入格式] --> B[生成模糊数据]
B --> C[自动化模糊过程]
C --> D[模糊测试]
D --> E[崩溃监控]
1.2 生成式模糊测试
生成式模糊测试需要事先了解目标结构、输入格式或文件定义。研究人员需先进行研究以理解文件定义,编写说明目标工作方式的语法。模糊器分析这些信息,生成智能测试用例,并将新的模糊数据发送到目标进行测试。该方法可分为五个阶段:
1. 提取初始测试用例。
2. 识别目标结构后的自动化过